MRF04100.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[var nodelistMain = null;
  3. var nodelistTemp = null;
  4. /**
  5. * @group :
  6. * @ver : 2007.03.20
  7. * @by :
  8. * @---------------------------------------------------
  9. * @type : function
  10. * @access : public
  11. * @desc : Enable / Disable
  12. * @param :
  13. * @return :
  14. * @---------------------------------------------------
  15. */
  16. function fInitialize() {
  17. // model.removeNodeset("/root/main/selectdiaglist");
  18. // grd_diaglist.col = 2;
  19. // grd_diaglist.row = grd_diaglist.rows - 1;
  20. fAddrow();
  21. dispOnLoadComplete("", "0000000901");
  22. lf_setSrchData(this);
  23. }
  24. /**
  25. * @group :
  26. * @ver : 2007.03.20
  27. * @by : ??????
  28. * @---------------------------------------------------
  29. * @type : function
  30. * @access : public
  31. * @desc : ?????? Enable / Disable
  32. * @param :
  33. * @return :
  34. * @---------------------------------------------------
  35. */
  36. function fGrdDelRow(){
  37. var grdDs = this.objects[grd_diaglist.binddataset];
  38. var nRow = grdDs.rowposition;
  39. var nLastRow = grdDs.getRowCount() - 1;
  40. var smmcnts = grdDs.getColumn(nRow, "rectermnm");
  41. var smmcntcd = grdDs.getColumn(nRow, "rectermcd");
  42. if( nLastRow > 0 && (!utlf_isNull(smmcnts) || !utlf_isNull(smmcntcd)) ){
  43. // 행삭제
  44. // Grid DeleteRow
  45. if( grdDs.deleteRow(nRow) )
  46. {
  47. // recitem Delete rowno
  48. ds_data_recitem.filter("rowno=='"+indx+"'");
  49. var nRowCnt = ds_data_recitem.getRowCount();
  50. for(var i=(nRowCnt-1);i>=0; i--)
  51. {
  52. ds_data_recitem.deleteRow(i);
  53. }
  54. ds_data_recitem.filter("");
  55. // rowno 재정렬
  56. var nGetRow = 0;
  57. nRowCnt = grdDs.getRowCount();
  58. for(var j=0; j<nRowCnt; j++)
  59. {
  60. var nFilterRow = ds_data_recitem.getColumn(nGetRow, "rowno");
  61. ds_data_recitem.filter("rowno=='"+nFilterRow+"'");
  62. var nRownoCnt = ds_data_recitem.getRowCount();
  63. for(var n=0; n<nRownoCnt; n++)
  64. {
  65. ds_data_recitem.setColumn(n, "rowno", j);
  66. }
  67. ds_data_recitem.filter("");
  68. nGetRow += nRownoCnt;
  69. }
  70. }
  71. }
  72. }
  73. /**
  74. * @group :
  75. * @ver : 2007.03.20
  76. * @by : ??????
  77. * @---------------------------------------------------
  78. * @type : function
  79. * @access : public
  80. * @desc : ?????? Enable / Disable
  81. * @param :
  82. * @return :
  83. * @---------------------------------------------------
  84. */
  85. function fClickPopUp()
  86. {
  87. frmf_setParameter("SPMRF04200_param_nodepath", "ds_tmpcc");
  88. frmf_modal("SPMRF04200", "SPMRF04200", null, null, 1, 0, 0, null, null, null, null, null, "M");
  89. var dataYn = frmf_getParameter("MRF04200_DataYn");
  90. if(dataYn == "Y")
  91. {
  92. var grdDs = this.objects[grd_diaglist.binddataset];
  93. var nRow = grdDs.rowposition;
  94. var nLastRow = grdDs.getRowCount() - 1;
  95. var smmcnts = grdDs.getColumn(nLastRow, "rectermnm");
  96. grdDs.enableevent = false;
  97. if( utlf_isNull(smmcnts) ){
  98. // row delete
  99. if( grdDs.deleteRow(nRow) )
  100. {
  101. //sFstlevlcd = ds_data_recitem.lookupExpr("degnitemkind == 'GRD' && degnitemno == '1' && rowno == '0' && colno == '-1'", "fstlevlitemcd");
  102. ds_data_recitem.filter("rowno=='"+nRow+"'");
  103. var nRowCnt = ds_data_recitem.getRowCount();
  104. for(var i=(nRowCnt-1);i>=0; i--)
  105. {
  106. ds_data_recitem.deleteRow(i);
  107. }
  108. ds_data_recitem.filter("");
  109. // rowno 재정렬
  110. ds_data_recitem.filter("rowno > '"+nRow+"'"); // && fstlevlitemcd == '"+sFstlevlcd+"'
  111. nRowCnt = ds_data_recitem.getRowCount();
  112. for(var j=0; j < nRowCnt; j++)
  113. {
  114. var nSelfRowno = ds_data_recitem.getColumn(j, "rowno");
  115. ds_data_recitem.setColumn(j, "rowno", nSelfRowno - 1);
  116. }
  117. ds_data_recitem.filter("");
  118. }
  119. }
  120. // add Row
  121. if( isValidObject("ds_tmpcc") && ds_tmpcc.getRowCount() > 0 ){
  122. for(var k=0; k<ds_tmpcc.getRowCount(); k++){
  123. var rectermcd = ds_tmpcc.getColumn(k, "termcd");
  124. var rectermnm = ds_tmpcc.getColumn(k, "termengnm");
  125. var reccnts = ds_tmpcc.getColumn(k, "comments");
  126. var reccnts2 = ds_tmpcc.getColumn(k, "happendd");
  127. var nDupRow = grdDs.findRowExpr("rectermnm == '"+rectermnm+"' || reccnts == '"+reccnts+"'");
  128. if( nDupRow < 0 ){
  129. nRowno = grdDs.addRow();
  130. if(nRowno > -1){
  131. var degnno = 1;
  132. var gridTempNm = "ds_temp_recitem";
  133. var nAddRow, nCellPos;
  134. var nTempCnt = eval(gridTempNm).getRowCount();
  135. for(var i=0; i<nTempCnt; i++)
  136. {
  137. nAddRow = ds_data_recitem.addRow();
  138. ds_data_recitem.copyRow(nAddRow, eval(gridTempNm), i);
  139. ds_data_recitem.setColumn(nAddRow, "rowno", nRowno);
  140. }
  141. }
  142. if( !utlf_isNull(rectermcd) ){
  143. grdDs.setColumn(nRowno, "rectermflag", "004");
  144. }
  145. if (reccnts == "-"){
  146. reccnts = "";
  147. }
  148. //주호소의 경우 termcd가 없을경우가 있으므로, tremcd가 없을경우 저장시 배제됨
  149. if( utlf_isNull(rectermcd) && !utlf_isNul(reccnts) ){
  150. rectermcd = "-";
  151. }
  152. grdDs.setColumn(nRowno, "rectermcd", rectermcd);
  153. grdDs.setColumn(nRowno, "rectermnm", rectermnm);
  154. grdDs.setColumn(nRowno, "reccnts", reccnts);
  155. grdDs.setColumn(nRowno, "reccnts2", reccnts2);
  156. }
  157. }
  158. }
  159. fAddrow();
  160. grdDs.enableevent = true;
  161. /*
  162. var iRow = grd_diaglist.row;
  163. var path = "/root/main/recinfo/grid";
  164. var nodelistJuh = instance.selectNodes(path);
  165. var nodelength = nodelistJuh.length;
  166. var smmcnts = model.getValue(path + "/grid[" + nodelength + "]/recitem/rectermnm");
  167. if (smmcnts == "")
  168. {
  169. model.removeNodeset("/root/main/recinfo/grid[" + nodelength + "]");
  170. model.removeNodeset("/root/main/selectdiaglist[" + nodelength + "]");
  171. grd_diaglist.refresh();
  172. }
  173. fReMakeInst();
  174. */
  175. }
  176. }
  177. function fInitPage(colhide, heig, wid, ivwID)
  178. {
  179. this.position.height = heig;
  180. this.position.width = wid;
  181. grd_diaglist.position.height = heig - 2;
  182. grd_diaglist.position.width = wid - 4;
  183. //grd_diaglist.extendLastCol = "scroll";
  184. if(colhide)
  185. {
  186. grd_diaglist.setRealColSize(0, 0, true); //20
  187. //grd_diaglist.colhidden(0) = colhide;
  188. btn_pop.visible = false;
  189. }
  190. if (!utlf_isNull(ivwID))
  191. gSendParentCallID = ivwID;
  192. }
  193. /**
  194. * @desc : 인스턴스 구조 변경
  195. * @
  196. * @param :
  197. * @return :
  198. * @---------------------------------------------------
  199. */
  200. function fReMakeInst()
  201. {
  202. var instance = document.models(0).instances(0);
  203. var iLeng = 0;
  204. var sTmpdiagcd = "";
  205. var sTmpdiagengnm = "";
  206. nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  207. nodelistTemp = instance.selectNodes("/root/tmpcc/selectdiaglist");
  208. var iMainleng = nodelistMain.length;
  209. if(nodelistTemp.length >= 1){
  210. for(var i = 1; i <= nodelistTemp.length; i++)
  211. {
  212. //debugger;
  213. sTmpdiagcd = model.getValue("/root/tmpcc/selectdiaglist[" + i + "]/termcd");
  214. sTmpdiagengnm = model.getValue("/root/tmpcc/selectdiaglist[" + i + "]/termengnm");
  215. sComments = model.getValue("/root/tmpcc/selectdiaglist[" + i + "]/comments");
  216. sTmphappendd = model.getValue("/root/tmpcc/selectdiaglist[" + i + "]/happendd");
  217. // if(sTmphappendd == "" || sTmphappendd == null)
  218. // {
  219. // sTmphappendd = '-';
  220. // }
  221. //var iFndRow = getNodesetCnt(model, "/root/main/selectdiaglist/col[reccnts='" + sTmpdiagengnm + "']");
  222. var iFndRow = getNodesetCnt(model, "/root/main/recinfo/grid/recitem[reccnts ='" + sTmpdiagengnm + "' or rectermnm ='" + sTmpdiagengnm + "']");
  223. if(iFndRow > 0){
  224. iMainleng = iMainleng - 1;
  225. }else if(iFndRow <= 0){
  226. iLeng = i + iMainleng;
  227. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermcd", sTmpdiagcd);
  228. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/reccnts", sTmpdiagengnm);
  229. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/cccnts", sComments);
  230. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/cntsyn", "N");
  231. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/comp", "true");
  232. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/colno", "0");
  233. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/ccflag", "CC");
  234. if (sTmpdiagcd != "")
  235. {
  236. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermflag", "004");
  237. }
  238. else
  239. {
  240. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermflag", "");
  241. }
  242. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/rectermcd", "");
  243. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/reccnts", sTmphappendd);
  244. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/cntsyn", "Y");
  245. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/comp", "false");
  246. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/colno", "2");
  247. }
  248. }
  249. }
  250. //debugger;
  251. makeProgInstance(pageInfo, instance, nodelistMain);
  252. fAddrow();
  253. }
  254. /**
  255. * @desc : 줄추가
  256. * @
  257. * @param :
  258. * @return :
  259. * @---------------------------------------------------
  260. */
  261. function fAddrow()
  262. {
  263. var grdDs = this.objects[grd_diaglist.binddataset];// ds_grid_grd_cclist
  264. var nLastRow = grdDs.getRowCount();
  265. var smmcnts = grdDs.getColumn(parseInt(nLastRow) - 1 , 1);
  266. if( !utlf_isNull(smmcnts) || nLastRow == 0 ){
  267. var nRowno = grdDs.addRow();
  268. if(nRowno > -1){
  269. var degnno = 1;
  270. var gridTempNm = "ds_temp_recitem";
  271. var nAddRow, nCellPos;
  272. var nTempCnt = eval(gridTempNm).getRowCount();
  273. for(var i=0; i<nTempCnt; i++)
  274. {
  275. nAddRow = ds_data_recitem.addRow();
  276. ds_data_recitem.copyRow(nAddRow, eval(gridTempNm), i);
  277. ds_data_recitem.setColumn(nAddRow, "rowno", nRowno);
  278. }
  279. }
  280. }
  281. /*
  282. var path1 = "/root/main/recinfo/grid[degnitemno = '1']";
  283. var nodelistJuh = instance.selectNodes(path1);
  284. var nodelength = nodelistJuh.length;
  285. var path2 = "/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]";
  286. copyNodeset("/root/tmp", path2, "replace", model, model);
  287. var smmcnts = model.getValue("/root/tmp/recitem[colno='0']/rectermnm");
  288. if(smmcnts != "" || nodelength == 0)
  289. {
  290. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/rectermcd", "");
  291. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/reccnts", "-");
  292. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/cccnts", "");
  293. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/cntsyn", "N");
  294. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/comp", "true");
  295. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/colno", "0");
  296. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/ccflag", "CC");
  297. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/rectermflag", "");
  298. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/rectermcd", "");
  299. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/reccnts", "");
  300. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/cntsyn", "Y");
  301. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/comp", "false");
  302. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/colno", "2");
  303. nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  304. makeProgInstance(pageInfo, instance, nodelistMain);
  305. // grd_diaglist.row = nodelength + 1;
  306. // grd_diaglist.col = 2;
  307. // grd_diaglist.editCell();
  308. grd_diaglist.refresh();
  309. }
  310. */
  311. }
  312. /**
  313. * @desc : 편집 후 termcd가 없는 경우 '-'를 넣어줌(저장문제)
  314. * @
  315. * @param :
  316. * @return :
  317. * @---------------------------------------------------
  318. */
  319. function fEndEdit()
  320. {
  321. var grdDs = this.objects[grd_diaglist.binddataset];
  322. var nRow = grdDs.rowposition;
  323. var nLastRow = grdDs.getRowCount() - 1;
  324. var smmcnts = grdDs.getColumn(nLastRow, "rectermnm");
  325. if( !utlf_isNull(smmcnts) )
  326. grdDs.setColumn(nLastRow, "rectermcd", "-");
  327. var sCcnm = grdDs.getColumn(nRow, "rectermnm");
  328. if( utlf_isNull(sCcnm) )
  329. fGrdDelRow();
  330. }
  331. /**
  332. * @desc : 저장전 검사
  333. * @
  334. * @param :
  335. * @return :
  336. * @---------------------------------------------------
  337. */
  338. function fChkGrdPreSave()
  339. {
  340. var smmcnts = "";
  341. var comment = "";
  342. var happendd = "";
  343. var sMsg = "";
  344. var rtn = true;
  345. var grdDs = this.objects[grd_diaglist.binddataset];
  346. for (var i = 0; i < grdDs.getRowCount(); i++)
  347. {
  348. smmcnts = grdDs.getColumn(i, "rectermnm");
  349. comment = grdDs.getColumn(i, "reccnts");
  350. happendd = grdDs.getColumn(i, "reccnts2");
  351. if ((!utlf_isNull(comment) || !utlf_isNull(happendd)) && utlf_isNull(smmcnts))
  352. {
  353. var sMsg = "주호소는";
  354. }
  355. }
  356. if(!utlf_isNull(sMsg))
  357. {
  358. sysf_messageBox(sMsg, "I003");
  359. rtn = false;
  360. }
  361. return rtn;
  362. }
  363. /**
  364. * @desc : 상용구 팝업
  365. * @id :
  366. * @event : DOMActivate
  367. * @return : void
  368. * @authur : 박종훈
  369. */
  370. function fPopCommUse()
  371. {
  372. frmf_setParameter("comn_chosflag", "C") // C : 상용구
  373. frmf_setParameter("comn_formprogflag", "B") // A: Summary, B : 주호소
  374. frmf_setParameter("openmode", "select");
  375. // 새로운 상용구 관리 Param 추가
  376. frmf_setParameter("deptflag", "U");
  377. frmf_setParameter("comn_degnitemcd", "0000931");
  378. frmf_setParameter("comn_srcformcd", "0000000901");
  379. frmf_modal("SPMRF04900", "SPMRF04900", "","",1,50,50,"","","","","","M");
  380. var rtn = frmf_getParameter("comncnts"); //내용
  381. frmf_setParameter("comncnts", "");
  382. var reccnts = "";
  383. var subnode = "";
  384. var grdDs = this.objects[grd_diaglist.binddataset];
  385. var nRow = grdDs.rowposition;
  386. if( nRow > -1 ){
  387. reccnts = grdDs.getColumn(nRow, "rectermnm");
  388. }
  389. if (utlf_isNull(rtn)) return;
  390. if (utlf_isNull(reccnts))
  391. {
  392. grdDs.setColumn(nRow, "rectermnm", rtn);
  393. fEndEdit();
  394. fAddrow();
  395. }
  396. else
  397. {
  398. grdDs.setColumn(nRow, "rectermnm", reccnts + " " + rtn);
  399. }
  400. }]]></Script>