MRF01700.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836
  1. var FORMMNGT_SCR_SAVE_DATA = 0; //화면에 누적리스트 저장할 데이터 (0:없음, 1:있음)
  2. /**
  3. * @desc : 화면 초기화
  4. * @
  5. * @param :
  6. * @return :
  7. * @---------------------------------------------------
  8. */
  9. function fInitialize()
  10. {
  11. model.setValue("/root/main/newgrup/fromdd", getCurrentDate());
  12. model.setValue("/root/main/newgrup/todd","29991231");
  13. model.copyNode("/root/temp/newgrup", "/root/main/newgrup");
  14. model.setFocus("ipt_valreqdata");
  15. model.toggle("gruplist");
  16. //fSetCtrlDisabled(true);
  17. //fSetCtrlDisabled3(true);
  18. model.refresh();
  19. }
  20. /**
  21. * @desc : ?????? ???? ?? error check
  22. * @param :
  23. * @return : 0 : error 1 : no error
  24. * @---------------------------------------------------
  25. */
  26. function fChkError()
  27. {
  28. var errcd = model.getValue("/root/temp/errmsg/errcd");
  29. if(errcd == "err01")
  30. { // insert error
  31. var itemnm = model.getValue("/root/main/newitem/itemnm");
  32. var useYN = messageBox(itemnm + "??(??) ?????? ?????????? ??????????.????", "S001");
  33. }
  34. else if(errcd == "err02")
  35. {
  36. var termnm = model.getValue("/root/main/newterm/termnm");
  37. var useYN = messageBox(termnm + "??(??) ?????? ???????? ??????????.????", "S001");
  38. }
  39. if(useYN == 6){
  40. return 1;
  41. }else{
  42. return 0;
  43. }
  44. }
  45. /**
  46. * @desc : ???? input box disabled ????
  47. * @param :
  48. * @return : 0 : error 1 : no error
  49. * @---------------------------------------------------
  50. */
  51. /*function fSetCtrlDisabled(bool){
  52. ipt_itemnm.disabled = bool;
  53. ipt_itemdesc.disabled = bool;
  54. cmb_cntrtype.disabled = bool;
  55. cmb_ipttype.disabled = bool;
  56. cmb_datatype.disabled = bool;
  57. ipt_deflval.disabled = bool;
  58. ipt_fromdd.disabled = bool;
  59. ipt_todd.disabled = bool;
  60. ipt_maxlgth.disabled = bool;
  61. cmb_valiflag.disabled = bool;
  62. ipt_rem.disabled = bool;
  63. ipt_updtresncnts.disabled = bool;
  64. radio3.disabled = bool;
  65. button7.disabled = bool;
  66. button2.disabled = bool;
  67. button5.disabled = bool;
  68. button3.disabled = bool;
  69. button6.disabled = bool;
  70. chkmaster.disabled = bool;
  71. }*/
  72. function fSetCtrlDisabled2(bool){
  73. ipt_listnm.disabled = bool;
  74. ipt_fromdd.disabled = bool;
  75. ipt_todd.disabled = bool;
  76. ipt_listdesc.disabled = bool;
  77. //cmb_gridtype.disabled = bool;
  78. //cmb_valiyn.disabled = bool;
  79. ipt_updtresncnts.disabled = bool;
  80. ipt_rem.disabled = bool;
  81. }
  82. /*
  83. ????
  84. */
  85. function removeBlank(str){
  86. str = str.replace(/\s/g,'');
  87. return str;
  88. }
  89. /**
  90. * @desc : 누적리스트 조회
  91. * @
  92. * @param :
  93. * @return :
  94. * @---------------------------------------------------
  95. */
  96. function fReqValue(condPath){
  97. // fSetCtrlDisabled2(true)
  98. var mode = model.getValue("/root/main/condition/reqgrupflag");
  99. if(mode == "code")
  100. {
  101. model.setValue("/root/main/condition/grupcd", model.getValue("/root/main/condition/grupnm"));
  102. }
  103. model.setValue("/root/main/condition/grupflag", "G");
  104. model.copyNode("/root/send/reqdata", condPath );
  105. submit("TRMRF00901");
  106. }
  107. /**
  108. * @desc :누적리스트 추가
  109. * @
  110. * @param :
  111. * @return :
  112. * @---------------------------------------------------
  113. */
  114. function fAddGrupList(){
  115. model.toggle("gruplist");
  116. //1.값을 초기화 한다.
  117. model.copyNode("/root/main/newgrup", "/root/temp/newgrup");
  118. model.refresh();
  119. //2. 컨트롤을 Enable 한다.
  120. fDisabledCtrlForNewGrup(false);
  121. //3. fucus이동
  122. model.setFocus("ipt_listnm");
  123. }
  124. function fUpdtGrupList(){
  125. model.toggle("gruplist");
  126. iRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  127. if(iRow < 1){
  128. return;
  129. }
  130. //0. 리스트수정 상태를 체크
  131. model.setValue("/root/temp/gridsublist/status", "u");
  132. //1. 현재선택한 데이터를 상세창에 display
  133. model.copyNode("/root/main/newgrup", "/root/main/gruplist[" + iRow + "]");
  134. grd_gruplist.refresh();
  135. //2. 상세창의 컨트롤 Enable
  136. fDisabledCtrlForNewGrup(false);
  137. model.setFocus("ipt_listnm");
  138. }
  139. function fDisabledCtrlForNewGrup(bDisable)
  140. {
  141. ipt_listnm.disabled = bDisable;
  142. ipt_fromdd.disabled = bDisable;
  143. ipt_todd.disabled = bDisable;
  144. cmb_grupflag.disabled = bDisable;
  145. ipt_listdesc.disabled = bDisable;
  146. //cmb_valiyn.disabled = bDisable;
  147. ipt_updtresncnts.disabled = bDisable;
  148. ipt_rem.disabled = bDisable;
  149. }
  150. /**
  151. * @desc : 누적리스트 등록
  152. * @
  153. * @param :
  154. * @return :
  155. * @---------------------------------------------------
  156. */
  157. function fRgstGrupList(){
  158. var curRow;
  159. var curStatus = model.getValue("/root/temp/gridsublist/status");
  160. var grupnm = model.getValue("/root/main/newgrup/grupnm")
  161. if (grupnm==null || grupnm=="")
  162. {
  163. return;
  164. }
  165. if(curStatus == "u"){
  166. //1. 현재 선택된 그룹리스트에 신규 정보를 반영한다.
  167. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  168. model.copyNode("/root/main/gruplist[" + curRow + "]", "/root/main/newgrup");
  169. grd_gruplist.rowStatus(curRow) = "2";
  170. grd_gruplist.refresh();
  171. }else{
  172. //1. 그룹 리스트에 한줄 추가
  173. grd_gruplist.addRow();
  174. //2. 신규 데이타를 그리드에 반영
  175. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  176. model.copyNode("/root/main/gruplist[" + curRow + "]", "/root/main/newgrup");
  177. //model.setValue("/root/main/gruplist[" + curRow + "]/grupflag",model.getValue("/root/temp/gridsublist/grupflag"));
  178. //model.setValue("/root/main/gruplist[" + curRow + "]/grupflag","G");
  179. grd_gruplist.refresh();
  180. //model.refresh();
  181. }
  182. }
  183. /**
  184. * @desc : 누적리스트 삭제
  185. * @
  186. * @param :
  187. * @return :
  188. * @---------------------------------------------------
  189. */
  190. function fDelGrupList(){
  191. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  192. if(curRow<0){
  193. alert("삭제할 행을 선택하세요");
  194. return;
  195. }
  196. grd_gruplist.rowStatus(curRow) = "4";
  197. //grd_gruplist.deleteItem(curRow);
  198. //grd_gruplist.refresh();
  199. }
  200. /**
  201. * @desc : 누적리스트 저장
  202. * @
  203. * @param : grdObj 그리드 ID
  204. * @return :
  205. * @---------------------------------------------------
  206. */
  207. function fSaveGrupList(){
  208. var bModified = false;
  209. for(var i = 1; i <grd_gruplist.rows; i++){
  210. rowStatus = grd_gruplist.rowStatus(i);
  211. if(rowStatus != "0"){
  212. bModified = true;
  213. break;
  214. }
  215. }
  216. if(!bModified)
  217. return;
  218. model.setValue("/root/send/grupdata/savedata", grd_gruplist.getUpdateData());
  219. //alert(model.getValue("/root/send/grupdata/savedata"));
  220. /*var rowCount;
  221. for(var j = 1; j <grd_gruplist.rows; j++){
  222. rowCount = grd_gruplist.rowStatus(i);
  223. alert(rowCount);
  224. if(rowCount == "1" || rowCount =="2"){
  225. submit("TXMRF00901");
  226. }
  227. }*/
  228. if(submit("TXMRF00901") == false)
  229. return;
  230. grd_gruplist.clearstatus();
  231. for(var i = 1; i < grd_gruplist.rows; i++){
  232. grd_gruplist.rowStatus(i) = "0";
  233. }
  234. var row = grd_gruplist.row;
  235. fReqValue("/root/main/condition");
  236. grd_gruplist.row = row;
  237. }
  238. /**
  239. * @desc : 누적서브리스트 조회
  240. * @
  241. * @param : grdObj 그리드 ID, condPath 조회조건 xpath
  242. * @return :
  243. * @---------------------------------------------------
  244. */
  245. function fReqValueSub(grdObj, condPath){
  246. var curRow = grdObj.row - grdObj.fixedRows + 1;
  247. model.setValue("/root/main/condition/grupcd", model.getValue("/root/main/gruplist[" + curRow + "]/grupcd"));
  248. model.setValue("/root/main/condition/grupflag", model.getValue("/root/main/gruplist[" + curRow + "]/grupflag"));
  249. model.refresh();
  250. //alert(model.getValue("/root/main/condition/grupcd"));
  251. //alert(model.getValue("/root/main/condition/grupflag"));
  252. model.copyNode("/root/send/reqdata", condPath);
  253. submit("TRMRF00902");
  254. }
  255. /**
  256. * @desc : 누적서브리스트 조회시 초기화
  257. * @
  258. * @param :
  259. * @return :
  260. * @---------------------------------------------------
  261. */
  262. function fReqClear(){
  263. //gridsublist초기화
  264. model.resetInstanceNode("/root/main/gridsublist");
  265. grd_gridsublist.refresh();
  266. model.toggle("gruplist");
  267. }
  268. /**
  269. * @desc : 누적서브리스트 추가
  270. * @
  271. * @param : grdObj 그리드ID
  272. * @return :
  273. * @---------------------------------------------------
  274. */
  275. function fAddValueSub(grdObj){
  276. model.toggle("itemlist");
  277. model.refresh();
  278. //grdObj.addItem();
  279. //alert(grdObj.row);
  280. //alert(grdObj.fixedRows);
  281. var curRow = grdObj.row - grdObj.fixedRows + 1;
  282. var grupcd = model.getValue("/root/temp/gridsublist/grupcd");
  283. // model.setValue("/root/main/gridsublist[" + curRow + "]/grupcd", grupcd);
  284. model.setValue("/root/temp/gridsublist/rowpos", curRow);
  285. model.refresh();
  286. }
  287. /**
  288. * @desc : 누적서브리스트 등록
  289. * @
  290. * @param : grdObj 그리드ID
  291. * @return :
  292. * @---------------------------------------------------
  293. */
  294. function fRgstValueSub(grdObj, grdObj2){
  295. var curRow = grd_itemlist.row - grd_itemlist.fixedRows + 1;
  296. var itemnm = model.getValue("/root/main/itemlist[" + curRow + "]/itemnm");
  297. ////var itemcd = model.getValue("/root/main/itemlist[" + curRow + "]/itemcd");
  298. var termcd = model.getValue("/root/main/itemlist[" + curRow + "]/termcd");
  299. termcd = termcd.substring(0,7);
  300. alert(termcd);
  301. var axflag = model.getValue("/root/temp/gridsublist/axflag");
  302. var grupcd = model.getValue(grd_gruplist.attribute("nodeset") + "[" + grd_gruplist.row + "]/grupcd");
  303. // datagrid1.findRow( data명, 시작row, column위치, 대소문자 구분유무, 전체/부분일치 유무 )
  304. var rowpos = grd_gridsublist.findRow(termcd, 1, 16, true, true);
  305. if(rowpos > 0){
  306. alert( itemnm +"은 이미 존재하는 누적서브 아이템입니다.");
  307. return;
  308. }
  309. //var desCurRow = model.getValue("/root/temp/gridsublist/rowpos");
  310. //alert("descCurRow->"+desCurRow);
  311. grd_gridsublist.addItem();
  312. var desCurRow = grd_gridsublist.rows - grdObj2.fixedRows;
  313. model.setValue("/root/main/gridsublist[" + desCurRow + "]/sortno", desCurRow);
  314. model.setValue("/root/main/gridsublist[" + desCurRow + "]/itemnm", itemnm);
  315. model.setValue("/root/main/gridsublist[" + desCurRow + "]/inptkind", '2');
  316. model.setValue("/root/main/gridsublist[" + desCurRow + "]/termbasecd", termcd);
  317. model.setValue("/root/main/gridsublist[" + desCurRow + "]/grupcd", grupcd);
  318. model.setValue("/root/main/gridsublist[" + desCurRow + "]/axflag", axflag);
  319. grd_gridsublist.refresh();
  320. }
  321. /**
  322. * @desc : 누적서브리스트 유사어/약어 등록
  323. * @
  324. * @param : grdObj 그리드ID
  325. * @return :
  326. * @---------------------------------------------------
  327. */
  328. function fRgstItemSub(){
  329. var curRow = grd_termlist.row - grd_termlist.fixedRows + 1;
  330. //유사어 약어 dbclick시 등록
  331. var itemnm = model.getValue("/root/main/termlist[" + curRow + "]/termnm");
  332. //var itemcd = model.getValue("/root/main/termlist[" + curRow + "]/itemcd");
  333. var termcd = model.getValue("/root/main/itemlist[" + curRow + "]/termcd");
  334. termcd = termcd.substring(0,7);
  335. alert(termcd);
  336. var axflag = model.getValue("/root/temp/gridsublist/axflag");
  337. var grupcd = model.getValue(grd_gruplist.attribute("nodeset") + "[" + grd_gruplist.row + "]/grupcd");
  338. //datagrid1.findRow( data명, 시작row, column위치, 대소문자 구분유무, 전체/부분일치 유무 )
  339. var rowpos = grd_gridsublist.findRow(termbasecd, 1, 16, true, true);
  340. if(rowpos > 0){
  341. alert( itemnm +"과 같은 누적서브 아이템이 존재합니다.");
  342. return;
  343. }
  344. //var desCurRow = model.getValue("/root/temp/gridsublist/rowpos");
  345. //alert("descCurRow->"+desCurRow);
  346. grd_gridsublist.addItem();
  347. var desCurRow = grd_gridsublist.rows - grd_gridsublist.fixedRows;
  348. model.setValue("/root/main/gridsublist[" + desCurRow + "]/sortno", desCurRow);
  349. model.setValue("/root/main/gridsublist[" + desCurRow + "]/itemnm", itemnm);
  350. //model.setValue("/root/main/gridsublist[" + desCurRow + "]/itemcd", itemcd);
  351. model.setValue("/root/main/gridsublist[" + desCurRow + "]/termbasecd", termcd);
  352. model.setValue("/root/main/gridsublist[" + desCurRow + "]/grupcd", grupcd);
  353. model.setValue("/root/main/gridsublist[" + desCurRow + "]/axflag", axflag);
  354. grd_gridsublist.refresh();
  355. }
  356. /**
  357. * @desc : 누적서브리스트 아이템리스트 등록
  358. * @
  359. * @param : grdObj 그리드ID
  360. * @return :
  361. * @---------------------------------------------------
  362. */
  363. function fRgstItemList(){
  364. var iRow = grd_itemlist.rows;
  365. //alert(iRow);
  366. if(iRow < 1){
  367. return;
  368. }
  369. model.toggle("itemlist");
  370. model.copyNode("/root/main/newitem", "/root/main/itemlist[" + iRow + "]");
  371. model.refresh();
  372. //var itemcd = model.getValue("/root/main/newitem/itemcd");
  373. model.makeNode("/root/send/reqdata/reqdata");
  374. model.makeNode("/root/send/reqdata/reqflag");
  375. model.setValue("/root/send/reqdata/reqdata", itemcd);
  376. model.setValue("/root/send/reqdata/reqflag", "itemcd");
  377. model.refresh();
  378. submit("TRMRF00202");
  379. }
  380. /**
  381. * @desc : 누적서브리스트 삭제
  382. * @
  383. * @param : grdObj 그리드ID
  384. * @return :
  385. * @---------------------------------------------------
  386. */
  387. function fDelValueSub(grdObj){
  388. var curRow = grdObj.row - grdObj.fixedRows + 1;
  389. if(curRow < 1){
  390. alert("삭제할 아이템을 선택하세요.");
  391. return;
  392. }
  393. grdObj.deleteItem(curRow);
  394. model.refresh();
  395. }
  396. function fSaveValueSub(){
  397. model.copyNode("/root/send/grupdata/grupmaster", grd_gruplist.attribute("nodeset") + "[" + grd_gruplist.row + "]" );
  398. grd_gridsublist.clearstatus();
  399. //var gtype = model.getValue("/root/temp/gridsublist/gridtype");
  400. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  401. var grupGridType = model.getValue(grd_gruplist.attribute("nodeset") + "[" + curRow + "]/grupflag");
  402. alert( grupGridType);
  403. if(grupGridType == 'X' || grupGridType =='Y'){
  404. //조건 같은값 비교
  405. var nodeList = instance1.selectNodes("root/main/gridsublist[axflag='" + grupGridType + "']");
  406. var subAxFlag = model.getValue("root/main/gridsublist/axflag");
  407. if(grupGridType != subAxFlag)
  408. {
  409. alert("첫번째 축구분값에는 GRID항목과 같은값이 있어야합니다.");
  410. return;
  411. }
  412. if(nodeList.length != 1)
  413. {
  414. alert("누적 그룹의 축구분과 같은 값은 하나만 존재해야합니다.");
  415. return;
  416. }
  417. } // X,Y비교 종료
  418. if(grupGridType =='G'){
  419. for (var i= grd_gridsublist.fixedRows; i < grd_gridsublist.rows ;i++ )
  420. {
  421. var subAXFlag = model.getValue("root/main/gridsublist["+ i +"]/axflag");
  422. if(subAXFlag !='X')
  423. {
  424. alert("X축만 사용가능합니다.");
  425. return;
  426. }
  427. }// G 비교 종료
  428. }
  429. for (var i= grd_gridsublist.fixedRows; i < grd_gridsublist.rows ;i++ )
  430. {
  431. grd_gridsublist.rowstatus(i) = 1;
  432. }
  433. model.setValue("/root/send/grupdata/savedata", grd_gridsublist.getUpdateData());
  434. if(submit("TXMRF00902")!=true){
  435. grd_gridsublist.clearstatus();
  436. }
  437. var row = grd_gruplist.row;
  438. fReqValue("/root/main/condition");
  439. //fReqValueSub(grd_gruplist, "/root/main/condition");
  440. grd_gruplist.row = row;
  441. }
  442. /**
  443. * @desc : 누적서브리스트의 순서 변경 up / down
  444. * @
  445. * @param : grdObj 그리드ID, direcflag 방향구분(up/down)
  446. * @return :
  447. * @---------------------------------------------------
  448. */
  449. function fChgValueSubSeq(grdObj, direcflag){
  450. var srcRow = grdObj.row - grdObj.fixedRows + 1;
  451. var row = grd_gridsublist.row;
  452. //alert("row->"+row);
  453. if(direcflag == "up"){ //위로
  454. if(srcRow == 1){ //현재 위치가 맨 위일 경우
  455. return;
  456. }
  457. var desRow = srcRow - 1;
  458. grd_gridsublist.row = row-1;
  459. }else if(direcflag == "down"){ //아래로
  460. if(srcRow == grdObj.rows - grdObj.fixedRows){ //현재 위치가 맨 아래일 경우
  461. return;
  462. }
  463. var desRow = srcRow + 1;
  464. grd_gridsublist.row = row+1;
  465. }
  466. // alert("row1111->"+grd_gridsublist.row);
  467. //순서 변경시 값 뿐만 아니라, 그리드 상태값까지 이동한다.
  468. var srcflag = grdObj.rowStatus(srcRow);
  469. var desflag = grdObj.rowStatus(desRow);
  470. model.copyNode("/root/temp/tmp", "/root/main/gridsublist[" + srcRow + "]");
  471. model.copyNode("/root/main/gridsublist[" + srcRow + "]", "/root/main/gridsublist[" + desRow + "]");
  472. model.copyNode("/root/main/gridsublist[" + desRow + "]", "/root/temp/tmp");
  473. model.setValue("/root/temp/gridsublist/statusflag", desflag);
  474. grdObj.rowStatus(desRow) = srcflag;
  475. grdObj.rowStatus(srcRow) = model.getValue("/root/temp/gridsublist/statusflag");
  476. for(var i = 1; i < grdObj.rows; i++){ //다양한 case가 발생하기 때문에 전체를 update하여 순서를 재정렬.
  477. model.setValue("/root/main/gridsublist[" + i + "]/sortno", i);
  478. if(grdObj.rowStatus(i) != 1){ //신규를 제외하고 모두 update
  479. grdObj.rowstatus(i) = 2;
  480. }
  481. }
  482. model.refresh();
  483. }
  484. /**
  485. * @desc :
  486. * @
  487. * @param :
  488. * @return :
  489. * @---------------------------------------------------
  490. */
  491. function fSetCtrlDisabled3(bool){
  492. input4.disabled = bool;
  493. input9.disabled = bool;
  494. input12.disabled = bool;
  495. gridtype.disabled = bool;
  496. input5.disabled = bool;
  497. input8.disabled = bool;
  498. input7.disabled = bool;
  499. combo3.disabled = bool;
  500. }
  501. function fSetCtrlDisabled(bool){
  502. input4.disabled = bool;
  503. input9.disabled = bool;
  504. input12.disabled = bool;
  505. gridtype.disabled = bool;
  506. input5.disabled = bool;
  507. input8.disabled = bool;
  508. input7.disabled = bool;
  509. btn_rgst.disabled = bool;
  510. btn_cncl.disabled = bool;
  511. combo3.disabled = bool;
  512. btn_saveval.disabled = bool;
  513. btn_savevalsub.disabled = bool;
  514. }
  515. /**
  516. * @desc :
  517. * @
  518. * @param :
  519. * @return :
  520. * @---------------------------------------------------
  521. */
  522. function fSetBtnDisabled(statusflag){
  523. if(statusflag == 0){ //누적리스트 조회후
  524. btn_addval.disabled = false;
  525. btn_updtval.disabled = false;
  526. }else if(statusflag == 1){ //누적리스트추가, 수정 후
  527. btn_addval.disabled = true;
  528. btn_updtval.disabled = true;
  529. btn_rgst.disabled = false;
  530. btn_cncl.disabled = false;
  531. btn_savevalsub.disabled = true;
  532. btn_saveval.disabled = false;
  533. }else if(statusflag == 2){ //누적리스트 등록
  534. btn_rgst.disabled = true;
  535. btn_cncl.disabled = true;
  536. FORMMNGT_SCR_SAVE_DATA = 1;//화면에 저장할 데이터 있음.
  537. }else if(statusflag == 3){ //누적리스트 취소
  538. btn_rgst.disabled = true;
  539. btn_cncl.disabled = true;
  540. if(FORMMNGT_SCR_SAVE_DATA == 0){ //화면에 저장할 데이터가 없으면
  541. btn_saveval.disabled = true;
  542. }else{
  543. btn_saveval.disabled = false;
  544. }
  545. }else if(statusflag == 4){ //UP, DOWN클릭 후, 아이템그리드 클릭 후
  546. btn_savevalsub.disabled = false;
  547. }else if(statusflag == 5){
  548. }
  549. }
  550. function fSelectGrid(destGrdID, srcGrdID)
  551. {
  552. var destModel = null;
  553. var destGrd = null;
  554. var srcGrd = null;
  555. destModel = opener.model;
  556. destGrd = opener.document.controls(destGrdID);
  557. srcGrd = document.controls(srcGrdID);
  558. if(srcGrd == null)
  559. return;
  560. var iRow = grd_gruplist.row;
  561. if(iRow < 1)
  562. return;
  563. var pageInfo = new PAGEINFO();
  564. var grupcd = model.getValue("/root/main/gruplist[" + iRow + "]/grupcd");
  565. var grupnm = model.getValue("/root/main/gruplist[" + iRow + "]/grupnm");
  566. opener.javascript.setParameter("grupnm", grupnm);
  567. opener.javascript.setParameter("grupcd", grupcd);
  568. if(destGrd == null)
  569. {
  570. model.close();
  571. return;
  572. }
  573. var destCurRow = destGrd.row - destGrd.fixedRows + 1;
  574. if(destCurRow < 1)
  575. return;
  576. var gridtype = model.getValue("/root/main/gruplist[" + iRow + "]/grupflag");
  577. destModel.makeValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/valgrupcd", grupcd);
  578. destModel.makeValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/valgrupnm", grupnm);
  579. //destModel.makeValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/cntrtype", gridtype);
  580. var attrVal = destModel.getValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/degnitemattrval");
  581. attrVal = setStyleValue(attrVal, "gridtype", gridtype);
  582. destModel.makeValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/itemattrval", attrVal);
  583. //var formcd = destModel.getValue("/root/main/FormDegnInfo/FormDegn/formcd");
  584. //var formbasecd = destModel.getValue("/root/main/FormDegnInfo/FormDegn/formbasecd");
  585. var formdegnseq = destModel.getValue(pageInfo.formmastRef + "/formdegnseq");
  586. var supdegnitemno = destModel.getValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/degnitemno");
  587. var supdegnitemcd = destModel.getValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/degnitemcd");
  588. var degnitemno = destModel.getXPathValue("max(" + destGrd.attribute("nodeset") + "/degnitemno)");
  589. if(degnitemno == "NaN")
  590. degnitemno = 1;
  591. var degnrowno = destModel.getXPathValue("max(" + destGrd.attribute("nodeset") + "/degnrowno)");
  592. if(degnrowno == "NaN")
  593. degnrowno = 1;
  594. var degnitemlevlno = parseInt(destModel.getValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/degnitemlevlno")) + 1;
  595. //alert(degnitemlevlno);
  596. var nextRow = -1;
  597. var nextItemNo = destModel.getValue(destGrd.attribute("nodeset") + "[degnitemlevlno <= " + (degnitemlevlno - 1) + " and position() > " + destCurRow + "]/degnitemno");
  598. if(nextItemNo == '')
  599. nextRow = destGrd.rows;
  600. else
  601. nextRow = destGrd.findRow(nextItemNo, destCurRow + 1, destGrd.colRef("degnitemno"));
  602. for(var i = nextRow - 1; i >= destCurRow + 1; i--)
  603. {
  604. destGrd.deleteRow(i);
  605. }
  606. destGrd.rebuild();
  607. for(var i = 0; i < srcGrd.Rows - srcGrd.FixedRows; i++)
  608. {
  609. destGrd.insertRow(destCurRow + i, "after", false);
  610. var srcPath = srcGrd.attribute("nodeset") + "[" + (i + 1) + "]";
  611. var destPath = destGrd.attribute("nodeset") + "[" + (destCurRow + i + 1) + "]";
  612. var degnitemlevlcd = destModel.getValue(destGrd.attribute("nodeset") + "[" + destCurRow + "]/degnitemlevlcd") + "." + model.getValue(srcPath + "/itemcd").substr(0,7);
  613. degnitemno = parseInt(degnitemno) + i + 1;
  614. degnrowno = parseInt(degnrowno) + i + 1;
  615. //destModel.makeValue(destPath + "/formbasecd" , formbasecd );
  616. //destModel.makeValue(destPath + "/degnhistno" , "" );
  617. destModel.makeValue(destPath + "/formdegnseq" , formdegnseq );
  618. destModel.makeValue(destPath + "/degnitemno" , degnitemno );
  619. destModel.makeValue(destPath + "/degnitemkind" , "GSU" );
  620. destModel.makeValue(destPath + "/degnitemcd" , model.getValue(srcPath + "/itemcd") );
  621. destModel.makeValue(destPath + "/termcd" , "" );
  622. destModel.makeValue(destPath + "/degnitemnm" , model.getValue(srcPath + "/itemnm") );
  623. destModel.makeValue(destPath + "/supdegnitemno" , supdegnitemno );
  624. destModel.makeValue(destPath + "/supdegnitemcd" , supdegnitemcd );
  625. destModel.makeValue(destPath + "/degnitemlevlno" , degnitemlevlno );
  626. destModel.makeValue(destPath + "/degnitemlevlcd" , degnitemlevlcd );
  627. destModel.makeValue(destPath + "/valgrupcd" , "" );
  628. destModel.makeValue(destPath + "/valgrupnm" , "" );
  629. destModel.makeValue(destPath + "/unitcd" , "" );
  630. destModel.makeValue(destPath + "/unitnm" , "" );
  631. destModel.makeValue(destPath + "/degnitemdefltval", "" );
  632. destModel.makeValue(destPath + "/degncntrviewflag", "A" );
  633. destModel.makeValue(destPath + "/userdegnyn" , "N" );
  634. destModel.makeValue(destPath + "/degnxval" , "0" );
  635. destModel.makeValue(destPath + "/degnyval" , "0" );
  636. destModel.makeValue(destPath + "/degnrowno" , destCurRow + i + 1 );
  637. destModel.makeValue(destPath + "/essndegnyn" , "N" );
  638. destModel.makeValue(destPath + "/essnrecyn" , "N" );
  639. destModel.makeValue(destPath + "/degnattrval" , "" );
  640. attrVal = destModel.getValue(destPath + "/itemattrval");
  641. attrVal = setStyleValue(attrVal, "axflag", model.getValue(srcPath + "/axflag"));
  642. var inptkind = model.getValue(srcPath + "/inptkind");
  643. switch(inptkind)
  644. {
  645. case "1": // OUTPUT
  646. attrVal += "axtype:OUTPUT;";
  647. break;
  648. case "2": // INPUT
  649. attrVal += "axtype:INPUT;";
  650. break;
  651. case "3": // INPUT+BUTTON
  652. attrVal += "axtype:INPUT+BUTTON;";
  653. break;
  654. case "4": // INPUT+DATE
  655. attrVal += "axtype:INPUT+DATE;";
  656. break;
  657. case "5": // COMBO
  658. attrVal += "axtype:COMBO;";
  659. break;
  660. case "6": // CHECKBOX
  661. attrVal += "axtype:CHECKBOX;";
  662. break;
  663. case "7": // RADIO
  664. attrVal += "axtype:RADIO;";
  665. break;
  666. }
  667. destModel.makeValue(destPath + "/itemattrval", attrVal);
  668. //destModel.makeValue(destPath + "/degnitemlevlno", degnitemlevlno);
  669. //destModel.makeValue(destPath + "/degnitemrowno", degnitemrowno);
  670. //destModel.makeValue(destPath + "/subitemseq", model.getValue(srcPath + "/subitemseq"));
  671. }
  672. destGrd.rebuild();
  673. for(var j = destCurRow + srcGrd.Rows - srcGrd.FixedRows; j < destGrd.Rows - destGrd.FixedRows; j++)
  674. {
  675. var destPath = destGrd.attribute("nodeset") + "[" + (j + 1) + "]";
  676. destModel.setValue(destPath + "/degnrowno" , j + 1 );
  677. }
  678. setTree(destGrd, destGrd.colref("degnitemlevlno"), destGrd.colref("degnitemcd"), true);
  679. model.close();
  680. }