MRFCommon.xjs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[function moveItemUp(grdObj:Grid, collapsed)
  3. {
  4. var selRow = grdObj.currentrow;
  5. if(selRow <= 0)
  6. return;
  7. var degnitemno = grdObj.binddataset.getColumn(selRow,"degnitemno");
  8. var supdegnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/supdegnitemno");
  9. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  10. var nextRow = -1;
  11. var nextItemNo = model.getValue(grdObj.attribute("nodeset") + "[degnitemlevlno <= " + degnitemlevlno + " and position() > " + selRow + "]/degnitemno");
  12. if(nextItemNo == '')
  13. nextRow = grdObj.rows;
  14. else
  15. nextRow = grdObj.findRow(nextItemNo, selRow + 1, grdObj.colRef("degnitemno"));
  16. //alert("nextRow : " + nextRow);
  17. //1. 현재 선택된 row의 그룹을 찾는다.(degnitemlevlcd를 이용)
  18. var nodeList = instance1.selectNodes(grdObj.attribute("nodeset") + "[position() >= " + selRow + " and position() < " + nextRow + "]");
  19. //alert("length : " + nodeList.length);
  20. //2. 상위 아이템의 depth를 비교해서 seq를 구한다. (degnitemlevlno를 이용.. 자신과 같을때까지 찾는다.)
  21. for(var i = selRow - 1; i > 0; i --)
  22. {
  23. if(parseInt(degnitemlevlno) > parseInt(model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno")))
  24. break;
  25. for(var j = 0; j < nodeList.length; j++)
  26. {
  27. var seq = grdObj.findRow(nodeList.item(j).selectSingleNode("degnitemno").nodeValue,
  28. grdObj.fixedRows, grdObj.colRef("degnitemno"));
  29. model.setValue(grdObj.attribute("nodeset") + "[" + seq + "]/degnrowno",
  30. parseInt(nodeList.item(j).selectSingleNode("degnrowno").nodeTypedValue) - 1);
  31. }
  32. model.setValue(grdObj.attribute("nodeset") + "[" + i + "]/degnrowno",
  33. parseInt(model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnrowno")) + parseInt(nodeList.length));
  34. if(degnitemlevlno == model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  35. break;
  36. }
  37. grdObj.refresh();
  38. setCollapsed(grdObj, false);
  39. grdObj.outlinebar=0;
  40. grdObj.colsort(grdObj.colRef("degnrowno")) = "asc";
  41. //grdObj.colsort(grdObj.colRef("degnxval")) = "asc";
  42. //grdObj.sort(grdObj.fixedRows, grdObj.colRef("degnxval"), grdObj.rows - 1, grdObj.colRef("degnxval")) = "asc";
  43. grdObj.sort(grdObj.fixedRows, grdObj.colRef("degnrowno"), grdObj.rows - 1, grdObj.colRef("degnrowno")) = "asc";
  44. grdObj.gridToInstance();
  45. setTree(grdObj, grdObj.colRef("degnitemlevlno"), grdObj.colRef("degnitemcd"), collapsed);
  46. //grdObj.outlinebar = 4;
  47. var seq = grdObj.findRow(degnitemno, grdObj.fixedRows, grdObj.colRef("degnitemno"));
  48. grdObj.row = seq;
  49. }
  50. function moveItemDown(grdObj, collapsed)
  51. {
  52. var selRow = grdObj.row;
  53. if(selRow == grdObj.rows - 1)
  54. return;
  55. var degnitemno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemno");
  56. var degnitemlevlno = model.getValue(grdObj.attribute("nodeset") + "[" + selRow + "]/degnitemlevlno");
  57. for(var i = selRow + 1; i < grdObj.rows; i ++)
  58. {
  59. if(degnitemlevlno == model.getValue(grdObj.attribute("nodeset") + "[" + i + "]/degnitemlevlno"))
  60. {
  61. grdObj.row = i;
  62. moveItemUp(grdObj, collapsed);
  63. break;
  64. }
  65. }
  66. var seq = grdObj.findRow(degnitemno, grdObj.fixedRows, grdObj.colRef("degnitemno"));
  67. grdObj.row = seq;
  68. }
  69. /**
  70. * @---------------------------------------------------
  71. * @desc : 문자열 앞뒤에있는 공백 제거
  72. * @param : N/A
  73. * @return : 공백을 제거한 결과 문자열
  74. * @---------------------------------------------------
  75. */
  76. String.prototype.getTrim = function()
  77. {
  78. var startPoint = 0; // subString 하기 위한 시작 포인트
  79. var endPoint = this.length; // subString 하기 위한 끝 포인트
  80. //문자열앞에 공백문자가 들어 있는 Index 추출
  81. while( (startPoint < endPoint) && (this.charCodeAt(startPoint) == 32) )
  82. {
  83. startPoint++;
  84. }
  85. //문자열뒤에 공백문자가 들어 있는 Index 추출
  86. while( (startPoint < endPoint) && (this.charCodeAt(endPoint-1) == 32) )
  87. {
  88. endPoint--;
  89. }
  90. // 공백을 제거했으면 subString하여 결과문자열을 리턴하고 제거한 내용이 없으면 그대로 리턴
  91. return ( (startPoint > 0) || (endPoint < this.length) ) ? this.substring(startPoint, endPoint) : this;
  92. }
  93. function fUserAdmin()
  94. {
  95. // 의료정보팀, 의료정보분석Unit 에게만 오픈한다.
  96. var dutplcecd = sysf_getUserInfo("dutplcecd");
  97. var hardcdno = "1001";
  98. dsf_createDsRow("ds_cond_reqdata", [{col:"hardcdno", type:"string", size:256, val: hardcdno}]);
  99. dsf_createDs("ds_data_hardcdlist");
  100. var oParam = {};
  101. oParam.id = "TRMRF03104";
  102. oParam.service = "formmngtapp.SetIndxMngt";
  103. oParam.method = "reqGetEmrInfoTeamCd";
  104. oParam.inds = "req=ds_cond_reqdata";
  105. oParam.outds = "ds_data_hardcdlist=hardcdlist";
  106. oParam.async = false;
  107. oParam.callback = "cf_TRMRF03104";
  108. tranf_submit(oParam);
  109. var nFindRow = ds_data_hardcdlist.findRow("trgtcd", dutplcecd);
  110. if( nFindRow > -1 ){
  111. return 1;
  112. }
  113. return 0;
  114. }
  115. function cf_TRMRF03104(sSvcId, nErrorCode, sErrorMsg) {
  116. if(nErrorCode < 0) return;
  117. }
  118. var gSendParentCallID = "";
  119. function fSendParentCallSetMaxSize()
  120. {
  121. try
  122. {
  123. parent.fSetTermViewMaxSize(gSendParentCallID);
  124. }
  125. catch(e)
  126. {
  127. sysf_catchTrace(e);
  128. }
  129. }
  130. ]]></Script>