SMMNF05000_가정간호처치재료집계.xrw 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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. <deliveflag/>
  15. <deltprcpnm/>
  16. <deltprcpflag/>
  17. <sumflag/>
  18. <prcpcheck/>
  19. <issdeptcd/>
  20. </cond>
  21. <sumprcplist>
  22. <sumprcpinfo>
  23. <prcpnm/>
  24. <prcpcd/>
  25. <drugstndunit/>
  26. <drugpackunit/>
  27. <prcpcnt/>
  28. <dcprcpcnt/>
  29. <orgprcpcnt/>
  30. <reqprid/>
  31. <drugmthdspccd/>
  32. <sumcls/>
  33. <churchcd/>
  34. </sumprcpinfo>
  35. <sumchurchinfo>
  36. <prcpnm/>
  37. <prcpcd/>
  38. <drugstndunit/>
  39. <drugpackunit/>
  40. <prcpcnt/>
  41. <dcprcpcnt/>
  42. <orgprcpcnt/>
  43. <reqprid/>
  44. <drugmthdspccd/>
  45. <sumcls/>
  46. <churchcd/>
  47. </sumchurchinfo>
  48. </sumprcplist>
  49. <sumpatlist>
  50. <sumpatinfo>
  51. <deptnm/>
  52. <pid/>
  53. <hngnm/>
  54. <prcpcnt/>
  55. <dcprcpcnt/>
  56. <orgprcpcnt/>
  57. <rgstdt/>
  58. <rgstrnm/>
  59. <updtdt/>
  60. <updtrnm/>
  61. <prcpauthflag/>
  62. </sumpatinfo>
  63. <prcpnm/>
  64. <prcpcd/>
  65. </sumpatlist>
  66. </main>
  67. <send>
  68. <reqdata/>
  69. </send>
  70. <init>
  71. <dept>
  72. <deptcd/>
  73. <depthngnm/>
  74. </dept>
  75. </init>
  76. <hidden/>
  77. </root>
  78. </instance>
  79. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  80. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  81. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  82. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  83. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  84. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  85. <script type="javascript" ev:event="xforms-ready">
  86. <![CDATA[
  87. //초기화
  88. fInit();
  89. ]]>
  90. </script>
  91. <submission id="TRMNF05001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/sumprcplist"/>
  92. <submission id="TRMNF05002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/sumpatinfo"/>
  93. </model>
  94. <script type="javascript">
  95. <![CDATA[
  96. //화면 초기 설정
  97. function fInit(){
  98. model.setValue("root/main/cond/issdeptcd" , getUserInfo("dutplcecd") ); // 부서설정
  99. model.setValue("/root/main/cond/sumfromdd" , getCurrentDate() ); // 집계시작일자 (현재일자)
  100. model.setValue("/root/main/cond/sumtodd" , getCurrentDate() ); // 집계종료일자 (현재일자)
  101. model.setValue("/root/main/cond/prcpattrflag", "3" ); // 처방속성구분 ("3": 전체)
  102. model.setValue("/root/main/cond/deliveflag" , "1" ); // 불출구분 ("1": 전체)
  103. model.setValue("/root/main/cond/sumflag" , "1" ); // 집계구분 ("1": 본당별 집계)
  104. chk_prcpcheck.disabled = 'true'; //집계구분 (처방별 집계의 경우만 사용)
  105. //* 그리드 초기화 *//
  106. model.removeNodeset("/root/main/sumprcplist"); // 처방별 집계현황
  107. model.removeNodeset("/root/main/sumpatlist" ); // 환자별 집계현황
  108. //그리드 화면에 나타내기
  109. grd_sumchurchinfo.visible = true;
  110. grd_sumprcpinfo.visible = false;
  111. //검색 조회 하지 않는 경우 검색박스 비활성화
  112. ipt_deltprcpnm.disabled = 'true';
  113. model.refresh();
  114. }
  115. //처방별 집계현황 조회시 초기화
  116. function fSrchInit(){
  117. //* 그리드 초기화 *//
  118. model.removeNodeset("/root/main/sumprcplist/sumprcpinfo"); // 처방별 집계현황
  119. model.removeNodeset("/root/main/sumprcplist/sumchurchinfo"); // 본당별 집계현황
  120. model.removeNodeset("/root/main/sumpatlist" ); // 환자별 집계현황
  121. }
  122. //환자별 집계현황조회 - sFlag ("Delt":상세처방명을 이용한 검색)
  123. function fSrchSumPrcpInfo(sFlag){
  124. fSrchInit(); // 초기화
  125. if(sFlag != "Delt"){
  126. model.setValue("/root/main/cond/deltprcpnm", "");
  127. model.setValue("/root/main/cond/deltprcpflag", "");
  128. }
  129. model.removenode("/root/send");
  130. model.makeNode("/root/send/reqdata");
  131. model.makeValue("/root/send/reqdata/issdeptcd" , model.getValue("/root/main/cond/issdeptcd") ); // 부서정보
  132. model.makeValue("/root/send/reqdata/sumfromdd" , model.getValue("/root/main/cond/sumfromdd")); // 집계시작일자
  133. model.makeValue("/root/send/reqdata/sumtodd" , model.getValue("/root/main/cond/sumtodd") ); // 집계종료일자
  134. model.makeValue("/root/send/reqdata/prcpattrflag", model.getValue("/root/main/cond/prcpattrflag")); // 처방속성구분
  135. model.makeValue("/root/send/reqdata/deliveflag" , model.getValue("/root/main/cond/deliveflag") ); // 불출구분
  136. model.makeValue("/root/send/reqdata/sumflag" , model.getValue("/root/main/cond/sumflag") ); // 집계구분
  137. model.makeValue("/root/send/reqdata/prcpcheck" , model.getValue("/root/main/cond/prcpcheck") ); // 집계구분
  138. // model.removeNodeset("/root/main/sumprcplist");
  139. if(sFlag == "Delt"){
  140. model.makeValue("/root/send/reqdata/deltprcpflag", model.getValue("/root/main/cond/deltprcpflag")); // 처방검색조건
  141. model.makeValue("/root/send/reqdata/deltprcpnm", model.getValue("/root/main/cond/deltprcpnm")); // 상세처방명
  142. }
  143. submit("TRMNF05001");
  144. var sumflag = model.getValue("/root/main/cond/sumflag");
  145. // 집계 조회 후 그리드 같은 부부은 머지
  146. // if(sumflag == 1){
  147. // grd_sumchurchinfo.mergecol(1) = false;
  148. // grd_sumchurchinfo.mergecol(2) = false;
  149. // grd_sumchurchinfo.mergecol(3) = false;
  150. // grd_sumchurchinfo.mergecol(4) = false;
  151. // grd_sumchurchinfo.mergecol(5) = false;
  152. // grd_sumchurchinfo.mergecol(6) = false;
  153. // grd_sumchurchinfo.mergecol(7) = false;
  154. // grd_sumchurchinfo.mergecells = "bycol";
  155. // }
  156. if(sumflag == 1){
  157. grd_sumchurchinfo.allStyle("all", "color") = "black"; // 글자 초기화(검정, 보통굵기)
  158. grd_sumchurchinfo.allStyle("all", "font-weight") = "normal";
  159. for(var i=0; i<grd_sumchurchinfo.rows; i++){
  160. if(model.getValue("/root/main/sumprcplist/sumchurchinfo["+i+"]/reqprid") == "3"){ // 불출구분("3": 월청구) 글자 지정(보라색, 굵게)
  161. grd_sumchurchinfo.rowstyle(i, "all", "color") = "#cc0099";
  162. grd_sumchurchinfo.rowstyle(i, "all", "font-weight") = "bold";
  163. }
  164. }
  165. }else{
  166. grd_sumprcpinfo.allStyle("all", "color") = "black"; // 글자 초기화(검정, 보통굵기)
  167. grd_sumprcpinfo.allStyle("all", "font-weight") = "normal";
  168. for(var i=0; i<grd_sumprcpinfo.rows; i++){
  169. if(model.getValue("/root/main/sumprcplist/sumprcpinfo["+i+"]/reqprid") == "3"){ // 불출구분("3": 월청구) 글자 지정(보라색, 굵게)
  170. grd_sumprcpinfo.rowstyle(i, "all", "color") = "#cc0099";
  171. grd_sumprcpinfo.rowstyle(i, "all", "font-weight") = "bold";
  172. }
  173. }
  174. }
  175. }
  176. //환자별 집계현황조회 - sFlag ("Delt":상세처방명을 이용한 검색)
  177. function fSrchSumPrcpcheckInfo(){
  178. model.removenode("/root/send");
  179. model.makeNode("/root/send/reqdata");
  180. model.makeValue("/root/send/reqdata/sumfromdd" , model.getValue("/root/main/cond/sumfromdd")); // 집계시작일자
  181. model.makeValue("/root/send/reqdata/sumtodd" , model.getValue("/root/main/cond/sumtodd") ); // 집계종료일자
  182. model.makeValue("/root/send/reqdata/prcpattrflag", model.getValue("/root/main/cond/prcpattrflag")); // 처방속성구분
  183. model.makeValue("/root/send/reqdata/deliveflag" , model.getValue("/root/main/cond/deliveflag") ); // 불출구분
  184. model.makeValue("/root/send/reqdata/sumflag" , model.getValue("/root/main/cond/sumflag") ); // 집계구분
  185. model.makeValue("/root/send/reqdata/prcpcheck" , model.getValue("/root/main/cond/prcpcheck") ); // 집계구분
  186. // model.removeNodeset("/root/main/sumprcplist");
  187. submit("TRMNF05001");
  188. // // 집계 조회 후 그리드 같은 부부은 머지
  189. //
  190. // var sumflag = model.getValue("/root/main/cond/sumflag");
  191. //
  192. // if(sumflag == 1){
  193. // grd_sumchurchinfo.mergecol(1) = false;
  194. // grd_sumchurchinfo.mergecol(2) = false;
  195. // grd_sumchurchinfo.mergecol(3) = false;
  196. // grd_sumchurchinfo.mergecol(4) = false;
  197. // grd_sumchurchinfo.mergecol(5) = false;
  198. // grd_sumchurchinfo.mergecol(6) = false;
  199. // grd_sumchurchinfo.mergecol(7) = false;
  200. // grd_sumchurchinfo.mergecells = "bycol";
  201. // }
  202. if(sumflag == 1){
  203. grd_sumchurchinfo.allStyle("all", "color") = "black"; // 글자 초기화(검정, 보통굵기)
  204. grd_sumchurchinfo.allStyle("all", "font-weight") = "normal";
  205. for(var i=0; i<grd_sumchurchinfo.rows; i++){
  206. if(model.getValue("/root/main/sumprcplist/sumchurchinfo["+i+"]/reqprid") == "3"){ // 불출구분("3": 월청구) 글자 지정(보라색, 굵게)
  207. grd_sumchurchinfo.rowstyle(i, "all", "color") = "#cc0099";
  208. grd_sumchurchinfo.rowstyle(i, "all", "font-weight") = "bold";
  209. }
  210. }
  211. }else{
  212. grd_sumprcpinfo.allStyle("all", "color") = "black"; // 글자 초기화(검정, 보통굵기)
  213. grd_sumprcpinfo.allStyle("all", "font-weight") = "normal";
  214. for(var i=0; i<grd_sumprcpinfo.rows; i++){
  215. if(model.getValue("/root/main/sumprcplist/sumprcpinfo["+i+"]/reqprid") == "3"){ // 불출구분("3": 월청구) 글자 지정(보라색, 굵게)
  216. grd_sumprcpinfo.rowstyle(i, "all", "color") = "#cc0099";
  217. grd_sumprcpinfo.rowstyle(i, "all", "font-weight") = "bold";
  218. }
  219. }
  220. }
  221. }
  222. //환자별 집계현황조회
  223. function fSrchSumPatInfo(){
  224. var sumflag = model.getValue("/root/main/cond/sumflag");
  225. if(sumflag == 1){
  226. iRow = grd_sumchurchinfo.row;
  227. iCol = grd_sumchurchinfo.col;
  228. }else{
  229. iRow = grd_sumprcpinfo.row;
  230. iCol = grd_sumprcpinfo.col;
  231. }
  232. model.removeNodeset("/root/main/sumpatlist");
  233. if(sumflag == 1){
  234. model.makeValue("/root/main/sumpatlist/prcpnm", model.getValue("/root/main/sumprcplist/sumchurchinfo["+ iRow +"]/prcpnm")); // 처방명
  235. model.makeValue("/root/main/sumpatlist/prcpcd", model.getValue("/root/main/sumprcplist/sumchurchinfo["+ iRow +"]/prcpcd")); // 처방코드
  236. }else{
  237. model.makeValue("/root/main/sumpatlist/prcpnm", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/prcpnm")); // 처방명
  238. model.makeValue("/root/main/sumpatlist/prcpcd", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/prcpcd")); // 처방코드
  239. }
  240. model.removenode("/root/send");
  241. model.makeNode("/root/send/reqdata");
  242. model.makeValue("/root/send/reqdata/sumfromdd" , model.getValue("/root/main/cond/sumfromdd") ); // 집계시작일자
  243. model.makeValue("/root/send/reqdata/sumtodd" , model.getValue("/root/main/cond/sumtodd") ); // 집계종료일자
  244. model.makeValue("/root/send/reqdata/prcpattrflag" , model.getValue("/root/main/cond/prcpattrflag")); // 처방속성구분
  245. model.makeValue("/root/send/reqdata/deliveflag" , model.getValue("/root/main/cond/deliveflag") ); // 불출구분
  246. if(sumflag == 1){
  247. model.makeValue("/root/send/reqdata/prcpcd" , model.getValue("/root/main/sumprcplist/sumchurchinfo["+ iRow +"]/prcpcd")); // 처방코드
  248. model.makeValue("/root/send/reqdata/drugmthdspccd", model.getValue("/root/main/sumprcplist/sumchurchinfo["+ iRow +"]/drugmthdspccd")); // 재료규격ID
  249. model.makeValue("/root/send/reqdata/churchcd", model.getValue("/root/main/sumprcplist/sumchurchinfo["+ iRow +"]/churchcd"));
  250. }else{
  251. model.makeValue("/root/send/reqdata/prcpcd" , model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/prcpcd")); // 처방코드
  252. model.makeValue("/root/send/reqdata/drugmthdspccd", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/drugmthdspccd")); // 재료규격ID
  253. model.makeValue("/root/send/reqdata/churchcd", model.getValue("/root/main/sumprcplist/sumprcpinfo["+ iRow +"]/churchcd"));
  254. }
  255. submit("TRMNF05002");
  256. grd_prcppotlist.colstyle(7, "data", "color") = "black"; // 입력자 글자색상 초기화(검정)
  257. for(var i=1; i<grd_prcppotlist.rows; i++){
  258. if(model.getValue("/root/main/sumpatlist/sumpatinfo["+i+"]/prcpauthflag") == "0"){ // 입력자가 의사일 경우 글자색상 지정(보라색)
  259. grd_prcppotlist.cellStyle("color", i, 7, i, 7) = "#cc0099";
  260. }
  261. }
  262. }
  263. //출력기능
  264. function fExecPrint(){
  265. model.removenode("/root/send");
  266. model.makeNode("/root/send/cond");
  267. model.makeNode("/root/send/sumprcplist");
  268. model.makeNode("/root/send/init");
  269. model.copyNode("/root/send/cond" , "/root/main/cond");
  270. model.copyNode("/root/send/sumprcplist", "/root/main/sumprcplist");
  271. model.copyNode("/root/send/init" , "/root/init");
  272. var sumflag = model.getValue("/root/main/cond/sumflag");
  273. if(sumflag == 1){
  274. exeReportPreview("RPMNF05100", "XMLSTR");
  275. }else{
  276. exeReportPreview("RPMNF05000", "XMLSTR");
  277. }
  278. }
  279. /************************************************************************************************************************/
  280. /**
  281. * @group :
  282. * @ver :
  283. * @by : 김기용
  284. * @---------------------------------------------------
  285. * @type : function
  286. * @access : public
  287. * @desc : 그리드 별 엑셀저장
  288. * @param :
  289. * @return :
  290. * @---------------------------------------------------
  291. */
  292. function saveExcelAll() {
  293. var paramLen = saveExcelAll.arguments.length;
  294. // 마지막 인자가 Boolean일 경우 처리
  295. var extendsCaptionBool;
  296. if( typeof(saveExcelAll.arguments[paramLen - 1]) == "boolean" ) {
  297. extendsCaptionBool = saveExcelAll.arguments[paramLen - 1];
  298. paramLen = paramLen - 1;
  299. }
  300. else{
  301. extendsCaptionBool = false;
  302. }
  303. var tmpParamArray = new Array();
  304. if( extendsCaptionBool ) {
  305. for( var i = 0; i < paramLen; i++ ) {
  306. tmpParamArray[i] = saveExcelAll.arguments[i];
  307. }
  308. saveExcelAllWithCaption(tmpParamArray);
  309. }
  310. else{
  311. for( var i = 0; i < paramLen; i++ ) {
  312. tmpParamArray[i] = saveExcelAll.arguments[i];
  313. }
  314. saveExcelAllWithNotCaption(tmpParamArray);
  315. }
  316. }
  317. function saveExcelAllWithCaption( sheetArray ) {
  318. // alert(gridCaptionArray);
  319. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  320. if( fileName == "" )
  321. return;
  322. // var sheetArray = new Array("grd_bizprescondstats|업무현황", "grd_patprescondstats|환자현황", "grd_hdstatsinfo|혈액투석현황", "grd_pdstatsinfo|복막투석현황", "grd_pdbizstatsinfo|복막투석업무현황");
  323. var sheetArrayLen = sheetArray.length;
  324. var gridId;
  325. var gridObj;
  326. for( var i = 0; i < sheetArray.length; i++ ) {
  327. gridId = sheetArray[i].split("|")[0];
  328. gridObj = document.all.item(gridId);
  329. // saveText() 함수는 Caption저장이 불가능 하여 SaveExcel()을 이용한다.
  330. gridObj.saveExcel("C:\\Temp\\tmp_TFExcel_" + i +".xls");
  331. }
  332. // excel application 실행함
  333. tfexcel.launchnewinstance(0);
  334. //실행된 excel application에서 새로운 workbook을 생성
  335. tfexcel.createworkbook();
  336. tfexcel.activatesheet(1);
  337. var sheetName;
  338. var nResult;
  339. for( var i = 0; i < sheetArrayLen; i++ )
  340. {
  341. sheetName = sheetArray[i].split("|")[1];
  342. if( i > 1 ) {
  343. nResult = tfexcel.activatesheet(i+1);
  344. tfexcel.sheetname(i+1) = sheetName;
  345. }
  346. else {
  347. nResult = tfexcel.addsheet(i+1, sheetName);
  348. }
  349. if( nResult < 0 ) {
  350. messageBox(sheetName + " 저장을", "E009");
  351. // alert(sheetName + " 오류발생");
  352. return;
  353. }
  354. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel_" + i + ".xls");
  355. }
  356. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel.xls");
  357. //workbook을 저장.
  358. tfexcel.save(fileName);
  359. //excel application을 종료. excel application 생성 후 반드시 close해야함.
  360. tfexcel.close();
  361. var fso = new ActiveXObject("Scripting.FileSystemObject");
  362. for( var i = 0; i < sheetArrayLen; i++ ) {
  363. fso.DeleteFile("C:\\Temp\\tmp_TFExcel_" + i + ".xls");
  364. }
  365. var rmsg = messageBox("저장된 Excel을", "Q004");
  366. // var rmsg = window.alert("저장된 Excel을 실행하시겠습니까?", "알림", 36);
  367. if( rmsg == 6 )
  368. window.exec("excel.exe", '\"' + fileName + '\"');
  369. }
  370. function saveExcelAllWithNotCaption( sheetArray ) {
  371. // alert(gridCaptionArray);
  372. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  373. if( fileName == "" )
  374. return;
  375. // excel application 실행함
  376. tfexcel.launchnewinstance(0);
  377. // 실행된 excel application에서 새로운 workbook을 생성
  378. tfexcel.createworkbook();
  379. // var sheetArray = new Array("grd_bizprescondstats|업무현황", "grd_patprescondstats|환자현황", "grd_hdstatsinfo|혈액투석현황", "grd_pdstatsinfo|복막투석현황", "grd_pdbizstatsinfo|복막투석업무현황");
  380. var sheetArrayLen = sheetArray.length;
  381. var gridId;
  382. var gridObj;
  383. var sheetName;
  384. var nResult;
  385. for( var i = 0; i < sheetArrayLen; i++ ) {
  386. gridId = sheetArray[i].split("|")[0];
  387. gridObj = document.all.item(gridId);
  388. sheetName = sheetArray[i].split("|")[1];
  389. if( i > 1 ) {
  390. nResult = tfexcel.activatesheet(i+1);
  391. tfexcel.sheetname(i+1) = sheetName;
  392. }
  393. else {
  394. nResult = tfexcel.addsheet(i+1, sheetName);
  395. }
  396. if( nResult < 0 ) {
  397. messageBox(sheetName + " 저장을", "E009");
  398. // alert(sheetName + " 오류발생");
  399. return;
  400. }
  401. gridObj.saveText("C:\\Temp\\tmp_TFExcel.csv", "\n", ",", '\:', true);
  402. tfexcel.loadCSV("C:\\Temp\\tmp_TFExcel.csv");
  403. }
  404. //workbook을 저장.
  405. tfexcel.save(fileName);
  406. //excel application을 종료. excel application 생성 후 반드시 close해야함.
  407. tfexcel.close();
  408. // CSV File 삭제
  409. var fso = new ActiveXObject("Scripting.FileSystemObject");
  410. fso.DeleteFile("C:\\Temp\\tmp_TFExcel.csv");
  411. var rmsg = messageBox("저장된 Excel을", "Q004");
  412. // var rmsg = window.alert("저장된 Excel을 실행하시겠습니까?", "알림", 36);
  413. if( rmsg == 6 )
  414. window.exec("excel.exe", '\"' + fileName + '\"');
  415. }
  416. function createTFExcel(tfExcelID, parentObj) {
  417. if( parentObj == null )
  418. parentObj = body;
  419. var tfExcelObj = parentObj.createChild("xforms:object", "id:" + tfExcelID + "; clsid:{fe8d1001-6a9d-424d-ae2a-301493bb12da}; left:100px; top:100px; width:100px; height:100px; ");
  420. return tfExcelObj;
  421. }
  422. /************************************************************************************************************************/
  423. ]]>
  424. </script>
  425. </xhtml:head>
  426. <xhtml:body guideline="1,1195;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  427. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  428. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:220px; height:13px; ">가정간호 집계</caption>
  429. </group>
  430. <group id="grp_btn" scroll="auto" style="left:0px; top:757px; width:1195px; height:27px; "/>
  431. <group id="group5" scroll="auto" style="left:0px; top:13px; width:1195px; height:767px; ">
  432. <output id="output32" ref="/root/main/sumpatlist/prcpnm" style="left:705px; top:96px; width:396px; height:19px; font-weight:bold; text-align:left; "/>
  433. <group id="grp_sea" style="left:0px; top:10px; width:1195px; height:60px; vertical-align:top; ">
  434. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:60px; background-color:#fffbf2; border-color:#ffd799; "/>
  435. <button id="btn_search" class="btn1_letter2" style="left:1014px; top:20px; width:56px; height:22px; ">
  436. <caption>조회</caption>
  437. <script type="javascript" ev:event="DOMActivate">
  438. <![CDATA[
  439. fSrchSumPrcpInfo(); // 처방별 집계현황조회
  440. //풀어서 보기를 선택하지 않았을 경우 본당명을 조회하지 않게 함
  441. var prcpcheck = model.getValue("/root/main/cond/prcpcheck");
  442. var sumflag = model.getValue("/root/main/cond/sumflag");
  443. if(prcpcheck != 1){
  444. if(sumflag == 2){
  445. var rows = grd_sumprcpinfo.rows- grd_sumprcpinfo.fixedRows;
  446. for(var i = 1; i <= rows ; i++){
  447. var sumchurch = model.getValue("/root/main/sumprcplist/sumprcpinfo[" + i + "]/sumcls");
  448. if(!isNull(sumchurch)){
  449. grd_sumprcpinfo.rowhidden(i) = true;
  450. }
  451. }
  452. }
  453. }
  454. model.refresh();
  455. ]]>
  456. </script>
  457. </button>
  458. <caption id="caption1" class="search_name" style="left:13px; top:34px; width:97px; height:17px; ">집계구분 :</caption>
  459. <caption id="caption2" class="search_name" style="left:12px; top:10px; width:86px; height:17px; ">집계일시 :</caption>
  460. <caption id="caption3" style="left:194px; top:10px; width:20px; height:20px; font-weight:bold; ">~</caption>
  461. <input id="ipt_sumfromdd" ref="/root/main/cond/sumfromdd" class="input_search" inputtype="date" style="left:106px; top:9px; width:85px; height:19px; ">
  462. <script type="javascript" ev:event="xforms-value-changed">
  463. <![CDATA[
  464. // if(model.getValue("/root/main/cond/sumtodd") == getCurrentDate()) {
  465. // model.setValue("/root/main/cond/sumtotm" , getCurrentTime().substr(0,4)); // 집계종료시간 (현재시간)
  466. // } else {
  467. // model.setValue("/root/main/cond/sumtotm" , "2359"); // 집계종료시간
  468. // }
  469. // model.setValue("/root/main/cond/sumfromtm" , "0000"); // 집계시작시간
  470. // ipt_sumfromtm.refresh();
  471. // ipt_sumtotm.refresh();
  472. ]]>
  473. </script>
  474. </input>
  475. <input id="ipt_sumtodd" ref="/root/main/cond/sumtodd" class="input_search" inputtype="date" style="left:209px; top:9px; width:85px; height:19px; ">
  476. <script type="javascript" ev:event="xforms-value-changed">
  477. <![CDATA[
  478. // if(model.getValue("/root/main/cond/sumtodd") == getCurrentDate()) {
  479. // model.setValue("/root/main/cond/sumtotm" , getCurrentTime().substr(0,4)); // 집계종료시간 (현재시간)
  480. // } else {
  481. // model.setValue("/root/main/cond/sumtotm" , "2359"); // 집계종료시간
  482. // }
  483. // model.setValue("/root/main/cond/sumfromtm" , "0000"); // 집계시작시간
  484. // ipt_sumfromtm.refresh();
  485. // ipt_sumtotm.refresh();
  486. ]]>
  487. </script>
  488. </input>
  489. <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:7px; width:145px; height:20px; border-style:none; ">
  490. <choices>
  491. <item>
  492. <label>전체</label>
  493. <value>3</value>
  494. </item>
  495. <item>
  496. <label>재료</label>
  497. <value>1</value>
  498. </item>
  499. <item>
  500. <label>그외</label>
  501. <value>2</value>
  502. </item>
  503. </choices>
  504. <script type="javascript" ev:event="xforms-value-changed">
  505. <![CDATA[
  506. // fSrchSumPrcpInfo(); // 처방별 집계현황조회
  507. ]]>
  508. </script>
  509. </select1>
  510. <button id="button3" class="btn1_letter2" style="left:1132px; top:20px; width:56px; height:22px; ">
  511. <caption>출력</caption>
  512. <script type="javascript" ev:event="DOMActivate">
  513. <![CDATA[
  514. fExecPrint();
  515. ]]>
  516. </script>
  517. </button>
  518. <button id="button9" class="btn1_letter2" style="left:1073px; top:20px; width:56px; height:22px; ">
  519. <caption>엑셀</caption>
  520. <script type="javascript" ev:event="DOMActivate">
  521. <![CDATA[
  522. saveExcelAll( "grd_sumprcpinfo|처방별 집계현황", "grd_prcppotlist|환자별 집계현황", true);
  523. ]]>
  524. </script>
  525. </button>
  526. <caption id="caption4" class="search_name" style="left:313px; top:10px; width:91px; height:17px; ">처방속성 :</caption>
  527. <caption id="caption5" class="search_name" style="left:572px; top:10px; width:91px; height:17px; ">불출구분 :</caption>
  528. <select1 id="radio1" ref="/root/main/cond/deliveflag" class="radio_search" appearance="full" cellspacing="4" cols="3" vcellspacing="5" overflow="visible" style="left:667px; top:7px; width:175px; height:20px; border-style:none; ">
  529. <choices>
  530. <item>
  531. <label>전체</label>
  532. <value>1</value>
  533. </item>
  534. <item>
  535. <label>일청구</label>
  536. <value>2</value>
  537. </item>
  538. <item>
  539. <label>월청구</label>
  540. <value>3</value>
  541. </item>
  542. </choices>
  543. <script type="javascript" ev:event="xforms-value-changed">
  544. <![CDATA[
  545. // fSrchSumPrcpInfo(); // 처방별 집계현황조회
  546. ]]>
  547. </script>
  548. </select1>
  549. <line id="line13" class="line_4" style="x1:1002px; y1:12px; x2:1002px; y2:49px; "/>
  550. <select1 id="rdo_sumflag" ref="/root/main/cond/sumflag" class="radio_search" appearance="full" cellspacing="4" cols="3" vcellspacing="5" overflow="visible" style="left:105px; top:32px; width:360px; height:20px; border-style:none; ">
  551. <choices>
  552. <item>
  553. <label>처방 발행자별 집계</label>
  554. <value>3</value>
  555. </item>
  556. <item>
  557. <label>본당별(재택)별 집계</label>
  558. <value>1</value>
  559. </item>
  560. <item>
  561. <label>처방별 집계</label>
  562. <value>2</value>
  563. </item>
  564. </choices>
  565. <script type="javascript" ev:event="xforms-value-changed">
  566. <![CDATA[
  567. // fSrchSumPrcpInfo(); // 처방별 집계현황조회
  568. model.removeNodeset("/root/main/sumpatlist");
  569. model.removeNodeset("/root/main/sumprcplist");
  570. var sumflag = model.getValue("/root/main/cond/sumflag");
  571. if(sumflag == 2){
  572. chk_prcpcheck.disabled = 'false'; //집계구분 (처방별 집계의 경우만 사용)
  573. grd_sumchurchinfo.visible = true;
  574. grd_sumprcpinfo.visible = false;
  575. }else{
  576. chk_prcpcheck.disabled = 'true'; //집계구분 (처방별 집계의 경우만 사용)
  577. grd_sumprcpinfo.visible = true;
  578. grd_sumchurchinfo.visible = false;
  579. }
  580. btn_search.dispatch("DOMActivate");
  581. ]]>
  582. </script>
  583. </select1>
  584. <select id="chk_prcpcheck" ref="/root/main/cond/prcpcheck" overflow="visible" appearance="full" style="left:475px; top:35px; width:100px; height:15px; border-style:none; ">
  585. <choices>
  586. <item>
  587. <label>풀어서 보기</label>
  588. <value>1</value>
  589. </item>
  590. </choices>
  591. <script type="javascript" ev:event="xforms-value-changed">
  592. <![CDATA[
  593. model.removeNodeset("/root/main/sumpatlist");
  594. btn_search.dispatch("DOMActivate");
  595. ]]>
  596. </script>
  597. </select>
  598. </group>
  599. <line id="line4" class="line_1" style="x1:655px; y1:117px; x2:1194px; y2:117px; "/>
  600. <datagrid id="grd_prcppotlist" nodeset="/root/main/sumpatlist/sumpatinfo" class="datagrid2" caption="^등록번호^환자명^처방&#xA;수량^반환&#xA;수량^실&#xA;수량^처방일시^입력자^반환일시^반환자^입력자구분" colsep="^" colwidth="0, 60, 54, 31, 31, 31, 100, 65, 100, 65, 0" ellipsis="true" explorerbar="sort" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:655px; top:122px; width:540px; height:615px; ">
  601. <col ref="roomcd"/>
  602. <col ref="pid"/>
  603. <col ref="hngnm"/>
  604. <col ref="prcpcnt" style="text-align:right; "/>
  605. <col ref="dcprcpcnt" style="text-align:right; "/>
  606. <col ref="orgprcpcnt" style="text-align:right; "/>
  607. <col ref="rgstdt" format="yyyy-mm-dd hh:nn"/>
  608. <col ref="rgstrnm"/>
  609. <col ref="updtdt" format="yyyy-mm-dd hh:nn"/>
  610. <col ref="updtrnm"/>
  611. <col ref="prcpauthflag"/>
  612. </datagrid>
  613. <datagrid id="grd_sumchurchinfo" nodeset="/root/main/sumprcplist/sumchurchinfo" class="datagrid2" caption="집계분류^처방명^처방코드^규격^단위^처방&#xA;수량^반환&#xA;수량^실&#xA;수량^불출구분" colsep="^" colwidth="70, 300, 90, 50, 40, 31, 31, 31, 0" ellipsis="true" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:0px; top:122px; width:645px; height:615px; ">
  614. <col ref="sumcls"/>
  615. <col ref="prcpnm"/>
  616. <col ref="prcpcd" style="text-align:left; "/>
  617. <col ref="drugstndunit" style="text-align:center; "/>
  618. <col ref="drugpackunit" style="text-align:center; "/>
  619. <col ref="prcpcnt" style="text-align:right; "/>
  620. <col ref="dcprcpcnt" style="text-align:right; "/>
  621. <col ref="orgprcpcnt" style="text-align:right; "/>
  622. <col ref="reqprid"/>
  623. <script type="javascript" ev:event="ondblclick">
  624. <![CDATA[
  625. fSrchSumPatInfo(); // 환자별 집계현황 조회
  626. ]]>
  627. </script>
  628. </datagrid>
  629. <line id="line1" class="line_1" style="x1:0px; y1:117px; x2:645px; y2:117px; "/>
  630. <caption id="caption57" class="cell_1" style="left:656px; top:98px; width:46px; height:18px; font-weight:bold; text-align:center; ">처방명</caption>
  631. <output id="output1" ref="/root/main/sumpatlist/prcpcd" style="left:1101px; top:96px; width:93px; height:19px; font-weight:bold; text-align:center; "/>
  632. <line id="line2" class="line_3" style="x1:655px; y1:114px; x2:1195px; y2:114px; "/>
  633. <line id="line3" class="line_3" style="x1:705px; y1:96px; x2:705px; y2:114px; border-color:#ffe4bb; border-left-style:solid; "/>
  634. <line id="line5" class="line_3" style="x1:1101px; y1:96px; x2:1101px; y2:114px; border-color:#ffe4bb; border-left-style:solid; "/>
  635. <line id="line6" class="line_3" style="x1:1194px; y1:97px; x2:1194px; y2:115px; border-color:#ffe4bb; border-left-style:solid; "/>
  636. <line id="line7" class="line_3" style="x1:655px; y1:96px; x2:1194px; y2:96px; "/>
  637. <line id="line8" class="line_3" style="x1:655px; y1:96px; x2:655px; y2:114px; border-color:#ffe4bb; border-left-style:solid; "/>
  638. <button id="btn_srchsumdeltprcpinfo" class="btn5_letter2" style="left:603px; top:95px; width:42px; height:19px; ">
  639. <caption>검색</caption>
  640. <script type="javascript" ev:event="DOMActivate">
  641. <![CDATA[
  642. fSrchSumPrcpInfo("Delt"); // 처방별 집계현황조회
  643. ]]>
  644. </script>
  645. </button>
  646. <input id="ipt_deltprcpnm" ref="/root/main/cond/deltprcpnm" class="input_default" imemode="alpha" maxlength="66" style="left:110px; top:96px; width:490px; height:19px; ">
  647. <script type="javascript" ev:event="onkeyup">
  648. <![CDATA[
  649. inputEnterKey("btn_srchsumdeltprcpinfo", "DOMActivate");
  650. ]]>
  651. </script>
  652. </input>
  653. <caption id="caption42" class="tit_2" style="left:5px; top:80px; width:131px; height:14px; ">처방별 집계현황</caption>
  654. <caption id="caption8" class="tit_2" style="left:655px; top:80px; width:131px; height:13px; ">환자별 집계현황</caption>
  655. <object id="tfexcel" clsid="{fe8d1001-6a9d-424d-ae2a-301493bb12da}" visibility="hidden" style="left:825px; top:35px; width:175px; height:30px; "/>
  656. <select1 id="radio3" ref="/root/main/cond/deltprcpflag" class="radio_search" appearance="full" cellspacing="4" cols="3" vcellspacing="5" overflow="visible" style="left:0px; top:97px; width:110px; height:20px; border-style:none; ">
  657. <choices>
  658. <item>
  659. <label>코드</label>
  660. <value>1</value>
  661. </item>
  662. <item>
  663. <label>처방명</label>
  664. <value>2</value>
  665. </item>
  666. </choices>
  667. <script type="javascript" ev:event="xforms-value-changed">
  668. <![CDATA[
  669. // fSrchSumPrcpInfo(); // 처방별 집계현황조회
  670. var deltprcpflag = model.getValue("/root/main/cond/deltprcpflag");
  671. if(isNull(deltprcpflag)){
  672. ipt_deltprcpnm.disabled = 'true';
  673. }else{
  674. ipt_deltprcpnm.disabled = 'false';
  675. }
  676. ]]>
  677. </script>
  678. </select1>
  679. <datagrid id="grd_sumprcpinfo" nodeset="/root/main/sumprcplist/sumprcpinfo" class="datagrid2" caption="처방명^처방코드^규격^집계분류^단위^처방&#xA;수량^반환&#xA;수량^실&#xA;수량^불출구분" colsep="^" colwidth="300, 90, 50, 70, 40, 31, 31, 31, 0" ellipsis="true" explorerbar="sort" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:0px; top:122px; width:645px; height:615px; ">
  680. <col ref="prcpnm"/>
  681. <col ref="prcpcd" style="text-align:left; "/>
  682. <col ref="drugstndunit" style="text-align:center; "/>
  683. <col ref="sumcls"/>
  684. <col ref="drugpackunit" style="text-align:center; "/>
  685. <col ref="prcpcnt" style="text-align:right; "/>
  686. <col ref="dcprcpcnt" style="text-align:right; "/>
  687. <col ref="orgprcpcnt" style="text-align:right; "/>
  688. <col ref="reqprid"/>
  689. <script type="javascript" ev:event="ondblclick">
  690. <![CDATA[
  691. fSrchSumPatInfo(); // 환자별 집계현황 조회
  692. ]]>
  693. </script>
  694. </datagrid>
  695. </group>
  696. </xhtml:body>
  697. </xhtml:html>