SPAHA03110_건진공통코드조회.xfdl 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPAHA03110" position="absolute 0 0 714 575" titletext="공통코드조회" oninit="SPAHA03110_oninit" onload="SPAHA03110_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div id="div" taborder="1" position="absolute 0 25 710 65" class="div_SA"/>
  8. <Static text="공통코드조회" position="absolute 0 0 112 25" id="caption1" class="tit_1"/>
  9. <Static text="코드검색 :" position="absolute 19 37 93 54" id="caption11" class="search_name"/>
  10. <Edit position="absolute 96 36 210 55" id="ipt_comcd" class="input_search" autoselect="true" onkeyup="ipt_comcd_onkeyup"/>
  11. <Button position="absolute 627 35 683 57" id="btn_sea" class="btn1" text="조회" onclick="btn_sea_onclick"/>
  12. <Shape position="absolute 614 35 620 57" linetype="vertical" id="line6"/>
  13. <Shape position="absolute 0 88 710 94" linetype="horizontal" id="line7" class="line_10"/>
  14. <Grid position="absolute 0 93 710 543" id="grd_codelst" binddataset="ds_main_codeinfo_codelist" oncelldblclick="grd_codelst_oncelldblclick" onvscroll="grd_codelst_onvscroll">
  15. <Formats>
  16. <Format id="default">
  17. <Columns>
  18. <Column size="20" band="left"/>
  19. <Column size="30"/>
  20. <Column size="100"/>
  21. <Column size="270"/>
  22. <Column size="60"/>
  23. <Column size="150"/>
  24. <Column size="39"/>
  25. <Column size="0"/>
  26. </Columns>
  27. <Rows>
  28. <Row size="24" band="head"/>
  29. <Row size="24"/>
  30. </Rows>
  31. <Band id="head">
  32. <Cell/>
  33. <Cell col="1" text="선택"/>
  34. <Cell col="2" text="Code"/>
  35. <Cell col="3" text="Name"/>
  36. <Cell col="4" text="사용여부"/>
  37. <Cell col="5" text="비고"/>
  38. <Cell col="6" text="순번"/>
  39. <Cell col="7" text="caption1"/>
  40. </Band>
  41. <Band id="body">
  42. <Cell celltype="head" expr="expr:currow + 1"/>
  43. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:sel" expr="expr:sel == '1' || sel == 'Y' ? '1' : '0'"/>
  44. <Cell col="2" edittype="none" style="align:left;" text="bind:cdid"/>
  45. <Cell col="3" edittype="none" style="align:left;" text="bind:cdnm"/>
  46. <Cell col="4" displaytype="combo" style="align:center;" text="bind:useyn" combodataset="ds_useyn" combocodecol="value" combodatacol="label" enable="false"/>
  47. <Cell col="5" edittype="none" style="align:left;" text="bind:cmt"/>
  48. <Cell col="6" displaytype="number" edittype="none" style="align:center;" text="bind:sortseq" mask="#####"/>
  49. <Cell col="7" text="bind:cdgrupid"/>
  50. </Band>
  51. </Format>
  52. </Formats>
  53. </Grid>
  54. <Static text="코드별 상세정보" position="absolute 0 72 128 88" id="caption4" class="tit_2"/>
  55. <Button position="absolute 595 546 651 568" id="btn_save" class="btn4" text="확인" onclick="btn_save_onclick"/>
  56. <Shape position="absolute 3 542 710 548" linetype="horizontal" id="line1" class="line_3"/>
  57. <Button position="absolute 654 546 710 568" id="btn_close" class="btn4" text="닫기" onclick="btn_close_onclick"/>
  58. <Static text="코드명 :" position="absolute 269 37 333 54" id="caption2" class="search_name"/>
  59. <Edit position="absolute 336 36 450 55" id="ipt_comnm" class="input_search" autoselect="true" onkeyup="ipt_comnm_onkeyup"/>
  60. </Layout>
  61. </Layouts>
  62. <Objects>
  63. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  64. <ColumnInfo>
  65. <Column id="cdgrupid" type="STRING" size="256" sumtext="사번"/>
  66. <Column id="srcd" type="STRING" size="256" sumtext="코드검색"/>
  67. <Column id="srnm" type="STRING" size="256" sumtext="코드명검색"/>
  68. <Column id="offset" type="INT" size="256" sumtext="코드명검색"/>
  69. <Column id="pagesize" type="INT" size="256" sumtext="코드명검색"/>
  70. </ColumnInfo>
  71. <Rows>
  72. <Row/>
  73. </Rows>
  74. </Dataset>
  75. <Dataset id="ds_main_codeinfo_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_codeinfo_codelist_oncolumnchanged">
  76. <ColumnInfo>
  77. <Column id="sel" type="STRING" size="256" sumtext="선택"/>
  78. <Column id="cdid" type="STRING" size="256" sumtext="코드"/>
  79. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  80. <Column id="useyn" type="STRING" size="256" sumtext="사용여부"/>
  81. <Column id="cmt" type="STRING" size="256" sumtext="비고"/>
  82. <Column id="cdgrupid" type="STRING" size="256" sumtext="그룹코드"/>
  83. <Column id="sortseq" type="INT" size="256" sumtext="순서"/>
  84. </ColumnInfo>
  85. </Dataset>
  86. <Dataset id="ds_temp_list" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  87. <ColumnInfo>
  88. <Column id="sel" type="STRING" size="256" sumtext="선택"/>
  89. <Column id="cdid" type="STRING" size="256" sumtext="코드"/>
  90. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  91. <Column id="useyn" type="STRING" size="256" sumtext="사용여부"/>
  92. <Column id="cmt" type="STRING" size="256" sumtext="비고"/>
  93. <Column id="cdgrupid" type="STRING" size="256" sumtext="그룹코드"/>
  94. <Column id="sortseq" type="INT" size="256" sumtext="순서"/>
  95. </ColumnInfo>
  96. </Dataset>
  97. <Dataset id="ds_useyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  98. <ColumnInfo>
  99. <Column id="label" type="STRING" size="256"/>
  100. <Column id="value" type="STRING" size="256"/>
  101. </ColumnInfo>
  102. <Rows>
  103. <Row>
  104. <Col id="label">YES</Col>
  105. <Col id="value">Y</Col>
  106. </Row>
  107. <Row>
  108. <Col id="label">NO</Col>
  109. <Col id="value">N</Col>
  110. </Row>
  111. </Rows>
  112. </Dataset>
  113. <Dataset id="ds_main_codeinfo_codelist2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="sel" type="STRING" size="256" sumtext="선택"/>
  116. <Column id="cdid" type="STRING" size="256" sumtext="코드"/>
  117. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  118. <Column id="useyn" type="STRING" size="256" sumtext="사용여부"/>
  119. <Column id="cmt" type="STRING" size="256" sumtext="비고"/>
  120. <Column id="cdgrupid" type="STRING" size="256" sumtext="그룹코드"/>
  121. <Column id="sortseq" type="INT" size="256" sumtext="순서"/>
  122. </ColumnInfo>
  123. </Dataset>
  124. </Objects>
  125. <Bind>
  126. <BindItem id="item0" compid="ipt_comcd" propid="value" datasetid="ds_send_reqdata" columnid="srcd"/>
  127. <BindItem id="item1" compid="ipt_comnm" propid="value" datasetid="ds_send_reqdata" columnid="srnm"/>
  128. </Bind>
  129. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  130. * System Name : 경대 의료정보시스템
  131. * Job Name : ast_healthexambasexp -> SPAHA03110
  132. * Creator : yjh
  133. * Make Date : 2018-02-01
  134. * Description :
  135. *---------------------------------------------------------------------------------------
  136. * Modify Date Modifier Modify Description
  137. *---------------------------------------------------------------------------------------
  138. * 2018-02-01 yjh TF->XP
  139. *
  140. *---------------------------------------------------------------------------------------
  141. ****************************************************************************************/
  142. //=======================================================================================
  143. // Lib Include
  144. //---------------------------------------------------------------------------------------
  145. include "com_commonxp::comm_main.xjs";
  146. //=======================================================================================
  147. // Global Form Variable
  148. //---------------------------------------------------------------------------------------
  149. //=======================================================================================
  150. // Function
  151. //---------------------------------------------------------------------------------------
  152. var vMultiYn = "";
  153. var vGrpCd = "";
  154. var vCdid = "";
  155. var vDesNodeSet = "";
  156. var vDesNodeCd = "";
  157. var vDesNodeNm = "";
  158. function fInit() {
  159. ds_send_reqdata.setColumn(0, "offset" , 0);
  160. ds_send_reqdata.setColumn(0, "pagesize" , 1000);
  161. if(frmf_checkOpener()) {
  162. vMultiYn = opener.frmf_getParameter("SPAHA03110_PARAM1");
  163. vGrpCd = opener.frmf_getParameter("SPAHA03110_PARAM2");
  164. vCdId = opener.frmf_getParameter("SPAHA03110_PARAM3");
  165. vDesNodeSet = opener.frmf_getParameter("SPAHA03110_PARAM4");
  166. vDesNodeCd = utlf_transNullToEmpty(opener.frmf_getParameter("SPAHA03110_PARAM5")+"").split(" ");
  167. vDesNodeNm = utlf_transNullToEmpty(opener.frmf_getParameter("SPAHA03110_PARAM6")+"").split(" ");
  168. //alert(vMultiYn + " : " + vGrpCd + " : " + vCdId + " : " + vDesNodeSet + " : " + vDesNodeCd + " : " + vDesNodeNm );
  169. }
  170. if(vMultiYn == "Y") {
  171. grd_codelst.setFormatColProperty(1, "size", 30);
  172. }else {
  173. grd_codelst.setFormatColProperty(1, "size", 0);
  174. }
  175. ds_send_reqdata.setColumn(0, "cdgrupid" , vGrpCd);
  176. ds_send_reqdata.setColumn(0, "srcd" , vCdId);
  177. }
  178. function readfunc(){ // 해당 조건에 대한 사용자 권한내역을 조회한다.
  179. if (utlf_isNull(ds_send_reqdata.getColumn(0, "cdgrupid"))){
  180. sysf_messageBox("구분코드를 선택한 후 조회하시기 바랍니다.", "E999", "");
  181. return;
  182. }
  183. ds_main_codeinfo_codelist.clearData();
  184. btn_save.enable = true;
  185. var oParam = {};
  186. oParam.id = "TRAHA03111";
  187. oParam.service = "healthexambaseapp.ComCode";
  188. oParam.method = "reqGetBaseInfo";
  189. oParam.inds = "reqdata=ds_send_reqdata";
  190. oParam.outds = "ds_main_codeinfo_codelist=codelist";
  191. oParam.async = false;
  192. //oParam.callback = "cf_TRAHA03111";
  193. tranf_submit(oParam);
  194. }
  195. function fSaveData() {
  196. if(vMultiYn == "Y") {
  197. if(utlf_isNull(vDesNodeSet)) {
  198. for(var i = 0; i < ds_main_codeinfo_codelist.rowcount; i++) {
  199. if(ds_main_codeinfo_codelist.getColumn(i, "sel") == "Y") {
  200. eval("opener."+vDesNodeCd[0]).setColumn(vDesNodeCd[1], vDesNodeCd[2], ds_main_codeinfo_codelist.getColumn(i, "cdid"));
  201. eval("opener."+vDesNodeNm[0]).setColumn(vDesNodeNm[1], vDesNodeNm[2], ds_main_codeinfo_codelist.getColumn(i, "cdnm"));
  202. }
  203. }
  204. }else {
  205. var nodeList = ds_main_codeinfo_codelist.filter("sel=='Y'");
  206. if( nodeList.rowcount > 0) {
  207. ds_temp_list.copyData(nodeList, true);
  208. eval("opener."+vDesNodeSet).copyData(ds_temp_list, true);
  209. }else {
  210. if(ds_main_codeinfo_codelist.rowposition > -1) {
  211. ds_temp_list.clearData();
  212. ds_temp_list.addRow();
  213. ds_temp_list.copyRow(0, ds_main_codeinfo_codelist, ds_main_codeinfo_codelist.rowposition);
  214. eval("opener."+vDesNodeSet).copyData(ds_temp_list, true);
  215. }
  216. }
  217. ds_main_codeinfo_codelist.filter("");
  218. }
  219. } else {
  220. var idx = ds_main_codeinfo_codelist.rowposition;
  221. if ( idx < 0) {
  222. sysf_messageBox("항목을 선택하세요.", "E999");
  223. return false;
  224. }
  225. if(utlf_isNull(vDesNodeSet)) {
  226. eval("opener."+vDesNodeCd[0]).setColumn(vDesNodeCd[1], vDesNodeCd[2], ds_main_codeinfo_codelist.getColumn(idx, "cdid"));
  227. eval("opener."+vDesNodeNm[0]).setColumn(vDesNodeNm[1], vDesNodeNm[2], ds_main_codeinfo_codelist.getColumn(idx, "cdnm"));
  228. }else {
  229. ds_temp_list.clearData();
  230. ds_temp_list.addRow();
  231. ds_temp_list.copyRow(0, ds_main_codeinfo_codelist, idx);
  232. eval("opener."+vDesNodeSet).copyData(ds_temp_list, true);
  233. }
  234. }
  235. }
  236. function fSubmitOnScroll() {
  237. if(grd_codelst.vscrollbar.max == grd_codelst.vscrollbar.pos) {
  238. // end of scroll
  239. ds_send_reqdata.setColumn(0, "offset", ds_main_codeinfo_codelist.rowcount); // grid의 header row는 제외
  240. var oParam = {};
  241. oParam.id = "TRAHA03111";
  242. oParam.service = "healthexambaseapp.ComCode";
  243. oParam.method = "reqGetBaseInfo";
  244. oParam.inds = "reqdata=ds_send_reqdata";
  245. oParam.outds = "ds_main_codeinfo_codelist2=codelist";
  246. oParam.async = false;
  247. //oParam.callback = "cf_TRAHA03111";
  248. tranf_submit(oParam);
  249. ds_main_codeinfo_codelist.appendData(ds_main_codeinfo_codelist2);
  250. //grd_codelst.dispatch("onmouseup"); // 스크롤바 처리를 위한 이벤트 발생
  251. }
  252. }
  253. //=======================================================================================
  254. // Event
  255. //---------------------------------------------------------------------------------------
  256. /****************************************************************************************
  257. * Components : Form
  258. * Components ID : SPAHA03110
  259. * Event : oninit
  260. * Argument : 01.obj : Object Event has occurred
  261. * : 02.e : Event Object
  262. * Description : 화면 처음 초기화시
  263. ****************************************************************************************/
  264. function SPAHA03110_oninit(obj:Form, e:InitEventInfo)
  265. {
  266. frmf_initForm(obj); //폼 초기화
  267. }
  268. /****************************************************************************************
  269. * Components : Form
  270. * Components ID : SPAHA03110
  271. * Event : onload
  272. * Argument : 01.obj : Object Event has occurred
  273. * : 02.e : Event Object
  274. * Description : 화면 로딩 완료시
  275. ****************************************************************************************/
  276. function SPAHA03110_onload(obj:Form, e:LoadEventInfo)
  277. {
  278. ds_send_reqdata.setColumn(0, "pagesize", "1000");
  279. grdf_setGridSort(grd_codelst);
  280. ds_main_codeinfo_codelist.clearData();
  281. fInit();
  282. readfunc();
  283. }
  284. /****************************************************************************************
  285. * Components : Edit
  286. * Components ID : ipt_comcd
  287. * Event : onkeyup
  288. * Argument : 01.obj : Object Event has occurred
  289. * : 02.e : Event Object
  290. * Description : 에디터 키 입력시
  291. ****************************************************************************************/
  292. function ipt_comcd_onkeyup(obj:Edit, e:KeyEventInfo)
  293. {
  294. if(e.keycode == 13) {
  295. obj.updateToDataset();
  296. btn_sea.click();
  297. }
  298. }
  299. /****************************************************************************************
  300. * Components : Button
  301. * Components ID : btn_sea
  302. * Event : onclick
  303. * Argument : 01.obj : Object Event has occurred
  304. * : 02.e : Event Object
  305. * Description : 조회버튼 클릭시
  306. ****************************************************************************************/
  307. function btn_sea_onclick(obj:Button, e:ClickEventInfo)
  308. {
  309. ds_send_reqdata.setColumn(0, "offset" , 0);
  310. readfunc();
  311. }
  312. /****************************************************************************************
  313. * Components : Grid
  314. * Components ID : grd_codelst
  315. * Event : oncelldblclick
  316. * Argument : 01.obj : Object Event has occurred
  317. * : 02.e : Event Object
  318. * Description : 그리드 셀 더블클릭시
  319. ****************************************************************************************/
  320. function grd_codelst_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  321. {
  322. fSaveData();
  323. this.close();
  324. }
  325. /****************************************************************************************
  326. * Components : Grid
  327. * Components ID : grd_codelst
  328. * Event : onvscroll
  329. * Argument : 01.obj : Object Event has occurred
  330. * : 02.e : Event Object
  331. * Description : 그리드 스크롤 이동시
  332. ****************************************************************************************/
  333. function grd_codelst_onvscroll(obj:Grid, e:ScrollEventInfo)
  334. {
  335. fSubmitOnScroll();
  336. }
  337. /****************************************************************************************
  338. * Components : Button
  339. * Components ID : btn_save
  340. * Event : onclick
  341. * Argument : 01.obj : Object Event has occurred
  342. * : 02.e : Event Object
  343. * Description : 확인버튼 클릭시
  344. ****************************************************************************************/
  345. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  346. {
  347. fSaveData();
  348. this.close();
  349. }
  350. /****************************************************************************************
  351. * Components : Button
  352. * Components ID : btn_close
  353. * Event : onclick
  354. * Argument : 01.obj : Object Event has occurred
  355. * : 02.e : Event Object
  356. * Description : 닫기버튼 클릭시
  357. ****************************************************************************************/
  358. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  359. {
  360. this.close();
  361. }
  362. /****************************************************************************************
  363. * Components : Edit
  364. * Components ID : ipt_comnm
  365. * Event : onkeyup
  366. * Argument : 01.obj : Object Event has occurred
  367. * : 02.e : Event Object
  368. * Description : 에디터 키 입력시
  369. ****************************************************************************************/
  370. function ipt_comnm_onkeyup(obj:Edit, e:KeyEventInfo)
  371. {
  372. if(e.keycode == 13) {
  373. obj.updateToDataset();
  374. btn_sea.click();
  375. }
  376. }
  377. function ds_main_codeinfo_codelist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  378. {
  379. switch( e.columnid ){
  380. case "sel" :
  381. if( e.newvalue == "1" || e.newvalue == "Y" ){
  382. obj.setColumn(e.row, e.columnid, "Y");
  383. }else{
  384. obj.setColumn(e.row, e.columnid, "N");
  385. }
  386. break;
  387. default :
  388. break;
  389. }
  390. }
  391. ]]></Script>
  392. </Form>
  393. </FDL>