SMADC03200_NST공통코드관리.xfdl 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMADC03200" position="absolute 0 0 707 580" titletext="공통코드관리" oninit="SMADC03200_oninit" onload="SMADC03200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="공통코드관리" position="absolute 0 0 169 25" id="caption1" class="tit_1"/>
  8. <Shape position="absolute 0 95 705 101" linetype="horizontal" id="line7" class="line_1" anchor="left top right"/>
  9. <Grid position="absolute 0 99 705 549" id="grd_codeinfo" binddataset="ds_grd_codeinfo" anchor="all" extendsizetype="row" cellsizingtype="both" autosizingtype="row">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="25" band="left"/>
  14. <Column size="67"/>
  15. <Column size="408"/>
  16. <Column size="55"/>
  17. <Column size="240"/>
  18. <Column size="0"/>
  19. </Columns>
  20. <Rows>
  21. <Row size="24" band="head"/>
  22. <Row size="24"/>
  23. </Rows>
  24. <Band id="head">
  25. <Cell/>
  26. <Cell col="1" text="Code"/>
  27. <Cell col="2" text="Name"/>
  28. <Cell col="3" text="사용여부"/>
  29. <Cell col="4" text="비고"/>
  30. <Cell col="5" text="caption1"/>
  31. </Band>
  32. <Band id="body">
  33. <Cell celltype="head"/>
  34. <Cell col="1" displaytype="text" edittype="text" text="bind:cdid"/>
  35. <Cell col="2" displaytype="text" edittype="text" style="padding:4 2 0 2;" text="bind:cdnm" autosizerow="limitmin"/>
  36. <Cell col="3" displaytype="combo" edittype="combo" text="bind:useyn" combodataset="ds_use" combocodecol="cdid" combodatacol="cdnm"/>
  37. <Cell col="4" displaytype="text" edittype="text" style="padding:4 2 0 2;" text="bind:cmt" autosizerow="limitmin"/>
  38. <Cell col="5" text="bind:cdgrupid"/>
  39. </Band>
  40. </Format>
  41. </Formats>
  42. </Grid>
  43. <Static text="코드별 상세정보" position="absolute 0 78 149 100" id="caption4" class="tit_2"/>
  44. <Button position="absolute 597 72 650 94" id="btn_grdadd" class="btn2" text="행추가" onclick="btn_grdadd_onclick" anchor="top right"/>
  45. <Button position="absolute 652 72 705 94" id="btn_grddel" class="btn2" text="행삭제" onclick="btn_grddel_onclick" anchor="top right"/>
  46. <Button position="absolute 542 72 595 94" id="button27" class="btn2" visible="false" text="행복사" anchor="top right"/>
  47. <Button position="absolute 649 554 705 576" id="btn_save" class="btn4" text="저장" onclick="btn_save_onclick" anchor="right bottom"/>
  48. <Shape position="absolute 0 547 705 553" linetype="horizontal" id="line1" class="line_3" anchor="left right bottom"/>
  49. <Div id="group2" taborder="1" style="align:center top;" class="div_SA" position="absolute 0 25 705 65" anchor="left top right">
  50. <Layouts>
  51. <Layout>
  52. <Button id="btn_sea" taborder="0" text="조회" class="btn1" position="absolute 633 9 689 31" anchor="top right" onclick="group2_btn_sea_onclick"/>
  53. <Shape id="line6" linetype="vertical" position="absolute 612 9 618 31" anchor="top right"/>
  54. <Edit id="input13" taborder="1" class="input_search" visible="false" position="absolute 466 10 575 31" anchor="default"/>
  55. <Static id="caption11" text="코드명검색:" class="search_name" visible="false" position="absolute 384 13 463 30" anchor="default"/>
  56. <Combo id="combo1" taborder="2" codecolumn="cdid" datacolumn="cdnm" position="absolute 58 10 358 31" anchor="default" innerdataset="@ds_init_cdgrup" onitemchanged="group2_combo1_onitemchanged"/>
  57. <Combo id="combo2" taborder="3" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 57 10 337 31" anchor="default" visible="true">
  58. <Dataset id="innerdataset">
  59. <ColumnInfo>
  60. <Column id="codecolumn"/>
  61. <Column id="datacolumn"/>
  62. </ColumnInfo>
  63. <Rows>
  64. <Row>
  65. <Col id="codecolumn">TDM1</Col>
  66. <Col id="datacolumn">TDM회신결과 - 회신후결과항목</Col>
  67. </Row>
  68. <Row>
  69. <Col id="codecolumn">TDM2</Col>
  70. <Col id="datacolumn">TDM회신결과 - 회신제외내용항목</Col>
  71. </Row>
  72. </Rows>
  73. </Dataset>
  74. </Combo>
  75. <Static id="caption2" text="구분:" class="search_name" position="absolute 14 13 54 30" anchor="default"/>
  76. </Layout>
  77. </Layouts>
  78. </Div>
  79. <Shape id="line00" class="line_1" position="absolute 0 94 705 100" anchor="left top right"/>
  80. <Shape id="line02" class="line_1" position="absolute 0 93 705 99" anchor="left top right"/>
  81. </Layout>
  82. </Layouts>
  83. <Objects>
  84. <Dataset id="ds_grd_codeinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  85. <ColumnInfo>
  86. <Column id="cdid" type="STRING"/>
  87. <Column id="cdnm" type="STRING"/>
  88. <Column id="useyn" type="STRING"/>
  89. <Column id="cmt" type="STRING"/>
  90. <Column id="cdgrupid" type="STRING"/>
  91. </ColumnInfo>
  92. <Rows>
  93. <Row/>
  94. </Rows>
  95. </Dataset>
  96. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  97. <ColumnInfo>
  98. <Column id="formflag" type="STRING" size="256"/>
  99. </ColumnInfo>
  100. <Rows>
  101. <Row/>
  102. </Rows>
  103. </Dataset>
  104. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  105. <ColumnInfo>
  106. <Column id="cdgrupid" type="STRING" size="256"/>
  107. <Column id="srcd" type="STRING" size="256"/>
  108. </ColumnInfo>
  109. <Rows>
  110. <Row/>
  111. </Rows>
  112. </Dataset>
  113. <Dataset id="ds_send_execdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  114. <Dataset id="ds_popdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  115. <ColumnInfo>
  116. <Column id="cdgrupid" type="STRING" size="256"/>
  117. </ColumnInfo>
  118. <Rows>
  119. <Row/>
  120. </Rows>
  121. </Dataset>
  122. <Dataset id="ds_init_cdgrup" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  123. <ColumnInfo>
  124. <Column id="cdid" type="STRING" size="256"/>
  125. <Column id="cdnm" type="STRING" size="256"/>
  126. </ColumnInfo>
  127. <Rows>
  128. <Row>
  129. <Col id="cdnm">[PN02] CarePlan코드관리</Col>
  130. <Col id="cdid">PN02</Col>
  131. </Row>
  132. <Row>
  133. <Col id="cdnm">[PN10] NST(EN)주입방법</Col>
  134. <Col id="cdid">PN10</Col>
  135. </Row>
  136. <Row>
  137. <Col id="cdnm">[PN11] NST(EN)관의위치</Col>
  138. <Col id="cdid">PN11</Col>
  139. </Row>
  140. <Row>
  141. <Col id="cdnm">[C200] NST(EN)공급영양액</Col>
  142. <Col id="cdid">C200</Col>
  143. </Row>
  144. <Row>
  145. <Col id="cdid">PN20</Col>
  146. <Col id="cdnm">[PN20] NST 영양관련문제점</Col>
  147. </Row>
  148. <Row>
  149. <Col id="cdnm">[PN30] NST(EN)영양교육사용구</Col>
  150. <Col id="cdid">PN30</Col>
  151. </Row>
  152. <Row>
  153. <Col id="cdnm">[PN31] NST(EN)영양사의견상용구</Col>
  154. <Col id="cdid">PN31</Col>
  155. </Row>
  156. <Row>
  157. <Col id="cdid">PN41</Col>
  158. <Col id="cdnm">[PN41] NST 영양액코드처방관리</Col>
  159. </Row>
  160. </Rows>
  161. </Dataset>
  162. <Dataset id="ds_use" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  163. <ColumnInfo>
  164. <Column id="cdid" type="STRING" size="256"/>
  165. <Column id="cdnm" type="STRING" size="256"/>
  166. </ColumnInfo>
  167. <Rows>
  168. <Row>
  169. <Col id="cdid">Y</Col>
  170. <Col id="cdnm">YES</Col>
  171. </Row>
  172. <Row>
  173. <Col id="cdid">N</Col>
  174. <Col id="cdnm">NO</Col>
  175. </Row>
  176. </Rows>
  177. </Dataset>
  178. <Dataset id="ds_temp_codeinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  179. </Objects>
  180. <Bind>
  181. <BindItem id="item0" compid="group2.combo1" propid="value" datasetid="ds_send_reqdata" columnid="cdgrupid"/>
  182. <BindItem id="item1" compid="group2.input13" propid="value" datasetid="ds_send_reqdata" columnid="srcd"/>
  183. </Bind>
  184. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  185. * System Name :
  186. * Job Name :
  187. * Creator :
  188. * Make Date : 2015-11-13
  189. * Description :
  190. *---------------------------------------------------------------------------------------
  191. * Modify Date Modifier Modify Description
  192. *---------------------------------------------------------------------------------------
  193. * 2015-11-13 Live Converter TF->XP
  194. *
  195. *---------------------------------------------------------------------------------------
  196. ****************************************************************************************/
  197. include "com_commonxp::comm_main.xjs";
  198. var arErrorCode = new HashArray();
  199. /******************************************************************
  200. * Argument :
  201. * Description : 초기화
  202. ******************************************************************/
  203. function SMADC03200_oninit(obj:Form, e:InitEventInfo)
  204. {
  205. frmf_initForm(obj);
  206. }
  207. function SMADC03200_onload(obj:Form, e:LoadEventInfo)
  208. {
  209. grdf_setRowTypeIcon(grd_codeinfo, 0);
  210. //2010-02-24 TDM - 회신결과/회신제외 결과 항목 사용함
  211. var formflag = ds_init.getColumn(0, "formflag");
  212. if( formflag == "TDM" ){
  213. group2.combo1.visible = false; //NST 코드 항목
  214. } else {
  215. group2.combo2.visible = false; //TDM코드 항목
  216. }
  217. ds_grd_codeinfo.clearData();
  218. btn_grdadd.enable = false; //행추가
  219. btn_grddel.enable = false; //행삭제
  220. btn_save.enable = false; //저장
  221. if( !utlf_isNull(ds_popdata.getColumn(0, "cdgrupid")) ){
  222. ds_send_reqdata.setColumn(0, "cdgrupid", ds_popdata.getColumn(0, "cdgrupid"));
  223. btn_grdadd.enable = true;
  224. //2010-02-24 TDM 공통코드관리일경우는 [행삭제]사용안되도록 처리한다.
  225. if( formflag != "TDM" ){
  226. btn_grddel.enable = true;
  227. }
  228. btn_save.enable = true;
  229. readfunc;
  230. }
  231. }
  232. /******************************************************************
  233. * Argument :
  234. * Description : 조회 Button Event
  235. ******************************************************************/
  236. function group2_btn_sea_onclick(obj:Button, e:ClickEventInfo)
  237. {
  238. //code 상세 정보 Function
  239. readfunc();
  240. }
  241. // 구분 선택 시 Data 조회
  242. function group2_combo1_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  243. {
  244. btn_grdadd.enable = true;
  245. if( ds_init.getColumn(0, "formflag") != "TDM" ){
  246. btn_grddel.enable = true; //2010-02-24 TDM 공통코드관리일경우는 [행삭제]사용안되도록 처리한다.
  247. }
  248. btn_save.enable = true;
  249. readfunc();
  250. }
  251. /******************************************************************
  252. * Argument : readfunc
  253. * Description : code 상세 정보 Function
  254. * 해당 조건에 대한 사용자 권한내역을 조회한다.
  255. ******************************************************************/
  256. function readfunc(){
  257. if( utlf_isNull(ds_send_reqdata.getColumn(0, "cdgrupid")) ){
  258. sysf_messageBox("구분코드를 선택한 후 조회하시기 바랍니다.", "E999", "");
  259. return;
  260. }
  261. ds_grd_codeinfo.clearData();
  262. btn_save.enable = true;
  263. var oParam = {};
  264. oParam.id = "TRADB04011";
  265. oParam.service = "pharmacybaseapp.ComCode";
  266. oParam.method = "reqGetBaseInfo";
  267. oParam.inds = "reqdata=ds_send_reqdata";
  268. oParam.outds = "ds_grd_codeinfo=codelist";
  269. oParam.async = false;
  270. //oParam.callback = "cf_TRADB04011";
  271. tranf_submit(oParam);
  272. ds_temp_codeinfo.clearData();
  273. ds_temp_codeinfo.copyData(ds_grd_codeinfo);
  274. }
  275. /******************************************************************
  276. * Argument :
  277. * Description : 행추가 Button Event
  278. ******************************************************************/
  279. function btn_grdadd_onclick(obj:Button, e:ClickEventInfo)
  280. {
  281. if( utlf_isNull(ds_send_reqdata.getColumn(0, "cdgrupid")) ){
  282. sysf_messageBox("구분코드를 선택한 후 작업하시기 바랍니다.", "E999", "");
  283. return;
  284. }
  285. var iRow = ds_grd_codeinfo.addRow();
  286. ds_grd_codeinfo.setColumn(iRow, "cdgrupid", ds_send_reqdata.getColumn(0, "cdgrupid"));
  287. ds_grd_codeinfo.setColumn(iRow, "useyn", "Y");
  288. }
  289. /******************************************************************
  290. * Argument :
  291. * Description : 행삭제 Button Event
  292. ******************************************************************/
  293. function btn_grddel_onclick(obj:Button, e:ClickEventInfo)
  294. {
  295. var cRow = ds_grd_codeinfo.rowposition;
  296. if(ds_grd_codeinfo.getRowType(cRow) == 2) {
  297. ds_grd_codeinfo.deleteRow(cRow);
  298. } else {
  299. grdf_setStatus(grd_codeinfo, "D", grdf_getSelectedRows(grd_codeinfo));
  300. // ds_grd_codeinfo.setRowType(ds_grd_codeinfo.rowposition, Dataset.ROWTYPE_DELETE);
  301. }
  302. //ds_grd_codeinfo.deleteRow(ds_grd_codeinfo.rowposition);
  303. //dsf_deleteSelectedRows(grd_codeinfo,false);
  304. }
  305. /******************************************************************
  306. * Argument :
  307. * Description : 저장 Button Event
  308. ******************************************************************/
  309. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  310. {
  311. if( datacheck() == false ) return;
  312. ExecData();
  313. }
  314. /******************************************************************
  315. * Argument :
  316. * Description : 저장 Function
  317. ******************************************************************/
  318. function datacheck(){
  319. var scdid1 = "";
  320. var scdid2 = "";
  321. // 삭제된 행 제외
  322. var oDsUpdate = grdf_getGridUpdateData(grd_codeinfo);
  323. grdf_setStatusColumn(oDsUpdate, "m"); // 각행의 status에 rowType 값에 따라 'i', 'u', 'd'로 업데이트 시켜준다
  324. ds_send_execdata.copyData(oDsUpdate, true);
  325. // 삭제된 정보
  326. /*
  327. dsf_createDs("ds_delTemp");
  328. ds_delTemp.assign(ds_grd_codeinfo);
  329. ds_delTemp.clearData();
  330. var objArr = ds_grd_codeinfo.getDeletedRowset();
  331. for( var i in objArr){
  332. trace( i + " >>>>> " + objArr[i] );
  333. var arrDelInfo = objArr[i];
  334. var nRow = ds_delTemp.addRow();
  335. for( var j=0; j<arrDelInfo.length; j++){
  336. ds_delTemp.setColumn(nRow, j, arrDelInfo[j]);
  337. }
  338. ds_delTemp.setRowType(nRow, Dataset.ROWTYP
  339. }
  340. grdf_setStatusColumn(ds_delTemp, "m");
  341. ds_send_execdata.appendData(ds_delTemp);
  342. if( ds_send_execdata.rowcount < 1 ){
  343. sysf_messageBox("입력","E013");
  344. return;
  345. }
  346. */
  347. for( var i = 0; i < ds_send_execdata.rowcount; i++ ){
  348. if( utlf_isNull(ds_send_execdata.getColumn(i, "cdid")) ){
  349. sysf_messageBox("코드는 필수 입력항목입니다.", "E999", "");
  350. return false;
  351. }
  352. if( utlf_isNull(ds_send_execdata.getColumn(i, "cdnm")) ){
  353. sysf_messageBox("코드명은 필수 입력항목입니다.", "E999", "");
  354. return false;
  355. }
  356. if( ds_send_execdata.getColumn(i, "m") == "i" ){
  357. scdid1 = ds_send_execdata.getColumn(i, "cdid");
  358. }
  359. var k = i + 1;
  360. for( var j = 0; j < ds_temp_codeinfo.rowcount; j++ ){
  361. scdid2 = ds_temp_codeinfo.getColumn(i, "cdid");
  362. if( scdid1 == scdid2 ){
  363. sysf_messageBox("중복된 자료가 존재합니다", "E999", "");
  364. return false;
  365. }
  366. }
  367. }
  368. }
  369. function ExecData(){
  370. var oParam = {};
  371. oParam.id = "TXADB04011";
  372. oParam.service = "pharmacybaseapp.ComCode";
  373. oParam.method = "reqExeBaseCodeList";
  374. oParam.inds = "codelist=ds_send_execdata";
  375. oParam.outds = "ds_=item";
  376. oParam.async = false;
  377. //oParam.callback = "cf_TXADB04011";
  378. tranf_submit(oParam);
  379. readfunc();
  380. }]]></Script>
  381. </Form>
  382. </FDL>