SPAER01100.xjs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. - ????????????????????????????????????????????????????????????????????????????????????????
  5. ???????? ???? ???? (SPAER01100_??????????????.xrw - JScript )
  6. - ????????????????????????????????????????????????????????????????????????????????????????
  7. */
  8. /**
  9. * @desc : ?????????? ???? ??????
  10. * @
  11. * @param :
  12. * @return :
  13. * @author : ??????
  14. * @---------------------------------------------------
  15. */
  16. // function fInitOrderOfCol(){
  17. // var grdid = model.getValue("/root/main/cond/grdid");
  18. // fGetOrderInfoOfCol(grdid); //???? default?? ?????? grid?? column?? size?? ??????.
  19. //
  20. // var refdata = model.getValue("/root/listval/refdata");
  21. // var sizedata = model.getValue("/root/listval/sizedata");
  22. // fSetOrderInfoOfCol(grdid +"_resize", refdata, sizedata); //default?? ?????? grid?? column?? size?? ???? ????????.
  23. // }
  24. /**
  25. * @---------------------------------------------------
  26. * @desc : ?????? ???????? ???? ?????? ??????
  27. * @param :
  28. * @return :
  29. * @author : ??????
  30. * @---------------------------------------------------
  31. */
  32. var gridProperty = ["displaytype", "edittype", "tooltiptext", "tooltiptype", "mask", "suppress", "wordwrap", "expr", "text", "combocodecol", "combodatacol", "combodataset",
  33. "combodisplay", "calendardisplay", "calendardisplaynulltype", "editdisplay", "expandshow", "class", "align", "background", "background2", "backgroundimage",
  34. "color", "color2", "cursor", "font", "line", "padding", "selectbackground", "selectcolor", "selectfont"];
  35. /****************************************************************************************
  36. * Argument : N/A
  37. * Description : 화면초기화
  38. ****************************************************************************************/
  39. function fInitialize_SPAER01100(){
  40. ///////////// 2. SPAER01100 화면 오픈 후 실행 /////////////
  41. // fClkBtnSetCol 함수에서 SMAER13000 에 밖아둔것들 사용 지금 SPAER13000 에서 실행중인거임
  42. var opn_scrnid = opener.frmf_getScreenID(); // SMAER13000
  43. var scrnid = frmf_getScreenID(); // SPAER13000
  44. var grdid = opener.frmf_getParameter(opn_scrnid+"_param_grdid"); // switch1.case1.grd_mainordlist5
  45. var caseid = opener.frmf_getParameter(opn_scrnid+"_param_caseid"); // 쓸모없음 => 쓸모없는걸 쓸모있게 tabindex로
  46. var compscd = opener.frmf_getParameter(opn_scrnid+"_param_compscd"); // 01
  47. // var btnid = "btn_case1";
  48. // var grdObj = this.components[btnid]; // 사용을 안하네?
  49. // SPAER13000 의 ds_main_cond
  50. ds_main_cond.setColumn(0,"scrnid" , scrnid);
  51. ds_main_cond.setColumn(0,"grdid" , grdid);
  52. ds_main_cond.setColumn(0,"compscd" , compscd);
  53. grp_body.group2.switch1.tabindex = caseid; // 탭선택 이벤트 실행 fClkBtnOfTopTab 함수 실행
  54. frmf_inputEnterKey("grp_body.group2.switch1", "onchanged", new TabIndexChangeEventInfo);
  55. frmf_createPopupMenu("pmn_menu1","pmn_menu_onmenuclick"
  56. ,[{id: "fDelColOfGrd" , level: "0", title: "삭제"}]
  57. );
  58. }
  59. // ds에 생성된 id별 함수 실행
  60. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  61. {
  62. eval(e.id + "()");
  63. }
  64. /****************************************************************************************
  65. * Argument : grdid - 호출화면 대상 그리드 ID
  66. * : caseid - 호출화면 대상 Tab ID
  67. * : compscd - 1 : 검사현황 / 2 : 타검사현황
  68. * Description : 그리드 사용자화면설정 호출
  69. ****************************************************************************************/
  70. function fClkBtnSetCol(grdid, caseid, compscd){
  71. ///////////// 1. SMAER01100 화면에서 호출 /////////////
  72. var scrnID = "SPAER01100"; // 사용자설정화면
  73. var p_scrnid = frmf_getScreenID(); // 함수 호출한 화면 SMAER01100 에서 계속 실행중
  74. var grdID = grdid; // 그리드 아이디 인데 위 두화면 일단 같음.
  75. var caseID = caseid; // 쓸모없는걸 쓸모있게 tabindex로
  76. var compsCD = compscd;
  77. frmf_setParameter(p_scrnid+"_param_scrnid" , scrnID); //
  78. frmf_setParameter(p_scrnid+"_param_grdid" , grdID); // switch1.case1.grd_mainordlist5
  79. frmf_setParameter(p_scrnid+"_param_caseid" , caseID); // case1 쓸모없음 => 쓸모없는걸 쓸모있게 tabindex로
  80. frmf_setParameter(p_scrnid+"_param_compscd", compsCD); // SMAER01100 에 밖아둔것들
  81. frmf_modal("SPAER01100", "SPAER01100", null, null, null, null, null, null, null, null, null, null, "M"); // 오픈하면서 fInitialize_SPAER13000 실행
  82. ///////////////// 사용자 설정 팝업화면에서 설정하는 동안 일단 멈춤
  83. ///////////// 7 번 까지 돌고 팝업 닫고 돌아옴 /////////////
  84. // 여기는 다시 SMAER01100 화면
  85. var useyn = frmf_getParameter("SPAER01100_rtn_useyn");
  86. if(useyn == "Y"){
  87. ds_chngcol.setColumn(0,"chngcolflag", "Y");
  88. var grdID = frmf_getParameter(p_scrnid+"_param_grdid");
  89. var scrnID = frmf_getParameter(p_scrnid+"_param_scrnid" );
  90. var compsCD = frmf_getParameter(p_scrnid+"_param_compscd");
  91. fOrderInfoOfCol(grdID, scrnID, compsCD);
  92. }
  93. }
  94. /****************************************************************************************
  95. * Argument : grdid - 호출화면 대상 그리드 ID
  96. * : caseid - 호출화면 대상 Tab ID
  97. * : compscd - 1 : 검사현황 / 2 : 타검사현황
  98. * Description : 탭버튼 선택 이벤트
  99. ****************************************************************************************/
  100. function fClkBtnOfTopTab(caseid, grdid, compscd) {
  101. ///////////// 3. 탭이벤트에서 실행 /////////////
  102. // 지금 SPAER01100 에서 실행중인거임
  103. var opn_scrnid = opener.frmf_getScreenID(); // SMAER13000
  104. var scrnid = frmf_getScreenID(); // SPAER13000
  105. // SPAER01100 에 ds_main_cond 아까 넣었었는데 쓰지도 않고 새로 넣는다??
  106. ds_main_cond.setColumn(0,"grdid" , grdid); // switch1.case1.grd_mainordlist5
  107. ds_main_cond.setColumn(0,"scrnid" , scrnid); // SPAER13000
  108. ds_main_cond.setColumn(0,"caseid" , "case"+caseid); // casecase1 ????
  109. ds_main_cond.setColumn(0,"compscd", compscd); // 01
  110. fOrderInfoOfCol(grdid,opn_scrnid,compscd);
  111. //하단 Grid 정보 설정 : 양혜림 ??
  112. fOrderInfoOfCol(grdid+"_resize",opn_scrnid,compscd);
  113. }
  114. /****************************************************************************************
  115. * Argument : grdID - 호출화면 대상 그리드 ID
  116. * : scrnID - 환경설정화면 ID
  117. * : compsCD - 1 : 검사현황 / 2 : 타검사현황
  118. * Description : 그리드 사용자화면설정 호출
  119. ****************************************************************************************/
  120. function fOrderInfoOfCol(grdID,scrnID,compsCD){
  121. ///////////// 4. 탭이벤트함수에서 호출 /////////////
  122. // 지금 SPAER01100 에서 실행중인거임
  123. ///////////// 8. 컬럼변경 버튼에서 팝업화면 닫고 호출 /////////////
  124. // 한바꾸 돌고 이제는 SMAER01100 에서 실행중인거임
  125. var grdid = grdID; // switch1.case1.
  126. var scrnid = scrnID; // 4. SPAER01100 / 8. SMAER01100
  127. var compscd = compsCD; // 01
  128. ds_init_userscrnenvinfo_gridseq.clearData();
  129. dsf_createDsRow("ds_send_reqdata", [
  130. {col:"scrnid", type:"STRING", size:256, val:scrnid}
  131. , {col:"compscd", type:"STRING", size:256, val:compsCD}
  132. ]);
  133. var oParam = {};
  134. oParam.id = "TRAER01101"; // 그리드정보조회
  135. oParam.service = "astcommonapp.SetUserScrnCol";
  136. oParam.method = "reqGetUserScrnEnvEstb";
  137. oParam.inds = "req=ds_send_reqdata";
  138. oParam.outds = "ds_init_userscrnenvinfo_gridseq=gridseq";
  139. oParam.async = false;
  140. oParam.callback = "cf_TRAER01101";
  141. tranf_submit(oParam);
  142. if(arErrorCode.pop("TRAER01101") > -1 && ds_init_userscrnenvinfo_gridseq.rowcount > 0){
  143. var refdata = ds_init_userscrnenvinfo_gridseq.getColumn(0,"compsrefcnts");
  144. var sizedata = ds_init_userscrnenvinfo_gridseq.getColumn(0,"compssizecnts");
  145. fSetOrderInfoOfCol(grdid, refdata, sizedata);
  146. // var xmlnode = model.instance1.selectSingleNode("/root/init/userscrnenvinfo/gridseq");
  147. // if(xmlnode != null){
  148. // var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  149. // var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  150. // fSetOrderInfoOfCol(grdid, refdata, sizedata);
  151. // }
  152. }
  153. }
  154. function cf_TRAER01101(sSvcId, nErrorCode, sErrorMsg) {
  155. arErrorCode.push(sSvcId, nErrorCode);
  156. }
  157. /**
  158. * @---------------------------------------------------
  159. * @desc : ?????? ???????? ???????? ???????? ????
  160. * @param :
  161. * @return :
  162. * @author : ??????
  163. * @---------------------------------------------------
  164. */
  165. // function lf_saveOrderInfoCol(grdid, caseid, compscd, opn_scrnid, refdata, sizedata)
  166. // {
  167. // dsf_createDsRow("ds_cond_savedata",
  168. // [{col:"compscd", val:compscd}
  169. // ,{col:"compscnts", val:""}
  170. // ,{col:"compsrefcnts", val:refdata}
  171. // ,{col:"compssizecnts", val:sizedata}
  172. // ,{col:"scrnid", val:opn_scrnid}]);
  173. //
  174. // var objParam = new Object();
  175. // objParam.id = "TXAER01101";
  176. // objParam.service = "astcommonapp.SetUserScrnCol";
  177. // objParam.method = "reqInsUserScrnEnvEstb";
  178. // objParam.inds = "req=ds_cond_savedata";
  179. // // objParam.outds ="ds_data_req=req";
  180. // objParam.async = false;
  181. //
  182. // tranf_submit(objParam);
  183. // }
  184. /**
  185. * @---------------------------------------------------
  186. * @desc : 접수관리(기능검사) 그리드
  187. * @param : grdID,scrnID,compsCD
  188. * @return :
  189. * @author :
  190. * @---------------------------------------------------
  191. */
  192. // function lf_orderInfoOfCol(grdID,scrnID,compsCD){
  193. //
  194. // grdid = grdID;
  195. // var scrnid = scrnID;
  196. // var compscd = compsCD;
  197. // ds_send_req.clearData();
  198. // ds_send_req.addRow();
  199. // ds_send_req.setColumn(0, "scrnid", scrnid);
  200. // ds_send_req.setColumn(0, "compscd", compscd);
  201. //
  202. // var objParam = new Object();
  203. // objParam.id = "TRAER01101";
  204. // objParam.service = "astcommonapp.SetUserScrnCol";
  205. // objParam.method = "reqGetUserScrnEnvEstb";
  206. // objParam.inds = "req=ds_send_req";
  207. // objParam.outds ="ds_init_gridseq=gridseq";
  208. // objParam.callback = "cbf_TRAER01101";
  209. //
  210. // tranf_submit(objParam);
  211. //
  212. // }
  213. // function cbf_TRAER01101(strSvcID, nErrorCode, strErrorMsg){
  214. // trace(strSvcID + "/" + nErrorCode + "/" + strErrorMsg);
  215. // //에러 처리
  216. // if(nErrorCode == 0){
  217. // var refdata = ds_init_gridseq.getColumn(0, "compsrefcnts");
  218. // var sizedata = ds_init_gridseq.getColumn(0, "compssizecnts");
  219. //
  220. // if(utlf_isNull(refdata) == false || utlf_isNull(sizedata) == false)
  221. // {
  222. // refdata = ds_init_gridseq.getColumn(0, "compsrefcnts");
  223. // sizedata = ds_init_gridseq.getColumn(0, "compssizecnts");
  224. // lf_setOrderInfoOfCol(grdid, refdata, sizedata);
  225. // }
  226. //
  227. // }
  228. // }
  229. /*
  230. 사용자별로 그리드 헤더 정보가 없을 경우 기본값으로 insert
  231. */
  232. // function lf_setgridheader(grdid, scrnid, compsCD){
  233. //
  234. // var grid04ref = "no^payflagcd^check^pid^hngnm^sna^prcpcd^prcpnm^prcpdelivefactflag^excuexectodt^implflag^opdrid^orddepthngnm^orddrnm^choiordflag^specdrid^specdrnm^prcpdt^execprcpstatcd^roomcd^srchrsrvdt^rsrvrnm^execrnm1^execrnm2^rcptyn^hweight^ocrstatnm^execprcpuniqno^prcpexecdeptcd^excuroomcd^rgstdeptcd^rgstrid^inflag^rcptacptyn^execbaseflag^lrgcd^mdlcd^excupartcd^modality^execrem^prcpdelivefact^carecnfmdd^excuroomnm^rgstdepthngnm^prcpkindcd^rcptno^acptseqno^prcpgenrflag^orddd^rgstrid^orddeptcd^rcptdd^orddrid^prcpno^eqmtifyn^basesuppdeptcd^rsrvdt^inclprcpcd^pacsnocretyn^examroomnm^tmpldata^prcpdd^rsrvrid^cnclresncdnm^age^rrgstno1^rrgstno2^clincstdycd^execrid1^cretno^aftrcptinfo^ordrsrvdt^suppdeptdelivefact^clinccmtcnts^^^rsrvflag^prcphistcd^undefined^undefined^^^^^^";
  235. // var grid04size = "40^50^24^62^59^40^100^205^0^100^42^70^85^58^30^0^70^103^70^42^105^59^62^62^54^70^80^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^-1^-1^-1^-1^-1^-1";
  236. // var grid06ref = "no^payflagcd^check^pid^hngnm^sna^prcpcd^prcpnm^prcpdelivefactflag^srchrsrvdt^prcphopedd^prcphopetm^implflag^opdrid^call^orddepthngnm^orddrnm^choiordflag^specdrid^specdrnm^prcpdt^execprcpstatcd^roomcd^rsrvrnm^rcptdd^acptid^execdt^execrid1^execrid2^rcptyn^hometel^mpphontel^hweight^ocrstatnm^basecd^execprcpuniqno^prcpexecdeptcd^excuroomcd^rgstdeptcd^rgstrid^inflag^rcptacptyn^execbaseflag^lrgcd^mdlcd^excupartcd^modality^acptrem^execrem^prcpdelivefact^carecnfmdd^excuroomnm^rgstdepthngnm^prcpkindcd^rcptno^acptseqno^execrid3^execrid4^prcpgenrflag^orddd^orddeptcd^orddrid^prcpno^eqmtifyn^basesuppdeptcd^tmpldata^wardcd^rsrvdt^prcphistno^inclprcpcd^actorddd^cretno^pacsnocretyn^examroomnm^prcpdd^cnclresncdnm^age^rrgstno1^rrgstno2^clincstdycd^aftrcptinfo^prcpvol^prcpvolunitnm^prcpqtyunitnm^prcptims^drugmthdspccd^mthdcnts4^prcpclscdnm^ordrsrvdt^suppdeptdelivefact^clinccmtcnts^^^^^^^^";
  237. // var grid06size = "40^50^24^72^70^45^70^208^0^100^80^60^42^70^35^73^69^30^75^70^104^70^61^78^121^73^124^63^63^69^100^100^100^80^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^0^-1^-1^-1^-1^-1^-1^-1^-1";
  238. //
  239. // ds_req_header.setColumn(0, "scrnid", scrnid);
  240. // ds_req_header.setColumn(0, "compscd", compsCD);
  241. // if(compsCD == "04"){
  242. // ds_req_header.setColumn(0, "compsrefcnts", grid04ref);
  243. // ds_req_header.setColumn(0, "compssizecnts", grid04size);
  244. // }else{
  245. // ds_req_header.setColumn(0, "compsrefcnts", grid06ref);
  246. // ds_req_header.setColumn(0, "compssizecnts", grid06size);
  247. // }
  248. //
  249. // var objParam = new Object();
  250. // objParam.id = "T_GRIDSET";
  251. // objParam.service = "examcureacptexecapp.ExamCureAcpt";
  252. // objParam.method = "reqInsGridHeader";
  253. // objParam.inds = "req=ds_req_header";
  254. // objParam.callback = "cbf_T_GRIDSET";
  255. // tranf_submit(objParam);
  256. // }
  257. //
  258. // function cbf_T_GRIDSET(strSvcID, nErrorCode, strErrorMsg){
  259. // if(nErrorCode == 0){
  260. // var scrnid = frmf_getScreenID();
  261. // lf_orderInfoOfCol( grp_body.group2.switch1.case4.grd_ordlist4, scrnid,"04"); //확인 실시
  262. // lf_orderInfoOfCol( grp_body.group2.switch1.case6.grd_ordlist6, scrnid,"06"); //확인 미실시
  263. // }else{
  264. //
  265. // }
  266. // }
  267. /**
  268. * @---------------------------------------------------
  269. * @desc : ?????? ???? ???? ???? ????
  270. * @param : grdID
  271. * @return :
  272. * @author : ??????
  273. * @---------------------------------------------------
  274. */
  275. // function fGetOrderInfoOfCol(grdID){
  276. // var grd_resize = grdID+"_resize";
  277. // var grdObj = document.controls.item(grd_resize);
  278. //
  279. // var refdata = ""; // ref
  280. // var sizedata = ""; // size
  281. // var totcol = grdObj.cols;
  282. //
  283. // for(var i = 0; i < totcol; i++){
  284. // var refval = grdObj.colAttribute(i, "ref");
  285. // refdata += refval + "^";
  286. //
  287. // var sizeval = grdObj.colWidth(i);
  288. // sizedata += sizeval + "^";
  289. // }
  290. // refdata = refdata.substring(0 , refdata.length-1);
  291. // sizedata = sizedata.substring(0, sizedata.length-1);
  292. //
  293. // model.removeNodeset("/root/listval");
  294. // model.makeValue("/root/listval/refdata", refdata);
  295. // model.makeValue("/root/listval/sizedata", sizedata);
  296. // }
  297. /****************************************************************************************
  298. * Argument : grdID
  299. * Description : 컬럼 순서 정보를 얻는다.
  300. ****************************************************************************************/
  301. function fGetOrderInfoOfCol(grdID){
  302. ///////////// 7. 그리드 설정 저장 중 /////////////
  303. // 아직 SPAER01100 에서 실행중인거임
  304. var grd_resize = grdID+"_resize";
  305. var grdObj = eval(grd_resize);
  306. var refdata = ""; // ref
  307. var sizedata = ""; // size
  308. var refval = "";
  309. var sizeval = "";
  310. var oDataSet = eval(grdObj.binddataset);
  311. var totcol = grdObj.getCellCount("Head");
  312. for(var i = 0; i < totcol; i++){
  313. refval = ((i == 0) && (grdObj.getCellProperty("body", i, "celltype") == "head")) ? "" : lf_getBindCellName(grdObj, i); // 순번 헤더는 ""으로 처리
  314. refdata += refval + "^";
  315. sizeval = grdObj.getRealColSize(i);
  316. sizedata += sizeval + "^";
  317. // if(refval != "" && oDataSet.getColumn(0, refval) == "☜") {
  318. // sFrozenCol = refval;
  319. // }
  320. }
  321. refdata = refdata.substring(0 , refdata.length-1);
  322. sizedata = sizedata.substring(0, sizedata.length-1);
  323. ds_listval.clearData();
  324. ds_listval.addRow();
  325. ds_listval.setColumn(0, "refdata", refdata);
  326. ds_listval.setColumn(0, "sizedata", sizedata);
  327. // ds_listval.setColumn(0, "frozencol", sFrozenCol);
  328. }
  329. /****************************************************************************************
  330. * Argument : grdid - 그리드명
  331. * : refdata - 그리드 컬럼순서
  332. * : sizedata - 그리드 컬럼사이즈
  333. * Description : 그리드 사용자화면설정 호출
  334. ****************************************************************************************/
  335. function fSetOrderInfoOfCol(grdid, refdata, sizedata){
  336. ///////////// 5. 사용자화면설정 onload -> 탭이벤트함수 -> 그리드정보조회 에서 호출 /////////////
  337. // 지금 SPAER01100 에서 실행중인거임
  338. ///////////// 9. 컬럼변경 버튼에서 팝업화면 닫고 호출 /////////////
  339. // 한바꾸 돌고 이제는 SMAER01100 에서 실행중인거임
  340. var grdObj = eval(grdid);
  341. var refArray = refdata.split("^");
  342. var sizeArray = sizedata.split("^");
  343. grdObj.splitContentsCell("head", 0, 0, 0, grdObj.getCellCount("Head"), true);
  344. grdObj.splitContentsCell("body", 0, 0, 0, grdObj.getCellCount("Body"), true);
  345. var nFixedCol = -1;
  346. var nLeftCol = -1;
  347. for( var i=0 ; i<grdObj.getCellCount("Body") ; i++ ){
  348. if( grdObj.getCellProperty("Body", i, "celltype") == "head" ){
  349. nFixedCol++;
  350. }
  351. if( grdObj.getFormatColProperty(i, "band") == "left" ){
  352. nLeftCol++;
  353. }
  354. }
  355. for( var i=nLeftCol ; i>=0 ; i-- ){
  356. grdObj.setFormatColProperty(i, "band", "body");
  357. }
  358. grdObj.enableredraw = false;
  359. var nMaxColCnt = -1;
  360. if( refArray.length > grdObj.getCellCount("Body") ){
  361. nMaxColCnt = grdObj.getCellCount("Body");
  362. }else{
  363. nMaxColCnt = refArray.length;
  364. }
  365. for( var i=(nFixedCol+1) ; i<nMaxColCnt ; i++ ){
  366. var colcnt = grdObj.getBindCellIndex("body", refArray[i]);
  367. var nCol = i;
  368. if( colcnt < 0 ){
  369. colcnt = 0;
  370. }
  371. // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  372. if( colcnt != i && colcnt > nFixedCol && i > nFixedCol && colcnt != -1 ){
  373. var headText = utlf_transNullToEmpty(grdObj.getCellProperty("Head", colcnt, "text"));
  374. var bodyText = new Array();
  375. for( var j=0 ; j<gridProperty.length ; j++ ){
  376. bodyText[j] = grdObj.getCellProperty("Body", colcnt, gridProperty[j]);
  377. }
  378. grdObj.deleteContentsCol(colcnt);
  379. nCol = grdObj.insertContentsCol(i);
  380. grdObj.setCellProperty("Head", nCol, "text", headText);
  381. for( var j=0 ; j<gridProperty.length ; j++ ){
  382. if( !utlf_isNull(bodyText[j]) ){
  383. grdObj.setCellProperty("Body", nCol, gridProperty[j], bodyText[j]);
  384. }
  385. }
  386. }
  387. grdObj.setFormatColProperty(nCol, "size", sizeArray[i]);
  388. }
  389. grdObj.enableredraw = true;
  390. for( var i=0 ; i<=nLeftCol ; i++ ){
  391. grdObj.setFormatColProperty(i, "band", "left");
  392. }
  393. for( var i=(grdObj.getCellCount("Head")-2) ; i>=(nFixedCol+1) ; i-- ){
  394. if( !utlf_isNull(grdObj.getCellProperty("Head", i, "text")) &&
  395. grdObj.getCellProperty("Head", i, "text") == grdObj.getCellProperty("Head", i+1, "text") ){
  396. grdObj.mergeContentsCell("head", 0, i, 0, i+1, i, false);
  397. }
  398. }
  399. for( var i=(grdObj.getCellCount("Body")-2) ; i>=(nFixedCol+1) ; i-- ){
  400. if( grdObj.getCellProperty("Body", i, "text") == grdObj.getCellProperty("Body", i+1, "text") ){
  401. grdObj.mergeContentsCell("body", 0, i, 0, i+1, i, false);
  402. }
  403. }
  404. }
  405. /****************************************************************************************
  406. * Argument : N/A
  407. * Description : 그리드 설정저장
  408. ****************************************************************************************/
  409. function fSaveOrderInfoCol(){
  410. ///////////// 6. 그리드 설정 후 저장 버튼에서 실행 /////////////
  411. // 아직 SPAER01100 에서 실행중인거임
  412. var grdid = ds_main_cond.getColumn(0,"grdid"); //
  413. var scrnid = ds_main_cond.getColumn(0,"scrnid"); // SPAER01100
  414. var compscd = ds_main_cond.getColumn(0,"compscd"); // 01
  415. var opn_scrnid = opener.frmf_getScreenID(); // SMAER01100
  416. var opn_compscd = opener.frmf_getParameter(opn_scrnid+"_param_compscd"); // 01
  417. fGetOrderInfoOfCol(grdid);
  418. var refdata = ds_listval.getColumn(0,"refdata");
  419. var sizedata = ds_listval.getColumn(0,"sizedata");
  420. dsf_createDsRow("ds_send_savedata", [
  421. {col:"compscnts", type:"STRING", size:256, val:""}
  422. , {col:"compsrefcnts", type:"STRING", size:256, val:refdata}
  423. , {col:"compssizecnts", type:"STRING", size:256, val:sizedata}
  424. , {col:"scrnid", type:"STRING", size:256, val:opn_scrnid}
  425. , {col:"compscd", type:"STRING", size:256, val:compscd}
  426. ]);
  427. var oParam = {};
  428. oParam.id = "TXAER01101";
  429. oParam.service = "astcommonapp.SetUserScrnCol";
  430. oParam.method = "reqInsUserScrnEnvEstb";
  431. oParam.inds = "req=ds_send_savedata";
  432. oParam.outds = "";
  433. oParam.async = false;
  434. //oParam.callback = "cf_TXAER01101";
  435. tranf_submit(oParam);
  436. // SMAER01100에 전달
  437. opener.frmf_setParameter(opn_scrnid+"_param_scrnid" , opn_scrnid);
  438. opener.frmf_setParameter(opn_scrnid+"_param_grdid" , grdid);
  439. opener.frmf_setParameter(opn_scrnid+"_param_compscd", compscd);
  440. }
  441. /**
  442. * @desc : ???????? column ????
  443. * @
  444. * @param :
  445. * @return :
  446. * @author : ??????
  447. * @---------------------------------------------------
  448. */
  449. // function fDelColOfGrd(){
  450. // var grdid = ds_main_cond.getColumn(0,"grdid");
  451. // var grdObj = eval(grdid+"_resize");
  452. // var selectedCols = grdf_getSelectedCols(grdObj);
  453. //
  454. // for(var i = 0; i < selectedCols.length; i++){
  455. // var curcol = selectedCols[i];
  456. // grdObj.setFormatColProperty(curcol, "size", 0);
  457. // }
  458. // }
  459. /**
  460. * @---------------------------------------------------
  461. * @desc : 접수관리(기능검사) 조회 그리드 동적생성
  462. * @param : grdid, refdata, sizedata
  463. * @return :
  464. * @author :
  465. * @---------------------------------------------------
  466. */
  467. // function lf_setOrderInfoOfCol(grdID, refdata, sizedata){
  468. // var grdObj = grdID;
  469. // var refArray = refdata.split("^");
  470. // var sizeArray = sizedata.split("^");
  471. //
  472. // grdObj.splitContentsCell("head", 0, 0, 0, grdObj.getCellCount("Head"), true);
  473. // grdObj.splitContentsCell("body", 0, 0, 0, grdObj.getCellCount("Body"), true);
  474. //
  475. // var nFixedCol = -1;
  476. // var nLeftCol = -1;
  477. //
  478. // for( var i=0 ; i<grdObj.getCellCount("Body") ; i++ ){
  479. // if( grdObj.getCellProperty("Body", i, "celltype") == "head" ){
  480. // nFixedCol++;
  481. // }
  482. //
  483. // if( grdObj.getFormatColProperty(i, "band") == "left" ){
  484. // nLeftCol++;
  485. // }
  486. // }
  487. //
  488. // for( var i=nLeftCol ; i>=0 ; i-- ){
  489. // grdObj.setFormatColProperty(i, "band", "body");
  490. // }
  491. //
  492. // grdObj.enableredraw = false;
  493. //
  494. // var nMaxColCnt = -1;
  495. //
  496. // if( refArray.length > grdObj.getCellCount("Body") ){
  497. // nMaxColCnt = grdObj.getCellCount("Body");
  498. // }else{
  499. // nMaxColCnt = refArray.length;
  500. // }
  501. //
  502. // for( var i=(nFixedCol+1) ; i<nMaxColCnt ; i++ ){
  503. // var colcnt = grdObj.getBindCellIndex("body", refArray[i]);
  504. // var nCol = i;
  505. //
  506. // if( colcnt < 0 ){
  507. // colcnt = 0;
  508. // }
  509. //
  510. // // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  511. // if( colcnt != i && colcnt > nFixedCol && i > nFixedCol && colcnt != -1 ){
  512. // var headText = utlf_transNullToEmpty(grdObj.getCellProperty("Head", colcnt, "text"));
  513. // var bodyText = new Array();
  514. //
  515. // for( var j=0 ; j<gridProperty.length ; j++ ){
  516. // bodyText[j] = grdObj.getCellProperty("Body", colcnt, gridProperty[j]);
  517. // }
  518. //
  519. // grdObj.deleteContentsCol(colcnt);
  520. //
  521. // nCol = grdObj.insertContentsCol(i);
  522. //
  523. // grdObj.setCellProperty("Head", nCol, "text", headText);
  524. //
  525. // for( var j=0 ; j<gridProperty.length ; j++ ){
  526. // if( !utlf_isNull(bodyText[j]) ){
  527. // grdObj.setCellProperty("Body", nCol, gridProperty[j], bodyText[j]);
  528. // }
  529. // }
  530. // }
  531. //
  532. // grdObj.setFormatColProperty(nCol, "size", sizeArray[i]);
  533. // }
  534. //
  535. // grdObj.enableredraw = true;
  536. //
  537. // for( var i=0 ; i<=nLeftCol ; i++ ){
  538. // grdObj.setFormatColProperty(i, "band", "left");
  539. // }
  540. //
  541. // for( var i=(grdObj.getCellCount("Head")-2) ; i>=(nFixedCol+1) ; i-- ){
  542. // if( !utlf_isNull(grdObj.getCellProperty("Head", i, "text")) &&
  543. // grdObj.getCellProperty("Head", i, "text") == grdObj.getCellProperty("Head", i+1, "text") ){
  544. //
  545. // grdObj.mergeContentsCell("head", 0, i, 0, i+1, i, false);
  546. // }
  547. // }
  548. // for( var i=(grdObj.getCellCount("Body")-2) ; i>=(nFixedCol+1) ; i-- ){
  549. // if( grdObj.getCellProperty("Body", i, "text") == grdObj.getCellProperty("Body", i+1, "text") ){
  550. // grdObj.mergeContentsCell("body", 0, i, 0, i+1, i, false);
  551. // }
  552. // }
  553. // }
  554. /****************************************************************************************
  555. * Argument : oTrgtGrid - 대상 그리드
  556. * : nColumnIndx - 대상 컬럼 인덱스
  557. * Description : 그리드에서 컬럼 인덱스로 바인드된 데이터셋의 컬럼명을 가져온다.
  558. ****************************************************************************************/
  559. function lf_getBindCellName(oTrgtGrid, nColumnIndx){
  560. var sRtnText = "";
  561. var sTrgtText = oTrgtGrid.getCellProperty("body", nColumnIndx, "text");
  562. if(!utlf_isNull( sTrgtText)){
  563. sRtnText = sTrgtText.replace("bind:", "");
  564. }
  565. return sRtnText;
  566. }]]></Script>