SPMMB01500_수치결과검사항목.xfdl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMB01500" position="absolute 0 0 550 450" titletext="수치결과검사항목" onload="SPMMB01500_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="수치결과검사항목" position="absolute 0 0 175 13" align="align:left middle;" id="caption6" class="tit_2"/>
  8. <Shape position="absolute 0 17 526 23" linetype="vertical" id="line3" class="line_1"/>
  9. <Grid position="absolute 0 25 527 400" id="grd_testitem" binddataset="ds_testitemlist" oncellclick="grd_testitem_oncellclick" oncelldblclick="grd_testitem_oncelldblclick" treeusecheckbox="false" treeinitstatus="expand,null">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="21"/>
  14. <Column size="50"/>
  15. <Column size="0"/>
  16. <Column size="0"/>
  17. <Column size="0"/>
  18. <Column size="0"/>
  19. <Column size="0"/>
  20. <Column size="127"/>
  21. <Column size="257"/>
  22. <Column size="58"/>
  23. </Columns>
  24. <Rows>
  25. <Row size="24" band="head"/>
  26. <Row size="24"/>
  27. </Rows>
  28. <Band id="head">
  29. <Cell/>
  30. <Cell col="1" text="선택"/>
  31. <Cell col="2" text="트리"/>
  32. <Cell col="3" text="레벨"/>
  33. <Cell col="4" text="상위검사"/>
  34. <Cell col="5" text="조회순서"/>
  35. <Cell col="6" text="경로"/>
  36. <Cell col="7" text="검사코드"/>
  37. <Cell col="8" text="검사명"/>
  38. <Cell col="9" text="단위"/>
  39. </Band>
  40. <Band id="body">
  41. <Cell celltype="head" text="expr:currow + 1"/>
  42. <Cell col="1" celltype="none" displaytype="checkbox" edittype="checkbox" text="bind:check"/>
  43. <Cell col="2" text="bind:tree"/>
  44. <Cell col="3" text="bind:levl"/>
  45. <Cell col="4" text="bind:suptestcd"/>
  46. <Cell col="5" text="bind:refseq"/>
  47. <Cell col="6" text="bind:path"/>
  48. <Cell col="7" displaytype="tree" edittype="tree" text="bind:testcd" treelevel="bind:levl"/>
  49. <Cell col="8" text="bind:tclsscrnnm"/>
  50. <Cell col="9" text="bind:rsltunit"/>
  51. </Band>
  52. </Format>
  53. </Formats>
  54. </Grid>
  55. <Button position="absolute 412 405 468 427" id="button1" class="btn4" text="선택" onclick="button1_onclick"/>
  56. <Button position="absolute 470 405 526 427" id="button2" class="btn4" text="취소" onclick="button2_onclick"/>
  57. </Layout>
  58. </Layouts>
  59. <Objects>
  60. <Dataset id="ds_testitemlist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  61. <ColumnInfo>
  62. <Column id="check" type="STRING"/>
  63. <Column id="tree" type="STRING"/>
  64. <Column id="levl" type="STRING"/>
  65. <Column id="suptestcd" type="STRING"/>
  66. <Column id="refseq" type="STRING"/>
  67. <Column id="path" type="STRING"/>
  68. <Column id="testcd" type="STRING"/>
  69. <Column id="tclsscrnnm" type="STRING"/>
  70. <Column id="rsltunit" type="STRING"/>
  71. </ColumnInfo>
  72. </Dataset>
  73. </Objects>
  74. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  75. * System Name : SPMMB01500_수치결과검사항목
  76. * Job Name :
  77. * Creator :
  78. * Make Date : 2014-08-29
  79. * Description :
  80. *---------------------------------------------------------------------------------------
  81. * Modify Date Modifier Modify Description
  82. *---------------------------------------------------------------------------------------
  83. * 2014-08-29 Live Converter TF->XP
  84. *
  85. *---------------------------------------------------------------------------------------
  86. ****************************************************************************************/
  87. include "com_commonxp::comm_main.xjs";
  88. include "emr_prcpmngtxp::MMO001.xjs";
  89. function SPMMB01500_onload(obj:Form, e:LoadEventInfo)
  90. {
  91. frmf_initForm(obj);
  92. ds_testitemlist.clearData();
  93. //수치결과검사항목을 모두 조회
  94. var oparam = {id:"TRMMB01501"
  95. , service:"prcpbaseapp.EnvInfoMngt"
  96. , method:"reqGetRsltTestItemList"
  97. , outds:"ds_testitemlist=testitemlist "
  98. , args:""
  99. , callback:"fn_callback_TRMMB01501"
  100. , async:"true"
  101. };
  102. tranf_submit(oparam);
  103. }
  104. function fn_callback_TRMMB01501()
  105. {
  106. //레벨을 트리형태로 나타내고 검사코드를 레벨단위로 보여준다~
  107. // setTree(grd_testitem , grd_testitem.colref("levl"), grd_testitem.colref("testcd"), false);
  108. //부모창에서 검사항목 개수를 받아옴
  109. var count = opener.frmf_getParameter("count");
  110. var arrcd = new Array();
  111. //검사항목 개수대로 코드를 받아옴
  112. for(var i=0 ; i <= count - 1 ; i++){
  113. // model.makeNode("/root/hidden/cd[" + i + "]");
  114. // model.setValue("/root/hidden/cd[" + i + "]",opener.javascript.getParameter("cd", i));
  115. arrcd[i] = opener.frmf_getParameter("cd", i);
  116. }
  117. //부모창에서 받아온 코드가 이 그리드에 존재하는지 확인후 있는 것은 체크박스에 체크
  118. for(var i = 0; i < ds_testitemlist.rowcount ; i++){
  119. var testcd = ds_testitemlist.getColumn(i,"testcd");
  120. for(var j = 0; j < count ; j++){
  121. var cd = arrcd[j];
  122. if(testcd == cd){
  123. ds_testitemlist.setColumn(i,"check","1");
  124. }
  125. }
  126. }
  127. }
  128. function grd_testitem_oncellclick(obj:Grid, e:GridClickEventInfo)
  129. {
  130. //1단계선택시 2단계모두 선택, 1단계해제시 2단계모두 해제
  131. var gridrows = ds_testitemlist.rowcount;
  132. var gridrow = ds_testitemlist.rowposition;
  133. var testd = ds_testitemlist.getColumn(gridrow,"testcd");
  134. var supcd = ds_testitemlist.getColumn(gridrow,"suptestcd");
  135. //var level = model.getValue("/root/main/testiteminfo/testitemlist[" + gridrow + "]/levl");
  136. var check = ds_testitemlist.getColumn(gridrow,"check");
  137. //1단계에서 2단계가 존재하는경우 1단계선택이나 해제시 같이 되게 한다.
  138. if(check == "1"){
  139. if(supcd == "-"){
  140. for(var i=0; i < gridrows; i++){
  141. var suptestcd = ds_testitemlist.getColumn(i,"suptestcd");
  142. if(testd == suptestcd){
  143. ds_testitemlist.setColumn(i,"check","1");
  144. }
  145. }
  146. }
  147. }else{
  148. if(supcd == "-"){
  149. for(var i=0; i < gridrows; i++){
  150. var suptestcd = ds_testitemlist.getColumn(i,"suptestcd");
  151. if(testd == suptestcd){
  152. ds_testitemlist.setColumn(i,"check","0");
  153. }
  154. }
  155. }
  156. }
  157. }
  158. function grd_testitem_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  159. {
  160. ds_testitemlist.setColumn(ds_testitemlist.rowposition,"check","1");
  161. var ev = new ClickEventInfo;
  162. frmf_inputEnterKey("button1", "onclick", ev );
  163. this.close();
  164. }
  165. function button1_onclick(obj:Button, e:ClickEventInfo)
  166. {
  167. //그리드의 총개수
  168. var gridrows = ds_testitemlist.rowcount;
  169. //체크한 개수를 얻기위한 변수
  170. var count = 0;
  171. //코드,코드명을 저장할 배열
  172. var testcd = new Array();
  173. var tclsnm = new Array();
  174. var supnm = new Array();
  175. var suptestcd = new Array();
  176. var unit = new Array();
  177. var levl2 = "false";
  178. for(var i = gridrows-1; i >=0 ; i--){
  179. var check = ds_testitemlist.getColumn(i,"check");
  180. //체크가 선택된 것
  181. if(check == "1"){
  182. var levl = ds_testitemlist.getColumn(i,"levl");
  183. //개수를 알기 위해 카운트를 1씩 증가
  184. if(levl != "1"){
  185. levl2 = "true";
  186. suptestcd[count] = ds_testitemlist.getColumn(i,"suptestcd");
  187. testcd[count] = ds_testitemlist.getColumn(i,"testcd");
  188. tclsnm[count] = ds_testitemlist.getColumn(i,"tclsscrnnm");
  189. unit[count] = ds_testitemlist.getColumn(i,"rsltunit");
  190. for(var j = 0; j < gridrows ; j++){
  191. var cd = ds_testitemlist.getColumn(j,"testcd") ;
  192. if(cd == suptestcd[count]){
  193. supnm[count] = ds_testitemlist.getColumn(j,"tclsscrnnm") ;
  194. }
  195. }
  196. }else{
  197. if(levl2 == "false"){
  198. suptestcd[count] = ds_testitemlist.getColumn(i,"testcd");
  199. supnm[count] = ds_testitemlist.getColumn(i,"tclsscrnnm");
  200. testcd[count] = ds_testitemlist.getColumn(i,"testcd");;
  201. tclsnm[count] = ds_testitemlist.getColumn(i,"tclsscrnnm");
  202. unit[count] = ds_testitemlist.getColumn(i,"rsltunit");
  203. levl2 = "false";
  204. }else{
  205. count = count - 1;
  206. }
  207. }
  208. count = count + 1;
  209. }
  210. }
  211. //받아온 배열을 부모창으로 보냄
  212. this.opener.ds_hidden_testiteminfo.addColumn("count","string","255");
  213. if (this.opener.ds_hidden_testiteminfo.rowcount < 1)
  214. {
  215. this.opener.ds_hidden_testiteminfo.addRow();
  216. }
  217. this.opener.ds_hidden_testiteminfo.setColumn(0,"count",count);
  218. this.opener.ds_hidden_testiteminfo.addColumn("useyn","string","255");
  219. this.opener.ds_hidden_testiteminfo.setColumn(0,"useyn","Y");
  220. this.opener.ds_hidden_testitemlist.addColumn("testcd","string","255");
  221. this.opener.ds_hidden_testitemlist.addColumn("testitemcd","string","255");
  222. this.opener.ds_hidden_testitemlist.addColumn("testnm","string","255");
  223. this.opener.ds_hidden_testitemlist.addColumn("testitemnm","string","255");
  224. this.opener.ds_hidden_testitemlist.addColumn("rsltunit","string","255");
  225. for(var i = 0 ; i < count ; i++){
  226. if (this.opener.ds_hidden_testitemlist.rowcount <= i)
  227. {
  228. this.opener.ds_hidden_testitemlist.addRow();
  229. }
  230. this.opener.ds_hidden_testitemlist.setColumn(i,"testcd",suptestcd[i]);
  231. this.opener.ds_hidden_testitemlist.setColumn(i,"testitemcd",testcd[i]);
  232. this.opener.ds_hidden_testitemlist.setColumn(i,"testnm",supnm[i]);
  233. this.opener.ds_hidden_testitemlist.setColumn(i,"testitemnm",tclsnm[i]);
  234. this.opener.ds_hidden_testitemlist.setColumn(i,"rsltunit",unit[i]);
  235. }
  236. this.close();
  237. }
  238. function button2_onclick(obj:Button, e:ClickEventInfo)
  239. {
  240. //취소 버튼 눌렀다는 상태값
  241. this.opener.ds_hidden_testiteminfo.addColumn("useyn","string","255");
  242. this.opener.ds_hidden_testiteminfo.setColumn(0,"useyn","N");
  243. this.close();
  244. }
  245. ]]></Script>
  246. </Form>
  247. </FDL>