SMAHA00300_단체예약접수.xrw 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMAHA00300.xrw
  4. * 설 명 : 단체예약/접수(종건/일건)
  5. * 설 계 자 : 박원희
  6. * 작 성 자 : 박원희
  7. * 작 성 일 : 2007.07.12
  8. * 수정이력 : 손범성
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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>단체예약접수</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <uploadlst>
  20. <item>
  21. <chk/>
  22. <hngnm/>
  23. <rrgstno1/>
  24. <rrgstno2/>
  25. <hopedd/>
  26. <email/>
  27. <telno/>
  28. <mpphon/>
  29. <zipcd11/>
  30. <zipcd12/>
  31. <detladdr1/>
  32. <testcd/>
  33. <healexamplacecd/>
  34. <choiflag/>
  35. <cmpycd/>
  36. <remcnts/>
  37. <clntpos/>
  38. <fmhngnm/>
  39. <fmrgstno1/>
  40. <fmrgstno2/>
  41. <fmrelacd/>
  42. <clntdeptnm/>
  43. <clntcmpynm/>
  44. <clntempid/>
  45. <testnm/>
  46. <sex/>
  47. <brthdd/>
  48. <age/>
  49. <forgneryn/>
  50. <emailid/>
  51. <emailtype/>
  52. <statflag/>
  53. <healexamflag/>
  54. <healexamdetlflag/>
  55. <conseq/>
  56. <conhistseq/>
  57. <pkgcd/>
  58. </item>
  59. </uploadlst>
  60. </main>
  61. <send>
  62. <srch>
  63. <rrgstno/>
  64. </srch>
  65. <save>
  66. <cmpyrsrv/>
  67. </save>
  68. <clscd/>
  69. <etccd/>
  70. </send>
  71. <init>
  72. <baseinfo>
  73. <empflag/>
  74. <plceflag/>
  75. <choiflaglst/>
  76. <healexamplacelst/>
  77. <chedetlflaglst/>
  78. <ghedetlflaglst/>
  79. <hedetlflaglst>
  80. <item/>
  81. </hedetlflaglst>
  82. <detlcodelst/>
  83. </baseinfo>
  84. <send>
  85. <healexamflag/>
  86. <healexamdetlflag/>
  87. <cmpycd/>
  88. <cmpynm/>
  89. <conseq/>
  90. <conhistseq/>
  91. <pkgcd/>
  92. <pkgnm/>
  93. <healexamplacecd/>
  94. <choiflag/>
  95. </send>
  96. </init>
  97. <hidden>
  98. <coninfo/>
  99. <duprrgstnolst>
  100. <item/>
  101. </duprrgstnolst>
  102. <testlst/>
  103. </hidden>
  104. <tmp/>
  105. </root>
  106. </instance>
  107. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  108. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  109. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  110. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  111. <script type="javascript" src="../../../ast/commonweb/js/AST.js"/>
  112. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  113. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  114. <script type="javascript" src="../../../ast/healexamweb/js/AHA001.js"/>
  115. <script type="javascript" src="../../../com/zipcodeweb/js/ZBP001.js"/>
  116. <script type="javascript" src="../../../ast/healthexambaseweb/js/healcombolist.js"/>
  117. <script type="javascript" ev:event="xforms-ready">
  118. <![CDATA[
  119. var sFlag = getScreenMenuParameter();
  120. if(sFlag != "") {
  121. m_vHealexamflag = sFlag.substr(0,1);
  122. m_vHealexamdetlflag = sFlag;
  123. }
  124. fGetBaseInfo();
  125. fInit();
  126. model.refresh();
  127. //기본코드관리의 상세코드 호출
  128. model.setValue("/root/send/clscd", "G" ); //공통코드
  129. model.setValue("/root/send/etccd", "G14"); //건진가족관계 Setting
  130. submit("TRAHB00602");
  131. ]]>
  132. </script>
  133. <script type="javascript">
  134. <![CDATA[
  135. var m_vHealexamflag = "";
  136. var m_vHealexamdetlflag = "";
  137. /**
  138. *기본정보 가져오기
  139. */
  140. function fGetBaseInfo(){
  141. zbcfGetCodeList( new Array("A0069","A0070", "A0113","A0110","A0116"),
  142. new Array("/root/init/baseinfo/chedetlflaglst"
  143. , "/root/init/baseinfo/ghedetlflaglst"
  144. , "/root/init/baseinfo/empflag"
  145. ,"/root/init/baseinfo/plceflag"
  146. ,"/root/init/baseinfo/choiflaglst") );
  147. healGetCodeList( new Array("S600")
  148. , new Array("/root/init/baseinfo/healexamplacelst") );
  149. model.removenode("/root/init/baseinfo/healexamplacelst/S600[1]");
  150. //선택검사에 빈칸을 추가한다.
  151. addComboItem("combo1"," ","","above");
  152. copyNodesetType("/root/init/baseinfo/hedetlflaglst/item","/root/init/baseinfo/chedetlflaglst/A0069","after");
  153. copyNodesetType("/root/init/baseinfo/hedetlflaglst/item","/root/init/baseinfo/ghedetlflaglst/A0070","after");
  154. model.refresh();
  155. }
  156. /********************************************************************************************************************************************************
  157. * 초기화 작업
  158. ********************************************************************************************************************************************************/
  159. function fInit() {
  160. model.setValue("/root/init/send/healexamflag" , m_vHealexamflag);
  161. model.setValue("/root/init/send/healexamdetlflag" , m_vHealexamdetlflag);
  162. rdo_healexamplace.select(0);
  163. grd_cupload.fixedcellcheckbox(0 , grd_cupload.colRef("chk")) = true;
  164. }
  165. /********************************************************************************************************************************************************
  166. * 파일 업로드
  167. ********************************************************************************************************************************************************/
  168. function fFileUpload(){
  169. var healexamdeltflag = model.getValue("/root/init/baseinfo/healexamdetlflag" );
  170. var fileName = window.fileDialog("open", ",", false, "", "xls", "Excel Files(*.xls)|*.xls|Dat Files(*.dat)|*.dat|All Files (*.*)|*.*");
  171. var regExp = /.dat$/gi;
  172. var vGrd = null;
  173. //model.setValue("/root/hidden/save/filename" , fileName);
  174. // 엑셀, dat파일 구분
  175. if(regExp.test(fileName)) {
  176. /*var fso,ts,tsr;
  177. fso = new ActiveXObject("Scripting.FileSystemObject");
  178. ts = fso.OpenTextFile(fileName);
  179. model.setValue("/root/send/linkdata",ts.ReadAll());
  180. ts.Close();
  181. if(submit("TRAHA00304",false)) {
  182. if(model.getValue("/root/main/linklst/cmpy/cmpyrgstyn") == 0) {
  183. submit("TXAHA00303");
  184. }
  185. model.toggle("case_linkup");
  186. } */
  187. }else {
  188. //model.toggle("case_cup");
  189. grd_cupload.loadExcel(fileName, 1, true);
  190. var cnt = grd_cupload.rows;
  191. var i = 0;
  192. for( i = 1; i < cnt +1 ; i++)
  193. {
  194. grd_cupload.addStatus(i, "insert");
  195. }
  196. grd_cupload.deleteRow(1);
  197. grd_cupload.rebuildStyle();
  198. grd_cupload.refresh();
  199. }
  200. }
  201. /********************************************************************************************************************************************************
  202. * Dat 파일 화면셋팅
  203. ********************************************************************************************************************************************************/
  204. function fSetDatFile(vLine) {
  205. var nodeSet = "/root/hidden/linkflag/flag";
  206. var nodeList = instance1.selectNodes(nodeSet);
  207. for(var i=1; i <= nodeList.length; i++) {
  208. var linkCntsFlag = model.getValue(nodeSet + "[" + i + "]/linkcntsflag");
  209. var start = model.getValue(nodeSet + "[" + i + "]/colmstart");
  210. var size = model.getValue(nodeSet + "[" + i + "]/colmsize");
  211. // 시작구분 조회
  212. if(linkCntsFlag == "FF") {
  213. var startFlag = model.getValue(nodeSet + "[" + i + "]/linkcntscd"); // 시작구분
  214. if(startFlag == vLine.substr(start -1, size)) {
  215. var srcFlag = model.getValue(nodeSet + "[" + i + "]/linkdetlflag"); // 찾기 사업장,영업소,부서,검진대상자 구분
  216. for(var j=1; j<nodeList.length; j++) {
  217. var desFlag = model.getValue(nodeSet + "[" + j + "]/linkdetlflag"); // 목적 사업장,영업소,부서,검진대상자 구분
  218. if(desFlag != '4') {
  219. if(srcFlag == desFlag) { //사업장,영업소,부서,
  220. var desStart = model.getValue(nodeSet + "[" + j + "]/colmstart");
  221. var desSize = model.getValue(nodeSet + "[" + j + "]/colmsize");
  222. var desMapp = model.getValue(nodeSet + "[" + j + "]/mappcolm");
  223. //alert("desStart : " + desStart + " desSize : " + desSize + " desMapp : " + desMapp + " value : " + vLine.substr(desStart,desSize));
  224. for(var x=0; x < grd_linkcmpy.cols; x++) {
  225. if(desMapp == grd_linkcmpy.colAttribute(x,"ref")) {
  226. grd_linkcmpy.valueMatrix(grd_linkcmpy.rows - 1 , x) = vLine.substr(desStart - 1, desSize);
  227. }
  228. }
  229. }
  230. }else { // 검진대상자
  231. if(srcFlag == desFlag) {
  232. var desStart = model.getValue(nodeSet + "[" + j + "]/colmstart");
  233. var desSize = model.getValue(nodeSet + "[" + j + "]/colmsize");
  234. var desMapp = model.getValue(nodeSet + "[" + j + "]/mappcolm");
  235. //alert("desStart : " + desStart + " desSize : " + desSize + " desMapp : " + desMapp + " value : " + vLine.substr(desStart,desSize));
  236. for(var y=0; y < grd_linktrgt.cols; y++ ) {
  237. if(desMapp == grd_linktrgt.colAttribute(y,"ref")) {
  238. grd_linktrgt.valueMatrix(grd_linktrgt.rows - 1 , y) = vLine.substr(desStart - 1, desSize);
  239. }
  240. }
  241. }
  242. }
  243. }
  244. }
  245. }
  246. }
  247. }
  248. // 나중에 CSV로 upload할때 사용예정
  249. /*
  250. function fCsvUpload(){
  251. var rowSep = "$";
  252. var colSep = ",";
  253. var fileName = window.fileDialog("open", ",", false, "", "txt", "Text Files(*.txt)|*.txt|All Files (*.*)|*.*");
  254. grd_cupload.loadText(fileName, rowSep, colSep);
  255. var cnt = grd_cupload.rows;
  256. var i = 0;
  257. for( i = 1; i < cnt +1 ; i++)
  258. {
  259. grd_cupload.addStatus(i, "insert");
  260. }
  261. //grd_cupload.deleteRow(1);
  262. grd_cupload.refresh();
  263. }
  264. */
  265. /********************************************************************************************************************************************************
  266. * 단체 예약 종합건진접수 등록
  267. ********************************************************************************************************************************************************/
  268. function fSaveCmpyRsrvAcpt() {
  269. var hopeDDCnt = 0;
  270. var pkgCnt = 0;
  271. var contCnt = 0;
  272. var healexamplaceCnt = 0;
  273. for(var i=1; i < grd_cupload.rows; i++) {
  274. if(grd_cupload.valueMatrix(i , grd_cupload.colRef("chk") ) == "Y" ) {
  275. if(grd_cupload.valueMatrix(i , grd_cupload.colRef("hopedd") ) == "") {
  276. hopeDDCnt++;
  277. }
  278. if(grd_cupload.valueMatrix(i , grd_cupload.colRef("pkgcd") ) == "") {
  279. pkgCnt++;
  280. }
  281. if(grd_cupload.valueMatrix(i , grd_cupload.colRef("cmpycd") ) == "" || grd_cupload.valueMatrix(i , grd_cupload.colRef("conseq") ) == "" || grd_cupload.valueMatrix(i , grd_cupload.colRef("conhistseq") ) == "") {
  282. contCnt++
  283. }
  284. if(grd_cupload.valueMatrix(i , grd_cupload.colRef("healexamplacecd") ) == "") {
  285. healexamplaceCnt++;
  286. }
  287. }
  288. }
  289. // 등록정보 체크
  290. var cur_date = getCurrentDate();
  291. var rsv_cnt = grd_cupload.rows ;
  292. var sNode = grd_cupload.nodeset+ "[";
  293. for( var i = 1; i < rsv_cnt ; i++){
  294. if(model.getValue(sNode + i + "]/hopedd") != ""){
  295. if(model.getValue(sNode + i + "]/hopedd" ) < cur_date) {
  296. messageBox("건진일자는 현재 일자보다 미래의 일자 이어야 합니다.","C001");
  297. return;
  298. }
  299. }
  300. }
  301. if(model.getValue("/root/init/send/healexamflag") == "") {
  302. messageBox("건진구분 정보를", "C001");
  303. return;
  304. }
  305. if(model.getValue("/root/init/send/healexamdetlflag") == "" ) {
  306. messageBox("건진상세구분 정보를", "C001");
  307. return;
  308. }
  309. if(hopeDDCnt > 0) {
  310. messageBox("건진일을 모두 ", "C001");
  311. return;
  312. }
  313. if(contCnt > 0) {
  314. messageBox("계약 정보를 모두" , "C001");
  315. return;
  316. }
  317. if(pkgCnt > 0) {
  318. messageBox("패키지코드를 모두 ", "C001");
  319. return;
  320. }
  321. if(healexamplaceCnt > 0) {
  322. messageBox("건진장소 구분을 모두 ", "C001");
  323. return;
  324. }
  325. // 초기화
  326. var rsrvCnt = 0;
  327. var healexamflag = model.getValue("/root/init/send/healexamflag");
  328. var healexamdetlflag = model.getValue("/root/init/send/healexamdetlflag");
  329. grd_cupload.clearStatus();
  330. for (var i=1; i<grd_cupload.rows; i++) {
  331. if(grd_cupload.valueMatrix(i , grd_cupload.colRef("chk") ) == "Y" ){
  332. var rrgstno = grd_cupload.valueMatrix(i , grd_cupload.colRef("rrgstno1")) + grd_cupload.valueMatrix(i , grd_cupload.colRef("rrgstno2"));
  333. grd_cupload.addStatus(i,"insert");
  334. var email = grd_cupload.valueMatrix(i , grd_cupload.colRef("email")).split("@");
  335. grd_cupload.valueMatrix(i , grd_cupload.colRef("sex")) = fGetRrgstNo(rrgstno,"S");
  336. grd_cupload.valueMatrix(i , grd_cupload.colRef("brthdd")) = fGetRrgstNo(rrgstno,"B");
  337. grd_cupload.valueMatrix(i , grd_cupload.colRef("age")) = fGetRrgstNo(rrgstno,"A");
  338. grd_cupload.valueMatrix(i , grd_cupload.colRef("forgeryn")) = fGetRrgstNo(rrgstno,"F");
  339. grd_cupload.valueMatrix(i , grd_cupload.colRef("statflag")) = "A";
  340. grd_cupload.valueMatrix(i , grd_cupload.colRef("emailid")) = email[0];
  341. grd_cupload.valueMatrix(i , grd_cupload.colRef("emailtype")) = email[1];
  342. grd_cupload.valueMatrix(i , grd_cupload.colRef("healexamflag")) = healexamflag;
  343. grd_cupload.valueMatrix(i , grd_cupload.colRef("healexamdetlflag")) = healexamdetlflag;
  344. }
  345. }
  346. var cmpyrsrv = getGridUpdateData(grd_cupload);
  347. if(cmpyrsrv != "") {
  348. model.setValue("/root/send/save/cmpyrsrv" , cmpyrsrv);
  349. openLoadingBar("일괄 예약/접수");
  350. submit("TXAHA00301");
  351. messageBox("정상적으로 저장되었습니다", "I001", "");
  352. closeLoadingBar();
  353. }else {
  354. messageBox("저장할 내역이 " , "E014");
  355. return;
  356. }
  357. }
  358. function fGetContInfoLst(vOpenerID, vFlag , vCond, vCdnm , vDesXPathCd , vDesXPathNm , vDesXPath ){
  359. clearParameter("SPAHA00310_PARAM1");
  360. clearParameter("SPAHA00310_PARAM2");
  361. clearParameter("SPAHA00310_PARAM3");
  362. clearParameter("SPAHA00310_PARAM4");
  363. clearParameter("SPAHA00310_PARAM5");
  364. clearParameter("SPAHA00310_PARAM6");
  365. clearParameter("SPAHA00310_PARAM7");
  366. clearParameter("SPAHA00310_PARAM8");
  367. setParameter ("SPAHA00310_PARAM1", vFlag);
  368. setParameter ("SPAHA00310_PARAM2", vCond);
  369. setParameter ("SPAHA00310_PARAM3", vCdnm);
  370. setParameter ("SPAHA00310_PARAM4", getUserInfo("dutplceinstcd"));
  371. setParameter ("SPAHA00310_PARAM5", vOpenerID);
  372. setParameter ("SPAHA00310_PARAM6", vDesXPathCd);
  373. setParameter ("SPAHA00310_PARAM7", vDesXPathNm);
  374. setParameter ("SPAHA00310_PARAM8", vDesXPath);
  375. modal("SPAHA003100", "", "", "", "", "/root/source", "/root/target");
  376. }
  377. /********************************************************************************************************************************************************
  378. * 해당값을 구분자로 구분하여 배열에 등록한다.
  379. *vSpiltValue:구분할값 vMode:모드 vDel:구분자
  380. ********************************************************************************************************************************************************/
  381. String.prototype.fSplit = function(vMode,vDel) {
  382. if(vDel == "") vDel = "-";
  383. var vSplit = this;
  384. var chk = vSplit.search(eval("/[" + vDel + "]/g"));
  385. var vDelValue = new Array();
  386. if(chk > -1) {
  387. vDelValue = vSplit.split(vDel);
  388. }else {
  389. if(vMode == "R") {
  390. // 주민번호
  391. vDelValue[0] = vSplit.substr(0,6);
  392. vDelValue[1] = vSplit.substr(6,7);
  393. } else if(vMode == "Z") {
  394. // 우편번호
  395. vDelValue[0] = vSplit.substr(0,3);
  396. vDelValue[1] = vSplit.substr(3,3);
  397. } else if(vMode == "E") {
  398. //Email
  399. vDelValue = vSplit.split('@');
  400. }
  401. }
  402. return vDelValue;
  403. }
  404. /********************************************************************************************************************************************************
  405. * 주민번호를 이용하여
  406. *S:성별 A:나이 B:생년월일 F:외국인여부
  407. ********************************************************************************************************************************************************/
  408. function fGetRrgstNo(vRstno,vMode) {
  409. var rstno = vRstno.replace("-","");
  410. var sex = rstno.substr(6,1);
  411. var YY = "";
  412. // 성별
  413. if(vMode == "S") {
  414. if(sex == "2" || sex == "4" || sex == "6" || sex == "8") {
  415. return "F";
  416. }else if(sex == "1" || sex == "3" || sex == "5" || sex == "7") {
  417. return "M";
  418. }
  419. }else if(vMode == "A") { // 나이
  420. if(sex == "1" || sex == "2" || sex == "5" || sex == "6") {
  421. YY = "19"
  422. }else if(sex == "3" || sex == "4" || sex == "7" || sex == "8") {
  423. YY = "20"
  424. }
  425. var toYear = getNewDate().getFullYear();
  426. var bornday = YY + rstno.substr(0,2);
  427. return parseInt(toYear) - parseInt(bornday);
  428. }else if(vMode == "B") {
  429. if(sex == "1" || sex == "2" || sex == "5" || sex == "6") {
  430. YY = "19"
  431. }else if(sex == "3" || sex == "4" || sex == "7" || sex == "8") {
  432. YY = "20"
  433. }
  434. return YY + rstno.substr(0,6);
  435. }else if(vMode == "F") {
  436. var forgnerYN = "N";
  437. if(sex == "5" || sex == "6" || sex == "7" || sex == "8") {
  438. forgnerYN = "Y";
  439. }
  440. return forgnerYN;
  441. }
  442. }
  443. /********************************************************************************************************************************************************
  444. * 추가검사 선택을 그리드에 등록
  445. ********************************************************************************************************************************************************/
  446. function fSetAddTest(vGrd , vNodeSet) {
  447. if(vGrd == null ) return;
  448. if(vNodeSet == null ) return;
  449. var nodeList = instance1.selectNodes(vNodeSet);
  450. var testcdList = vGrd.valueMatrix( vGrd.row , vGrd.colRef("testcd"));
  451. var testnmList = vGrd.valueMatrix( vGrd.row , vGrd.colRef("testnm"));
  452. model.makeNode("/root/hidden/tmptest/addtest");
  453. for(var i=1; i <= nodeList.length; i++) {
  454. var testcd = model.getValue(vNodeSet + "[" + i + "]/testcd");
  455. var testnm = model.getValue(vNodeSet + "[" + i + "]/testnm");
  456. var groupflag = model.getValue(vNodeSet + "[" + i + "]/grupflag");
  457. // 중복체크 로직
  458. if(testcdList != "") {
  459. if ( fCheckDup(testcdList , testcd) ) {
  460. if( messageBox("중복되는 검사코드[" + testcd + " - " + testnm +"] 를 추가 ", "S001") != 6 ){
  461. continue ;
  462. }
  463. }
  464. }
  465. // 패키지 내부검사 중복여부 체크
  466. model.removeNodeset("/root/hidden/send");
  467. model.makeValue("/root/hidden/send/pkgcd" , testcd);
  468. model.makeValue("/root/hidden/send/grupflag" , "-");
  469. model.makeValue("/root/hidden/send/srchpkgcd" , vGrd.valueMatrix( vGrd.row , vGrd.colRef("pkgcd")) );
  470. model.makeValue("/root/hidden/send/healexamflag" , model.getValue("/root/init/send/healexamflag") );
  471. model.makeValue("/root/hidden/send/cmpycd" , vGrd.valueMatrix( vGrd.row , vGrd.colRef("cmpycd")) );
  472. model.makeValue("/root/hidden/send/conseq" , vGrd.valueMatrix( vGrd.row , vGrd.colRef("conseq")) );
  473. model.makeValue("/root/hidden/send/conhistseq" , vGrd.valueMatrix( vGrd.row , vGrd.colRef("conhistseq")) );
  474. //패키지내 중복 체크*/
  475. if(submit("TRAHA00013",false)) {
  476. var dupTestnm = model.getValue("/root/tmp/testcount/testcount/testnm")
  477. if(dupTestnm != "") {
  478. if( messageBox("패키지의 [" + testnm + "]검사와 중복됩니다. 추가 ", "S001") != 6 ){
  479. continue ;
  480. }
  481. }
  482. if(testcdList != "") {
  483. testcdList += "," + testcd;
  484. testnmList += "," + testnm ;
  485. }else {
  486. testcdList += testcd != "" && nodeList.length>i ? "," + testcd : testcd;
  487. testnmList += testnm != "" &&nodeList.length>i ? "," + testnm: testnm;
  488. }
  489. }
  490. }
  491. vGrd.valueMatrix(vGrd.row,vGrd.colRef("testcd")) = testcdList;
  492. vGrd.valueMatrix(vGrd.row,vGrd.colRef("testnm")) = testnmList;
  493. }
  494. /********************************************************************************************************************************************************
  495. * 추가검사 중복선택 체크여부
  496. ********************************************************************************************************************************************************/
  497. function fCheckDup(testList , desTestCd) {
  498. var sTestCd = testList.split(",");
  499. var chk = false;
  500. for(var j=0; j < sTestCd.length; j++) {
  501. var srcTestCd = sTestCd[j];
  502. if(srcTestCd == desTestCd) {
  503. chk = true;
  504. }
  505. }
  506. return chk;
  507. }
  508. /********************************************************************************************************************************************************
  509. * 데이터 포맷을 체크한다.
  510. * R : 주민번호 Z: 우편번호 D: 날짜 E: e-mail T: 전화번호 M:핸드폰
  511. ********************************************************************************************************************************************************/
  512. function fChkValue(vChkValue,vMode,vDel) {
  513. var ret = false;
  514. var regExp = "";
  515. if(typeof(vDel) == "undefined" || vDel == null) {
  516. vDel = "";
  517. }
  518. if(vMode == "R1") {
  519. regExp = "/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}$/g";
  520. }else if(vMode == "R2") {
  521. regExp = "/[12345678]{1}[0-9]{6}$/g";
  522. }else if(vMode == "Z1") {
  523. regExp = "/^[0-9]{3}$/g";
  524. }else if(vMode == "Z2") {
  525. regExp = "/^[0-9]{3}$/g";
  526. }else if(vMode == "D") {
  527. regExp = "/[0-9]{4}" + vDel + "[01]{1}[0-9]{1}" + vDel + "[0123]{1}[0-9]{1}/g";
  528. }else if(vMode == "E") {
  529. regExp = "/[_0-9a-zA-Z]+([-+.0-9a-zA-Z_]+)*@[_0-9a-zA-Z]+([-+.0-9a-zA-Z_]+)*.[a-zA-Z]{2,4}$/g";
  530. }else if(vMode == "T") {
  531. regExp = "/(02|0[3-9]{1}[0-9]{1})" + vDel + "[1-9]{1}[0-9]{2,3}" + vDel + "[0-9]{4}$/g";
  532. }else if(vMode == "M") {
  533. regExp = "/01[016789]" + vDel + "[1-9]{1}[0-9]{2,3}" + vDel + "[0-9]{4}$/g";
  534. }
  535. if(vChkValue == "") {
  536. return true;
  537. }else {
  538. return ret = eval(regExp).test(vChkValue);
  539. }
  540. }
  541. /********************************************************************************************************************************************************
  542. * 그리드의 데이터 체크
  543. ********************************************************************************************************************************************************/
  544. function fChkData(vGrd) {
  545. // 초기화
  546. vGrd.rebuildStyle();
  547. var nodeSet = vGrd.nodeset;
  548. var chkCnt = 0;
  549. for( i = 1; i < vGrd.rows-1 ; i++ ){
  550. //주민번호 check
  551. var rrgstno1 = model.getValue(nodeSet+"[" + i + "]/rrgstno1");
  552. if(!fChkValue(rrgstno1,"R1")) {
  553. fDispGrd(vGrd,"E",i,vGrd.colRef("rrgstno1"));
  554. chkCnt++;
  555. }
  556. var rrgstno2 = model.getValue(nodeSet+"[" + i + "]/rrgstno2");
  557. if(!fChkValue(rrgstno2,"R2")) {
  558. fDispGrd(vGrd,"E",i,vGrd.colRef("rrgstno2"));
  559. chkCnt++;
  560. }
  561. // 우편번호
  562. var zip1 = model.getValue(nodeSet+"[" + i + "]/zipcd11");
  563. if(!fChkValue(zip1,"Z1")) {
  564. fDispGrd(vGrd,"E",i,vGrd.colRef("zipcd11"));
  565. chkCnt++;
  566. }
  567. var zip2 = model.getValue(nodeSet+"[" + i + "]/zipcd12");
  568. if(!fChkValue(zip2,"Z2")) {
  569. fDispGrd(vGrd,"E",i,vGrd.colRef("zipcd12"));
  570. chkCnt++;
  571. }
  572. // 전화번호
  573. var telno = model.getValue(nodeSet+"[" + i + "]/telno");
  574. if(!fChkValue(telno,"T","-")) {
  575. fDispGrd(vGrd,"E",i +1,vGrd.colRef("telno"));
  576. chkCnt++;
  577. }
  578. // 핸드폰번호
  579. var mpno = model.getValue(nodeSet + "[" + i + "]/mpno");
  580. if(!fChkValue(mpno,"M","-")) {
  581. fDispGrd(vGrd,"E",i +1,vGrd.colRef("mpno"));
  582. chkCnt++;
  583. }
  584. // 예약 체크
  585. var hopedd = model.getValue(nodeSet + "[" + i + "]/hopedd").replace(/-/g,"");
  586. if(!fChkValue(hopedd,"D","")) {
  587. fDispGrd(vGrd,"E",i +1,vGrd.colRef("hopedd"));
  588. chkCnt++;
  589. }
  590. //email주소
  591. var email = model.getValue(nodeSet+ "[" + i + "]/email");
  592. if(!fChkValue(email,"E")) {
  593. fDispGrd(vGrd,"E",i + 1,vGrd.colRef("email"));
  594. chkCnt++;
  595. }
  596. }
  597. vGrd.refresh();
  598. return chkCnt;
  599. }
  600. /********************************************************************************************************************************************************
  601. * 그리드의 상태 Style을 변경한다.
  602. * vGrd: 그리드객체 vMode: 모드 vRow: 변경할 row vCol: 변경할 col
  603. ********************************************************************************************************************************************************/
  604. function fDispGrd(vGrd,vMode,vRow,vCol) {
  605. if(vMode == "E") {
  606. if(vCol !="") {
  607. vGrd.cellStyle("background-color",vRow,vCol) = "#f7a08b";
  608. vGrd.isReadOnly(vRow,vCol) = false;
  609. }else {
  610. vGrd.cellStyle("background-color",vRow,0,vRow,vGrd.cols - 1) = "#f7a08b";
  611. //vGrd.isReadOnly(vRow,0,vRow,vGrd.cols - 1) = true;
  612. }
  613. }
  614. }
  615. /********************************************************************************************************************************************************
  616. * 주민등록 중복 된 대상자를 조회한다.
  617. ********************************************************************************************************************************************************/
  618. function fChkDupRrgstno(vGrd) {
  619. vGrd.clearStatus();
  620. for(var i=1; i < vGrd.rows; i++) {
  621. if(vGrd.valueMatrix(i , vGrd.colRef("chk") )== "Y" ) {
  622. vGrd.addStatus(i,"insert");
  623. }
  624. }
  625. model.makeValue("/root/send/srch/rrgstno" , getGridUpdateData(vGrd) );
  626. if(submit("TRAHA04091")) {
  627. var rrgstCnt = getNodesetCount("/root/hidden/duprrgstnolst/item");
  628. for(var j=1; j < vGrd.rows; j++) {
  629. var srchrrgstno1 = vGrd.valueMatrix(j ,vGrd.colRef("rrgstno1"));
  630. var srchrrgstno2 = vGrd.valueMatrix(j ,vGrd.colRef("rrgstno2"));
  631. for(var k=1; k <= rrgstCnt ; k++) {
  632. var desrrgstno1 = model.getValue("/root/hidden/duprrgstnolst/item[" + k + "]/rrgstno1");
  633. var desrrgstno2 = model.getValue("/root/hidden/duprrgstnolst/item[" + k + "]/rrgstno2");
  634. if(srchrrgstno1 == desrrgstno1 && srchrrgstno2 == desrrgstno2) {
  635. vGrd.valueMatrix( j , vGrd.colRef("chk") ) = "N";
  636. vGrd.cellStyle("background-color", j , vGrd.colRef("hngnm")) = "#f7a08b";
  637. }
  638. }
  639. }
  640. }
  641. return rrgstCnt;
  642. }
  643. ]]>
  644. </script>
  645. <submission id="TRZBC00101"/>
  646. <submission id="TRAHA00001"/>
  647. <submission id="TRAHA00301" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  648. <submission id="TXAHA00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" replace="instance" resultref="/root/hidden"/>
  649. <submission id="TXAHA00302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" replace="instance" resultref="/root/hidden"/>
  650. <submission id="TRAHA00304" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/linklst"/>
  651. <submission id="TXAHA00303" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/linklst/cmpy" resultref="/root/hidden"/>
  652. <submission id="TRAHA00013" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/hidden/send" resultref="/root/tmp"/>
  653. <submission id="TRAHA04091" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/srch" resultref="/root/hidden/duprrgstnolst"/>
  654. <submission id="TRAHB00602" ref="/root/send" resultref="/root/init/baseinfo/detlcodelst"/>
  655. </model>
  656. </xhtml:head>
  657. <xhtml:body guideline="1,1193;2,784;2,756;" style="border-left-style:none; margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  658. <script type="javascript" ev:event="onmenu">
  659. <![CDATA[
  660. if(event.description == "deladdtest")
  661. {
  662. grd_cupload.valueMatrix( grd_cupload.row , grd_cupload.colRef("testcd")) = "";
  663. grd_cupload.valueMatrix( grd_cupload.row , grd_cupload.colRef("testnm")) = "";
  664. }
  665. ]]>
  666. </script>
  667. <group id="group1" style="left:0px; top:0px; width:1194px; height:13px; ">
  668. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:159px; height:14px; ">단체예약/접수</caption>
  669. </group>
  670. <group id="group3" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  671. <caption id="caption2" class="tit_2" style="left:8px; top:12px; width:151px; height:13px; ">단체 예약/접수</caption>
  672. <line id="line17" class="line_1" style="x1:4px; y1:29px; x2:1189px; y2:29px; "/>
  673. <button id="btn_upload" class="btn2_letter5" style="left:966px; top:9px; width:75px; height:19px; ">
  674. <caption>파일업로드</caption>
  675. <script type="javascript" ev:event="DOMActivate">
  676. <![CDATA[
  677. openLoadingBar("파일 업로드");
  678. fFileUpload();
  679. closeLoadingBar();
  680. ]]>
  681. </script>
  682. </button>
  683. <output id="output1" ref="/root/init/send/cmpynm" class="output_fix" style="left:757px; top:34px; width:284px; height:19px; "/>
  684. <button id="button4" class="icon_search" style="left:736px; top:35px; width:16px; height:16px; ">
  685. <caption/>
  686. <script type="javascript" ev:event="DOMActivate">
  687. <![CDATA[
  688. fGetPkgCd("SMAHA00300", "C", "N","cd" , ipt_cmpycd2.currentText ,model.getValue("/root/init/send/healexamdetlflag") ,"", "/root/hidden/coninfo","Y","" ,"" );
  689. model.setValue("/root/init/send/cmpycd" , model.getValue("/root/hidden/coninfo/cmpycd"));
  690. model.setValue("/root/init/send/cmpynm" , model.getValue("/root/hidden/coninfo/pkgnm"));
  691. model.setValue("/root/init/send/conseq" , model.getValue("/root/hidden/coninfo/conseq"));
  692. model.setValue("/root/init/send/conhistseq" , model.getValue("/root/hidden/coninfo/conhistseq"));
  693. model.setValue("/root/init/send/pkgcd" , model.getValue("/root/hidden/coninfo/pkgcd"));
  694. model.refresh();
  695. ]]>
  696. </script>
  697. </button>
  698. <caption id="caption5" class="cell_1" style="left:564px; top:34px; width:85px; height:20px; vertical-align:middle; ">단체계약정보</caption>
  699. <input id="ipt_cmpycd2" ref="/root/init/send/cmpycd" class="input_essential" style="left:652px; top:34px; width:78px; height:19px; "/>
  700. <caption id="caption47" class="cell_1" style="left:183px; top:34px; width:73px; height:20px; vertical-align:middle; ">건진장소</caption>
  701. <button id="button10" class="btn2_letter4" style="left:1124px; top:9px; width:64px; height:19px; ">
  702. <caption>일괄적용</caption>
  703. <script type="javascript" ev:event="DOMActivate">
  704. <![CDATA[
  705. for(var i =1; i < grd_cupload.rows; i++) {
  706. grd_cupload.valueMatrix( i , grd_cupload.colRef("healexamplacecd")) = model.getValue("/root/init/send/healexamplacecd");
  707. grd_cupload.valueMatrix( i , grd_cupload.colRef("conseq")) = model.getValue("/root/init/send/conseq");
  708. grd_cupload.valueMatrix( i , grd_cupload.colRef("conhistseq")) = model.getValue("/root/init/send/conhistseq");
  709. grd_cupload.valueMatrix( i , grd_cupload.colRef("pkgcd")) = model.getValue("/root/init/send/pkgcd");
  710. grd_cupload.valueMatrix( i , grd_cupload.colRef("healexamflag")) = model.getValue("/root/init/send/healexamflag");
  711. grd_cupload.valueMatrix( i , grd_cupload.colRef("healexamdetlflag")) = model.getValue("/root/init/send/healexamdetlflag");
  712. //선택검사와 업체코드를 따로 적용시킴
  713. var vchoiflag = model.getValue("/root/init/send/choiflag");
  714. var vcmpycd = model.getValue("/root/init/send/cmpycd");
  715. if(vchoiflag == "" && vcmpycd == ""){
  716. return;
  717. }
  718. else if (vchoiflag == "" && vcmpycd != ""){
  719. grd_cupload.valueMatrix( i , grd_cupload.colRef("cmpycd")) = model.getValue("/root/init/send/cmpycd");
  720. }
  721. else if (vchoiflag != "" && vcmpycd == ""){
  722. grd_cupload.valueMatrix( i , grd_cupload.colRef("choiflag")) = model.getValue("/root/init/send/choiflag");
  723. }
  724. else if (vchoiflag != "" && vcmpycd != ""){
  725. grd_cupload.valueMatrix( i , grd_cupload.colRef("choiflag")) = model.getValue("/root/init/send/choiflag");
  726. grd_cupload.valueMatrix( i , grd_cupload.colRef("cmpycd")) = model.getValue("/root/init/send/cmpycd");
  727. }
  728. }
  729. ]]>
  730. </script>
  731. </button>
  732. <caption id="caption3" class="cell_1" style="left:4px; top:34px; width:64px; height:20px; vertical-align:middle; ">건진구분</caption>
  733. <select1 id="cmb_healexamdetlflag" ref="/root/init/send/healexamdetlflag" class="combo_search" disabled="true" appearance="minimal" style="left:70px; top:34px; width:110px; height:19px; ">
  734. <choices>
  735. <itemset nodeset="/root/init/baseinfo/hedetlflaglst/item">
  736. <label ref="cdnm"/>
  737. <value ref="cdid"/>
  738. </itemset>
  739. </choices>
  740. </select1>
  741. <select1 id="rdo_healexamplace" ref="/root/init/send/healexamplacecd" overflow="visible" appearance="full" cols="2" rows="1" style="left:258px; top:34px; width:108px; height:20px; border-style:none; ">
  742. <choices>
  743. <itemset nodeset="/root/init/baseinfo/healexamplacelst/S600">
  744. <label ref="cdnm"/>
  745. <value ref="cdid"/>
  746. </itemset>
  747. </choices>
  748. </select1>
  749. <button id="btn_chkdata" class="btn2_letter5" style="left:1045px; top:9px; width:75px; height:19px; ">
  750. <caption>데이터확인</caption>
  751. <script type="javascript" ev:event="onclick">
  752. <![CDATA[
  753. var chkCnt = 0;
  754. grd_cupload.isReadOnly(1 , grd_cupload.colRef("pname") , grd_cupload.rows -1 , grd_cupload.cols - 1) = true;
  755. chkCnt = fChkData(grd_cupload);
  756. dupRrgstCnt = fChkDupRrgstno(grd_cupload);
  757. messageBox("데이터 확인이 처리되었습니다.\n주민번호 중복[" + dupRrgstCnt + "]건과 \n" + "["+ chkCnt +"]건의 오류항목이 ","E005");
  758. ]]>
  759. </script>
  760. </button>
  761. <datagrid id="grd_cupload" nodeset="/root/main/uploadlst/item" allowselection="true" autoresize="true" caption="선택^성명^주민번호^주민번호^건진일^이메일주소^전화번호^핸드폰^우편번호^우편번호^주 소^추가검사^건진장소^선택검사^단체코드^비고^직위^관계자이름^관계자주민등록번호^관계자주민등록번호^관계^부서^소속^사번^추가검사명^sex^brthdd^age^forgneryn^emailid^emailtype^statflag^healexamflag^healexamdetlflag^conseq^conhistseq^pkgcd" colsep="^" colwidth="50, 80, 70, 70, 90, 150, 110, 110, 35, 35, 250, 200, 80, 100, 100, 180, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="listbox" subtotalposition="below" style="left:4px; top:59px; width:1185px; height:679px; ">
  762. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  763. <col ref="hngnm" style="left:94px; top:43px; width:61px; height:23px; "/>
  764. <col disabled="true" ref="rrgstno1" type="input" style="left:118px; top:23px; width:114px; height:23px; "/>
  765. <col disabled="true" ref="rrgstno2" type="input"/>
  766. <col ref="hopedd" type="inputdate" format="yyyy-mm-dd"/>
  767. <col disabled="true" ref="email" type="input"/>
  768. <col disabled="true" ref="telno" type="input"/>
  769. <col disabled="true" ref="mpphon" type="input"/>
  770. <col disabled="true" ref="zipcd11" type="input"/>
  771. <col disabled="true" ref="zipcd12" type="input"/>
  772. <col disabled="true" ref="detladdr1" style="left:1001px; top:43px; width:250px; height:23px; "/>
  773. <col ref="testcd" type="inputbutton"/>
  774. <col ref="healexamplacecd" type="combo">
  775. <choices>
  776. <itemset nodeset="/root/init/baseinfo/healexamplacelst/S600">
  777. <label ref="cdnm"/>
  778. <value ref="cdid"/>
  779. </itemset>
  780. </choices>
  781. </col>
  782. <col ref="choiflag" type="combo">
  783. <choices>
  784. <itemset nodeset="/root/init/baseinfo/choiflaglst/A0116">
  785. <label ref="cdnm"/>
  786. <value ref="cdid"/>
  787. </itemset>
  788. </choices>
  789. </col>
  790. <col ref="cmpycd" visibility="visible"/>
  791. <col ref="remcnts" type="input"/>
  792. <col ref="clntpos" type="input"/>
  793. <col ref="fmhngnm" type="input"/>
  794. <col ref="fmrgstno1" type="input"/>
  795. <col ref="fmrgstno2" type="input"/>
  796. <col ref="fmrelacd" type="combo">
  797. <choices>
  798. <itemset nodeset="/root/init/baseinfo/detlcodelst/item">
  799. <label ref="etcdetlnm"/>
  800. <value ref="etcdetlcd"/>
  801. </itemset>
  802. </choices>
  803. </col>
  804. <col ref="clntdeptnm" type="input"/>
  805. <col ref="clntcmpynm" type="input"/>
  806. <col ref="clntempid" type="input"/>
  807. <col ref="testnm" visibility="hidden"/>
  808. <col ref="sex" visibility="hidden"/>
  809. <col ref="brthdd" visibility="hidden"/>
  810. <col ref="age" visibility="hidden"/>
  811. <col ref="forgneryn" visibility="hidden"/>
  812. <col ref="emailid" visibility="hidden"/>
  813. <col ref="emailtype" visibility="hidden"/>
  814. <col ref="statflag" visibility="hidden"/>
  815. <col ref="healexamflag" visibility="hidden"/>
  816. <col ref="healexamdetlflag" visibility="hidden"/>
  817. <col ref="conseq" visibility="hidden"/>
  818. <col ref="conhistseq" visibility="hidden"/>
  819. <col ref="pkgcd" visibility="hidden"/>
  820. <script type="javascript" ev:event="xforms-value-changed">
  821. <![CDATA[
  822. //fSetBatApp(grd_cupload);
  823. ]]>
  824. </script>
  825. <script type="javascript" ev:event="onbuttonclick">
  826. <![CDATA[
  827. var col = grd_cupload.col;
  828. var row = grd_cupload.row;
  829. // 패키지검사
  830. if(col == grd_cupload.colRef("pkgcd")) {
  831. if(model.getValue("/root/send/srchhealexamdetlflag") == "" ) {
  832. messageBox("건진구분 정보를", "C001");
  833. return;
  834. }
  835. model.resetInstanceNode("/root/hidden/pkglst/list");
  836. var rgstno = grd_cupload.valueMatrix(row, grd_cupload.colRef("rrgstno1")) + grd_cupload.valueMatrix(row, grd_cupload.colRef("rrgstno2")); // 주민번호
  837. fGetPkgCd("SMAHA00300", "P", "Y","nm" , "",model.getValue("/root/send/srchhealexamdetlflag") , fGetRrgstNo(rgstno,"S"), "/root/hidden/pkglst","Y","" ,fGetRrgstNo(rgstno,"A") );
  838. if(model.getValue("/root/temp/okflag") == "ok") {
  839. fSetPkg(grd_cupload , "/root/hidden/pkglst/list");
  840. //fSetAddTest(grd_cupload);
  841. }
  842. //fSetBatApp(grd_cupload);
  843. }else if( col == grd_cupload.colRef("testcd")) {
  844. model.resetInstanceNode("/root/hidden/testlst/list");
  845. var rgstno = grd_cupload.valueMatrix(row, grd_cupload.colRef("rrgstno1")) + grd_cupload.valueMatrix(row, grd_cupload.colRef("rrgstno2")); // 주민번호
  846. fGetPkgCd("SMAHA00300", "A", "Y","nm" , "",model.getValue("/root/send/srchhealexamdetlflag") , fGetRrgstNo(rgstno,"S"), "/root/hidden/testlst","Y","" ,fGetRrgstNo(rgstno,"A") );
  847. if(model.getValue("/root/temp/okflag") == "ok") {
  848. fSetAddTest(grd_cupload , "/root/hidden/testlst/list");
  849. }
  850. }
  851. ]]>
  852. </script>
  853. <script type="javascript" ev:event="onmousedown">
  854. <![CDATA[
  855. if(event.button == 3){
  856. if(grd_cupload.isCell(event.target) && grd_cupload.mouseRow >= grd_cupload.fixedrows){
  857. window.setPopupMenu(true, "/root/popup/item", "label", "func", true);
  858. }else{
  859. window.setPopupMenu(false);
  860. }
  861. }
  862. ]]>
  863. </script>
  864. <script type="javascript" ev:event="onaftersort">
  865. <![CDATA[
  866. grd_cupload.gridToInstance();
  867. ]]>
  868. </script>
  869. <script type="javascript" ev:event="onclick">
  870. <![CDATA[
  871. if(grd_cupload.col == 5){
  872. //alert(grd_cupload.valueMatrix(grd_cupload.row, grd_cupload.col));
  873. }
  874. ]]>
  875. </script>
  876. </datagrid>
  877. <line id="line1" class="line_1" style="x1:4px; y1:55px; x2:1189px; y2:55px; "/>
  878. <output id="output2" ref="/root/init/send/pkgcd" class="output_fix" style="left:1046px; top:34px; width:90px; height:19px; "/>
  879. <caption id="caption1" class="cell_1" style="left:368px; top:34px; width:73px; height:20px; vertical-align:middle; ">선택검사</caption>
  880. <select1 id="combo1" ref="/root/init/send/choiflag" appearance="minimal" style="left:445px; top:34px; width:115px; height:19px; ">
  881. <choices>
  882. <itemset nodeset="/root/init/baseinfo/choiflaglst/A0116">
  883. <label ref="cdnm"/>
  884. <value ref="cdid"/>
  885. </itemset>
  886. </choices>
  887. </select1>
  888. <button id="btn_excelsave" class="btn6_letter4" visibility="hidden" style="left:865px; top:4px; width:80px; height:22px; ">
  889. <caption>액셀저장</caption>
  890. <script type="javascript" ev:event="DOMActivate">
  891. <![CDATA[
  892. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  893. grd_cupload.saveExcel(fileName, "SheetName", true, true, "", "", false);
  894. ]]>
  895. </script>
  896. </button>
  897. </group>
  898. <group id="grp_btn" style="left:0px; top:756px; width:1195px; height:28px; ">
  899. <button id="button8" class="btn4_letter4" style="left:1110px; top:6px; width:80px; height:22px; ">
  900. <caption>예약처리</caption>
  901. <script type="javascript" ev:event="DOMActivate">
  902. <![CDATA[
  903. fSaveCmpyRsrvAcpt();
  904. ]]>
  905. </script>
  906. </button>
  907. <button id="button33" class="btn4_letter3" style="left:1040px; top:6px; width:68px; height:22px; ">
  908. <caption>초기화</caption>
  909. <script type="javascript" ev:event="onclick">
  910. <![CDATA[
  911. model.reset();
  912. ]]>
  913. </script>
  914. </button>
  915. <button id="button27" class="btn3_letter6" visibility="hidden" style="left:0px; top:5px; width:104px; height:22px; ">
  916. <caption>개인예약/접수</caption>
  917. </button>
  918. <button id="button25" class="btn3_letter4" visibility="hidden" style="left:106px; top:5px; width:80px; height:22px; ">
  919. <caption>정산관리</caption>
  920. </button>
  921. </group>
  922. </xhtml:body>
  923. </xhtml:html>