SMSDT01000_사회사업상담환자실적.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMSDT01000.사회사업 상담 환자 실적.xrw
  4. * 설 명 : 사회사업 상담 환자 실적
  5. * 작 성 자 : 황혜민
  6. * 작 성 일 : 2008.09.02
  7. * 수정이력 :
  8. * 기 타 :
  9. -->
  10. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  11. <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">
  12. <xhtml:head>
  13. <xhtml:title>사회사업 접수/상담 환자 실적</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <cnstinfo>
  19. <cnstlist>
  20. <cond/>
  21. <bizfilecommon/>
  22. <bizfilereform/>
  23. <bizfilemind/>
  24. <bizfileorgantrans/>
  25. <bizfilehospis/>
  26. <sum/>
  27. <bfsum/>
  28. <bfcompare/>
  29. </cnstlist>
  30. </cnstinfo>
  31. </main>
  32. <send>
  33. <reqdata>
  34. <fromdd/>
  35. <todd/>
  36. <sumflag>2</sumflag>
  37. <achivflag>A1</achivflag>
  38. <cdgrupid/>
  39. <fromyy/>
  40. </reqdata>
  41. </send>
  42. <init/>
  43. <hidden/>
  44. </root>
  45. </instance>
  46. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  47. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  48. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  49. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  50. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  51. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  52. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  53. <script type="javascript" src="../../../ast/commonweb/js/AST.js"/>
  54. <script type="javascript" ev:event="xforms-ready">
  55. <![CDATA[
  56. fInit();
  57. ]]>
  58. </script>
  59. <submission id="TRSDT01001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" replace="instance" resultref="/root/main/cnstinfo"/>
  60. <submission id="TRSDT01002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/cnstinfo"/>
  61. <submission id="TRSDT01003" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/cnstinfo"/>
  62. <bind id="bfcompare" ref="/root/main/cnstinfo/cnstlist/bfcompare" calculate="../sum - ../bfsum"/>
  63. </model>
  64. <script type="javascript">
  65. <![CDATA[
  66. /**========================================================================================================================================
  67. * 조회기간 그리드초기화
  68. =========================================================================================================================================*/
  69. function fInit(){
  70. var currentDate = getCurrentDate();
  71. var LastDate=currentDate.toDate().getAddDate(-1,"M").getDateFormat();
  72. var LastDateYM=LastDate.substr(0,6);
  73. model.setValue("/root/send/reqdata/fromdd", LastDateYM );
  74. model.setValue("/root/send/reqdata/todd" , LastDateYM);
  75. // 그리드초기화
  76. model.removeNodeset("/root/main/cnstinfo/cnstlist");
  77. model.refresh();
  78. }
  79. /**========================================================================================================================================
  80. * 조회
  81. =========================================================================================================================================*/
  82. function fDefaultCheck(){
  83. var fromdd = model.getValue("/root/send/reqdata/fromdd") +"01";
  84. var todd = model.getValue("/root/send/reqdata/todd")+ "01";
  85. var dateintval=getDateInterval(fromdd,todd);
  86. if( isNull(fromdd) == true || isNull(todd) == true){
  87. messageBox("조회기간을", "C001");
  88. model.setFocus("ipt_fromdd");
  89. return false;
  90. }
  91. // dataHelper 함수 isValidDateTime
  92. if( !isValidDateTime(fromdd, 'YYYYMMDD') || !isValidDateTime(todd, 'YYYYMMDD')){
  93. messageBox("입력하신 일이 정확한 날짜타입이 아닙니다.", "E999", "");
  94. model.setFocus("ipt_fromdd");
  95. model.removeNodeset("/root/main/cnstinfo");
  96. model.refresh();
  97. return false;
  98. }
  99. if(fromdd>todd)
  100. {
  101. messageBox("조회시작일보다 큰 조회종료일을 입력하십시요.","I");
  102. model.setFocus("ipt_todd");
  103. model.removeNodeset("/root/main/cnstinfo");
  104. model.refresh();
  105. return false;
  106. }
  107. //alert(dateintval);
  108. if(dateintval>=365)
  109. {
  110. model.removeNodeset("/root/main/cnstinfo");
  111. model.refresh();
  112. messageBox("조회기간은 최대1년까지 할 수 있습니다.","I");
  113. model.setFocus("ipt_fromdd");
  114. model.removeNodeset("/root/main/cnstinfo");
  115. model.refresh();
  116. return false;
  117. }
  118. else
  119. {
  120. return true;
  121. }
  122. }
  123. function fAllSearch(){
  124. // model.resetInstanceNode("/root/main/cnstinfo/cnstlist");
  125. model.removeNodeset("/root/main/cnstinfo/cnstlist");
  126. var val = model.getValue("/root/send/reqdata/sumflag");
  127. switch(val){
  128. // 월별
  129. case("2"):
  130. fDisableGrd(false);
  131. var fromyy= model.getValue("/root/send/reqdata/fromdd");
  132. model.setValue("/root/send/reqdata/fromyy", fromyy.substr(0,4));
  133. fPerMonthSearch();
  134. break;
  135. // 임상과
  136. case("3"):
  137. fDisableGrd(true);
  138. fClinicalSearch();
  139. break;
  140. // 의뢰유형별
  141. case("4"):
  142. fDisableGrd(true);
  143. fSetSendValue("A0205");
  144. fSearch();
  145. break;
  146. // 연령별
  147. case("5"):
  148. fDisableGrd(true);
  149. fSetSendValue("A0178");
  150. fSearch();
  151. break;
  152. // 직업별
  153. case("6"):
  154. fDisableGrd(true);
  155. fSetSendValue("M0068");
  156. fSearch();
  157. break;
  158. // 학력별
  159. case("7"):
  160. fDisableGrd(true);
  161. fSetSendValue("M0069");
  162. fSearch();
  163. break;
  164. }
  165. }
  166. /**========================================================================================================================================
  167. *-- 접수환자/상담환자실적조회 (STS.SDTSCNST)
  168. *-- 연령기준별 (A0178) - sumflag = '4'
  169. *-- 의뢰유형별 (A0205) - sumflag = '3'
  170. *-- 직업별(M0068) - sumflag = '5'
  171. *-- 학력별(M0069) - sumflag = '6'
  172. =========================================================================================================================================*/
  173. function fSearch(){
  174. if(!fDefaultCheck()) return;
  175. if(submit("TRSDT01001") == true){
  176. }else{
  177. messageBox("조회를", "E009");
  178. }
  179. }
  180. /**========================================================================================================================================
  181. *-- 접수/상담환자실적 조회(STS.SDTSCNST)
  182. -- 임상과별 - sumflag = '2'
  183. =========================================================================================================================================*/
  184. function fClinicalSearch(){
  185. if(!fDefaultCheck()) return;
  186. if(submit("TRSDT01002") == true){
  187. }else{
  188. messageBox("조회를", "E009");
  189. }
  190. }
  191. function fPerMonthSearch(){
  192. if(!fDefaultCheck()) return;
  193. if(submit("TRSDT01003") == true){
  194. if(grd_cnst.rows - grd_cnst.fixedRows <=1){
  195. model.removeNodeset("/root/main/cnstinfo/cnstlist");
  196. model.refresh();
  197. return;
  198. }
  199. fGetPerMonthSum();
  200. }else{
  201. messageBox("조회를", "E009");
  202. }
  203. }
  204. /**========================================================================================================================================
  205. * 조회구분 변경했을때
  206. =========================================================================================================================================*/
  207. function fDisableGrd(flag){
  208. grd_cnst.colHidden(7) = flag;
  209. grd_cnst.colHidden(8) = flag;
  210. }
  211. function fSetSendValue(cdgrupid){
  212. model.setValue("/root/send/reqdata/cdgrupid", cdgrupid);
  213. }
  214. function fCmbChange(){
  215. //model.removeNodeset("/root/main/cnstinfo/cnstlist");
  216. //model.refresh();
  217. fAllSearch();
  218. // var val = model.getValue("/root/send/reqdata/sumflag");
  219. //
  220. // switch(val){
  221. // // 월별
  222. // case("2"):
  223. // fDisableGrd(false);
  224. // var fromyy= model.getValue("/root/send/reqdata/fromdd");
  225. // model.setValue("/root/send/reqdata/fromyy", fromyy.substr(0,4));
  226. // fPerMonthSearch();
  227. // break;
  228. // // 임상과
  229. // case("3"):
  230. // fDisableGrd(true);
  231. // fClinicalSearch();
  232. // break;
  233. // // 의뢰유형별
  234. // case("4"):
  235. // fDisableGrd(true);
  236. // fSetSendValue("A0205");
  237. // fSearch();
  238. // break;
  239. // // 연령별
  240. // case("5"):
  241. // fDisableGrd(true);
  242. // fSetSendValue("A0178");
  243. // fSearch();
  244. // break;
  245. // // 직업별
  246. // case("6"):
  247. // fDisableGrd(true);
  248. // fSetSendValue("M0068");
  249. // fSearch();
  250. // break;
  251. // // 학력별
  252. // case("7"):
  253. // fDisableGrd(true);
  254. // fSetSendValue("M0069");
  255. // fSearch();
  256. // break;
  257. // }
  258. }
  259. /**========================================================================================================================================
  260. * 접수환자실적/상담환자실적 변경했을때
  261. =========================================================================================================================================*/
  262. function fAchivflagChagne(){
  263. // 접수환자실적 A1, 상담환자실적 A2
  264. if(rdo_achivflag.value == 'A1'){
  265. model.removeNodeset("/root/main/cnstinfo/cnstlist");
  266. cmb_sumflaga1.visible = true;
  267. cmb_sumflaga2.visible = false;
  268. cmb_sumflaga1.value = 2;
  269. }else{
  270. model.removeNodeset("/root/main/cnstinfo/cnstlist");
  271. cmb_sumflaga1.visible = false;
  272. cmb_sumflaga2.visible = true;
  273. cmb_sumflaga2.value = 2;
  274. }
  275. model.refresh();
  276. }
  277. /*
  278. * 전월대비 실적비교 합계-전월실적
  279. ===========================================*/
  280. function fGetPerMonthSum(){
  281. if(grd_cnst.rows - grd_cnst.fixedRows >1){
  282. var sStat = 0;
  283. var insRow = grd_cnst.rows;
  284. grd_cnst.addRow(insRow, false);
  285. grd_cnst.valueMatrix(insRow, grd_cnst.colRef("cond") ) = "전기간대비실적비교";
  286. for(var i= grd_cnst.colRef("bizfilecommon"); i<= grd_cnst.colRef("sum"); i++){
  287. var bfResult = eval(grd_cnst.valueMatrix(insRow -1 , i));
  288. var sSum = eval(grd_cnst.valueMatrix(insRow-2, i));
  289. sStat = eval(sSum)- eval(bfResult) ;
  290. grd_cnst.valueMatrix(insRow, i ) = eval(sStat);
  291. //alert("sSum "+ sSum +"bfResult " + bfResult + "sStat " + sStat);
  292. }
  293. grd_cnst.valueMatrix(insRow-1, grd_cnst.colRef("bfcompare")) = "";
  294. grd_cnst.valueMatrix(insRow, grd_cnst.colRef("bfcompare")) = "";
  295. }
  296. }
  297. /**========================================================================================================================================
  298. * 엑셀저장 버튼 클릭시
  299. =========================================================================================================================================*/
  300. function fExcel() {
  301. if (grd_cnst.rows <= 1) {
  302. messageBox("엑셀파일로 저장할 리스트 내역이", "I004");
  303. return;
  304. }
  305. var fileName = window.fileDialog("save", ",", false, "사회사업접수상담환자실적", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  306. if (fileName != ""){
  307. grd_cnst.saveExcel(fileName, "SheetName", false, false, "", "", false);
  308. }
  309. }
  310. ]]>
  311. </script>
  312. </xhtml:head>
  313. <xhtml:body guideline="1,1195;1,1191;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  314. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  315. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:224px; height:14px; ">사회사업 접수/상담 환자 실적 조회</caption>
  316. </group>
  317. <group id="group5" scroll="auto" style="left:0px; top:757px; width:1195px; height:27px; ">
  318. <line id="line37" class="line_6" style="x1:0px; y1:0px; x2:1194px; y2:0px; "/>
  319. <button id="btn_search0" class="btn4_letter3" style="left:1126px; top:5px; width:68px; height:22px; ">
  320. <caption>초기화</caption>
  321. <script type="javascript" ev:event="DOMActivate">
  322. <![CDATA[
  323. fInit();
  324. ]]>
  325. </script>
  326. </button>
  327. </group>
  328. <group id="group2" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  329. <caption id="caption21" class="tit_2" style="left:0px; top:55px; width:195px; height:13px; ">사회사업 접수/상담 환자 실적</caption>
  330. <line id="line1" class="line_1" style="x1:0px; y1:74px; x2:1190px; y2:73px; "/>
  331. <group id="group4" style="left:0px; top:5px; width:1194px; height:35px; vertical-align:top; ">
  332. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  333. <button id="button2" class="btn1_letter2" style="left:1123px; top:7px; width:56px; height:22px; ">
  334. <caption>조회</caption>
  335. <script type="javascript" ev:event="DOMActivate">
  336. <![CDATA[
  337. // fCmbChange();
  338. fAllSearch();
  339. ]]>
  340. </script>
  341. </button>
  342. <caption id="caption23" class="search_name" style="left:240px; top:10px; width:86px; height:17px; ">조회구분 :</caption>
  343. <line id="line2" style="x1:1113px; y1:7px; x2:1113px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  344. <select1 id="cmb_sumflaga2" ref="/root/send/reqdata/sumflag" appearance="minimal" style="left:335px; top:10px; width:110px; height:19px; ">
  345. <choices>
  346. <item>
  347. <label>월별</label>
  348. <value>2</value>
  349. </item>
  350. <item>
  351. <label>임상과별</label>
  352. <value>3</value>
  353. </item>
  354. <item>
  355. <label>의뢰유형별</label>
  356. <value>4</value>
  357. </item>
  358. <item>
  359. <label>연령별</label>
  360. <value>5</value>
  361. </item>
  362. <item>
  363. <label>직업별</label>
  364. <value>6</value>
  365. </item>
  366. <item>
  367. <label>학력별</label>
  368. <value>7</value>
  369. </item>
  370. </choices>
  371. <script type="javascript" ev:event="xforms-select">
  372. <![CDATA[
  373. fCmbChange();
  374. ]]>
  375. </script>
  376. </select1>
  377. <caption id="cap1" style="left:670px; top:8px; width:25px; height:20px; text-align:center; ">~</caption>
  378. <input id="ipt_fromdd" ref="/root/send/reqdata/fromdd" class="input_search" inputtype="date" format="yyyy-mm" style="left:572px; top:8px; width:100px; height:19px; "/>
  379. <input id="ipt_todd" ref="/root/send/reqdata/todd" class="input_search" inputtype="date" format="yyyy-mm" style="left:695px; top:8px; width:100px; height:19px; "/>
  380. <caption id="caption1" class="search_name" style="left:480px; top:10px; width:100px; height:17px; ">조회기간 :</caption>
  381. <select1 id="rdo_achivflag" ref="/root/send/reqdata/achivflag" overflow="visible" appearance="full" cols="4" rows="1" style="left:30px; top:10px; width:195px; height:20px; border-style:none; ">
  382. <choices>
  383. <item>
  384. <label>접수환자실적</label>
  385. <value>A1</value>
  386. </item>
  387. <item>
  388. <label>상담환자실적</label>
  389. <value>A2</value>
  390. </item>
  391. </choices>
  392. <script type="javascript" ev:event="xforms-select">
  393. <![CDATA[
  394. fAchivflagChagne();
  395. ]]>
  396. </script>
  397. </select1>
  398. <select1 id="cmb_sumflaga1" ref="/root/send/reqdata/sumflag" appearance="minimal" style="left:335px; top:10px; width:110px; height:19px; ">
  399. <choices>
  400. <item>
  401. <label>월별</label>
  402. <value>2</value>
  403. </item>
  404. <item>
  405. <label>의뢰유형별</label>
  406. <value>4</value>
  407. </item>
  408. <item>
  409. <label>연령별</label>
  410. <value>5</value>
  411. </item>
  412. </choices>
  413. <script type="javascript" ev:event="xforms-select">
  414. <![CDATA[
  415. fCmbChange();
  416. ]]>
  417. </script>
  418. </select1>
  419. </group>
  420. <button id="btn_excel" class="btn2_letter4" style="left:1130px; top:51px; width:64px; height:19px; ">
  421. <caption>엑셀저장</caption>
  422. <script type="javascript" ev:event="DOMActivate">
  423. <![CDATA[
  424. fExcel();
  425. ]]>
  426. </script>
  427. </button>
  428. <datagrid id="grd_cnst" nodeset="/root/main/cnstinfo/cnstlist" class="datagrid2" caption="구분^일반의료^재활의료^정신의료^장기이식^호스피스^합계^전월실적^전월대비실적비교^장소^장소^장소^장소명^장소^담당자" colsep="^" colwidth="201, 120, 120, 120, 120, 120, 120, 120, 128" dataheight="25" mergecellsfixedrows="bycolrec" rowheight="25" rowsep="|" style="left:1px; top:76px; width:1190px; height:664px; ">
  429. <col ref="cond" format="yyyy-mm" style="text-align:center; "/>
  430. <col ref="bizfilecommon" style="text-align:center; "/>
  431. <col ref="bizfilereform" style="text-align:center; "/>
  432. <col ref="bizfilemind" format="yyyy-mm-dd hh:nn:ss" style="text-align:center; "/>
  433. <col ref="bizfileorgantrans" style="text-align:center; "/>
  434. <col ref="bizfilehospis" format="yyyy-mm-dd" style="text-align:center; "/>
  435. <col ref="sum" style="text-align:center; "/>
  436. <col ref="bfsum" style="text-align:center; "/>
  437. <col ref="bfcompare" format="#.9" style="text-align:center; "/>
  438. </datagrid>
  439. </group>
  440. </xhtml:body>
  441. </xhtml:html>