SMADT20100.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2015-08-31
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-08-31 TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. var arErrorCode = new HashArray();
  16. var gridProperty = ["displaytype", "edittype", "tooltiptext", "tooltiptype", "mask", "suppress", "wordwrap", "expr", "text", "combocodecol", "combodatacol", "combodataset",
  17. "combodisplay", "calendardisplay", "calendardisplaynulltype", "editdisplay", "expandshow", "class", "align", "background", "background2", "backgroundimage",
  18. "color", "color2", "cursor", "font", "line", "padding", "selectbackground", "selectcolor", "selectfont"];
  19. /****************************************************************************************
  20. * Argument : grdid - 그리드명
  21. * Description : 조회데이타 칼럼 정리
  22. ****************************************************************************************/
  23. function fReqOrderInfoOfCol(grdid){
  24. dsf_createDsRow("ds_send_reqdata", [{col: "scrnid" , val: ds_main_cond.getColumn(0,"scrnid")}
  25. ,{col: "compscd" , val: ds_main_cond.getColumn(0,"compscd")}
  26. ]);
  27. call_TRADT20110();
  28. if(arErrorCode.pop("TRADT20110") > -1){
  29. var refdata = ds_init_userscrnenvinfo.getColumn(0,"compsrefcnts");
  30. var sizedata = ds_init_userscrnenvinfo.getColumn(0,"compssizecnts");
  31. if(!utlf_isNull(refdata) || !utlf_isNull(sizedata)){
  32. fSetOrderInfoOfCol(grdid + "_resize", refdata, sizedata);
  33. }
  34. }
  35. }
  36. function call_TRADT20110() {
  37. var oParam = {};
  38. oParam.id = "TRADT20110";
  39. oParam.service = "pharmacyprescriptionapp.MpsCheck";
  40. oParam.method = "reqGetUserScrnEnvEstb";
  41. oParam.inds = "req=ds_send_reqdata";
  42. oParam.outds = "ds_init_userscrnenvinfo=gridseq";
  43. oParam.async = false;
  44. oParam.callback = "cf_TRADT20110";
  45. tranf_submit(oParam);
  46. }
  47. function cf_TRADT20110(sSvcId, nErrorCode, sErrorMsg) {
  48. arErrorCode.push(sSvcId, nErrorCode);
  49. }
  50. /****************************************************************************************
  51. * Argument : grdID - 그디르ID
  52. * : refdata - col순서 정보
  53. * : sizedata - col사이즈 정보
  54. * Description : 컬럼 순서 정보 설정
  55. ****************************************************************************************/
  56. function fSetOrderInfoOfCol(grdID, refdata, sizedata) {
  57. // var grdObj = eval(grdID);
  58. // var refArray = refdata.split("^");
  59. // var sizeArray = sizedata.split("^");
  60. // // var frozencolIndex = grdObj.getBindCellIndex("body", frozencol);
  61. //
  62. // grdObj.enableevent = false;
  63. // grdObj.enableredraw = false;
  64. //
  65. // try {
  66. // for(var i = 0; i < refArray.length; i++) {
  67. // var nCol = i;
  68. // var colText = refArray[i];
  69. // var col = grdObj.getBindCellIndex("body", colText);
  70. //
  71. // if(col == -1) continue;
  72. //
  73. // if(i != col) {
  74. // var headText = grdObj.getCellProperty("head", col, "text");
  75. // var bodyText = grdObj.getCellProperty("body", col, "text");
  76. // grdObj.deleteContentsCol(col);
  77. //
  78. // nCol = grdObj.insertContentsCol(i);
  79. //
  80. // grdObj.setCellProperty("head", nCol, "text", headText);
  81. // grdObj.setCellProperty("body", nCol, "text", bodyText);
  82. // }
  83. //
  84. // grdObj.setFormatColProperty(nCol, "size", sizeArray[i]);
  85. // }
  86. // } finally {
  87. // grdObj.enableevent = true;
  88. // grdObj.enableredraw = true;
  89. // }
  90. var grdObj = eval(grdID);
  91. var refArray = refdata.split("^");
  92. var sizeArray = sizedata.split("^");
  93. grdObj.splitContentsCell("head", 0, 0, 0, grdObj.getCellCount("Head"), true);
  94. grdObj.splitContentsCell("body", 0, 0, 0, grdObj.getCellCount("Body"), true);
  95. var nFixedCol = -1;
  96. var nLeftCol = -1;
  97. for( var i=0 ; i<grdObj.getCellCount("Body") ; i++ ){
  98. if( grdObj.getCellProperty("Body", i, "celltype") == "head" ){
  99. nFixedCol++;
  100. }
  101. if( grdObj.getFormatColProperty(i, "band") == "left" ){
  102. nLeftCol++;
  103. }
  104. }
  105. for( var i=nLeftCol ; i>=0 ; i-- ){
  106. grdObj.setFormatColProperty(i, "band", "body");
  107. }
  108. grdObj.enableredraw = false;
  109. var nMaxColCnt = -1;
  110. if( refArray.length > grdObj.getCellCount("Body") ){
  111. nMaxColCnt = grdObj.getCellCount("Body");
  112. }else{
  113. nMaxColCnt = refArray.length;
  114. }
  115. for( var i=(nFixedCol+1) ; i<nMaxColCnt ; i++ ){
  116. var colcnt = grdObj.getBindCellIndex("body", refArray[i]);
  117. var nCol = i;
  118. if( colcnt < 0 ){
  119. colcnt = 0;
  120. }
  121. // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  122. if( colcnt != i && colcnt > nFixedCol && i > nFixedCol && colcnt != -1 ){
  123. var headText = utlf_transNullToEmpty(grdObj.getCellProperty("Head", colcnt, "text"));
  124. var bodyText = new Array();
  125. for( var j=0 ; j<gridProperty.length ; j++ ){
  126. bodyText[j] = grdObj.getCellProperty("Body", colcnt, gridProperty[j]);
  127. }
  128. grdObj.deleteContentsCol(colcnt);
  129. nCol = grdObj.insertContentsCol(i);
  130. grdObj.setCellProperty("Head", nCol, "text", headText);
  131. for( var j=0 ; j<gridProperty.length ; j++ ){
  132. if( !utlf_isNull(bodyText[j]) ){
  133. grdObj.setCellProperty("Body", nCol, gridProperty[j], bodyText[j]);
  134. }
  135. }
  136. }
  137. grdObj.setFormatColProperty(nCol, "size", sizeArray[i]);
  138. }
  139. grdObj.enableredraw = true;
  140. for( var i=0 ; i<=nLeftCol ; i++ ){
  141. grdObj.setFormatColProperty(i, "band", "left");
  142. }
  143. for( var i=(grdObj.getCellCount("Head")-2) ; i>=(nFixedCol+1) ; i-- ){
  144. if( !utlf_isNull(grdObj.getCellProperty("Head", i, "text")) &&
  145. grdObj.getCellProperty("Head", i, "text") == grdObj.getCellProperty("Head", i+1, "text") ){
  146. grdObj.mergeContentsCell("head", 0, i, 0, i+1, i, false);
  147. }
  148. }
  149. for( var i=(grdObj.getCellCount("Body")-2) ; i>=(nFixedCol+1) ; i-- ){
  150. if( grdObj.getCellProperty("Body", i, "text") == grdObj.getCellProperty("Body", i+1, "text") ){
  151. grdObj.mergeContentsCell("body", 0, i, 0, i+1, i, false);
  152. }
  153. }
  154. }
  155. /****************************************************************************************
  156. * Argument : N/A
  157. * Description : 그리드 설정 저장
  158. ****************************************************************************************/
  159. function fSaveOrderInfoCol(){
  160. var grdid = "switch1."+ds_main_cond.getColumn(0,"caseid")+"."+ds_main_cond.getColumn(0,"grdid");
  161. var scrnid = ds_main_cond.getColumn(0,"scrnid");
  162. var compscd = ds_main_cond.getColumn(0,"compscd");
  163. fGetOrderInfoOfCol(grdid + "_resize");
  164. var refdata = ds_listval.getColumn(0,"refdata");
  165. var sizedata = ds_listval.getColumn(0,"sizedata");
  166. dsf_createDsRow("ds_send_savedata", [{col: "compscnts" , val: ""}
  167. ,{col: "compsrefcnts" , val: refdata}
  168. ,{col: "compssizecnts" , val: sizedata}
  169. ,{col: "scrnid" , val: scrnid}
  170. ,{col: "compscd" , val: compscd}
  171. ]);
  172. var oParam = {};
  173. oParam.id = "TXADT20110";
  174. oParam.service = "pharmacyprescriptionapp.MpsCheck";
  175. oParam.method = "reqInsUserScrnEnvEstb";
  176. oParam.inds = "req=ds_send_savedata";
  177. oParam.outds = "";
  178. oParam.async = false;
  179. //oParam.callback = "cf_TXADT20110";
  180. tranf_submit(oParam);
  181. }
  182. /****************************************************************************************
  183. * Argument : N/A
  184. * Description : 그리드 설정 초기화
  185. ****************************************************************************************/
  186. function fInitOrderOfCol(){
  187. var grdid = "switch1."+ds_main_cond.getColumn(0,"caseid")+"."+ds_main_cond.getColumn(0,"grdid");
  188. fGetOrderInfoOfCol(grdid); //현재 default로 설정된 grid의 column과 size를 구한다.
  189. var refdata = ds_listval.getColumn(0,"refdata");
  190. var sizedata = ds_listval.getColumn(0,"sizedata");
  191. fSetOrderInfoOfCol(grdid +"_resize", refdata, sizedata); //default로 설정된 grid의 column과 size를 다시 설정한다.
  192. }
  193. /****************************************************************************************
  194. * Argument : N/A
  195. * Description : 그리드 컬럼삭제 -- 사용안함 삭제시 그리드 사이즈조절로 숨김
  196. ****************************************************************************************/
  197. // function fDelColOfGrd(){
  198. // var grdid = "switch1."+ds_main_cond.getColumn(0,"caseid")+"."+ds_main_cond.getColumn(0,"grdid");
  199. // var grdObj = eval(grdid + "_resize");
  200. // var selectedCells = grdObj.selectedCells;
  201. //
  202. // for(var i = 0; i < selectedCells.length; i++){
  203. // var curcol = selectedCells.item(i).col;
  204. // grdObj.colWidth(curcol) = 0;
  205. // grdObj.colHidden(curcol) = true;
  206. // }
  207. // }
  208. /****************************************************************************************
  209. * Argument : grdID - 그리드 ID
  210. * Description : 디폴트 그리드 설정값 가져오기
  211. ****************************************************************************************/
  212. function fGetOrderInfoOfCol(grdID){
  213. var grdObj = eval(grdID);
  214. var refdata = ""; // ref
  215. var sizedata = ""; // size
  216. var sFrozenCol = ""; // frozenCols
  217. var refval = "";
  218. var sizeval = "";
  219. var oDataSet = eval(grdObj.binddataset);
  220. var totcol = grdObj.getCellCount("Head");
  221. for(var i = 0; i < totcol; i++){
  222. refval = ((i == 0) && (grdObj.getCellProperty("body", i, "celltype") == "head")) ? "" : lf_getBindCellName(grdObj, i); // 순번 헤더는 ""으로 처리
  223. refdata += refval + "^";
  224. sizeval = grdObj.getRealColSize(i);
  225. sizedata += sizeval + "^";
  226. // if(refval != "" && oDataSet.getColumn(0, refval) == "☜") {
  227. // sFrozenCol = refval;
  228. // }
  229. }
  230. refdata = refdata.substring(0 , refdata.length-1);
  231. sizedata = sizedata.substring(0, sizedata.length-1);
  232. ds_listval.clearData();
  233. ds_listval.addRow();
  234. ds_listval.setColumn(0, "refdata", refdata);
  235. ds_listval.setColumn(0, "sizedata", sizedata);
  236. // ds_listval.setColumn(0, "frozencol", sFrozenCol);
  237. }
  238. /****************************************************************************************
  239. * Argument : grdID - 그디르ID
  240. * : refdata - col순서 정보
  241. * : sizedata - col사이즈 정보
  242. * Description : 컬럼정보 불러오기
  243. ****************************************************************************************/
  244. function reqOrderInfoOfCol(scrnid, grdid, compscd) {
  245. dsf_createDsRow("ds_send_reqdata", [{col: "scrnid" , val: scrnid}
  246. ,{col: "compscd" , val: compscd}
  247. ]);
  248. call_TRADT20110();
  249. if(arErrorCode.pop("TRADT20110") > -1){
  250. var refdata = ds_init_userscrnenvinfo.getColumn(0,"compsrefcnts");
  251. var sizedata = ds_init_userscrnenvinfo.getColumn(0,"compssizecnts");
  252. if(!utlf_isNull(refdata) || !utlf_isNull(sizedata)) {
  253. // trace("grdid : " + grdid + " || refdata : " + refdata + " || sizedata : "+ sizedata);
  254. fSetOrderInfoOfCol(grdid, refdata, sizedata);
  255. }
  256. }
  257. }
  258. /****************************************************************************************
  259. * Argument : grdID - 그디르ID
  260. * : refdata - col순서 정보
  261. * : sizedata - col사이즈 정보
  262. * Description : 컬럼정보 초기화 - 특수조제실처방조회(SMADT20100) / 컬럼설정(SMADT20110) 에선 사용안함
  263. ****************************************************************************************/
  264. function setOrderInfoOfCol(grdID, refdata, sizedata){
  265. var grdObj = document.controls.item(grdID);
  266. var refArray = refdata.split("^");
  267. var sizeArray = sizedata.split("^");
  268. fGetOrderInfoOfCol(grdID);
  269. var gridData = ds_listval.getColumn(0,"refdata")
  270. var gridDataArray = gridData.split("^");
  271. //-------(20101229) 경북대
  272. //임시로 막음
  273. //if (gridDataArray.length == refArray.length ) {
  274. grdObj.mergeCellsFixedRows = "never"
  275. for(var i = 0; i < refArray.length; i++){
  276. var colcnt = grdObj.colref("" + refArray[i] + "");
  277. if (colcnt <0 ) colcnt = 0;
  278. // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  279. if (colcnt != i) {
  280. grdObj.colMove(i, colcnt, "before", false);
  281. }
  282. var size = sizeArray[i];
  283. var sizetemp = 0;
  284. if(size == 0){ // size of column 0 -> hidden
  285. grdObj.colHidden(i) = true;
  286. sizetemp = "1";
  287. }else{
  288. grdObj.colHidden(i) = false;
  289. sizetemp = "2";
  290. }
  291. grdObj.colWidth(i) = parseInt(size);
  292. }
  293. grdObj.mergeCellsFixedRows = "bycolrec"
  294. //} else {
  295. // messageBox("컬럼이 추가(삭제) 되었습니다\n\n컬럼설정 화면을 열어 \n\n초기화후 다시 설정하여 저장해주십시오","I");
  296. //}
  297. //-------(20101229) 경북대
  298. model.refresh();
  299. }
  300. /*************************************************************************************
  301. * Argument : oTrgtGrid - 그리드ID
  302. * : nColumnIndx - Col Index
  303. * Description : 그리드 바인딩 Cell Name
  304. *************************************************************************************/
  305. function lf_getBindCellName(oTrgtGrid, nColumnIndx){
  306. var sRtnText = "";
  307. var sTrgtText = oTrgtGrid.getCellProperty("body", nColumnIndx, "text");
  308. if(!utlf_isNull( sTrgtText)){
  309. sRtnText = sTrgtText.replace("bind:", "");
  310. }
  311. return sRtnText;
  312. }
  313. ]]></Script>