SPMRJ00700_환자교육서식출력물.xfdl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMRJ00700" position="absolute 0 0 1256 805" titletext="환자교육서식 출력물" oninit="SPMRJ00700_oninit" onload="SPMRJ00700_onload" onclose="SPMRJ00700_onclose">
  5. <Layouts>
  6. <Layout>
  7. <Div position="absolute 155 58 1130 89" id="grp_btn">
  8. <Layouts>
  9. <Layout>
  10. <Shape position="absolute 179 0 695 28" id="roundrect2" type="roundrectangle" anchor="default"/>
  11. <Button position="absolute 733 8 789 30" id="btn_upd" class="btn4" taborder="13" text="수정" anchor="default" onclick="grp_btn_btn_upd_onclick"/>
  12. <Edit position="absolute 270 5 680 24" id="opt_imgnm" class="output_search" taborder="3" anchor="default"/>
  13. <Button position="absolute 115 5 171 27" id="btn_save1" class="btn4" text="저장" anchor="default" onclick="grp_btn_btn_save1_onclick"/>
  14. <Button position="absolute 61 6 114 27" id="btn_grddel" class="btn2" text="행삭제" anchor="default" onclick="grp_btn_btn_grddel_onclick"/>
  15. <Button position="absolute 847 8 903 30" id="btn_save2" class="btn4" text="저장" anchor="default" onclick="grp_btn_btn_save2_onclick"/>
  16. <Button position="absolute 7 6 60 27" id="btn_grdadd" class="btn2" text="행추가" anchor="default" onclick="grp_btn_btn_grdadd_onclick"/>
  17. <Button position="absolute 904 8 972 30" id="btn_clear" class="btn4" text="초기화" anchor="default" onclick="grp_btn_btn_clear_onclick"/>
  18. <Button position="absolute 790 8 846 30" id="btn_apply" class="btn4" taborder="13" text="적용" anchor="default" onclick="grp_btn_btn_apply_onclick"/>
  19. <Button position="absolute 185 3 265 25" id="btn_fileopen" class="btn1" text="파일열기" anchor="default" onclick="grp_btn_btn_fileopen_onclick"/>
  20. </Layout>
  21. </Layouts>
  22. </Div>
  23. <Static text="환자교육서식 출력물" position="absolute 0 0 168 26" id="caption2" class="tit_1"/>
  24. <Shape position="absolute 2 28 330 58" id="roundrect1" type="roundrectangle"/>
  25. <Shape position="absolute 259 33 265 55" linetype="vertical" id="line13"/>
  26. <Static text="교육서식명 :" position="absolute 10 33 109 50" id="caption1" class="search_name"/>
  27. <Static text="환자교육서식" position="absolute 5 65 144 82" id="caption11" class="tit_2"/>
  28. <Button position="absolute 270 33 326 55" id="btn_sea" class="btn1" text="조회" onclick="btn_sea_onclick"/>
  29. <Button position="absolute 1128 66 1184 88" id="btn_prt" class="btn4" text="출력" onclick="btn_prt_onclick"/>
  30. <Edit position="absolute 115 33 255 52" id="ipt_eduprntnm" class="input_search" onkeydown="ipt_eduprntnm_onkeydown"/>
  31. <Grid position="absolute 2 90 330 762" id="grd_tmplcodelist" binddataset="ds_grd_tmplcodelist" oncellclick="grd_tmplcodelist_oncellclick">
  32. <Formats>
  33. <Format id="default">
  34. <Columns>
  35. <Column size="25"/>
  36. <Column size="37"/>
  37. <Column size="0"/>
  38. <Column size="229"/>
  39. <Column size="43"/>
  40. </Columns>
  41. <Rows>
  42. <Row size="24" band="head"/>
  43. <Row size="24"/>
  44. </Rows>
  45. <Band id="head">
  46. <Cell/>
  47. <Cell col="1" text="순번"/>
  48. <Cell col="2" text="caption1"/>
  49. <Cell col="3" text="교육서식"/>
  50. <Cell col="4" text="파일"/>
  51. </Band>
  52. <Band id="body">
  53. <Cell celltype="head"/>
  54. <Cell col="1" displaytype="number" edittype="text" text="bind:sortno" mask="#,###"/>
  55. <Cell col="2" text="bind:prntcd"/>
  56. <Cell col="3" displaytype="text" edittype="text" text="bind:prntnm"/>
  57. <Cell col="4" style="backgroundimage:EXPR(fSetRowStyle(currow));" text="bind:cntsyn"/>
  58. </Band>
  59. </Format>
  60. </Formats>
  61. </Grid>
  62. <ActiveX position="absolute 335 90 1184 765" id="rtfviewer" progid="{a4bf7e18-5f67-4868-a726-eed421632374}"/>
  63. <Static text="MS-Word를 이용해서 문서를 작성하신 후에 문서형식을 RTF 파일로 변환하여 올려주십시오.." position="absolute 340 38 925 58" id="cap_info"/>
  64. <Shape position="absolute 3 78 327 79" linetype="vertical" id="line2" class="line_1"/>
  65. </Layout>
  66. </Layouts>
  67. <Objects>
  68. <Dataset id="ds_grd_tmplcodelist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  69. <ColumnInfo>
  70. <Column id="m" type="STRING" size="256" sumtext="실행구분"/>
  71. <Column id="sortno" type="STRING" size="256" sumtext="순번"/>
  72. <Column id="prntcd" type="STRING" size="256" sumtext="교육서식출력물코드"/>
  73. <Column id="prntnm" type="STRING" size="256" sumtext="교육서식출력물명"/>
  74. <Column id="prntcnts" type="STRING" size="256" sumtext="교육서식출력물내용"/>
  75. <Column id="cntsyn" type="STRING" size="256" sumtext="교육서식유무"/>
  76. <Column id="prntflag" type="STRING" size="256" sumtext="교육서식flg"/>
  77. </ColumnInfo>
  78. </Dataset>
  79. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  80. <ColumnInfo>
  81. <Column id="cdgrupid" type="STRING" size="256" sumtext="코드그룹ID"/>
  82. <Column id="srchdd" type="STRING" size="256" sumtext="조회기준일자"/>
  83. <Column id="flag" type="STRING" size="256" sumtext="조회기준일자"/>
  84. <Column id="allflag" type="STRING" size="256" sumtext="모두조회여부"/>
  85. <Column id="prntflag" type="STRING" size="256" sumtext="교육서식명"/>
  86. <Column id="prntnm" type="STRING" size="256" sumtext="교육서식flg"/>
  87. </ColumnInfo>
  88. <Rows>
  89. <Row>
  90. <Col id="prntflag">01</Col>
  91. <Col id="prntnm"></Col>
  92. </Row>
  93. </Rows>
  94. </Dataset>
  95. <Dataset id="ds_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  96. <ColumnInfo>
  97. <Column id="cdgrupid" type="STRING" size="256" sumtext="코드그룹ID"/>
  98. <Column id="cdid" type="STRING" size="256" sumtext="코드ID"/>
  99. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  100. <Column id="grupdetldesc" type="STRING" size="256" sumtext="코드그룹상세설명"/>
  101. <Column id="supcdid" type="STRING" size="256" sumtext="상위코드ID"/>
  102. <Column id="sortseq" type="STRING" size="256" sumtext="상위코드ID"/>
  103. <Column id="valifromdd" type="STRING" size="256" sumtext="시작일자"/>
  104. <Column id="valitodd" type="STRING" size="256" sumtext="시작일자"/>
  105. </ColumnInfo>
  106. <Rows>
  107. <Row/>
  108. </Rows>
  109. </Dataset>
  110. <Dataset id="ds_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  111. <ColumnInfo>
  112. <Column id="count" type="STRING" size="256"/>
  113. <Column id="dutunitcd" type="STRING" size="256"/>
  114. </ColumnInfo>
  115. <Rows>
  116. <Row/>
  117. </Rows>
  118. </Dataset>
  119. <Dataset id="ds_main_tmplcode" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  120. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  121. <ColumnInfo>
  122. <Column id="m" type="STRING" size="256" sumtext="실행구분"/>
  123. <Column id="sortno" type="STRING" size="256" sumtext="순번"/>
  124. <Column id="prntcd" type="STRING" size="256" sumtext="교육서식출력물코드"/>
  125. <Column id="prntnm" type="STRING" size="256" sumtext="교육서식출력물명"/>
  126. <Column id="prntcnts" type="STRING" size="256" sumtext="교육서식출력물내용"/>
  127. <Column id="cntsyn" type="STRING" size="256" sumtext="교육서식유무"/>
  128. <Column id="prntflag" type="STRING" size="256" sumtext="교육서식flg"/>
  129. </ColumnInfo>
  130. </Dataset>
  131. <FileDialog id="FileDialog00" filter="RTF Files(*.rtf)|*.rtf" filterindex="0" defaultextension="false"/>
  132. <Dataset id="ds_file" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  133. </Objects>
  134. <Bind>
  135. <BindItem id="item0" compid="ipt_eduprntnm" propid="value" datasetid="ds_send" columnid="prntnm"/>
  136. </Bind>
  137. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  138. * System Name :
  139. * Job Name :
  140. * Creator :
  141. * Make Date : 2015-01-14
  142. * Description :
  143. *---------------------------------------------------------------------------------------
  144. * Modify Date Modifier Modify Description
  145. *---------------------------------------------------------------------------------------
  146. * 2015-01-14 Live Converter TF->XP
  147. *
  148. *---------------------------------------------------------------------------------------
  149. ****************************************************************************************/
  150. include "com_commonxp::comm_main.xjs";
  151. include "com_basiccodexp::ZBC001.xjs";
  152. include "emr_prcpmngtxp::MMO001.xjs";
  153. //include "ast_examcurexp::AEZ0001.xjs";
  154. function SPMRJ00700_oninit(obj:Form, e:InitEventInfo)
  155. {
  156. frmf_initForm(obj);
  157. }
  158. function fGetNursHardCdInfo(pCode, pDate){
  159. ds_send.setColumn(0,"cdgrupid",pCode);
  160. ds_send.setColumn(0,"srchdd",pDate);
  161. var oParam = {};
  162. oParam.id = "TRMNW00001";
  163. oParam.service = "wardcareapp.WardCareMngt";
  164. oParam.method = "reqGetNursHardCdInfo";
  165. oParam.inds = "req=ds_send";
  166. oParam.outds = "ds_codelist=codelist";
  167. oParam.async = false;
  168. //oParam.callback = "cf_TRMNW00001";
  169. tranf_submit(oParam);
  170. }
  171. function SPMRJ00700_onload(obj:Form, e:LoadEventInfo)
  172. {
  173. grdf_setRowTypeIcon(grd_tmplcodelist,0);
  174. var pCode = "'201'";
  175. fGetNursHardCdInfo(pCode, utlf_getCurrentDate());
  176. grp_btn.visible = false;
  177. cap_info.visible = false;
  178. var cdid = "";
  179. ds_temp.setColumn(0,"dutunitcd", sysf_getUserInfo("userid"))
  180. for(i=0; i<= ds_codelist.rowcount; i++){
  181. cdid = ds_codelist.getColumn(i,"cdid");
  182. if(sysf_getUserInfo("userid") == cdid) {
  183. grp_btn.visible = true;
  184. cap_info.visible = true;
  185. break;
  186. }
  187. }
  188. fSearch();
  189. }
  190. function fSearch() {
  191. var oParam = {};
  192. oParam.id = "TRMRJ00701";
  193. oParam.service = "jcimngtapp.MrjmEduPrnt";
  194. oParam.method = "reqGetEduPrntList";
  195. oParam.inds = "req=ds_send";
  196. oParam.outds = "ds_grd_tmplcodelist=item";
  197. oParam.async = false;
  198. //oParam.callback = "cf_TRMRJ00701";
  199. tranf_submit(oParam);
  200. }
  201. function fSetRowStyle (currow) {
  202. var prntcnts = ds_grd_tmplcodelist.getColumn(currow, "prntcnts");
  203. var rslt = "";
  204. if(!utlf_isNull(prntcnts)) {
  205. rslt = "URL('IMG::emr/MR/compare_page.png')";
  206. } else {
  207. rslt = "";
  208. }
  209. return rslt;
  210. }
  211. function grd_tmplcodelist_oncellclick(obj:Grid, e:GridClickEventInfo)
  212. {
  213. var rtfv = ds_grd_tmplcodelist.getColumn(ds_grd_tmplcodelist.rowposition,"prntcnts");
  214. if(!utlf_isNull(rtfv)) {
  215. rtfv = rtfv.replace(/\r\n/g, "\n");
  216. rtfviewer.TextRtf = rtfv;
  217. rtfviewer.ReadOnly = "true";
  218. }
  219. }
  220. function btn_prt_onclick(obj:Button, e:ClickEventInfo)
  221. {
  222. rtfviewer.SaveRtfFile(); // 현재 내용을 파일에 저장
  223. rtfviewer.Print();
  224. }
  225. function grp_btn_btn_clear_onclick(obj:Button, e:ClickEventInfo)
  226. {
  227. rtfviewer.Clear();
  228. }
  229. function grp_btn_btn_save2_onclick(obj:Button, e:ClickEventInfo)
  230. {
  231. if (ds_grd_tmplcodelist.row < -1) {
  232. sysf_messageBox("서식을 먼저","C002");
  233. return;
  234. }
  235. var eduprntcd = ds_grd_tmplcodelist.getColumn(ds_grd_tmplcodelist.rowposition, "prntcd");
  236. if(utlf_isNull(eduprntcd)) {
  237. sysf_messageBox("서식 저장 ","E012");
  238. return;
  239. }
  240. var filenm = ds_grd_tmplcodelist.getColumn(ds_grd_tmplcodelist.rowposition, "prntnm");
  241. var msg = sysf_messageBox(filenm+" 서식으로", "Q002");
  242. if(msg != 6) {
  243. return;
  244. }
  245. var str = rtfviewer.TextRtf;
  246. ds_grd_tmplcodelist.setColumn(ds_grd_tmplcodelist.rowposition,"prntcnts",str);
  247. ds_send_reqdata.clearData();
  248. var nrow = ds_send_reqdata.addRow();
  249. ds_send_reqdata.copyRow(nrow,ds_grd_tmplcodelist,ds_grd_tmplcodelist.rowposition);
  250. ds_send_reqdata.addColumn("prntflag", "string");
  251. ds_send_reqdata.setColumn(0, "prntflag", ds_send.getColumn(0, "prntflag"));
  252. dsf_createDs("ds_temp");
  253. var oParam = {};
  254. oParam.id = "TXMRJ00702";
  255. oParam.service = "jcimngtapp.MrjmEduPrnt";
  256. oParam.method = "reqSetEduPrntCntsInfo";
  257. oParam.inds = "req=ds_send_reqdata";
  258. oParam.outds = "ds_temp=item";
  259. oParam.async = false;
  260. //oParam.callback = "cf_TXMRJ00702";
  261. tranf_submit(oParam);
  262. ds_send_reqdata.clearData();
  263. ds_send_reqdata.addRow();
  264. fSearch();
  265. }
  266. function grp_btn_btn_apply_onclick(obj:Button, e:ClickEventInfo)
  267. {
  268. rtfviewer.Reload();
  269. }
  270. function grp_btn_btn_upd_onclick(obj:Button, e:ClickEventInfo)
  271. {
  272. var filename = rtfviewer.GetFileName();
  273. rtfviewer.ModifyWithWord(filename);
  274. }
  275. function fOpenRtfFileDialog() {
  276. var file = FileDialog00.open("FileOpen", FileDialog.LOAD); // 단일 파일 선택
  277. return file;
  278. }
  279. function grp_btn_btn_fileopen_onclick(obj:Button, e:ClickEventInfo)
  280. {
  281. if (ds_grd_tmplcodelist.rowposition < -1) {
  282. messageBox("서식을 먼저","C002");
  283. return;
  284. }
  285. var file = fOpenRtfFileDialog();
  286. var filepath = file.path + file.filename;
  287. if (utlf_isNull(filepath)) {
  288. return;
  289. }
  290. // 선택한 파일을 RTF viewer로 보여준다.
  291. rtfviewer.OpenRtfFile(filepath);
  292. rtfviewer.ReadOnly = "true";
  293. grp_btn.opt_imgnm.value = fGetFileName(filepath);
  294. }
  295. function fGetFileName(path) {
  296. var lastIdx = path.lastIndexOf("\\");
  297. if (lastIdx >= 0) {
  298. return path.substr(lastIdx+1);
  299. } else {
  300. return path;
  301. }
  302. }
  303. function grp_btn_btn_save1_onclick(obj:Button, e:ClickEventInfo)
  304. {
  305. var oDsUpdate = grdf_getGridUpdateData(grd_tmplcodelist);
  306. var nullCnt = ds_grd_tmplcodelist.getCaseCount("utlf_isNull(sortno)");
  307. if (nullCnt > 0){
  308. sysf_messageBox("순번은 ", "I003");
  309. return false;
  310. }
  311. if( oDsUpdate.rowcount == 0 ){
  312. sysf_messageBox("업데이트 정보가 ", "I004");
  313. } else {
  314. grdf_setStatusColumn(oDsUpdate,"m");
  315. ds_send_reqdata.copyData(oDsUpdate, true);
  316. ds_send_reqdata.addColumn("prntflag", "string");
  317. ds_send_reqdata.setColumn(0, "prntflag", ds_send.getColumn(0, "prntflag"));
  318. dsf_createDs("ds_temp");
  319. var oParam = {};
  320. oParam.id = "TXMRJ00701";
  321. oParam.service = "jcimngtapp.MrjmEduPrnt";
  322. oParam.method = "reqExtEduPrntListInfo";
  323. oParam.inds = "req=ds_send_reqdata";
  324. oParam.outds = "ds_temp=item";
  325. oParam.async = false;
  326. //oParam.callback = "cf_TXMRJ00701";
  327. tranf_submit(oParam);
  328. ds_send_reqdata.clearData();
  329. ds_send_reqdata.addRow();
  330. fSearch();
  331. }
  332. }
  333. function grp_btn_btn_grddel_onclick(obj:Button, e:ClickEventInfo)
  334. {
  335. //ds_grd_tmplcodelist.deleteSelectedRows();
  336. grdf_setStatus(grd_tmplcodelist, "D", grdf_getSelectedRows(grd_tmplcodelist));
  337. }
  338. function grp_btn_btn_grdadd_onclick(obj:Button, e:ClickEventInfo)
  339. {
  340. ds_grd_tmplcodelist.addRow();
  341. }
  342. function btn_sea_onclick(obj:Button, e:ClickEventInfo)
  343. {
  344. rtfviewer.Clear();
  345. grp_btn.opt_imgnm.value = "";
  346. fSearch();
  347. }
  348. function ipt_eduprntnm_onkeydown(obj:Edit, e:KeyEventInfo)
  349. {
  350. if(e.keycode == 13) {
  351. obj.setFocus();
  352. obj.updateToDataset();
  353. var ev = new ClickEventInfo;
  354. frmf_inputEnterKey("btn_sea", "onclick", ev );
  355. }
  356. }
  357. function SPMRJ00700_onclose(obj:Form, e:CloseEventInfo)
  358. {
  359. rtfviewer.Clear();
  360. }
  361. ]]></Script>
  362. </Form>
  363. </FDL>