SMMNE05100.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627
  1. /*
  2. EDC스케줄관리(SMMNE05100.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. - Create : 2009.06.09
  6. */
  7. //20090629 dhkim
  8. //당직스케줄 그리드의 수정상태값
  9. var isEdited = 'N';
  10. var curRow = 0; //중증분류그리드의 선택된 row값
  11. var orddept = null;//
  12. //2010.01.12 dhkim 당직기준시간 추가
  13. var scheftm = "9999";//0900
  14. var schettm = "8888";//0859
  15. //20090609 dhkim
  16. //화면초기화
  17. function fInit(){
  18. //2010.01.12 dhkim 기관별 당직기준시간 조회 추가
  19. //변경요청번호:10623번. itc서소영
  20. var pCode = "'175'"; // 조회할 CdGrupID 코드정보
  21. var pDate = getCurrentDate(); //조회기준일자
  22. fGetNursHardCdInfo(pCode, pDate);
  23. var cdnm = model.getValue("/root/code/codeinfo/codelist[cdgrupid = '175' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdnm");
  24. if(cdnm != "" && cdnm.split("|").length > 0){
  25. scheftm = cdnm.split("|")[0];//당직시작시간
  26. schettm = cdnm.split("|")[1];//당직종료시간
  27. }
  28. var curym = getCurrentDate().substring(0, 6);
  29. var worktitle = curym.substring(0, 4) + '년 ' + curym.substring(4, 6) + '월 당직리스트';
  30. model.removenode('/root/send');
  31. model.makeValue('/root/send/srchym', curym);
  32. if(submit('TRMNE05101')){
  33. //조회조건 초기화
  34. model.removenode('/root/cond');
  35. model.removenode('/root/main/titleinfo');
  36. model.makeValue('/root/cond/srchym', curym);
  37. model.makeValue('/root/cond/orddeptcd', getUserInfo('dutplcecd'));
  38. cpt_worktitle.text = worktitle; //조회년월로 세팅
  39. cpt_grpmtitle.text = '중증분류명'; //초기화
  40. model.refresh();
  41. var orddeptcd = model.getValue('/root/cond/orddeptcd');
  42. fGetGroupMaster(orddeptcd);//선택된 진료과의 중증분류마스터조회
  43. fGetDrInfo(orddeptcd);//선택된 진료과의 의사리스트조회
  44. }else{
  45. messageBox('화면초기화 진료과 조회를 실패하였습니다.', 'E999');
  46. return false;
  47. }
  48. }
  49. //20090609 dhkim
  50. //선택된 진료과의 중증분류마스터 조회
  51. function fGetGroupMaster(orddeptcd){
  52. //타이틀 헤더세팅
  53. var srchym = model.getValue('/root/cond/srchym');
  54. var worktitle = srchym.substring(0, 4) + '년 ' + srchym.substring(4, 6) + '월 당직리스트';
  55. cpt_worktitle.text = worktitle; //조회년월로 세팅
  56. cpt_grpmtitle.text = '중증분류명'; //초기화
  57. if(srchym == ''){
  58. srchym = getCurrentDate().substring(0, 6);
  59. model.setValue('/root/cond/srchym', srchym);
  60. }
  61. //노드초기화
  62. model.removenode('/root/main/titleinfo');
  63. model.makenode('/root/main/titleinfo');
  64. model.removenode('/root/main/workinfo');
  65. model.makenode('/root/main/workinfo');
  66. model.removenode('/root/main/drinfo');
  67. model.makenode('/root/main/drinfo');
  68. model.removenode('/root/main/drdetlinfo');
  69. model.makenode('/root/main/drdetlinfo');
  70. model.removenode('/root/send');
  71. model.makeValue('/root/send/grpmasterinfo/srchym', srchym);
  72. model.makeValue('/root/send/grpmasterinfo/orddeptcd', orddeptcd);
  73. if(!submit('TRMNE05102')){
  74. messageBox('진료과별 중증분류 조회를 실패하였습니다.', 'E999');
  75. return false;
  76. }else{
  77. if(grd_grpmaster.rows > 1){
  78. grd_grpmaster.row = 1;
  79. fSetStaffInfo(srchym, grd_grpmaster.row);//타이틀, staff, 기준시간세팅
  80. var srchym = model.getValue('/root/cond/srchym');
  81. var grtype = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/grtype');
  82. var orddeptcd = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/orddeptcd');
  83. var staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/staffid');
  84. fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid);//당직자리스트를 조회한다
  85. }
  86. }
  87. }
  88. //20090609 dhkim
  89. //선택된 진료과의 의사리스트조회
  90. function fGetDrInfo(orddeptcd){
  91. if(orddeptcd == null || orddeptcd == ""){
  92. orddeptcd = model.getValue('/root/cond/orddeptcd');
  93. }
  94. model.removenode('/root/send');
  95. model.makeValue('/root/send/drinfo/orddeptcd', orddeptcd);
  96. if(!submit('TRMNE05103')){
  97. messageBox('진료과별 당직대상자 조회를 실패하였습니다.', 'E999');
  98. return false;
  99. }
  100. }
  101. //20090609 dhkim
  102. //중증분류선택시
  103. // 1. 당직대상자 위에 헤더정보를 변경
  104. // 2. 당직리스트의 staff이름, id 세팅
  105. function fSetStaffInfo(srchym, grpRowid){
  106. var worktitle = srchym.substring(0, 4) + '년 ' + srchym.substring(4, 6) + '월 당직리스트';
  107. var grpmtitle = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grpRowid + ']/shownm');
  108. var staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grpRowid + ']/staffid');
  109. var staffnm = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grpRowid + ']/staffnm');
  110. model.removenode('/root/main/titleinfo');
  111. model.makenode('/root/main/titleinfo');
  112. //title세팅
  113. cpt_worktitle.text = worktitle; //조회년월로 세팅
  114. cpt_grpmtitle.text = grpmtitle; //선택한 분류명으로 세팅
  115. model.makeValue('/root/main/titleinfo/worktitle', worktitle);
  116. model.makeValue('/root/main/titleinfo/grpmtitle', grpmtitle);
  117. //staff세팅
  118. model.makeValue('/root/main/titleinfo/staffid', staffid);//staffid
  119. model.makeValue('/root/main/titleinfo/staffnm', staffnm);//staff명
  120. //2010.01.12 dhkim - 당직스케줄 기준시간관리 기관별로 관리
  121. model.makeValue('/root/main/titleinfo/fromtm', scheftm);
  122. model.makeValue('/root/main/titleinfo/totm', schettm);
  123. model.refresh();
  124. }
  125. //20090609 dhkim
  126. //의사명 선택시 상세정보를 조회후 세팅한다
  127. function fSetDrInfo(clickflag, drid){
  128. model.removenode('/root/main/drdetlinfo');
  129. if(clickflag == 'worklist'){
  130. //당직자리스트에서 의사 선택한경우 의사아이디로 상세정보를 조회해온다.
  131. model.removenode('/root/send');
  132. model.makeValue('/root/send/drid', drid);
  133. if(submit('TRMNE05104')){
  134. //당직대상자리스트 선택을 제거한다
  135. //grd_drlist.row = 0;
  136. }
  137. }else{
  138. //당직리스트 선택을 제거한다
  139. //grd_workerlist.row = 0;
  140. //당직대상자에서 의사 선택한 경우 그리드정보에서 상세정보를 세팅한다.
  141. model.makeValue('/root/main/drdetlinfo/drid', drid);//사번
  142. model.makeValue('/root/main/drdetlinfo/drnm', model.getValue('/root/main/drinfo/drinfolist[drid="' + drid + '"]/drnm'));//의사명
  143. model.makeValue('/root/main/drdetlinfo/phone', model.getValue('/root/main/drinfo/drinfolist[drid="' + drid + '"]/phone'));//핸드퐁
  144. model.makeValue('/root/main/drdetlinfo/bbtel', model.getValue('/root/main/drinfo/drinfolist[drid="' + drid + '"]/bbtel'));//비퍼
  145. model.refresh();
  146. }
  147. }
  148. //20090609 dhkim
  149. //당직대상자리스트를 조회한다
  150. function fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid){
  151. //20090629 dhkim
  152. //저장하기전 다른 row를 선택했을때 blocking 하기위해 중증분류의 row값을 임시저장해둠
  153. curRow = grd_grpmaster.row;
  154. orddept = cmb_orddeptcd.value;
  155. if(srchym == null || srchym == ''){
  156. srchym = model.getValue('/root/cond/srchym');
  157. }
  158. if(grtype == null || grtype == ''){
  159. grtype = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grd_grpmaster.row +']/grtype');
  160. }
  161. if(orddeptcd == null || orddeptcd == ''){
  162. orddeptcd = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grd_grpmaster.row +']/orddeptcd');
  163. }
  164. if(staffid == null || staffid == ''){
  165. staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grd_grpmaster.row +']/staffid');
  166. }
  167. model.removenode('/root/send');
  168. model.makeValue('/root/send/srchym', srchym);
  169. model.makeValue('/root/send/orddeptcd', orddeptcd);
  170. model.makeValue('/root/send/grtype', grtype);
  171. model.makeValue('/root/send/staffid', staffid);
  172. //2010.01.12 dhkim - 당직스케줄 기준시간관리 기관별로 관리
  173. model.makeValue('/root/send/fromtm', scheftm);
  174. model.makeValue('/root/send/totm', schettm);
  175. model.makeValue('/root/send/monthcnt', getDayCountForMonth(srchym.substring(0, 4), srchym.substring(4, 6)));//조회년월의 마지막일
  176. //curdate.toDate('YYYYMMDD').getAddDate(-7, "D").getDateFormat('YYYYMMDD')
  177. //date.getAddDate(10, "Y")
  178. //getDayCountForMonth(year, month) //해당 년도의 해당 달이 몇일을 가지고 있는지를 반환한다.(윤년계산 포함)
  179. if(submit('TRMNE05105')){
  180. //글로벌변수 초기화
  181. isEdited = 'N';
  182. curRow = 0;
  183. orddept = null;
  184. //당직대상자의 선택제거
  185. grd_drlist.row = 0;
  186. //당직리스트의 선택제거
  187. grd_workerlist.row = 0;
  188. //상세정보 초기화
  189. fSetDrInfo();
  190. //당직리스트색깔 초기화
  191. for(var i = 1; i <= grd_workerlist.rows; i++){
  192. grd_workerlist.cellstyle("background-color", i, 0, i, 6) = '#ffffff';
  193. grd_workerlist.cellStyle("background-image", i, 0, i, 6) = '';
  194. }
  195. //20090629 dhkim 당직스케줄 변경여부 조회를 위해 임시노드에 copy 해둔다.
  196. model.removenode('/root/orgscheinfo');
  197. model.makenode('/root/orgscheinfo/workinfo');
  198. model.copyNode('/root/orgscheinfo/workinfo', '/root/main/workerinfo');
  199. }
  200. }
  201. //20090613 dhkim
  202. //오른쪽마우스 메뉴중 추가 선택시 호출
  203. function fAddWorkDr(){
  204. //tf오른쪽메뉴에 parameter지정을 할 수 없어서 만들었음
  205. fSetWorkDr('ADD');
  206. }
  207. //20090610 dhkim
  208. //setFlag : ADD 당직자리스트그리드의 선택된 모든셀에 의사를 세팅한다.
  209. //setFlag : DEL 당직자리스트그리드의 선택된 모든셀에 의사를 지워준다.
  210. function fSetWorkDr(setFlag){
  211. //선택된 당직대상자정보(id, nm)
  212. var drid = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/drid');
  213. var drnm = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/drnm');
  214. var saveyn = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/saveyn');
  215. var deptcd = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/deptcd');
  216. var phone = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/phone');
  217. var bbtel = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/bbtel');
  218. //의사추가의경우
  219. if(setFlag == 'ADD'){
  220. //선택된 당직대상자정보가 없으면 세팅하지않고 바로 리턴
  221. if(drid == null || drid == ''){
  222. return false;
  223. }
  224. //응급호출의사정보마스터에 등록되어있지 않은 의사를 선택한 경우 등록화면을 호출
  225. if(saveyn == 'N'){
  226. var btnChk = messageBox('"'+drnm+'"님은 근무자관리에 연락처가 등록되어 있지 않습니다.\r\n'+ '근무자 연락처 등록을', 'Q004');
  227. if(btnChk == 6){//예
  228. setParameter('drid', drid);
  229. setParameter('drnm', drnm);
  230. setParameter('deptcd', deptcd);
  231. setParameter('phone', phone);
  232. setParameter('bbtel', bbtel);
  233. modal('SMMNE05000', "", "500", "500", "SMMNE05000", "", "");
  234. var saveyn = getParameter("saveyn");
  235. if(saveyn == 'Y' || saveyn == 'D'){//Y:저장, D : 삭제
  236. //당직대상자 재조회 후 포커스 원래상태로
  237. var curRow = grd_drlist.row;
  238. fGetDrInfo();
  239. grd_drlist.row = curRow;
  240. }
  241. }
  242. return false;
  243. }
  244. }
  245. //현재날짜+시간(yyyymmddhhss)
  246. var currentDD = getCurrentDateTime().replace(" ", "").substring(0, 12);
  247. var errYn = 'N'; //과거일자 선택여부
  248. var cells = grd_workerlist.selectedCells; //선택된 쎌의 배열
  249. var sRow, sCol, sColNm; //선택된 쎌의 row, col 값, 선택된 col의 필드명
  250. var selectedDD; //선택된일자
  251. for(var i = 0; i < cells.length; i++){
  252. sRow = cells.item(i).row;
  253. sCol = cells.item(i).col;
  254. sColNm = grd_workerlist.colAttribute(sCol, "ref");
  255. selectedDD = model.getValue('/root/main/workerinfo/workerinfolist[' + sRow + ']/todd');
  256. //현재일자보다 이전일자의 스케줄을 변경하지 못하게 blocking한다.
  257. if(selectedDD < currentDD){
  258. errYn = 'Y';
  259. }else{
  260. if(sCol != 0){//일자셀 선택의 경우는 변경하지 않음
  261. //의사추가의경우
  262. if(setFlag == 'ADD'){
  263. //선택된 쎌에 의사이름 쎄팅
  264. model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/' + sColNm, drnm);
  265. model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/drid' + sColNm.substring(4), drid);
  266. //선택된 쎌 색상 변경
  267. grd_workerlist.cellStyle('background-color', sRow, sCol) = "#F4A6EE";
  268. //지우개 이미지 삭제
  269. grd_workerlist.cellStyle("background-image", sRow, sCol) = '';
  270. }
  271. //의사삭제의경우
  272. else{
  273. //셀에 데이터가 세팅되어 있는경우만 삭제되게
  274. var drnm = model.getValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/' + sColNm);
  275. if(drnm != ''){
  276. //선택된 쎌에 의사이름 쎄팅
  277. //model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/' + sColNm, '');
  278. model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/drid' + sColNm.substring(4), '-');
  279. //선택된 쎌에 삭제 이미지 세팅
  280. //grd_workerlist.cellStyle("background-image", 1, 1) = '../../../emr/ercareweb/img/icon_close.gif';
  281. grd_workerlist.cellStyle("background-image", sRow, sCol) = '../../../com/commonweb/images/icon_eraser.gif';
  282. grd_workerlist.cellStyle("background-position", sRow, sCol) = 'center';
  283. //배경색을 흰색으로 초기화
  284. grd_workerlist.cellStyle('background-color', sRow, sCol) = "#ffffff";
  285. }
  286. }
  287. }
  288. }
  289. }
  290. //과거일자만 빼고 나머지 일자는 변경가능하도록 한다
  291. if(errYn == 'Y'){
  292. messageBox('과거일자의 스케줄은 변경하실 수 없습니다.', 'E999');
  293. return false;
  294. }
  295. }
  296. //20090612 dhkim
  297. //수정한 내역을 새로고침한다
  298. function fRefreshWorkDr(){
  299. var btnRst = messageBox('새로고침하시면 저장하지 않은 내역은 모두 초기화됩니다.\r\n'+ '새로고침을', 'Q004');
  300. if(btnRst == 6){//예
  301. grd_workerlist.rebuildStyle();
  302. var curRow = grd_drlist.row;
  303. var srchym = model.getValue('/root/cond/srchym');
  304. var grtype = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/grtype');
  305. var orddeptcd = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/orddeptcd');
  306. var staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/staffid');
  307. fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid);
  308. //grd_drlist.row = curRow;//선택된상태로
  309. }
  310. }
  311. //20090610 dhkim
  312. //세팅한 내역을 저장한다
  313. function fSaveWorkDr(){
  314. var grtype = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grd_grpmaster.row + ']/grtype');
  315. var orddeptcd = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grd_grpmaster.row + ']/orddeptcd');
  316. var staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist[' + grd_grpmaster.row + ']/staffid');
  317. var srchym = model.getValue('/root/cond/srchym');
  318. model.removeNodeset("/root/send");
  319. model.makeValue("/root/send/workerlist", grd_workerlist.getupdatedataAll("i"));
  320. model.makeValue("/root/send/grtype", grtype);
  321. model.makeValue("/root/send/orddeptcd", orddeptcd);
  322. model.makeValue("/root/send/staffid", staffid);
  323. model.makeValue("/root/send/srchym", srchym);
  324. if(submit('TXMNE05101')){
  325. //당직리스트색깔 초기화
  326. for(var i = 1; i <= grd_workerlist.rows; i++){
  327. grd_workerlist.cellstyle("background-color", i, 0, i, 6) = '#ffffff';
  328. grd_workerlist.cellStyle("background-image", i, 0, i, 6) = '';
  329. }
  330. //20090714 dhkim
  331. var srchym = model.getValue('/root/cond/srchym');
  332. var grtype = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/grtype');
  333. var orddeptcd = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/orddeptcd');
  334. var staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/staffid');
  335. fSetStaffInfo(srchym, grd_grpmaster.row);//당직대상자의 헤더, staff이름 세팅
  336. fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid);//당직자리스트를 조회한다
  337. }
  338. }
  339. /**
  340. * @desc : 이전 년버튼 클릭시 - 전년도+월로 세팅
  341. * @
  342. * @param :
  343. * @return :
  344. * @author : dhkim 20090610
  345. * @---------------------------------------------------
  346. */
  347. function fClkBfYear(srchym){
  348. var yyear = srchym.substring(0, 4);
  349. var mmont = srchym.substring(4, 6);
  350. yyear--;
  351. srchym = yyear + mmont;
  352. model.setValue('/root/cond/srchym', srchym);
  353. model.refresh();
  354. }
  355. /**
  356. * @desc : 다음 년버튼 클릭시 - 다음년도+월로 세팅
  357. * @
  358. * @param :
  359. * @return :
  360. * @author : dhkim 20090610
  361. * @---------------------------------------------------
  362. */
  363. function fClkAfYear(srchym){
  364. var yyear = srchym.substring(0, 4);
  365. var mmont = srchym.substring(4, 6);
  366. yyear++;
  367. srchym = yyear + mmont;
  368. model.setValue('/root/cond/srchym', srchym);
  369. model.refresh();
  370. }
  371. /**
  372. * @desc : 이전 달버튼 클릭시 - 년도+전월 세팅
  373. * @
  374. * @param :
  375. * @return :
  376. * @author : dhkim 20090610
  377. * @---------------------------------------------------
  378. */
  379. function fClkBfMonth(srchym){
  380. var yyear = srchym.substring(0, 4);
  381. var mmont = srchym.substring(4, 6);
  382. mmont = mmont.toDate('MM').getAddDate(-1, "M").getDateFormat('MM');
  383. if(mmont == '12'){
  384. yyear--;
  385. }
  386. srchym = yyear + mmont;
  387. model.setValue('/root/cond/srchym', srchym);
  388. model.refresh();
  389. }
  390. /**
  391. * @desc : 다음 달버튼 클릭시 - 년도+다음월 세팅
  392. * @
  393. * @param :
  394. * @return :
  395. * @author : dhkim 20090610
  396. * @---------------------------------------------------
  397. */
  398. function fClkAfMonth(srchym){
  399. var yyear = srchym.substring(0, 4);
  400. var mmont = srchym.substring(4, 6);
  401. mmont = mmont.toDate('MM').getAddDate(+1, "M").getDateFormat('MM');
  402. if(mmont == '01'){
  403. yyear++;
  404. }
  405. srchym = yyear + mmont;
  406. model.setValue('/root/cond/srchym', srchym);
  407. model.refresh();
  408. }
  409. //20090610 dhkim
  410. //셀색상을 선택색으로 변경되지 않도록 원래색상으로 유지한다
  411. function fSetCellColor(clickRow, clickCol, clickColNm){
  412. var curColor = grd_workerlist.cellstyle("background-color", clickRow, clickCol, clickRow, clickCol);
  413. grd_workerlist.cellstyle("background-color", clickRow, clickCol, clickRow, clickCol) = curColor;
  414. }
  415. /**
  416. * @group :
  417. * @ver : 2009.06.11
  418. * @by : dhkim
  419. * @---------------------------------------------------
  420. * @type : function
  421. * @access : public
  422. * @desc : 당직대상자 마우스 오른쪽메뉴 mouse down
  423. * @param :
  424. * @return :
  425. * @---------------------------------------------------
  426. */
  427. function fMouseDownGridRow(){
  428. var rows = grd_workerlist.rows;
  429. var row = grd_workerlist.mouseRow-1;
  430. var col = grd_workerlist.mouseCol;
  431. if(row + 1 <= rows && rows > 2 && row > 0){
  432. if(event.button == 3){
  433. window.setPopupMenu(true, "/root/init/menu/item", "name", "func", false);
  434. }
  435. }else{
  436. window.setPopupMenu(false);
  437. }
  438. }
  439. //20090611 dhkim
  440. //클릭한 그리드의 선택된 셀의 텍스트 크기를 설정
  441. function fSetSelectedFontStyle(grdNm){
  442. //선택된 그리드의 셀의 텍스트 크기,굵기를 변경
  443. grdNm.cellStyle("font-size", grdNm.row, grdNm.col, grdNm.row, grdNm.col) = '12px';
  444. grdNm.cellStyle("font-weight", grdNm.row, grdNm.col, grdNm.row, grdNm.col) = 'bold';
  445. //나머지 셀의 텍스트 크기, 굵기를 초기화
  446. for(var i = 0; i < grdNm.rows; i++){
  447. if(i != grdNm.row){
  448. grdNm.rebuildStyle(i, 0);
  449. }
  450. }
  451. }
  452. //20090629 dhkim
  453. //그리드가 변경상태인지 조회한다.
  454. function isScheduleRefresh(isClose){
  455. var drStr;
  456. for(var i = 1; i < grd_workerlist.rows; i++){
  457. if(instance1.selectSingleNode("/root/orgscheinfo/workinfo/workerinfolist[" + i + "]") != null){
  458. if(instance1.selectSingleNode("/root/orgscheinfo/workinfo/workerinfolist[" + i + "]").xml
  459. != instance1.selectSingleNode("/root/main/workerinfo/workerinfolist[" + i + "]").xml){
  460. isEdited = 'Y';
  461. drStr += model.getValue('/root/main/workerinfo/workerinfolist[' + i + ']/workdd') + '일자 변경';
  462. break;
  463. }
  464. }
  465. }
  466. if(isEdited == 'Y'){
  467. //20090703 dhkim 창을 닫을때와 새로 조회할때의 메세지를 다르게 구성 Q003(계속진행하시겠습니까?)
  468. if(isClose){
  469. var saveYn = messageBox('수정하신 스케줄을 저장하지 않고 창을 닫으시겠습니까?', 'Q');//Q: 6:예, 7:아니오.
  470. }else{
  471. var saveYn = messageBox('수정하신 스케줄을 저장하지 않고 새로운 내역을', 'Q005');//Q005:조회하시겠습니까? 6:예, 7:아니오.
  472. }
  473. if(saveYn == 6){
  474. return 'Y';
  475. }else{
  476. return 'N';
  477. }
  478. }
  479. }