SMLPC00700_검사정보등록.xrw 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLPC00700_검사정보등록.xrw
  4. * 설 명 : 검사정보등록 화면
  5. * 설 계 자 : (주)에이씨케이 - 황상미
  6. * 작 성 자 : (주)에이씨케이 - 황상미
  7. * 작 성 일 : 2007.01.08
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <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">
  13. <xhtml:head>
  14. <xhtml:title/>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <testinfocnts>
  20. <testinfolist>
  21. <instcd/>
  22. <testcd/>
  23. <testhngnm/>
  24. <spccd/>
  25. <spcnm/>
  26. </testinfolist>
  27. <lastpage>
  28. <lastpage/>
  29. </lastpage>
  30. </testinfocnts>
  31. <testinfo>
  32. <instcd/>
  33. <testcd/>
  34. <testhngnm/>
  35. <testhngabbr/>
  36. <spccd/>
  37. <spcnm/>
  38. <delflagcd/>
  39. <fstrgstdt/>
  40. <fstrgstrid/>
  41. <lastupdtdt/>
  42. <lastupdtrid/>
  43. <cfnm/>
  44. <barcdprtncnt/>
  45. <tubecd/>
  46. <readdr/>
  47. <incfnm/>
  48. </testinfo>
  49. </main>
  50. <send>
  51. </send>
  52. <init>
  53. <LB0107/>
  54. <userinfo>
  55. <userinfolist>
  56. <userid/>
  57. <usernm/>
  58. <jobkindcd/>
  59. </userinfolist>
  60. </userinfo>
  61. <testitemcnts>
  62. <testitemlist>
  63. <choi/>
  64. <instcd/>
  65. <testcd/>
  66. <testengnm/>
  67. <testengabbr/>
  68. </testitemlist>
  69. </testitemcnts>
  70. <spccdlist>
  71. <spccdlistdata>
  72. <choi/>
  73. <instcd/>
  74. <spccd/>
  75. <spcnm/>
  76. </spccdlistdata>
  77. </spccdlist>
  78. <popupmenu1>
  79. <item>
  80. <name>선택</name>
  81. <func>fExeTestSelect</func>
  82. </item>
  83. <item>
  84. <name>해제</name>
  85. <func>fExeTestDeSelect</func>
  86. </item>
  87. </popupmenu1>
  88. <popupmenu2>
  89. <item>
  90. <name>선택</name>
  91. <func>fExeSpcSelect</func>
  92. </item>
  93. <item>
  94. <name>해제</name>
  95. <func>fExeSpcDeSelect</func>
  96. </item>
  97. </popupmenu2>
  98. <popupmenu3>
  99. <item>
  100. <name>선택</name>
  101. <func>fExeInfoSelect</func>
  102. </item>
  103. <item>
  104. <name>해제</name>
  105. <func>fExeInfoDeSelect</func>
  106. </item>
  107. </popupmenu3>
  108. <useflagcd/>
  109. </init>
  110. <hidden>
  111. <userinfo>
  112. <instcd/>
  113. </userinfo>
  114. <delflagcd>0</delflagcd>
  115. <refflag>1</refflag>
  116. <refval/>
  117. <cdupdtflag>1</cdupdtflag>
  118. <scrndata/>
  119. <paval/>
  120. </hidden>
  121. </root>
  122. </instance>
  123. <submission id="TRLPC00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/testitemcnts/testitemlist"/>
  124. <submission id="TRLPC00601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/spccdlist/spccdlistdata"/>
  125. <submission id="TRLPC00701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testinfocnts/testinfolist"/>
  126. <submission id="TRLPC00702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testinfo"/>
  127. <submission id="TXLPC00701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/msg"/>
  128. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/LB0107"/>
  129. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  130. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  131. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  132. <script type="javascript" src="../../../lis/commonweb/js/LPZ001.js"/>
  133. <script type="javascript" src="../../../lis/commonweb/js/LLZ001.js"/>
  134. <script type="javascript" ev:event="xforms-ready">
  135. <![CDATA[
  136. fExeInitialize();
  137. ]]>
  138. </script>
  139. <!-- public Script Start -->
  140. <script type="javascript">
  141. <![CDATA[
  142. /* @group : 검사정보등록 화면
  143. * @ver : 2007.01.08 (CMCDEV-0001)
  144. * @by : 황상미(ACK)
  145. * @-----------------------------------
  146. * @type : function
  147. * @access : public
  148. * @desc : 화면초기화 함수
  149. */
  150. function fExeInitialize(){
  151. model.removeNodeset("/root/init/testitemcnts/testitemlist"); // 검사목록 초기화
  152. model.removeNodeset("/root/init/spccdlist/spccdlistdata"); // 검체목록 초기화
  153. model.removeNodeset("/root/main/testinfocnts/testinfolist");
  154. model.resetInstanceNode("/root/main/testinfo");
  155. model.makeValue("/root/init/useflagcd", "0"); // 0:사용, 1:미사용
  156. model.makeValue("/root/hidden/cdupdtflag", "1");
  157. model.makeValue("/root/hidden/delflagcd", "0");
  158. model.makeValue("/root/hidden/userinfo/instcd", getUserInfo("dutplceinstcd")); //instcd
  159. model.makeValue("/root/main/testinfocnts/lastpage/lastpage", "1");
  160. cap_lastPage.value = 1;
  161. //fExeControlChng("false");
  162. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  163. model.makeValue("/root/send/userdeptflagcd", "L");
  164. submit("TRLPZ00114", false);
  165. // 의사목록 조회....
  166. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  167. model.makeValue("/root/send/userdeptcd", "-");
  168. model.makeValue("/root/send/doctjobgradcd", "-"); // 예문 추가시 의사만 보일 수 있도록
  169. model.makeValue("/root/send/teamjobgradcd", "-");
  170. submit("TRLPZ00105", false);
  171. //--------------
  172. // 검사목록 조회
  173. model.removeNodeset("/root/send");
  174. model.makeValue("/root/send/delflagcd", "0"); // 조회조건 사용여부구분
  175. model.makeValue("/root/send/refflag", ""); // 조회조건 조회구분
  176. model.makeValue("/root/send/refval", ""); // 조회조건 조회값
  177. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); // 기관코드
  178. submit("TRLPC00401", false);
  179. //--------------
  180. // 검체목록 조회
  181. model.removeNodeset("/root/send");
  182. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  183. model.makeValue("/root/send/delflagcd", "0");
  184. model.makeValue("/root/send/refflag", "");
  185. model.makeValue("/root/send/refval", "");
  186. //--------------------
  187. submit("TRLPC00601");
  188. grd_testinfolist.gridToInstance();
  189. model.refresh();
  190. }
  191. /* @group : 검사정보등록 화면
  192. * @ver : 2011.02.10 (CMCDEV-0001)
  193. * @by : 유동철
  194. * @-----------------------------------
  195. * @type : function
  196. * @access : public
  197. * @desc : 검사목록 선택 함수
  198. */
  199. function fExeTestSelect() {
  200. var iFirstRow = grd_testlist.selectedRow(0);
  201. var iLasrRow = grd_testlist.selectedRow(grd_testlist.selectedRows-1);
  202. //---------------------------------------------------
  203. for(var iNo = iLasrRow ; iNo >= iFirstRow ; iNo--) {
  204. model.makeValue("/root/init/testitemcnts/testitemlist["+ iNo +"]/choi", "true");
  205. }
  206. //---------------------
  207. grd_testlist.refresh();
  208. }
  209. /* @group : 검사정보등록 화면
  210. * @ver : 2011.02.10 (CMCDEV-0001)
  211. * @by : 유동철
  212. * @-----------------------------------
  213. * @type : function
  214. * @access : public
  215. * @desc : 검사목록 선택취소 함수
  216. */
  217. function fExeTestDeSelect() {
  218. var iFirstRow = grd_testlist.selectedRow(0);
  219. var iLasrRow = grd_testlist.selectedRow(grd_testlist.selectedRows-1);
  220. //---------------------------------------------------
  221. for(var iNo = iLasrRow ; iNo >= iFirstRow ; iNo--) {
  222. model.makeValue("/root/init/testitemcnts/testitemlist["+ iNo +"]/choi", "false");
  223. }
  224. //---------------------
  225. grd_testlist.refresh();
  226. }
  227. /* @group : 검사정보등록 화면
  228. * @ver : 2011.02.10 (CMCDEV-0001)
  229. * @by : 유동철
  230. * @-----------------------------------
  231. * @type : function
  232. * @access : public
  233. * @desc : 검체목록 선택 함수
  234. */
  235. function fExeSpcSelect() {
  236. var iFirstRow = grd_spclist.selectedRow(0);
  237. var iLasrRow = grd_spclist.selectedRow(grd_spclist.selectedRows-1);
  238. //---------------------------------------------------
  239. for(var iNo = iLasrRow ; iNo >= iFirstRow ; iNo--) {
  240. model.makeValue("/root/init/spccdlist/spccdlistdata["+ iNo +"]/choi", "true");
  241. }
  242. //---------------------
  243. grd_spclist.refresh();
  244. }
  245. /* @group : 검사정보등록 화면
  246. * @ver : 2011.02.10 (CMCDEV-0001)
  247. * @by : 유동철
  248. * @-----------------------------------
  249. * @type : function
  250. * @access : public
  251. * @desc : 검체목록 선택취소 함수
  252. */
  253. function fExeSpcDeSelect() {
  254. var iFirstRow = grd_spclist.selectedRow(0);
  255. var iLasrRow = grd_spclist.selectedRow(grd_spclist.selectedRows-1);
  256. //---------------------------------------------------
  257. for(var iNo = iLasrRow ; iNo >= iFirstRow ; iNo--) {
  258. model.makeValue("/root/init/spccdlist/spccdlistdata["+ iNo +"]/choi", "false");
  259. }
  260. //---------------------
  261. grd_spclist.refresh();
  262. }
  263. /* @group : 검사정보등록 화면
  264. * @ver : 2011.02.10 (CMCDEV-0001)
  265. * @by : 유동철
  266. * @-----------------------------------
  267. * @type : function
  268. * @access : public
  269. * @desc : 검사정보목록 선택 함수
  270. */
  271. function fExeInfoSelect() {
  272. var iFirstRow = grd_testinfolist.selectedRow(0);
  273. var iLasrRow = grd_testinfolist.selectedRow(grd_testinfolist.selectedRows-1);
  274. //---------------------------------------------------
  275. for(var iNo = iLasrRow ; iNo >= iFirstRow ; iNo--) {
  276. model.makeValue("/root/main/testinfocnts/testinfolist["+ iNo +"]/choi", "true");
  277. }
  278. //---------------------
  279. grd_spclist.refresh();
  280. }
  281. /* @group : 검사정보등록 화면
  282. * @ver : 2011.02.10 (CMCDEV-0001)
  283. * @by : 유동철
  284. * @-----------------------------------
  285. * @type : function
  286. * @access : public
  287. * @desc : 검사정보목록 선택취소 함수
  288. */
  289. function fExeInfoDeSelect() {
  290. var iFirstRow = grd_testinfolist.selectedRow(0);
  291. var iLasrRow = grd_testinfolist.selectedRow(grd_testinfolist.selectedRows-1);
  292. //---------------------------------------------------
  293. for(var iNo = iLasrRow ; iNo >= iFirstRow ; iNo--) {
  294. model.makeValue("/root/main/testinfocnts/testinfolist["+ iNo +"]/choi", "false");
  295. }
  296. //---------------------
  297. grd_spclist.refresh();
  298. }
  299. /* @group : 검사정보등록 화면
  300. * @ver : 2011.02.10 (CMCDEV-0001)
  301. * @by : 유동철
  302. * @-----------------------------------
  303. * @type : function
  304. * @access : public
  305. * @desc : 검체정보 생성 함수
  306. */
  307. function fExeInfoSend() {
  308. var iLastNo = 0;
  309. var sNode = "/root/main/testinfocnts/testinfolist";
  310. var sTestNode = "/root/init/testitemcnts/testitemlist";
  311. var sSpcNode = "/root/init/spccdlist/spccdlistdata";
  312. //----------------------------------------------------------------------
  313. for (var iTestNo=1; iTestNo <= getNodesetCount(sTestNode); iTestNo++) {
  314. //--------------------------------------------------------------------
  315. if ( model.getValue(sTestNode+"[" + iTestNo + "]/choi") == "true" ) {
  316. //------------------------------------------------------------------
  317. for (var iSpcNo=1; iSpcNo <= getNodesetCount(sSpcNode); iSpcNo++) {
  318. //------------------------------------------------------------------
  319. if ( model.getValue(sSpcNode+"[" + iSpcNo + "]/choi") == "true" ) {
  320. //-------------------------------------
  321. grd_testinfolist.addRow(false, true);
  322. iLastNo = Number(getNodesetCount(sNode));
  323. //------------------------------------------------------------
  324. model.makeValue(sNode+"["+iLastNo+"]/choi", "false" );
  325. model.makeValue(sNode+"["+iLastNo+"]/instcd", model.getValue(sTestNode+"["+iTestNo+"]/instcd") );
  326. model.makeValue(sNode+"["+iLastNo+"]/testcd", model.getValue(sTestNode+"["+iTestNo+"]/testcd") );
  327. model.makeValue(sNode+"["+iLastNo+"]/testhngnm", model.getValue(sTestNode+"["+iTestNo+"]/testengnm") );
  328. model.makeValue(sNode+"["+iLastNo+"]/spccd", model.getValue(sSpcNode+"["+iSpcNo+"]/spccd") );
  329. model.makeValue(sNode+"["+iLastNo+"]/spcnm", model.getValue(sSpcNode+"["+iSpcNo+"]/spcnm") );
  330. model.makeValue(sNode+"["+iLastNo+"]/delflagcd", "0" );
  331. model.makeValue(sNode+"["+iLastNo+"]/fromdd", getCurrentDate() );
  332. model.makeValue(sNode+"["+iLastNo+"]/todd", "99991231" );
  333. model.makeValue(sNode+"["+iLastNo+"]/tubecd", "-" );
  334. model.makeValue(sNode+"["+iLastNo+"]/readid", "-" );
  335. model.makeValue(sNode+"["+iLastNo+"]/incfnm", "-" );
  336. model.makeValue(sNode+"["+iLastNo+"]/barcdprtncnt", "0" );
  337. model.makeValue(sNode+"["+iLastNo+"]/state", "1" ); // 신규(1)
  338. }
  339. }
  340. //-----------------------------
  341. // 생성 후 선택 자동 취소(검사)
  342. model.makeValue(sTestNode+"["+iTestNo+"]/choi", "false" );
  343. }
  344. }
  345. //------------------------------------------------------------------
  346. for (var iSpcNo=1; iSpcNo <= getNodesetCount(sSpcNode); iSpcNo++) {
  347. //------------------------------------------------------------------
  348. if ( model.getValue(sSpcNode+"[" + iSpcNo + "]/choi") == "true" ) {
  349. model.makeValue(sSpcNode+"[" + iSpcNo + "]/choi", "false");
  350. }
  351. }
  352. //--------------
  353. //model.refresh();
  354. if ( Number( getNodesetCount(sNode) ) > 28 ) {
  355. grd_testinfolist.topRow = Number( getNodesetCount(sNode) ) - 28;
  356. } else {
  357. grd_testinfolist.topRow = 1;
  358. }
  359. //-------------------------
  360. grd_testinfolist.refresh();
  361. }
  362. /* @group : 검사정보등록 화면
  363. * @ver : 2007.01.08 (CMCDEV-0001)
  364. * @by : 황상미(ACK)
  365. * @-----------------------------------
  366. * @type : function
  367. * @access : public
  368. * @desc : 조회/수정/신규 컨트롤 사용여부 변경 함수
  369. */
  370. function fExeControlChng(iGbn){
  371. var sGbn = "";
  372. if(iGbn == "true"){
  373. sGbn = "false";
  374. }else{
  375. sGbn = "true";
  376. }
  377. var vCtrIptArr = new Array(); //입력부 컨트롤
  378. var vCtrSelArr = new Array(); //선택부 컨트롤
  379. vCtrSelArr[0] = document.controls("btn_testcd"); // 검사코드 조회버튼
  380. vCtrSelArr[1] = document.controls("btn_spccd"); // 검체코드 조회버튼
  381. vCtrSelArr[2] = document.controls("rdo_delflagcd"); // 사용여부 선택박스
  382. vCtrSelArr[3] = document.controls("ipt_cfnm"); // CF명
  383. vCtrSelArr[4] = document.controls("ipt_barcdprtncnt");
  384. vCtrSelArr[5] = document.controls("cmb_tubecd");
  385. vCtrSelArr[6] = document.controls("cmb_readdr");
  386. vCtrSelArr[7] = document.controls("ipt_incfnm"); // CF명
  387. for(var idx = 0; idx < vCtrSelArr.length; idx++){
  388. vCtrSelArr[idx].disabled = sGbn;
  389. }
  390. }
  391. /* @group : 검사정보등록 화면
  392. * @ver : 2007.01.08 (CMCDEV-0001)
  393. * @by : 황상미(ACK)
  394. * @-----------------------------------
  395. * @type : function
  396. * @access : public
  397. * @desc : 조회, 수정, 신규 작업 구분 함수
  398. */
  399. function fExeCodeUpdtFlag(){
  400. var updtGbn = model.getValue("/root/hidden/cdupdtflag");
  401. //updtGbn - 1:조회, 2:수정, 3:신규
  402. if(updtGbn == "1"){
  403. fExeControlChng("false");
  404. }else if(updtGbn == "2"){
  405. if(model.getValue("/root/main/testinfo/testcd") == ""){
  406. messageBox("검사코드를", "C002");
  407. model.setValue("/root/hidden/cdupdtflag", "1");
  408. fExeControlChng("false");
  409. model.refresh();
  410. return;
  411. }
  412. fExeControlChng("false");
  413. document.controls("cmb_readdr").disabled = "false";
  414. document.controls("rdo_delflagcd").disabled = "false";
  415. document.controls("ipt_cfnm").disabled = "false";
  416. document.controls("ipt_incfnm").disabled = "false";
  417. document.controls("ipt_barcdprtncnt").disabled = "false";
  418. document.controls("cmb_tubecd").disabled = "false";
  419. }else{
  420. fExeControlChng("true");
  421. fExeInsWork();
  422. }
  423. model.refresh();
  424. }
  425. /* @group : 검사정보등록 화면
  426. * @ver : 2007.02.12 (CMCDEV-0001)
  427. * @by : 황상미(ACK)
  428. * @-----------------------------------
  429. * @type : function
  430. * @access : public
  431. * @desc : 신규 작업 시 기본 Setting 함수
  432. */
  433. function fExeInsWork(){
  434. model.resetInstanceNode("/root/main/testinfo");
  435. model.setValue("/root/main/testinfo/delflagcd", "0");
  436. document.controls("rdo_delflagcd").disabled = "true";
  437. model.refresh();
  438. }
  439. /* @group : 검사정보등록 화면
  440. * @ver : 2007.01.08 (CMCDEV-0001)
  441. * @by : 황상미(ACK)
  442. * @-----------------------------------
  443. * @type : function
  444. * @access : public
  445. * @desc : 검사정보 리스트 조회 함수
  446. */
  447. function fGetRefData(ref_work_flag){
  448. var iRowNo = grd_testinfolist.row;
  449. var iColNo = grd_testinfolist.col;
  450. //-----------------------------------
  451. if ( ref_work_flag == "testinfo" ) {
  452. if (iRowNo > 0 && grd_testinfolist.isCell(event.target) && iRowNo >= grd_testinfolist.fixedRows) {
  453. // Continue
  454. } else {
  455. return false;
  456. }
  457. }
  458. //------------------------------------------------------------
  459. if (ref_work_flag == "testinfo" && grd_testinfolist.row < 1) {
  460. return;
  461. }
  462. //---------------------------------------------
  463. model.resetInstanceNode("/root/main/testinfo");
  464. //-----------------------
  465. switch (ref_work_flag) {
  466. case "testinfolist":
  467. model.resetInstanceNode("/root/main/testinfocnts");
  468. //-------------------
  469. fGetTestInfoList("");
  470. model.removeNodeset("/root/main/testinfocnts/message");
  471. break;
  472. case "testinfo":
  473. break;
  474. default:
  475. break;
  476. }
  477. //--------------
  478. model.refresh();
  479. }
  480. /* @group : 검사정보등록 화면
  481. * @ver : 2007.02.08 (CMCDEV-0001)
  482. * @by : 황상미(ACK)
  483. * @-----------------------------------
  484. * @type : function
  485. * @access : public
  486. * @desc : 처리부영역 항목 선택시 처리 함수
  487. * gbn : 선택된 처리값
  488. */
  489. function fExeCheckItem(flag){
  490. //수정 or 신규작업시에만 Check
  491. if(flag != "refval" && model.getValue("/root/hidden/cdupdtflag") == "1"){
  492. return;
  493. }else if(model.getValue("/root/hidden/cdupdtflag") == "2" && model.getValue("/root/main/testinfo/testcd") == ""){
  494. return;
  495. }
  496. switch(flag){
  497. case "testcode": //검사그룹 선택 팝업호출
  498. lpzfExeComnOpenScrn("testcode", "/root/main/testinfo");
  499. break;
  500. case "spccd":
  501. model.makeValue("/root/hidden/scrnid", "SMLPC00700");
  502. lpzfExeComnOpenScrn("spccd", "/root/main/testinfo");
  503. break;
  504. case "refval":
  505. if(model.getValue("/root/hidden/refval") != ""){
  506. lpzfExeLrgChar("/root/hidden/refval");
  507. }
  508. break;
  509. default:
  510. break;
  511. }
  512. model.refresh();
  513. }
  514. /* @group : 검사정보등록 화면
  515. * @ver : 2011.02.11 (CMCDEV-0001)
  516. * @by : 황상미(ACK)
  517. * @-----------------------------------
  518. * @type : function
  519. * @access : public
  520. * @desc : 검사항목코드정보 수정/신규 함수
  521. */
  522. function fExeTestInfoSave() {
  523. //--------------------------------
  524. model.removeNodeset("/root/send");
  525. model.makeValue("/root/send/testinfo", grd_testinfolist.getUpdateData() );
  526. //--------------------------
  527. if( submit("TXLPC00701") ) {
  528. fGetRefData("testinfolist"); // 저장 후 조회
  529. } else {
  530. messageBox("저장이", "E009");
  531. }
  532. }
  533. /* @group : 검사정보등록 화면
  534. * @ver : 2007.02.09 (CMCDEV-0001)
  535. * @by : 황상미(ACK)
  536. * @-----------------------------------
  537. * @type : function
  538. * @access : public
  539. * @desc : 검사항목코드정보 수정/신규 함수
  540. */
  541. function fSetUpdtData(){
  542. var updt_flag = model.getValue("/root/hidden/cdupdtflag");
  543. if(updt_flag == "1"){
  544. messageBox("조회작업 중", "E008");
  545. return;
  546. }
  547. lpzfExeRemakeSendNode(2); //send node reset
  548. //필수 입력항목 및 자리수 확인
  549. if(model.getValue("/root/main/testinfo/testcd") == ""){
  550. messageBox("검사코드를", "C002");
  551. return;
  552. }else if(model.getValue("/root/main/testinfo/spccd") == "" ){
  553. messageBox("검체코드를", "C002");
  554. return;
  555. }
  556. //저장여부 확인Message
  557. if(lpzfExeBfChkMsg("UI") == false){
  558. //6:예, 7:아니오, 2:취소
  559. return;
  560. }
  561. model.setValue("/root/main/testinfo/instcd", model.getValue("/root/hidden/userinfo/instcd")); //test instcd
  562. model.setValue("/root/send/data1", updt_flag); //수정/신규구분
  563. model.copyNode("/root/send/data2", "/root/main/testinfo"); //검사정보
  564. if(submit("TXLPC00701") == true){
  565. messageBox("저장이", "I002");
  566. //화면초기화 및 저장된 항목 insert ********************
  567. var prest_row;
  568. if(updt_flag == "3"){
  569. grd_testinfolist.addItem();
  570. prest_row = grd_testinfolist.rows - 1;
  571. }else{
  572. if(model.getValue("/root/hidden/delflagcd") == model.getValue("/root/main/testinfo/delflagcd")){
  573. prest_row = grd_testinfolist.row;
  574. }else{
  575. prest_row == -1;
  576. }
  577. }
  578. if(prest_row > 0){
  579. model.setValue("/root/main/testinfocnts/testinfolist[" + prest_row + "]/instcd",
  580. model.getValue("/root/main/testinfo/instcd"));
  581. model.setValue("/root/main/testinfocnts/testinfolist[" + prest_row + "]/testcd",
  582. model.getValue("/root/main/testinfo/testcd"));
  583. model.setValue("/root/main/testinfocnts/testinfolist[" + prest_row + "]/testhngnm",
  584. model.getValue("/root/main/testinfo/testhngnm"));
  585. model.setValue("/root/main/testinfocnts/testinfolist[" + prest_row + "]/spccd",
  586. model.getValue("/root/main/testinfo/spccd"));
  587. model.setValue("/root/main/testinfocnts/testinfolist[" + prest_row + "]/spcnm",
  588. model.getValue("/root/main/testinfo/spcnm"));
  589. }else{
  590. for(var i = 1; i < grd_testinfolist.rows; i++){
  591. prest_row = grd_testinfolist.findRow(model.getValue("/root/main/testinfo/testcd"), i, 2, true, true);
  592. grd_testinfolist.deleteItem(prest_row);
  593. break;
  594. }
  595. }
  596. model.resetInstanceNode("/root/main/testinfo");
  597. model.setValue("/root/hidden/cdupdtflag", "1");
  598. fExeControlChng("false");
  599. //**************************************************
  600. }else{
  601. messageBox("저장이", "E009");
  602. }
  603. model.refresh();
  604. }
  605. /* @group : 검사정보등록 화면
  606. * @ver : 2008.01.29 (CMCDEV-0001)
  607. * @by : 황상미(ACK)
  608. * @-----------------------------------
  609. * @type : function
  610. * @access : public
  611. * @desc : 검사정보 보기
  612. */
  613. function fGetTestInfoList(page) {
  614. //----------------------
  615. // 이상 페이지 번호 처리
  616. if(page == "") page = 1;
  617. if(page < 1) page = 1;
  618. if(page > Number(cap_lastPage.value)) page = Number(cap_lastPage.value);
  619. if (page == 0) page = 1;
  620. //--------------------------------
  621. model.removeNodeset("/root/send");
  622. model.removeNodeset("/root/main/testinfocnts/testinfolist");
  623. model.removeNodeset("/root/main/testinfocnts/lastpage");
  624. //--------------------------------------------------------------------------------
  625. model.makeValue("/root/send/delflagcd", model.getValue("/root/hidden/delflagcd")); //조회조건 사용여부구분
  626. model.makeValue("/root/send/refflagcd", model.getValue("/root/hidden/refflag")); //조회구분
  627. model.makeValue("/root/send/refval", model.getValue("/root/hidden/refval")); //조회값
  628. model.makeValue("/root/send/instcd", model.getValue("/root/hidden/userinfo/instcd")); //기관코드
  629. model.makeValue("/root/send/page", page);
  630. model.makeValue("/root/send/itemlimit", "100");
  631. submit("TRLPC00701");
  632. ipt_paval.value = page;
  633. }
  634. ]]>
  635. </script>
  636. <!-- public Script end -->
  637. <submission id="TRLPZ00114" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/"/>
  638. <submission id="TRLPZ00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/userinfo/userinfolist"/>
  639. </model>
  640. </xhtml:head>
  641. <xhtml:body guideline="1,1194;2,784;2,757;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  642. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  643. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:15px; ">검사정보등록</caption>
  644. </group>
  645. <group id="grp_btn" scroll="auto" style="left:0px; top:13px; width:1195px; height:27px; ">
  646. <button id="button11" class="btn4_letter2" navindex="10" style="left:1138px; top:3px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  647. <caption>저장</caption>
  648. <script type="javascript" ev:event="DOMActivate">
  649. <![CDATA[
  650. //fSetUpdtData();
  651. fExeTestInfoSave();
  652. ]]>
  653. </script>
  654. </button>
  655. <line id="line17" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  656. <button id="button1" class="btn4_letter2" style="left:250px; top:5px; width:56px; height:22px; ">
  657. <caption>다음</caption>
  658. <script type="javascript" ev:event="DOMActivate">
  659. <![CDATA[
  660. fGetTestInfoList(Number(model.getValue("/root/hidden/paval")) + 1);
  661. ]]>
  662. </script>
  663. </button>
  664. <button id="button2" class="btn3_letter2" style="left:2px; top:4px; width:56px; height:22px; ">
  665. <caption>처음</caption>
  666. <script type="javascript" ev:event="DOMActivate">
  667. <![CDATA[
  668. fGetTestInfoList(1);
  669. ]]>
  670. </script>
  671. </button>
  672. <button id="button4" class="btn4_letter2" style="left:309px; top:5px; width:56px; height:22px; ">
  673. <caption>최종</caption>
  674. <script type="javascript" ev:event="DOMActivate">
  675. <![CDATA[
  676. fGetTestInfoList(model.getValue("/root/main/testinfocnts/lastpage/lastpage"));
  677. ]]>
  678. </script>
  679. </button>
  680. <input id="ipt_paval" ref="/root/hidden/paval" class="input_search" style="left:120px; top:5px; width:65px; height:19px; text-align:right; ">
  681. <script type="javascript" ev:event="xforms-value-changed">
  682. <![CDATA[
  683. fGetTestInfoList(model.getValue("/root/hidden/paval"));
  684. ]]>
  685. </script>
  686. <script type="javascript" ev:event="onkeypress">
  687. <![CDATA[
  688. if(event.keyCode == 13 && ipt_paval.currentText != ipt_paval.value) {
  689. model.setValue("/root/hidden/paval", ipt_paval.currentText);
  690. ipt_paval.dispatch("xforms-value-changed");
  691. }
  692. else if(event.keyCode != 8 && (event.keyCode < 48 || event.keyCode > 57)) {
  693. event.defaultAction = "cancel";
  694. }
  695. ]]>
  696. </script>
  697. </input>
  698. <caption id="cap_lastPage" ref="/root/main/testinfocnts/lastpage/lastpage" style="left:195px; top:5px; width:60px; height:20px; font-size:9pt; font-weight:bold; ">1</caption>
  699. <caption id="caption4" style="left:187px; top:5px; width:11px; height:20px; font-size:9pt; font-weight:bold; ">/</caption>
  700. <button id="btn_prntexcel" class="btn3_letter2" style="left:61px; top:4px; width:56px; height:22px; ">
  701. <caption>이전</caption>
  702. <script type="javascript" ev:event="DOMActivate">
  703. <![CDATA[
  704. fGetTestInfoList(Number(model.getValue("/root/hidden/paval")) - 1);
  705. ]]>
  706. </script>
  707. </button>
  708. </group>
  709. <group id="grp_biz" scroll="auto" style="left:0px; top:40px; width:1195px; height:744px; ">
  710. <group id="group1" style="left:0px; top:10px; width:1194px; height:35px; ">
  711. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  712. <button id="button3" class="btn1_letter2" navindex="4" style="left:1123px; top:7px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  713. <caption>조회</caption>
  714. <script type="javascript" ev:event="DOMActivate">
  715. <![CDATA[
  716. fGetRefData("testinfolist");
  717. ]]>
  718. </script>
  719. </button>
  720. <line id="line14" class="line_4" style="x1:1108px; y1:6px; x2:1108px; y2:28px; border-color:#ffe4bb; border-left-style:solid; "/>
  721. <caption id="caption2" class="search_name" style="left:15px; top:9px; width:90px; height:17px; vertical-align:middle; background-image:../../../com/commonweb/images/search_bullet1.gif; ">사용여부 :</caption>
  722. <select1 id="combo1" ref="/root/hidden/refflag" class="combo_search" navindex="2" appearance="minimal" style="left:851px; top:8px; width:120px; height:19px; ">
  723. <choices>
  724. <item>
  725. <label>검사코드</label>
  726. <value>1</value>
  727. </item>
  728. <item>
  729. <label>검체코드</label>
  730. <value>2</value>
  731. </item>
  732. </choices>
  733. </select1>
  734. <caption id="caption22" class="search_name" style="left:773px; top:9px; width:75px; height:17px; vertical-align:middle; background-image:../../../com/commonweb/images/search_bullet1.gif; ">조회값 :</caption>
  735. <select1 id="rdo_s_delflagcd" ref="/root/hidden/delflagcd" class="radio_search" navindex="1" appearance="full" cellspacing="20" cols="3" overflow="visible" style="left:108px; top:10px; width:122px; height:16px; border-style:none; ">
  736. <choices>
  737. <item>
  738. <label>사용</label>
  739. <value>0</value>
  740. </item>
  741. <item>
  742. <label>미사용</label>
  743. <value>1</value>
  744. </item>
  745. </choices>
  746. </select1>
  747. <input id="ipt_refval" ref="/root/hidden/refval" class="input_search" navindex="3" style="left:974px; top:8px; width:120px; height:19px; ">
  748. <script type="javascript" ev:event="DOMFocusOut">
  749. <![CDATA[
  750. fExeCheckItem("refval");
  751. ]]>
  752. </script>
  753. <script type="javascript" ev:event="onkeypress">
  754. <![CDATA[
  755. if( event.keyCode == 13 ) {
  756. var sText = ipt_refval.currentText;
  757. model.makeValue("/root/hidden/refval", sText.toUpperCase());
  758. //-------------------
  759. ipt_refval.refresh();
  760. //--------------------------
  761. fGetRefData("testinfolist");
  762. }
  763. ]]>
  764. </script>
  765. </input>
  766. </group>
  767. <caption id="caption1" class="tit_2" style="left:620; top:55px; width:131px; height:13px; background-image:../../../com/commonweb/images/tit_bullet2.gif; ">검사정보</caption>
  768. <line id="line1" class="line_1" style="x1:615px; y1:70px; x2:1193px; y2:70px; "/>
  769. <datagrid id="grd_testinfolist" nodeset="/root/main/testinfocnts/testinfolist" class="datagrid" caption="^기관코드^검사코드^검사명^검체코드^검체명^사용^시작일자^종료일자^tubecd^readid^incfnm^barcdprntcnt^state" colsep="^" colwidth="30,0, 80, 200, 60, 100,60,90,90,0,0,0,0,0" dataheight="23" explorerbar="sort" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" navindex="31" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:615px; top:75px; width:578px; height:667px; border-color:#c0c0c0; ">
  770. <col ref="choi" type="checkbox"/>
  771. <col ref="instcd" type="output"/>
  772. <col ref="testcd" type="output" style="text-align:center; "/>
  773. <col ref="testhngnm" type="output"/>
  774. <col ref="spccd" type="output" style="text-align:center; "/>
  775. <col ref="spcnm" type="output"/>
  776. <col ref="delflagcd" type="combo">
  777. <choices>
  778. <item>
  779. <label>사용</label>
  780. <value>0</value>
  781. </item>
  782. <item>
  783. <label>미사용</label>
  784. <value>1</value>
  785. </item>
  786. </choices>
  787. </col>
  788. <col ref="fromdd" type="inputdate" format="yyyy-mm-dd"/>
  789. <col ref="todd" type="inputdate" format="yyyy-mm-dd"/>
  790. <col ref="tubecd" type="output" visibility="hidden"/>
  791. <col ref="readid" type="output" visibility="hidden"/>
  792. <col ref="incfnm" type="output" visibility="hidden"/>
  793. <col ref="barcdprtncnt" type="output" visibility="hidden"/>
  794. <col ref="state" type="output" visibility="hidden"/>
  795. <script type="javascript" ev:event="onclick">
  796. <![CDATA[
  797. //fGetRefData("testinfo");
  798. ]]>
  799. </script>
  800. <script type="javascript" ev:event="onaftersort">
  801. <![CDATA[
  802. grd_testinfolist.gridToInstance();
  803. ]]>
  804. </script>
  805. <script type="javascript" ev:event="onmousedown">
  806. <![CDATA[
  807. if ( (grd_testinfolist.mouseRow >= grd_testinfolist.fixedRows) && (grd_testinfolist.isCell(event.target))) {
  808. setPopupMenu("grd_testinfolist", false, "/root/init/popupmenu3/item", "name", "func");
  809. }
  810. ]]>
  811. </script>
  812. <script type="javascript" ev:event="DOMFocusOut">
  813. <![CDATA[
  814. initPopupMenu();
  815. ]]>
  816. </script>
  817. </datagrid>
  818. <caption id="caption3" class="tit_2" style="left:5px; top:55px; width:131px; height:13px; background-image:../../../com/commonweb/images/tit_bullet2.gif; ">검사목록</caption>
  819. <line id="line2" class="line_1" style="x1:0px; y1:70px; x2:310px; y2:70px; "/>
  820. <datagrid id="grd_spclist" nodeset="/root/init/spccdlist/spccdlistdata" class="datagrid" autoresize="true" caption="^instcd^검체코드^검체명^구분" colsep="^" colwidth="26, 0, 60, 150, 40" dataheight="23" explorerbar="sort" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" navindex="31" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:314px; top:75px; width:296px; height:667px; border-color:#c0c0c0; ">
  821. <col ref="choi" type="checkbox"/>
  822. <col ref="instcd" type="output" visibility="hidden"/>
  823. <col ref="spccd" type="output" style="text-align:center; "/>
  824. <col ref="spcnm" type="output"/>
  825. <col editmode="search" ref="spcflagcd" type="combo">
  826. <choices>
  827. <item>
  828. <label>대표</label>
  829. <value>0</value>
  830. </item>
  831. <item>
  832. <label>세부</label>
  833. <value>1</value>
  834. </item>
  835. </choices>
  836. </col>
  837. <script type="javascript" ev:event="onaftersort">
  838. <![CDATA[
  839. grd_spclist.gridToInstance();
  840. ]]>
  841. </script>
  842. <script type="javascript" ev:event="onmousedown">
  843. <![CDATA[
  844. if ( (grd_spclist.mouseRow >= grd_spclist.fixedRows) && (grd_spclist.isCell(event.target))) {
  845. setPopupMenu("grd_spclist", false, "/root/init/popupmenu2/item", "name", "func");
  846. }
  847. ]]>
  848. </script>
  849. <script type="javascript" ev:event="DOMFocusOut">
  850. <![CDATA[
  851. initPopupMenu();
  852. ]]>
  853. </script>
  854. </datagrid>
  855. <caption id="caption5" class="tit_2" style="left:319; top:55px; width:131px; height:13px; background-image:../../../com/commonweb/images/tit_bullet2.gif; ">검체목록</caption>
  856. <line id="line3" class="line_1" style="x1:314px; y1:70px; x2:610px; y2:70px; "/>
  857. <datagrid id="grd_testlist" nodeset="/root/init/testitemcnts/testitemlist" autoresize="true" caption="^instcd^testcd^검사명^검사약어" colsep="^" colwidth="30, 0, 0, 150, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:75px; width:310px; height:667px; ">
  858. <col ref="choi" type="checkbox"/>
  859. <col ref="instcd" visibility="hidden"/>
  860. <col ref="testcd" visibility="hidden"/>
  861. <col ref="testengnm"/>
  862. <col ref="testengabbr"/>
  863. <script type="javascript" ev:event="onmousedown">
  864. <![CDATA[
  865. if ( (grd_testlist.mouseRow >= grd_testlist.fixedRows) && (grd_testlist.isCell(event.target))) {
  866. setPopupMenu("grd_testlist", false, "/root/init/popupmenu1/item", "name", "func");
  867. }
  868. ]]>
  869. </script>
  870. <script type="javascript" ev:event="DOMFocusOut">
  871. <![CDATA[
  872. initPopupMenu();
  873. ]]>
  874. </script>
  875. </datagrid>
  876. <button id="btn_addcste" class="btn2_letter4" navindex="12" style="left:1129px; top:49px; width:64px; height:19px; ">
  877. <caption>정보전달</caption>
  878. <script type="javascript" ev:event="DOMActivate">
  879. <![CDATA[
  880. fExeInfoSend();
  881. ]]>
  882. </script>
  883. </button>
  884. <select1 id="cbo_useflagcd" ref="/root/init/useflagcd" appearance="minimal" style="left:1050px; top:50px; width:75px; height:19px; ">
  885. <choices>
  886. <item>
  887. <label>사용</label>
  888. <value>0</value>
  889. </item>
  890. <item>
  891. <label>미사용</label>
  892. <value>1</value>
  893. </item>
  894. </choices>
  895. <script type="javascript" ev:event="xforms-select">
  896. <![CDATA[
  897. var sNode="/root/main/testinfocnts/testinfolist";
  898. //-------------------------------------------------------
  899. for (var iNo=1; iNo <= getNodesetCount(sNode); iNo++ ) {
  900. //--------------------------------------------------------
  901. if ( model.getValue(sNode+"["+iNo+"]/choi") == "true" ) {
  902. if ( model.getValue(sNode+"["+iNo+"]/delflagcd") == model.getValue("/root/init/useflagcd") ) {
  903. // Continue
  904. } else {
  905. model.makeValue(sNode+"["+iNo+"]/delflagcd", model.getValue("/root/init/useflagcd") );
  906. //--------------------------
  907. // 신규건은 처리하지 않는다.
  908. if ( model.getValue(sNode+"["+iNo+"]/state") == "0" ) {
  909. grd_testinfolist.addStatus(iNo, "update");
  910. }
  911. }
  912. }
  913. }
  914. //-------------------------
  915. grd_testinfolist.refresh();
  916. ]]>
  917. </script>
  918. </select1>
  919. </group>
  920. </xhtml:body>
  921. </xhtml:html>