SMRPD31100_전문의평가항목관리.xfdl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD31100" position="absolute 0 0 1200 770" titletext="전문의 평가 - 항목 관리" oninit="SMRPD31100_oninit" onload="SMRPD31100_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div id="grp_sea" anchor="left top right" taborder="1" class="div_SA" position="absolute 0 50 1194 85"/>
  8. <Shape position="absolute 0 116 1195 122" linetype="horizontal" id="line7" class="line_10" anchor="left top right"/>
  9. <Grid position="absolute 0 121 1195 720" id="datagrid1" binddataset="ds_main_codeinfo_codelist" autoenter="select" anchor="all" cellsizingtype="both">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="20" band="left"/>
  14. <Column size="60"/>
  15. <Column size="307"/>
  16. <Column size="92"/>
  17. <Column size="92"/>
  18. <Column size="316"/>
  19. <Column size="67"/>
  20. <Column size="67"/>
  21. <Column size="0"/>
  22. <Column size="0"/>
  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="instcd"/>
  38. <Cell col="9" text="orgcdid"/>
  39. </Band>
  40. <Band id="body">
  41. <Cell celltype="head"/>
  42. <Cell col="1" text="bind:cdid" enable="false"/>
  43. <Cell col="2" displaytype="text" edittype="text" style="align:left top;padding:5 2 1 2;" text="bind:cdnm" wordwrap="word" editautoselect="true"/>
  44. <Cell col="3" displaytype="date" edittype="date" text="bind:cntlcd1" expr="expr:String(cntlcd1).length == 8 ? cntlcd1 : ''" editautoselect="true" calendardisplaynulltype="none"/>
  45. <Cell col="4" displaytype="date" edittype="date" text="bind:cntlcd2" expr="expr:String(cntlcd2).length == 8 ? cntlcd2 : ''" editautoselect="true" calendardisplaynulltype="none"/>
  46. <Cell col="5" displaytype="text" edittype="text" style="align:left top;padding:5 2 1 2;" text="bind:detldesc" wordwrap="word" editautoselect="true"/>
  47. <Cell col="6" displaytype="text" edittype="text" style="align:center;" text="bind:dispseq"/>
  48. <Cell col="7" displaytype="combo" edittype="combo" style="align:center;padding:1 2 1 2;" text="bind:useyn" combodataset="ds_cmb_useyn" combocodecol="value" combodatacol="label"/>
  49. <Cell col="8" text="bind:instcd"/>
  50. <Cell col="9" text="bind:orgcdid"/>
  51. </Band>
  52. </Format>
  53. </Formats>
  54. </Grid>
  55. <Static text="평가항목(부문) 상세정보" position="absolute 2 100 185 119" id="caption4" class="tit_2"/>
  56. <Button position="absolute 1085 95 1138 114" id="btn_grdadd" class="btn2" text="행추가" onclick="btn_grdadd_onclick" anchor="top right"/>
  57. <Button position="absolute 1141 95 1194 114" id="btn_grddel" class="btn2" text="행삭제" onclick="btn_grddel_onclick" anchor="top right"/>
  58. <Static text="전문의 평가 - 항목 관리" position="absolute 0 0 175 24" id="caption1" class="tit_1" anchor="left top"/>
  59. <Div position="absolute 0 13 1195 45" id="group4" scrollbars="autoboth" anchor="left top right">
  60. <Layouts>
  61. <Layout>
  62. <Shape position="absolute 0 25 1195 31" linetype="horizontal" id="line2" class="line_6" anchor="left top right"/>
  63. <Button position="absolute 1139 4 1195 26" id="btn_save" class="btn4" text="저장" anchor="top right" onclick="group4_btn_save_onclick"/>
  64. </Layout>
  65. </Layouts>
  66. </Div>
  67. <Button position="absolute 475 56 531 78" id="btn_search" class="btn1" text="조회" onclick="btn_search_onclick"/>
  68. <Shape position="absolute 457 56 463 78" linetype="vertical" id="line3"/>
  69. <Static text="※ 1.사용된 코드는 삭제하지 말고, 사용여부를 &quot;No&quot; 로 변경 후 저장하시기 바랍니다." position="absolute 0 725 503 745" id="caption3" style="color:red;" anchor="left bottom"/>
  70. <Combo position="absolute 120 58 262 77" id="cmb_instcd" class="combo_s_default" enable="false" onitemchanged="cmb_instcd_onitemchanged"/>
  71. <Static text="기관코드" position="absolute 49 59 125 76" id="caption2" class="search_name"/>
  72. <Combo position="absolute 366 58 425 77" id="cmb_useyn" class="combo_s_default" codecolumn="codecolumn" datacolumn="datacolumn" onitemchanged="cmb_useyn_onitemchanged">
  73. <Dataset id="innerdataset">
  74. <ColumnInfo>
  75. <Column id="codecolumn"/>
  76. <Column id="datacolumn"/>
  77. </ColumnInfo>
  78. <Rows>
  79. <Row>
  80. <Col id="codecolumn">
  81. </Col>
  82. <Col id="datacolumn">전체</Col>
  83. </Row>
  84. <Row>
  85. <Col id="codecolumn">Y</Col>
  86. <Col id="datacolumn">Yes</Col>
  87. </Row>
  88. <Row>
  89. <Col id="codecolumn">N</Col>
  90. <Col id="datacolumn">No</Col>
  91. </Row>
  92. </Rows>
  93. </Dataset>
  94. </Combo>
  95. <Static text="사용여부" position="absolute 295 59 374 76" id="caption5" class="search_name"/>
  96. <Static text="2.신규코드는 저장 시 자동으로 코드가 생성됩니다." position="absolute 16 741 519 761" id="caption6" style="color:red;" anchor="left bottom"/>
  97. </Layout>
  98. </Layouts>
  99. <Objects>
  100. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  101. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  102. <Column id="useyn" type="STRING" size="256" sumtext="사용여부"/>
  103. <ColumnInfo>
  104. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  105. <Column id="useyn" type="STRING" size="256" sumtext="사용여부"/>
  106. </ColumnInfo>
  107. <Rows>
  108. <Row/>
  109. </Rows>
  110. </Dataset>
  111. <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">
  112. <ColumnInfo>
  113. <Column id="cdid" type="STRING" size="256" sumtext="코드"/>
  114. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  115. <Column id="cntlcd1" type="STRING" size="256" sumtext="시작일자"/>
  116. <Column id="cntlcd2" type="STRING" size="256" sumtext="종료일자"/>
  117. <Column id="detldesc" type="STRING" size="256" sumtext="상세설명"/>
  118. <Column id="useyn" type="STRING" size="256" sumtext="구분1"/>
  119. <Column id="dispseq" type="STRING" size="256" sumtext="display순서"/>
  120. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  121. <Column id="orgcdid" type="STRING" size="256" sumtext="원코드"/>
  122. <Column id="iudflag" type="STRING" size="256"/>
  123. </ColumnInfo>
  124. </Dataset>
  125. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  126. <ColumnInfo>
  127. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  128. </ColumnInfo>
  129. <Rows>
  130. <Row/>
  131. </Rows>
  132. </Dataset>
  133. <Dataset id="ds_init_prvg" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  134. <ColumnInfo>
  135. <Column id="cnt" type="STRING" size="256" sumtext="권한유무(있으면 1, 없으면 0)"/>
  136. </ColumnInfo>
  137. </Dataset>
  138. <Dataset id="ds_senddata_execdata_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  139. <ColumnInfo>
  140. <Column id="status" type="STRING" size="256" sumtext="처리구분"/>
  141. <Column id="cdid" type="STRING" size="256" sumtext="코드"/>
  142. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  143. <Column id="cntlcd1" type="STRING" size="256" sumtext="시작일자"/>
  144. <Column id="cntlcd2" type="STRING" size="256" sumtext="종료일자"/>
  145. <Column id="detldesc" type="STRING" size="256" sumtext="상세설명"/>
  146. <Column id="useyn" type="STRING" size="256" sumtext="구분1"/>
  147. <Column id="dispseq" type="STRING" size="256" sumtext="display순서"/>
  148. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  149. <Column id="orgcdid" type="STRING" size="256" sumtext="원코드"/>
  150. </ColumnInfo>
  151. </Dataset>
  152. <Dataset id="ds_hidden_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  153. <ColumnInfo>
  154. <Column id="count" type="STRING" size="256" sumtext="실행건수"/>
  155. </ColumnInfo>
  156. </Dataset>
  157. <Dataset id="ds_cmb_useyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  158. <ColumnInfo>
  159. <Column id="label" type="STRING" size="256"/>
  160. <Column id="value" type="STRING" size="256"/>
  161. </ColumnInfo>
  162. <Rows>
  163. <Row>
  164. <Col id="label">Yes</Col>
  165. <Col id="value">Y</Col>
  166. </Row>
  167. <Row>
  168. <Col id="label">No</Col>
  169. <Col id="value">N</Col>
  170. </Row>
  171. </Rows>
  172. </Dataset>
  173. </Objects>
  174. <Bind>
  175. <BindItem id="item0" compid="cmb_instcd" propid="value" datasetid="ds_send_reqdata" columnid="instcd"/>
  176. <BindItem id="item1" compid="cmb_useyn" propid="value" datasetid="ds_send_reqdata" columnid="useyn"/>
  177. </Bind>
  178. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  179. * System Name : 경대 의료정보시스템
  180. * Job Name : mis_dligclaznsmngtxp -> SMRPD31100
  181. * Creator : pjb
  182. * Make Date : 2018-01-02
  183. * Description :
  184. *---------------------------------------------------------------------------------------
  185. * Modify Date Modifier Modify Description
  186. *---------------------------------------------------------------------------------------
  187. * 2018-01-02 pjb TF->XP
  188. *
  189. *---------------------------------------------------------------------------------------
  190. ****************************************************************************************/
  191. //=======================================================================================
  192. // Lib Include
  193. //---------------------------------------------------------------------------------------
  194. include "com_commonxp::comm_main.xjs";
  195. include "mis_miscommonxp::MIS.xjs";
  196. //=======================================================================================
  197. // Global Form Variable
  198. //---------------------------------------------------------------------------------------
  199. var arErrorCode = new HashArray();
  200. //=======================================================================================
  201. // Function
  202. //---------------------------------------------------------------------------------------
  203. function readfunc(){ // 해당 조건에 대한 사용자 권한내역을 조회한다.
  204. misfGridInit(datagrid1);
  205. var oParam = {};
  206. oParam.id = "TRRPD31101";
  207. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  208. oParam.method = "reqGetSpcEvalItemList";
  209. oParam.inds = "req=ds_send_reqdata";
  210. oParam.outds = "ds_main_codeinfo_codelist=codelist";
  211. oParam.async = false;
  212. //oParam.callback = "cf_TRRPD31101";
  213. tranf_submit(oParam);
  214. ds_main_codeinfo_codelist.addColumn("iudflag", "string");
  215. // ds_main_codeinfo_codelist.enableevent = false;
  216. // ds_main_codeinfo_codelist.updatecontrol = false;
  217. // for(var i = 0; i < ds_main_codeinfo_codelist.rowcount; i++){
  218. // if(ds_main_codeinfo_codelist.getColumn(i, "cntlcd1") == "-"){
  219. // //ds_main_codeinfo_codelist.setColumn(i, "cntlcd1", "");
  220. // }
  221. // }
  222. // ds_main_codeinfo_codelist.updatecontrol = true;
  223. // ds_main_codeinfo_codelist.enableevent = true;
  224. }
  225. function datacheck(){
  226. var scdid1 = "";
  227. var scdid2 = "";
  228. for (var i = 0; i < ds_main_codeinfo_codelist.rowcount; i++){
  229. if (utlf_isNull(utlf_transNullToEmpty(ds_main_codeinfo_codelist.getColumn(i, "cdnm")))){
  230. sysf_messageBox("명칭은 필수 입력 항목입니다.", "E999", "");
  231. return false;
  232. }
  233. }
  234. return true;
  235. }
  236. function ExecData(){
  237. grdf_setStatusColumn(ds_main_codeinfo_codelist, "status");
  238. var update = grdf_getGridUpdateData(datagrid1);
  239. ds_senddata_execdata_codelist.assign(update);
  240. var oParam = {};
  241. oParam.id = "TXRPD31101";
  242. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  243. oParam.method = "reqExeSaveSpcEvalItemList";
  244. oParam.inds = "codelist=ds_senddata_execdata_codelist:A";
  245. oParam.outds = "ds_hidden_item=item";
  246. oParam.async = false;
  247. oParam.callback = "cf_TXRPD31101";
  248. tranf_submit(oParam);
  249. if (arErrorCode.pop("TXRPD31101") > -1){
  250. readfunc();
  251. }
  252. }
  253. function cf_TXRPD31101(sSvcId, nErrorCode, sErrorMsg) {
  254. arErrorCode.push(sSvcId, nErrorCode);
  255. }
  256. //=======================================================================================
  257. // Event
  258. //---------------------------------------------------------------------------------------
  259. /****************************************************************************************
  260. * Components : Form
  261. * Components ID : SMRPD31100
  262. * Event : oninit
  263. * Argument : 01.obj : Object Event has occurred
  264. * : 02.e : Event Object
  265. * Description : 화면 처음 초기화시
  266. ****************************************************************************************/
  267. function SMRPD31100_oninit(obj:Form, e:InitEventInfo)
  268. {
  269. frmf_initForm(obj); //폼 초기화
  270. }
  271. /****************************************************************************************
  272. * Components : Form
  273. * Components ID : SMRPD31100
  274. * Event : onload
  275. * Argument : 01.obj : Object Event has occurred
  276. * : 02.e : Event Object
  277. * Description : 화면 로딩 완료시
  278. ****************************************************************************************/
  279. function SMRPD31100_onload(obj:Form, e:LoadEventInfo)
  280. {
  281. grdf_setRowTypeIcon(datagrid1, 0);
  282. grdf_setGridSort(datagrid1);
  283. //전문의평가 관리권한 확인용 : 관리권한이 있는 자만 사용 가능
  284. var oParam = {};
  285. oParam.id = "TRRPD31102";
  286. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  287. oParam.method = "reqGetSpcEvalMngtPrvg";
  288. oParam.inds = "req=ds_send";
  289. oParam.outds = "ds_init_prvg=codelist";
  290. oParam.async = false;
  291. oParam.callback = "cf_TRRPD31102";
  292. tranf_submit(oParam);
  293. if (arErrorCode.pop("TRRPD31102") > -1) {
  294. if(ds_init_prvg.getColumn(0, "cnt") != "1") {
  295. sysf_messageBox("프로그램 사용권한이 없습니다. 관리자에게 문의바랍니다.", "E999", "");
  296. return;
  297. }
  298. }
  299. misfComboInstCdListMulti("cmb_instcd", utlf_getCurrentDate(),"","N");
  300. cmb_instcd.value = sysf_getUserInfo("dutplceinstcd");
  301. cmb_useyn.value = "Y";
  302. btn_search.click();
  303. }
  304. function cf_TRRPD31102(sSvcId, nErrorCode, sErrorMsg) {
  305. arErrorCode.push(sSvcId, nErrorCode);
  306. }
  307. function btn_search_onclick(obj:Button, e:ClickEventInfo)
  308. {
  309. readfunc();
  310. }
  311. function cmb_instcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  312. {
  313. misfGridInit(datagrid1);
  314. }
  315. function cmb_useyn_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  316. {
  317. readfunc();
  318. }
  319. function btn_grdadd_onclick(obj:Button, e:ClickEventInfo)
  320. {
  321. ds_main_codeinfo_codelist.addRow();
  322. var irow = ds_main_codeinfo_codelist.rowposition;
  323. ds_main_codeinfo_codelist.setColumn(irow, "instcd", cmb_instcd.value);
  324. ds_main_codeinfo_codelist.setColumn(irow, "useyn", "Y");
  325. ds_main_codeinfo_codelist.rowposition = irow;
  326. datagrid1.setCellPos(datagrid1.getBindCellIndex("body", "cdnm"));
  327. datagrid1.setFocus();
  328. datagrid1.showEditor();
  329. }
  330. function btn_grddel_onclick(obj:Button, e:ClickEventInfo)
  331. {
  332. /*
  333. - 0 : read : 조회시
  334. - 1 : insert : 행추가시
  335. - 2 : update : 조회한 것을 수정시
  336. - 3 : insert & new : 행추가한 것을 수정시
  337. - 4 : delete
  338. - 5 : delete & insert
  339. - 6 : delete & update
  340. */
  341. // var status = datagrid1.rowStatus(datagrid1.row) ;
  342. //
  343. // if(status == 0) {
  344. // datagrid1.addStatus(datagrid1.row, "delete");
  345. // }else if(status == 1) {
  346. // datagrid1.deleteRow(datagrid1.row);
  347. // }else if(status == 2) {
  348. // datagrid1.addStatus(datagrid1.row, "delete");
  349. // }else if(status == 3) {
  350. // datagrid1.deleteRow(datagrid1.row);
  351. // }else if(status == 4) {
  352. // datagrid1.removeStatus(datagrid1.row, "delete");
  353. // }else if(status == 5) { // insert된 data는 삭제시 위에서 addStatus("delete")하지 않고, 바로 deleteRow했기 때문에 5의 경우는 발생하지 않음.
  354. // datagrid1.removeStatus(datagrid1.row, "delete");
  355. // }else if(status == 6) {
  356. // datagrid1.removeStatus(datagrid1.row, "delete");
  357. // }
  358. /*
  359. Row Type Value Description
  360. Dataset.ROWTYPE_EMPTY 0 존재하지 않는 행의 상태
  361. Dataset.ROWTYPE_NORMAL 1 초기 행의 상태
  362. Dataset.ROWTYPE_INSERT 2 추가된 행의 상태
  363. Dataset.ROWTYPE_UPDATE 4 수정된 행의 상태
  364. Dataset.ROWTYPE_DELETE 8 삭제된 행의 상태
  365. Dataset.ROWTYPE_GROUP 16 그룹 정보 행의 상태
  366. */
  367. var status = ds_main_codeinfo_codelist.getRowType(ds_main_codeinfo_codelist.rowposition);
  368. ds_main_codeinfo_codelist.enableevent = false;
  369. ds_main_codeinfo_codelist.updatecontrol = false;
  370. if(status == 1) {
  371. ds_main_codeinfo_codelist.setRowType(ds_main_codeinfo_codelist.rowposition, 8);
  372. } else if(status == 2) {
  373. ds_main_codeinfo_codelist.deleteRow(ds_main_codeinfo_codelist.rowposition);
  374. } else if(status == 4) {
  375. ds_main_codeinfo_codelist.setRowType(ds_main_codeinfo_codelist.rowposition, 8);
  376. } else if(status == 8) {
  377. if(ds_main_codeinfo_codelist.getColumn(ds_main_codeinfo_codelist.rowposition, "iudflag") == "u") {
  378. ds_main_codeinfo_codelist.setRowType(ds_main_codeinfo_codelist.rowposition, 4);
  379. } else {
  380. ds_main_codeinfo_codelist.setRowType(ds_main_codeinfo_codelist.rowposition, 1);
  381. }
  382. }
  383. ds_main_codeinfo_codelist.updatecontrol = true;
  384. ds_main_codeinfo_codelist.enableevent = true;
  385. }
  386. function ds_main_codeinfo_codelist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  387. {
  388. obj.setColumn(e.row, "iudflag", "u");
  389. }
  390. function group4_btn_save_onclick(obj:Button, e:ClickEventInfo)
  391. {
  392. if (datacheck() == false){
  393. return;
  394. }
  395. ExecData();
  396. }
  397. ]]></Script>
  398. </Form>
  399. </FDL>