SMMNF05200_가정간호물품사용내역.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>가정간호 물품사용 내역</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <cond>
  11. <sumfromdd/>
  12. <sumtodd/>
  13. <prcpattrflag/>
  14. </cond>
  15. <goodinfo>
  16. <goodlist>
  17. <prcpcd/>
  18. <prcpnm/>
  19. <drugpackunit/>
  20. <totprcpcnt/>
  21. <hospprcpcnt/>
  22. </goodlist>
  23. </goodinfo>
  24. </main>
  25. <send>
  26. <reqdata/>
  27. </send>
  28. <init>
  29. <churchlist>
  30. <churchcd/>
  31. <churchnm/>
  32. </churchlist>
  33. </init>
  34. <hidden/>
  35. </root>
  36. </instance>
  37. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  38. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  39. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  40. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  41. <script type="javascript" src="../../../emr/commonweb/js/EMRCommon.js"/>
  42. <script type="javascript" ev:event="xforms-ready">
  43. <![CDATA[
  44. //초기화
  45. fInit();
  46. ]]>
  47. </script>
  48. <submission id="TRMNF05201" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/init/churchlist"/>
  49. <submission id="TRMNF05202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/goodinfo"/>
  50. </model>
  51. <script type="javascript">
  52. <![CDATA[
  53. //화면 초기 설정
  54. function fInit(){
  55. model.setValue("/root/main/cond/sumfromdd" , getCurrentDate() ); // 시작일자 (현재일자)
  56. model.setValue("/root/main/cond/sumtodd" , getCurrentDate() ); // 종료일자 (현재일자)
  57. model.setValue("/root/main/cond/prcpattrflag", "3" ); // 처방속성구분 ("3": 전체)
  58. //* 그리드 초기화 *//
  59. model.removeNodeset("/root/main/goodinfo"); // 물품사용내역 초기화
  60. model.removeNodeset("/root/init/churchlist"); // 부서명 초기화
  61. submit("TRMNF05201");
  62. var dataCnt = getNodesetCnt(model, "/root/init/churchlist") ;
  63. grd_goodlist.caption = "처방코드^처방명^단위^계^병원";
  64. var Cnt = 0;
  65. for(var i=0 ; i < dataCnt; i++){
  66. Cnt = i+1 ;
  67. grd_goodlist.addColumn("ref:col"+ i + "; type:output;");
  68. grd_goodlist.colwidth(i+5) = 70;
  69. //grd_goodlist.valuematrix(0, i) = model.getValue("/root/init/churchlist[" + i +"]/churchnm");
  70. grd_goodlist.caption = grd_goodlist.caption + "^" + model.getValue("/root/init/churchlist[" + Cnt +"]/churchnm");
  71. }
  72. grd_goodlist.rebuild();
  73. model.refresh();
  74. }
  75. //물품 사용 내역 조회
  76. function fSrchgoodInfo(){
  77. model.copyNode("/root/send/reqdata","/root/main/cond");
  78. submit("TRMNF05202");
  79. }
  80. //환자별 집계현황조회
  81. function fSrchSumPatInfo(){
  82. iRow = grd_sumprcpinfo.row;
  83. iCol = grd_sumprcpinfo.col;
  84. model.removeNodeset("/root/main/sumpatlist");
  85. model.makeValue("/root/main/sumpatlist/prcpnm", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/prcpnm")); // 처방명
  86. model.makeValue("/root/main/sumpatlist/prcpcd", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/prcpcd")); // 처방코드
  87. model.removenode("/root/send");
  88. model.makeNode("/root/send/reqdata");
  89. model.makeValue("/root/send/reqdata/sumfromdd" , model.getValue("/root/main/cond/sumfromdd") ); // 집계시작일자
  90. model.makeValue("/root/send/reqdata/sumtodt" , model.getValue("/root/main/cond/sumtodd") ); // 집계종료일자
  91. model.makeValue("/root/send/reqdata/prcpattrflag" , model.getValue("/root/main/cond/prcpattrflag")); // 처방속성구분
  92. model.makeValue("/root/send/reqdata/deliveflag" , model.getValue("/root/main/cond/deliveflag") ); // 불출구분
  93. model.makeValue("/root/send/reqdata/prcpcd" , model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/prcpcd")); // 처방코드
  94. model.makeValue("/root/send/reqdata/drugmthdspccd", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/drugmthdspccd")); // 재료규격ID
  95. submit("TRMNF05002");
  96. grd_prcppotlist.colstyle(7, "data", "color") = "black"; // 입력자 글자색상 초기화(검정)
  97. for(var i=1; i<grd_prcppotlist.rows; i++){
  98. if(model.getValue("/root/main/sumpatlist/sumpatinfo["+i+"]/prcpauthflag") == "0"){ // 입력자가 의사일 경우 글자색상 지정(보라색)
  99. grd_prcppotlist.cellStyle("color", i, 7, i, 7) = "#cc0099";
  100. }
  101. }
  102. }
  103. //출력기능
  104. function fExecPrint(){
  105. model.removenode("/root/send");
  106. model.makeNode("/root/send/cond");
  107. model.makeNode("/root/send/goodinfo");
  108. model.makeNode("/root/send/init");
  109. model.copyNode("/root/send/cond" , "/root/main/cond");
  110. model.copyNode("/root/send/goodinfo", "/root/main/goodinfo");
  111. model.copyNode("/root/send/init" , "/root/init");
  112. exeReportPreview("RPMNF05200", "XMLSTR");
  113. }
  114. /************************************************************************************************************************/
  115. /**
  116. * @group :
  117. * @ver :
  118. * @by : 김기용
  119. * @---------------------------------------------------
  120. * @type : function
  121. * @access : public
  122. * @desc : 그리드 별 엑셀저장
  123. * @param :
  124. * @return :
  125. * @---------------------------------------------------
  126. */
  127. function saveExcelAll() {
  128. var paramLen = saveExcelAll.arguments.length;
  129. // 마지막 인자가 Boolean일 경우 처리
  130. var extendsCaptionBool;
  131. if( typeof(saveExcelAll.arguments[paramLen - 1]) == "boolean" ) {
  132. extendsCaptionBool = saveExcelAll.arguments[paramLen - 1];
  133. paramLen = paramLen - 1;
  134. }
  135. else{
  136. extendsCaptionBool = false;
  137. }
  138. var tmpParamArray = new Array();
  139. if( extendsCaptionBool ) {
  140. for( var i = 0; i < paramLen; i++ ) {
  141. tmpParamArray[i] = saveExcelAll.arguments[i];
  142. }
  143. saveExcelAllWithCaption(tmpParamArray);
  144. }
  145. else{
  146. for( var i = 0; i < paramLen; i++ ) {
  147. tmpParamArray[i] = saveExcelAll.arguments[i];
  148. }
  149. saveExcelAllWithNotCaption(tmpParamArray);
  150. }
  151. }
  152. function saveExcelAllWithCaption( sheetArray ) {
  153. // alert(gridCaptionArray);
  154. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  155. if( fileName == "" )
  156. return;
  157. // var sheetArray = new Array("grd_bizprescondstats|업무현황", "grd_patprescondstats|환자현황", "grd_hdstatsinfo|혈액투석현황", "grd_pdstatsinfo|복막투석현황", "grd_pdbizstatsinfo|복막투석업무현황");
  158. var sheetArrayLen = sheetArray.length;
  159. var gridId;
  160. var gridObj;
  161. for( var i = 0; i < sheetArray.length; i++ ) {
  162. gridId = sheetArray[i].split("|")[0];
  163. gridObj = document.all.item(gridId);
  164. // saveText() 함수는 Caption저장이 불가능 하여 SaveExcel()을 이용한다.
  165. gridObj.saveExcel("C:\\Temp\\tmp_TFExcel_" + i +".xls");
  166. }
  167. // excel application 실행함
  168. tfexcel.launchnewinstance(0);
  169. //실행된 excel application에서 새로운 workbook을 생성
  170. tfexcel.createworkbook();
  171. tfexcel.activatesheet(1);
  172. var sheetName;
  173. var nResult;
  174. for( var i = 0; i < sheetArrayLen; i++ )
  175. {
  176. sheetName = sheetArray[i].split("|")[1];
  177. if( i > 1 ) {
  178. nResult = tfexcel.activatesheet(i+1);
  179. tfexcel.sheetname(i+1) = sheetName;
  180. }
  181. else {
  182. nResult = tfexcel.addsheet(i+1, sheetName);
  183. }
  184. if( nResult < 0 ) {
  185. messageBox(sheetName + " 저장을", "E009");
  186. // alert(sheetName + " 오류발생");
  187. return;
  188. }
  189. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel_" + i + ".xls");
  190. }
  191. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel.xls");
  192. //workbook을 저장.
  193. tfexcel.save(fileName);
  194. //excel application을 종료. excel application 생성 후 반드시 close해야함.
  195. tfexcel.close();
  196. var fso = new ActiveXObject("Scripting.FileSystemObject");
  197. for( var i = 0; i < sheetArrayLen; i++ ) {
  198. fso.DeleteFile("C:\\Temp\\tmp_TFExcel_" + i + ".xls");
  199. }
  200. var rmsg = messageBox("저장된 Excel을", "Q004");
  201. // var rmsg = window.alert("저장된 Excel을 실행하시겠습니까?", "알림", 36);
  202. if( rmsg == 6 )
  203. window.exec("excel.exe", '\"' + fileName + '\"');
  204. }
  205. function saveExcelAllWithNotCaption( sheetArray ) {
  206. // alert(gridCaptionArray);
  207. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  208. if( fileName == "" )
  209. return;
  210. // excel application 실행함
  211. tfexcel.launchnewinstance(0);
  212. // 실행된 excel application에서 새로운 workbook을 생성
  213. tfexcel.createworkbook();
  214. // var sheetArray = new Array("grd_bizprescondstats|업무현황", "grd_patprescondstats|환자현황", "grd_hdstatsinfo|혈액투석현황", "grd_pdstatsinfo|복막투석현황", "grd_pdbizstatsinfo|복막투석업무현황");
  215. var sheetArrayLen = sheetArray.length;
  216. var gridId;
  217. var gridObj;
  218. var sheetName;
  219. var nResult;
  220. for( var i = 0; i < sheetArrayLen; i++ ) {
  221. gridId = sheetArray[i].split("|")[0];
  222. gridObj = document.all.item(gridId);
  223. sheetName = sheetArray[i].split("|")[1];
  224. if( i > 1 ) {
  225. nResult = tfexcel.activatesheet(i+1);
  226. tfexcel.sheetname(i+1) = sheetName;
  227. }
  228. else {
  229. nResult = tfexcel.addsheet(i+1, sheetName);
  230. }
  231. if( nResult < 0 ) {
  232. messageBox(sheetName + " 저장을", "E009");
  233. // alert(sheetName + " 오류발생");
  234. return;
  235. }
  236. gridObj.saveText("C:\\Temp\\tmp_TFExcel.csv", "\n", ",", '\:', true);
  237. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel.csv");
  238. }
  239. //workbook을 저장.
  240. tfexcel.save(fileName);
  241. //excel application을 종료. excel application 생성 후 반드시 close해야함.
  242. tfexcel.close();
  243. // CSV File 삭제
  244. var fso = new ActiveXObject("Scripting.FileSystemObject");
  245. fso.DeleteFile("C:\\Temp\\tmp_TFExcel.csv");
  246. var rmsg = messageBox("저장된 Excel을", "Q004");
  247. // var rmsg = window.alert("저장된 Excel을 실행하시겠습니까?", "알림", 36);
  248. if( rmsg == 6 )
  249. window.exec("excel.exe", '\"' + fileName + '\"');
  250. }
  251. function createTFExcel(tfExcelID, parentObj) {
  252. if( parentObj == null )
  253. parentObj = body;
  254. var tfExcelObj = parentObj.createChild("xforms:object", "id:" + tfExcelID + "; clsid:{fe8d1001-6a9d-424d-ae2a-301493bb12da}; left:100px; top:100px; width:100px; height:100px; ");
  255. return tfExcelObj;
  256. }
  257. /************************************************************************************************************************/
  258. ]]>
  259. </script>
  260. </xhtml:head>
  261. <xhtml:body guideline="1,1168;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  262. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  263. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:220px; height:13px; ">가정간호 물품사용 내역</caption>
  264. </group>
  265. <group id="grp_btn" scroll="auto" style="left:0px; top:757px; width:1195px; height:27px; "/>
  266. <group id="group5" scroll="auto" style="left:0px; top:13px; width:1195px; height:742px; ">
  267. <group id="grp_sea" style="left:0px; top:10px; width:1195px; height:60px; vertical-align:top; ">
  268. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:50px; background-color:#fffbf2; border-color:#ffd799; "/>
  269. <button id="button1" class="btn1_letter2" style="left:1014px; top:10px; width:56px; height:22px; ">
  270. <caption>조회</caption>
  271. <script type="javascript" ev:event="DOMActivate">
  272. <![CDATA[
  273. fSrchgoodInfo(); // 물품사용 내역 조회
  274. ]]>
  275. </script>
  276. </button>
  277. <caption id="caption2" class="search_name" style="left:12px; top:15px; width:86px; height:17px; ">집계일시 :</caption>
  278. <caption id="caption3" style="left:194px; top:15px; width:20px; height:20px; font-weight:bold; ">~</caption>
  279. <input id="ipt_sumfromdd" ref="/root/main/cond/sumfromdd" class="input_search" inputtype="date" style="left:106px; top:14px; width:85px; height:19px; ">
  280. <script type="javascript" ev:event="xforms-value-changed">
  281. <![CDATA[
  282. // if(model.getValue("/root/main/cond/sumtodd") == getCurrentDate()) {
  283. // model.setValue("/root/main/cond/sumtotm" , getCurrentTime().substr(0,4)); // 집계종료시간 (현재시간)
  284. // } else {
  285. // model.setValue("/root/main/cond/sumtotm" , "2359"); // 집계종료시간
  286. // }
  287. // model.setValue("/root/main/cond/sumfromtm" , "0000"); // 집계시작시간
  288. // ipt_sumfromtm.refresh();
  289. // ipt_sumtotm.refresh();
  290. ]]>
  291. </script>
  292. </input>
  293. <input id="ipt_sumtodd" ref="/root/main/cond/sumtodd" class="input_search" inputtype="date" style="left:209px; top:14px; width:85px; height:19px; ">
  294. <script type="javascript" ev:event="xforms-value-changed">
  295. <![CDATA[
  296. // if(model.getValue("/root/main/cond/sumtodd") == getCurrentDate()) {
  297. // model.setValue("/root/main/cond/sumtotm" , getCurrentTime().substr(0,4)); // 집계종료시간 (현재시간)
  298. // } else {
  299. // model.setValue("/root/main/cond/sumtotm" , "2359"); // 집계종료시간
  300. // }
  301. // model.setValue("/root/main/cond/sumfromtm" , "0000"); // 집계시작시간
  302. // ipt_sumfromtm.refresh();
  303. // ipt_sumtotm.refresh();
  304. ]]>
  305. </script>
  306. </input>
  307. <select1 id="radio4" ref="/root/main/cond/prcpattrflag" class="radio_search" appearance="full" cellspacing="4" cols="3" vcellspacing="5" overflow="visible" style="left:405px; top:12px; width:145px; height:20px; border-style:none; ">
  308. <choices>
  309. <item>
  310. <label>재료</label>
  311. <value>1</value>
  312. </item>
  313. <item>
  314. <label>처치</label>
  315. <value>2</value>
  316. </item>
  317. <item>
  318. <label>전체</label>
  319. <value>3</value>
  320. </item>
  321. </choices>
  322. <script type="javascript" ev:event="xforms-value-changed">
  323. <![CDATA[
  324. // fSrchSumPrcpInfo(); // 처방별 집계현황조회
  325. ]]>
  326. </script>
  327. </select1>
  328. <button id="button3" class="btn1_letter2" style="left:1132px; top:10px; width:56px; height:22px; ">
  329. <caption>출력</caption>
  330. <script type="javascript" ev:event="DOMActivate">
  331. <![CDATA[
  332. fExecPrint();
  333. ]]>
  334. </script>
  335. </button>
  336. <button id="button9" class="btn1_letter2" style="left:1073px; top:10px; width:56px; height:22px; ">
  337. <caption>엑셀</caption>
  338. <script type="javascript" ev:event="DOMActivate">
  339. <![CDATA[
  340. saveExcelAll( "grd_goodlist|물품사용내역", true);
  341. ]]>
  342. </script>
  343. </button>
  344. <caption id="caption4" class="search_name" style="left:313px; top:15px; width:91px; height:17px; ">처방속성 :</caption>
  345. <line id="line13" class="line_4" style="x1:1002px; y1:5px; x2:1002px; y2:42px; "/>
  346. </group>
  347. <datagrid id="grd_goodlist" nodeset="/root/main/goodinfo/goodlist" class="datagrid2" caption="처방코드^처방명^단위^계^병원" colsep="^" colwidth="100, 300, 70, 50, 70" ellipsis="true" explorerbar="sort" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:0px; top:102px; width:1195px; height:615px; ">
  348. <col ref="prcpcd" style="text-align:left; "/>
  349. <col ref="prcpnm" style="text-align:left; "/>
  350. <col ref="drugpackunit" style="text-align:center; "/>
  351. <col ref="totprcpcnt" style="text-align:right; "/>
  352. <col ref="hospprcpcnt" style="text-align:right; "/>
  353. </datagrid>
  354. <line id="line1" class="line_1" style="x1:0px; y1:97px; x2:1195px; y2:97px; "/>
  355. <line id="line6" class="line_3" style="x1:1194px; y1:97px; x2:1194px; y2:115px; border-color:#ffe4bb; border-left-style:solid; "/>
  356. <caption id="caption42" class="tit_2" style="left:5px; top:80px; width:131px; height:14px; ">물품사용 내역</caption>
  357. <object id="tfexcel" clsid="{fe8d1001-6a9d-424d-ae2a-301493bb12da}" visibility="hidden" style="left:590px; top:20px; width:175px; height:30px; "/>
  358. </group>
  359. </xhtml:body>
  360. </xhtml:html>