MRF00300.js 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - 밸류리스트관리 ( SMMRF003000_밸류리스트관리.xrw - JScript )
  4. * Version :
  5. - Ver.1.00.01
  6. * 개발자: 이경희
  7. * 최초작성일:
  8. - 2008/02/28
  9. * 수정이력:
  10. - 2008/03/19
  11. - 2009-04-09 오전 9:04:43 강지훈 수정 : TRMRF00301을 중앙의료원용 TRMRF00303으로 변경
  12. - 2009-04-09 오전 9:04:43 강지훈 수정 : TRMRF00302을 중앙의료원용 TRMRF00304으로 변경
  13. * 기타:
  14. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  15. */
  16. var FORMMNGT_SCR_SAVE_DATA = 0; //화면에 밸류리스트 저장할 데이터 (0:없음, 1:있음)
  17. /**
  18. * @desc : 화면 초기화
  19. * @
  20. * @param :
  21. * @return :
  22. * @---------------------------------------------------
  23. */
  24. function fInitialize(){
  25. model.makeValue("/root/init/today", getCurrentDate());
  26. model.setFocus("ipt_valreqdata");
  27. model.toggle("gruplist");
  28. model.refresh();
  29. }
  30. /**
  31. * @desc : ?????? ???? ?? error check
  32. * @param :
  33. * @return : 0 : error 1 : no error
  34. * @---------------------------------------------------
  35. */
  36. function fChkError(){
  37. var errcd = model.getValue("/root/temp/errmsg/errcd");
  38. if(errcd == "err01"){ // insert error
  39. var itemnm = model.getValue("/root/main/newgrup/grupnm");
  40. var useYN = messageBox(itemnm + "과 같은 이름이 있습니다. 입력", "S001");
  41. }else if(errcd == "err02"){
  42. var termnm = model.getValue("/root/main/newterm/termnm");
  43. var useYN = messageBox(termnm + "과 같은 이름이 있습니다. 입력", "S001");
  44. }
  45. if(useYN == 6){
  46. return 1;
  47. }else{
  48. return 0;
  49. }
  50. }
  51. /**
  52. * @desc : valsublist초기화
  53. * @
  54. * @param :
  55. * @return :
  56. * @----------------------- ------------------------------
  57. */
  58. function fReqClear(){
  59. //valsublist초기화
  60. model.resetInstanceNode("/root/main/list/valsublist");
  61. grd_valsublist.refresh();
  62. model.toggle("gruplist");
  63. }
  64. /**
  65. * @desc : 밸류리스트 조회
  66. * @
  67. * @param :
  68. * @return :
  69. * @---------------------------------------------------
  70. */
  71. function fReqValue(condPath)
  72. {
  73. var mode = model.getValue("/root/main/condition/reqgrupflag");
  74. if(mode == "code")
  75. {
  76. model.setValue("/root/main/condition/grupcd", model.getValue("/root/main/condition/grupnm"));
  77. }
  78. model.makeValue("/root/main/condition/grupflag", "V");
  79. model.copyNode("/root/send/reqdata", condPath );
  80. var value = model.getValue("/root/main/switchon");
  81. if(value == "true")
  82. {
  83. if(mode == "valuesub")
  84. {
  85. messageBox("데이터 저장용도인 경우 서브항목명으로는 조회할 수", "E001");
  86. return;
  87. }
  88. submit("TRMRF00305");
  89. }
  90. else
  91. {
  92. submit("TRMRF00303");
  93. }
  94. }
  95. /**
  96. * @desc : 밸류리스트 조회 newgrup에 복사
  97. * @
  98. * @param :
  99. * @return :
  100. * @---------------------------------------------------
  101. */
  102. function fReqCopyGruplist(){
  103. if(grd_gruplist.isCell(event.target)){
  104. iRow = grd_gruplist.row;
  105. if(iRow < 1){
  106. return;
  107. }
  108. fSetCtrlDisabled3(true);
  109. model.copyNode("/root/main/newgrup","/root/main/gruplist["+ iRow +"]");
  110. fReqValueSub(grd_gruplist, "/root/main/condition");
  111. }
  112. }
  113. /**
  114. * @desc : 밸류리스트 추가
  115. * @
  116. * @param :
  117. * @return :
  118. * @---------------------------------------------------
  119. */
  120. function fInsertGrup(){
  121. //버튼 disable
  122. fSetCtrlDisabled3(false);
  123. model.resetInstanceNode("/root/main/newgrup");
  124. model.makeValue("/root/main/newgrup/grupfromdt", model.getValue("/root/init/today"));
  125. model.makeValue("/root/main/newgrup/gruptodt" , "99991231");
  126. model.makeValue("/root/main/newgrup/grupflag", "V");
  127. model.makeValue("/root/main/newgrup/itemcduseyn", "Y");
  128. model.makeValue("/root/main/newgrup/viewyn", "Y");
  129. //신규 저장시
  130. model.makeValue("/root/main/newgrup/status","i");
  131. model.refresh();
  132. model.setFocus("ipt_listnm");
  133. }
  134. /**
  135. * @desc : 밸류리스트 clear
  136. * @
  137. * @param :
  138. * @return :
  139. * @---------------------------------------------------
  140. */
  141. function fClearValue(){
  142. for ( var i = grd_gruplist.rows-1 ; i >= grd_gruplist.fixedRows; i--){
  143. if (grd_gruplist.rowstatus(i) > 0){
  144. grd_gruplist.deleteitem(i);
  145. }
  146. }
  147. grd_gruplist.clearStatus();
  148. grd_gruplist.rebuild();
  149. model.refresh();
  150. //fSetBtnDisabled(2);
  151. fSetCtrlDisabled3(true);
  152. for(var i = 1; i < grd_gruplist.rows; i++){
  153. grd_gruplist.rowStatus(i) = "0";
  154. }
  155. }
  156. /**
  157. * @desc : 밸류서브리스트 Clear
  158. * @
  159. * @param :
  160. * @return :
  161. * @---------------------------------------------------
  162. */
  163. function fClearValueSub(){
  164. model.makeValue("/root/temp/tmp", "");
  165. for ( var i = grd_valsublist.rows-1 ; i >= grd_valsublist.fixedRows; i--){
  166. if (grd_valsublist.rowstatus(i) > 0)
  167. {
  168. grd_valsublist.deleteitem(i);
  169. }
  170. }
  171. grd_valsublist.clearStatus();
  172. grd_valsublist.rebuild();
  173. //model.removeNodeset("/root/main/list/valsublist");
  174. model.refresh();
  175. //fSetBtnDisabled(2);
  176. fSetCtrlDisabled3(true);
  177. for(var i = 1; i < grd_valsublist.rows; i++){
  178. grd_valsublist.rowStatus(i) = "0";
  179. }
  180. }
  181. /**
  182. * @desc : 밸류리스트 수정
  183. * @
  184. * @param :
  185. * @return :
  186. * @---------------------------------------------------
  187. */
  188. function fUpdateGrup(){
  189. //아이템유효여부 초기화 Y
  190. cmb_valiyn.disabled = false;
  191. fSetCtrlDisabled3(false);
  192. iRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  193. if(iRow < 1){
  194. messageBox("수정할 행을 ","C002");
  195. return;
  196. }
  197. //fValiCheck();
  198. model.makeValue("/root/temp/valsublist/status", "u");
  199. model.copyNode("/root/main/newgrup", "/root/main/gruplist[" + iRow + "]");
  200. model.refresh();
  201. model.setFocus("ipt_listnm");
  202. model.makeValue("/root/main/newgrup/status","u");
  203. //fCompareNodes 비교위해 copynode
  204. model.makeNode("/root/main/newgrup2");
  205. model.copyNode("/root/main/newgrup2","/root/main/newgrup");
  206. }
  207. /**
  208. * @desc : 밸류리스트 등록
  209. * @
  210. * @param :
  211. * @return :
  212. * @---------------------------------------------------
  213. */
  214. function fRgstValue(){
  215. var curRow = model.getValue("/root/main/newgrup/rowpos");
  216. model.copyNode("/root/main/gruplist[" + curRow + "]", "/root/main/newgrup");
  217. model.refresh();
  218. }
  219. /**
  220. * @group :
  221. * @ver : 2007.06.13
  222. * @by :
  223. * @---------------------------------------------------
  224. * @type : function
  225. * @access : public
  226. * @desc : 두개의 노드셋을 비교한다.
  227. * @param : originalNode :
  228. * @param : copyNode :
  229. * @return : true, false
  230. * @---------------------------------------------------
  231. */
  232. function fCompareNodes1(originalNode, copyNode){
  233. var ins = document.models( 0 ).instances( 0 );
  234. var original = ins.selectSingleNode(originalNode).xml;
  235. var copy = ins.selectSingleNode(copyNode).xml;
  236. var replace = original.setReplaceWord("newgrup2","newgrup");
  237. if(replace == null || copy == null){
  238. return false;
  239. }else if (replace == copy){
  240. return true;
  241. }else{
  242. return false;
  243. }
  244. }
  245. /**
  246. * @desc : 밸류리스트 저장
  247. * @
  248. * @param : grdObj 그리드 ID
  249. * @return :
  250. * @---------------------------------------------------
  251. */
  252. function fSaveGrup(){
  253. var status = model.getValue("/root/main/newgrup/status");
  254. //alert(status);
  255. if(status=="" || status==null ){
  256. return;
  257. }
  258. var grupnm = model.getValue("/root/main/newgrup/grupnm");
  259. if(grupnm=="" || grupnm==null ){
  260. messageBox("리스트명을 ","C001");
  261. return;
  262. }
  263. // 2010.02.03 대,중,소분류 사용 안한다고 삭제처리
  264. // if(!isRequiredControls("ipt_deptnm1"))
  265. // return;
  266. //수정 여부 check
  267. if(status == "u"){
  268. var compare = fCompareNodes1("/root/main/newgrup2","/root/main/newgrup");
  269. if(status=="u" && compare == true){
  270. messageBox("수정된 내용이","I004");
  271. return;
  272. }
  273. //2009.01.21 강지훈 수정
  274. //변경이력을 남기지 않고 Update.
  275. var ret = messageBox("변경 이력을 저장", "S001");
  276. if(ret == "6"){
  277. model.makeValue("/root/main/newgrup/histsaveyn", "Y");
  278. }
  279. if(ret == "7"){
  280. model.makeValue("/root/main/newgrup/histsaveyn", "N");
  281. }
  282. }
  283. // grd_gridlist조회 위한 grupcd
  284. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  285. model.makeValue("/root/send/reqdata/grupcd", model.getValue("/root/main/gruplist[" + curRow + "]/grupcd"));
  286. model.makeValue("/root/send/reqdata/grupflag", model.getValue("/root/main/gruplist[" + curRow + "]/grupflag"));
  287. model.copyNode("/root/send/grupdata/grupmaster","/root/main/newgrup");
  288. //fUpdateToDt();
  289. for (var i= grd_valsublist.fixedRows; i < grd_valsublist.rows ;i++ )
  290. {
  291. var aa = grd_valsublist.rowstatus(i) = 1;
  292. }
  293. model.makeValue("/root/send/grupdata/savedata", grd_valsublist.getUpdateData());
  294. if(submit("TXMRF00301")){
  295. if(fChkError() == 1){ //저장 중 error유무 확인
  296. alert("chkerror");
  297. model.makeValue("/root/main/newgrup/procflag", "Y"); //process처리구분을 무시로 설정, 저장된다.
  298. model.refresh();
  299. model.makeValue("/root/temp/errmsg/errcd","");
  300. model.copyNode("/root/send/grupdata/grupmaster","/root/main/newgrup");
  301. //fUpdateToDt();
  302. model.makeValue("/root/send/grupdata/savedata", grd_valsublist.getUpdateData());
  303. submit("TXMRF00301");
  304. }
  305. }
  306. // 저장후 gruplist 조회
  307. model.makeValue("/root/main/condition/grupflag", "V");
  308. model.copyNode("/root/send/reqdata","/root/main/condition" );
  309. model.makeValue("/root/send/reqdata/grupnm",model.getValue("/root/main/newgrup/grupnm"));
  310. model.makeValue("/root/send/reqdata/reqgrupflag", "value");
  311. submit("TRMRF00303");
  312. grd_gruplist.row = 1;
  313. model.removeNodeset("/root/main/list/valsublist");
  314. // 저장후 vallist 조회
  315. if(status=="u" ){ // 수정만 조회
  316. model.makeValue("/root/send/reqdata/grupcd",model.getValue("/root/main/gruplist[" + grd_gruplist.row + "]/grupcd"));
  317. if(submit("TRMRF00304")== false){
  318. model.removeNodeset("/root/main/list/valsublist");
  319. }
  320. }
  321. model.makeValue("/root/main/newgrup/status","");
  322. //아이템유효여부 초기화 Y
  323. cmb_valiyn.disabled = true;
  324. model.makeValue("/root/temp/valiyn","Y");
  325. fSetCtrlDisabled3(true);
  326. model.refresh();
  327. }
  328. /**
  329. * @desc : 밸류서브리스트 조회
  330. * @
  331. * @param : grdObj 그리드 ID, condPath 조회조건 xpath
  332. * @return :
  333. * @---------------------------------------------------
  334. */
  335. function fReqValueSub(grdObj, condPath){
  336. var curRow = grdObj.row - grdObj.fixedRows + 1;
  337. model.makeValue("/root/main/condition/grupcd", model.getValue("/root/main/gruplist[" + curRow + "]/grupcd"));
  338. model.makeValue("/root/temp/valsublist/grupcd", model.getValue("/root/main/gruplist[" + curRow + "]/grupcd"));
  339. model.refresh();
  340. model.copyNode("/root/send/reqdata", condPath);
  341. submit("TRMRF00304");
  342. }
  343. /**
  344. * @desc : 밸류서브리스트 삭제
  345. * @
  346. * @param : grdObj 그리드ID
  347. * @return :
  348. * @---------------------------------------------------
  349. */
  350. function fDelValueSub(grdObj){
  351. var curRow = grdObj.row - grdObj.fixedRows + 1;
  352. if(curRow < 1){
  353. alert("삭제할 아이템을 선택하세요");
  354. return;
  355. }
  356. var statusFlag = grdObj.rowStatus(curRow);
  357. grdObj.deleteItem(curRow);
  358. model.makeValue("/root/temp/valsublist/itemremove","Y");
  359. model.refresh();
  360. }
  361. /**
  362. * @desc : 밸류서브리스트 저장
  363. * @
  364. * @param :
  365. * @return :
  366. * @---------------------------------------------------
  367. */
  368. function fSaveValueSub()
  369. {
  370. var bModified = false;
  371. //아이템 삭제 여부 확인
  372. var itemflag =model.getValue("/root/temp/valsublist/itemremove");
  373. for(var i = 1; i <grd_valsublist.rows; i++)
  374. {
  375. rowStatus = grd_valsublist.rowStatus(i);
  376. if(rowStatus != "0" || itemflag=="Y"){
  377. bModified = true;
  378. break;
  379. }
  380. }
  381. //현재 row 유무 확인
  382. if(grd_valsublist.rows == grd_valsublist.fixedRows && itemflag=="Y"){
  383. bModified = true;
  384. }
  385. if(!bModified)
  386. return;
  387. model.copyNode("/root/send/grupdata/grupmaster", grd_gruplist.attribute("nodeset") + "[" + grd_gruplist.row + "]" );
  388. //2009.02.03 강지훈 수정
  389. //변경이력을 남기지 않고 Update.
  390. var ret = messageBox("변경 이력을 저장", "S001");
  391. if(ret == "6"){
  392. model.makeValue("/root/send/grupdata/grupmaster/histsaveyn", "Y");
  393. }
  394. else if(ret == "7"){
  395. model.makeValue("/root/send/grupdata/grupmaster/histsaveyn", "N");
  396. }
  397. else{
  398. return;
  399. }
  400. //저장후 grupcd로 조회 (TRMRF00303)
  401. var grupcd = model.getValue(grd_gruplist.attribute("nodeset") + "[" + grd_gruplist.row + "]/grupcd");
  402. grupcd++ ;
  403. //삭제된 row의 rowstatus값 clear시킨다
  404. grd_valsublist.clearstatus();
  405. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  406. var grupGridType = model.getValue(grd_gruplist.attribute("nodeset") + "[" + curRow + "]/grupflag");
  407. //현재 row 유무 확인
  408. if(grd_valsublist.rows == grd_valsublist.fixedRows )
  409. {
  410. var irow = "0";
  411. }
  412. else
  413. {
  414. for (var i= grd_valsublist.fixedRows; i < grd_valsublist.rows ;i++ )
  415. {
  416. grd_valsublist.rowstatus(i) = 1;
  417. }
  418. } //end if
  419. model.makeValue("/root/send/grupdata/savedata", grd_valsublist.getUpdateData());
  420. var row = grd_gruplist.row;
  421. if(submit("TXMRF00302")!=true){
  422. grd_valsublist.clearstatus();
  423. }
  424. //alert(model.getValue("/root/main/gruplist[" + row + "]/grupnm"));
  425. model.makeValue("/root/main/condition/grupflag", "V");
  426. model.copyNode("/root/send/reqdata", "/root/main/condition");
  427. model.makeValue("/root/send/reqdata/grupnm",model.getValue("/root/main/gruplist[" + row + "]/grupnm"));
  428. model.makeValue("/root/send/reqdata/reqgrupflag","code");
  429. model.makeValue("/root/send/reqdata/grupcd",grupcd);
  430. submit("TRMRF00303");
  431. grd_gruplist.row = 1;
  432. //valsublist 다시 조회
  433. var aa=model.getValue("/root/main/gruplist[" + grd_gruplist.row + "]/grupcd");
  434. model.makeValue("/root/send/reqdata/grupcd",model.getValue("/root/main/gruplist[" + grd_gruplist.row + "]/grupcd"));
  435. submit("TRMRF00304");
  436. model.makeValue("/root/temp/valsublist/itemremove","N");
  437. model.refresh();
  438. }
  439. /**
  440. * @desc : 밸류서브리스트의 순서 변경 up / down
  441. * @
  442. * @param : grdObj 그리드ID, direcflag 방향구분(up/down)
  443. * @return :
  444. * @---------------------------------------------------
  445. */
  446. function fChgValueSubSeq(grdObj, direcflag){
  447. var srcRow = grdObj.row - grdObj.fixedRows + 1;
  448. if(srcRow =="0")
  449. return;
  450. if(direcflag == "up"){ //위로
  451. if(srcRow == 1){ //현재 위치가 맨 위일 경우
  452. return;
  453. }
  454. var desRow = srcRow - 1;
  455. }else if(direcflag == "down"){ //아래로
  456. if(srcRow == grdObj.rows - grdObj.fixedRows){ //현재 위치가 맨 아래일 경우
  457. return;
  458. }
  459. var desRow = srcRow + 1;
  460. }
  461. //순서 변경시 값 뿐만 아니라, 그리드 상태값까지 이동한다.
  462. var srcflag = grdObj.rowStatus(srcRow);
  463. var desflag = grdObj.rowStatus(desRow);
  464. model.copyNode("/root/temp/tmp", "/root/main/list/valsublist[" + srcRow + "]");
  465. model.copyNode("/root/main/list/valsublist[" + srcRow + "]", "/root/main/list/valsublist[" + desRow + "]");
  466. model.copyNode("/root/main/list/valsublist[" + desRow + "]", "/root/temp/tmp");
  467. model.makeValue("/root/temp/valsublist/statusflag", desflag);
  468. grdObj.rowStatus(desRow) = srcflag;
  469. grdObj.rowStatus(srcRow) = model.getValue("/root/temp/valsublist/statusflag");
  470. //alert(model.getValue("/root/temp/valsublist/statusflag"));
  471. for(var i = 1; i < grdObj.rows; i++){ //다양한 case가 발생하기 때문에 전체를 update하여 순서를 재정렬.
  472. model.makeValue("/root/main/list/valsublist[" + i + "]/sortno", i);
  473. if(grdObj.rowStatus(i) != 1){ //신규를 제외하고 모두 update
  474. grdObj.rowstatus(i) = 2;
  475. }
  476. }
  477. model.refresh();
  478. return desRow;
  479. }
  480. /**
  481. * @desc : 아이템리스트의 등록
  482. * @
  483. * @param
  484. * @return :
  485. * @---------------------------------------------------
  486. */
  487. function fRgstItemdbClick(){
  488. var tmp = model.getValue("/root/temp/tmp");
  489. if (tmp != "item_insert") {
  490. return;
  491. }
  492. if(grd_itemlist.isCell(event.target)){
  493. iRow = grd_itemlist.row;
  494. if(iRow < 1){
  495. return;
  496. }
  497. var curRow = grd_itemlist.row - grd_itemlist.fixedRows + 1;
  498. var termcd = model.getValue("/root/main/itemlist[" + curRow + "]/termcd");
  499. var reprtermnm = model.getValue("/root/main/itemlist[" + curRow + "]/reprtermnm");
  500. termcd = termcd.substring(0,7);
  501. // datagrid1.findRow( 검색string, 검색시작행, 검색컬럼, 대소문자구분, 전체일치여부, )
  502. var findRow = grd_valsublist.findRow(termcd, 1,grd_valsublist.colref("termbasecd"));
  503. var itemnm = model.getValue("/root/main/itemlist[" + curRow + "]/itemnm");
  504. if (findRow != -1){
  505. window.alert("동일한 아이템이 존재합니다.\n\n" + findRow + "번째 " + itemnm, "아이템추가", 0 | 64);
  506. return;
  507. }
  508. grd_valsublist.addItem();
  509. var curRow1 = grd_valsublist.row - grd_valsublist.fixedRows + 1;
  510. var grupcd = model.getValue("/root/temp/valsublist/grupcd");
  511. model.makeValue("/root/main/list/valsublist[" + curRow1 + "]/grupcd", grupcd);
  512. model.makeValue("/root/temp/valsublist/rowpos", curRow1);
  513. var desCurRow = model.getValue("/root/temp/valsublist/rowpos");
  514. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/itemnm", itemnm);
  515. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/valitemnm", itemnm);
  516. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/termbasecd", termcd);
  517. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/reprtermnm", reprtermnm);
  518. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/sortno", desCurRow);
  519. model.refresh();
  520. }
  521. }
  522. /**
  523. * @desc : 아이템리스트의 선택
  524. * @
  525. * @param
  526. * @return :
  527. * @---------------------------------------------------
  528. */
  529. function fRgstItemClick(){
  530. if(grd_itemlist.isCell(event.target)){
  531. iRow = grd_itemlist.row;
  532. if(iRow < 1){
  533. return;
  534. }
  535. model.copyNode("/root/main/newitem", "/root/main/itemlist[" + iRow + "]");
  536. var itemcd = model.getValue("/root/main/newitem/itemcd");
  537. model.makeNode("/root/send/reqdata/reqdata");
  538. model.makeNode("/root/send/reqdata/reqflag");
  539. model.makeValue("/root/send/reqdata/reqdata", itemcd);
  540. model.makeValue("/root/send/reqdata/reqflag", "itemcd");
  541. model.makeValue("/root/send/reqdata/reqstatusterm", "Y");
  542. submit("TRMRF00202");
  543. }
  544. }
  545. /**
  546. * @desc : 아이템리스트( 유사어 / 약어) 의 등록
  547. * @
  548. * @param
  549. * @return :
  550. * @---------------------------------------------------
  551. */
  552. function fRgstItemSub(){
  553. var curRow = grd_termlist.row - grd_termlist.fixedRows + 1;
  554. //유사어 약어 dbclick시 등록
  555. var termnm = model.getValue("/root/main/termlist[" + curRow + "]/termnm");
  556. var termcd = model.getValue("/root/main/termlist[" + curRow + "]/termcd");
  557. termcd = termcd.substring(0,7);
  558. var grupcd = model.getValue(grd_gruplist.attribute("nodeset") + "[" + grd_gruplist.row + "]/grupcd");
  559. //datagrid1.findRow( data명, 시작row, column위치, 대소문자 구분유무, 전체/부분일치 유무 )
  560. var rowpos = grd_valsublist.findRow(termcd, 1, grd_valsublist.colref("termbasecd"));
  561. if(rowpos > 0){
  562. alert(termnm +"과 같은 누적서브 아이템이 존재합니다.");
  563. return;
  564. }
  565. grd_valsublist.addItem();
  566. var curRow1 = grd_valsublist.row - grd_valsublist.fixedRows + 1;
  567. var grupcd = model.getValue("/root/temp/valsublist/grupcd");
  568. model.makeValue("/root/main/list/valsublist[" + curRow1 + "]/grupcd", grupcd);
  569. model.makeValue("/root/temp/valsublist/rowpos", curRow1);
  570. var desCurRow = model.getValue("/root/temp/valsublist/rowpos");
  571. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/itemnm", termnm);
  572. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/termbasecd", termcd);
  573. model.makeValue("/root/main/list/valsublist[" + desCurRow + "]/sortno", desCurRow);
  574. model.refresh();
  575. }
  576. /**
  577. * @desc : 그룹리스트 의 등록
  578. * @
  579. * @param
  580. * @return :
  581. * @---------------------------------------------------
  582. */
  583. function fRgstGrupList(){
  584. // 등록후 같은이름 다시 등록시 return
  585. var grupnm = model.getValue("/root/main/gruplist["+grd_gruplist.row+"]/grupnm");
  586. var listnm = model.getValue("/root/main/newgrup/grupnm");
  587. if(grupnm ==listnm){
  588. return;
  589. }
  590. var curRow;
  591. var curStatus = model.getValue("/root/temp/valsublist/status");
  592. var grupnm = model.getValue("/root/main/newgrup/grupnm");
  593. if (grupnm==null || grupnm=="")
  594. {
  595. return;
  596. }
  597. if(curStatus == "u"){
  598. //1. 현재 선택된 그룹리스트에 신규 정보를 반영한다.
  599. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  600. model.copyNode("/root/main/gruplist[" + curRow + "]", "/root/main/newgrup");
  601. grd_gruplist.rowStatus(curRow) = "2";
  602. grd_gruplist.refresh();
  603. }else{
  604. //1. 그룹 리스트에 한줄 추가
  605. grd_gruplist.addRow();
  606. //2. 신규 데이타를 그리드에 반영
  607. var curRow = grd_gruplist.row - grd_gruplist.fixedRows + 1;
  608. model.copyNode("/root/main/gruplist[" + curRow + "]", "/root/main/newgrup");
  609. //model.makeValue("/root/main/gruplist[" + curRow + "]/grupflag",model.getValue("/root/temp/gridsublist/grupflag"));
  610. //model.makeValue("/root/main/gruplist[" + curRow + "]/grupflag","G");
  611. grd_gruplist.refresh();
  612. }
  613. }
  614. /**
  615. * @desc :버튼 disabled
  616. * @
  617. * @param :
  618. * @return :
  619. * @---------------------------------------------------
  620. */
  621. function fSetCtrlDisabled3(bool){
  622. ipt_listnm.disabled = bool;
  623. ipt_fromdd.disabled = bool;
  624. ipt_todd.disabled = bool;
  625. ipt_updt.disabled = bool;
  626. ipt_rem.disabled = bool;
  627. cmb_itemcduseyn.disabled = bool;
  628. cmb_grupflag.disabled = bool;
  629. btn_search.disabled = bool;
  630. }
  631. /**
  632. * @desc :버튼 disabled
  633. * @
  634. * @param :
  635. * @return :
  636. * @---------------------------------------------------
  637. */
  638. function fSetBtnDisabled(statusflag){
  639. if(statusflag == 0){ //밸류리스트 조회후
  640. // btn_addval.disabled = false;
  641. // btn_updtval.disabled = false;
  642. }else if(statusflag == 1){ //밸류리스트추가
  643. // btn_addval.disabled = true;
  644. // btn_updtval.disabled = true;
  645. btn_rgst.disabled = false;
  646. btn_cncl.disabled = false;
  647. btn_itemadd.disabled = true;
  648. btn_itemdel.disabled = true;
  649. btn_up.disabled = true;
  650. btn_itemdown.disabled = true;
  651. // btn_savevalsub.disabled = true;
  652. btn_delgrp.disabled = false;
  653. // btn_saveval.disabled = false;
  654. }else if(statusflag == 2){ //btn_cncl 취소
  655. //FORMMNGT_SCR_SAVE_DATA = 1;//?????? ?????? ?????? ????.
  656. btn_itemadd.disabled = false;
  657. btn_itemdel.disabled = false;
  658. btn_up.disabled = false;
  659. btn_itemdown.disabled = false;
  660. // btn_addval.disabled = false;
  661. // btn_updtval.disabled = false;
  662. }else if(statusflag == 3){ //아이템 추가
  663. // btn_addval.disabled = true;
  664. // btn_updtval.disabled = true;
  665. // btn_saveval.disabled = true;
  666. // btn_savevalsub.disabled = false;
  667. // btn_cncl2.disabled = false;
  668. }else if(statusflag == 4){ //UP, DOWN
  669. // btn_addval.disabled = false;
  670. // btn_updtval.disabled = false;
  671. // btn_saveval.disabled = false;
  672. // btn_savevalsub.disabled = false;
  673. }else if(statusflag == 5){//btn_updtval 밸류 리스트 수정
  674. // btn_addval.disabled = true;
  675. btn_rgst.disabled = false;
  676. btn_cncl.disabled = false;
  677. btn_itemadd.disabled = true;
  678. btn_itemdel.disabled = true;
  679. btn_up.disabled = true;
  680. btn_itemdown.disabled = true;
  681. // btn_savevalsub.disabled = true;
  682. btn_delgrp.disabled = true;
  683. }
  684. }
  685. /*
  686. ????
  687. */
  688. function removeBlank(str){
  689. str = str.replace(/\s/g,'');
  690. return str;
  691. }
  692. /**
  693. * @desc : 무효 아이템 수정시 valicheck변경
  694. * @
  695. * @param :
  696. * @return :
  697. * @---------------------------------------------------
  698. */
  699. function fValiCheck(){
  700. // 무효 아이템 수정시 valicheck변경
  701. var todt = model.getValue("/root/main/newgrup/gruptodt");
  702. if(getCurrentDate()+getCurrentTime > todt){
  703. model.setValue("/root/main/valicheck","Y");
  704. }
  705. }
  706. /**
  707. * @desc : 무효화된 단위 수정시 gruptodt 새로 넣어준다.
  708. * @
  709. * @param :
  710. * @return :
  711. * @---------------------------------------------------
  712. */
  713. function fUpdateTodt(){
  714. //무효화된 grupcd 수정시 gruptodt 새로 넣어준다.
  715. var valicheck = model.getValue("/root/main/valicheck");
  716. if(valicheck=="Y"){
  717. model.setValue("/root/send/grupdata/grupmaster/gruptodt","29991231000000");
  718. model.setValue("/root/main/valicheck","N");
  719. model.refresh();
  720. }
  721. }
  722. /**
  723. * @desc : gruplist 를 newgrup으로 copy
  724. * @
  725. * @param :
  726. * @return :
  727. * @---------------------------------------------------
  728. */
  729. function fCopyNewGrup(){
  730. model.copyNode("/root/main/newgrup", "/root/main/gruplist[" + iRow + "]");
  731. //유효여부 변경하기
  732. var todt = model.getValue("/root/main/gruplist[" + iRow + "]/gruptodt");
  733. var fromdt = model.getValue("/root/main/gruplist[" + iRow + "]/grupfromdt");
  734. if(fromdt <= getCurrentDate()+getCurrentTime && todt > getCurrentDate()+getCurrentTime ){
  735. model.setValue("/root/temp/valiyn","Y");
  736. } else {
  737. model.setValue("/root/temp/valiyn","N");
  738. }
  739. //아이템유효여부 초기화 Y
  740. cmb_valiyn.disabled = true;
  741. fSetCtrlDisabled3(true);
  742. model.makeValue("/root/main/condition/grupcd", model.getValue("/root/main/gruplist[" + iRow + "]/grupcd"));
  743. model.makeValue("/root/temp/valsublist/grupcd", model.getValue("/root/main/gruplist[" + iRow + "]/grupcd"));
  744. model.copyNode("/root/send/reqdata", "/root/main/condition");
  745. model.makeValue("/root/send/reqdata/indxpathcd",model.getValue("/root/main/gruplist[" + iRow + "]/indxpathcd"));
  746. submit("TRMRF00304");
  747. model.refresh();
  748. }
  749. /**
  750. * @desc : valsublist 를 newitem으로 copy
  751. * @
  752. * @param :
  753. * @return :
  754. * @---------------------------------------------------
  755. */
  756. function fCopyValSublist(){
  757. model.toggle("gruplist");
  758. var curRow = grd_valsublist.row - grd_valsublist.fixedRows + 1;
  759. model.setValue("/root/main/newitem/itemnm" , model.getValue("/root/main/list/valsublist[" + curRow + "]/itemnm"));
  760. model.setValue("/root/main/newitem/itemcnts" , model.getValue("/root/main/list/valsublist[" + curRow + "]/itemcnts"));
  761. model.setValue("/root/main/newitem/datakind" , model.getValue("/root/main/list/valsublist[" + curRow + "]/datakind"));
  762. model.setValue("/root/main/newitem/cntrkind" , model.getValue("/root/main/list/valsublist[" + curRow + "]/cntrkind"));
  763. model.setValue("/root/main/newitem/reprtermnm" ,model.getValue("/root/main/list/valsublist[" + curRow + "]/reprtermnm"));
  764. model.setValue("/root/main/newitem/rem" , model.getValue("/root/main/list/valsublist[" + curRow + "]/itemrem"));
  765. model.setValue("/root/main/newitem/updtresncnts",model.getValue("/root/main/list/valsublist[" + curRow + "]/itemupdtresncnts"));
  766. var itemcd = model.getValue("/root/main/list/valsublist[" + curRow + "]/itemcd");
  767. model.makeValue("/root/send/reqdata/reqdata", itemcd);
  768. model.makeValue("/root/send/reqdata/reqstatusterm", "Y");
  769. submit("TRMRF00202");
  770. model.refresh();
  771. }
  772. /**
  773. * @desc : 색인선택 popup버튼
  774. * @
  775. * @param :
  776. * @return :
  777. * @---------------------------------------------------
  778. */
  779. function fPopupIndex(){
  780. //model.removeNodeset("/root/send");
  781. model.makeValue("/root/send/paramindx","");
  782. model.setValue("/root/main/newgrup/depthnm1" ,"");
  783. model.setValue("/root/main/newgrup/depthnm2" ,"");
  784. model.setValue("/root/main/newgrup/depthnm3" ,"");
  785. setParameter("indxflag","V");
  786. model.setValue("/root/send/paramindx", model.getValue("/root/temp/condition/indxflag"));
  787. modal("SPMRF02100", 1,10, 10, "SPMRF02100", "/root/send", "/root/temp/condition/getdata");
  788. var child = "SPMRF02100";
  789. if(child != null){
  790. var count = getParameter("count");
  791. for(var i=0; i<count; i++){
  792. model.makeValue("/root/main/newgrup/depthnm"+(i+1), getParameter("depthnm"+(i+1)));
  793. }
  794. var itemidxseq = getParameter("itemindxseq");
  795. var pathcd = getParameter("pathcd");
  796. model.makeValue("/root/main/newgrup/itemidxseq", itemidxseq);
  797. model.makeValue("/root/main/newgrup/indxpathcd", pathcd);
  798. model.refresh();
  799. }
  800. }
  801. function fSaveExcel()
  802. {
  803. try
  804. {
  805. if(grd_gruplist.rows > 1)
  806. {
  807. var filePath = window.fileDialog("save", "", "", "", "xls", "Excel File(*.xls)|*.xsl|All Files (*.*)|*.*");
  808. if (filePath == "")
  809. return;
  810. grd_gruplist.saveExcel(filePath, "sheetname:sheet1;colhiddenextend:false;rowhiddenextend:false;");
  811. }
  812. else
  813. {
  814. messageBox("조회된 데이터가", "I004");
  815. }
  816. }
  817. catch(e)
  818. {
  819. }
  820. }
  821. function fSaveAllExcel()
  822. {
  823. try
  824. {
  825. if(group_total.rows > 1)
  826. {
  827. var filePath = window.fileDialog("save", "", "", "", "xls", "Excel File(*.xls)|*.xsl|All Files (*.*)|*.*");
  828. if (filePath == "")
  829. return;
  830. group_total.saveExcel(filePath, "sheetname:sheet1;colhiddenextend:false;rowhiddenextend:false;");
  831. }
  832. else
  833. {
  834. messageBox("조회된 데이터가", "I004");
  835. }
  836. }
  837. catch(e)
  838. {
  839. }
  840. }
  841. function fSwitch()
  842. {
  843. var value = model.getValue("/root/main/switchon");
  844. if(value == "true")
  845. {
  846. // 그리드 감추기
  847. grd_gruplist.visible = false;
  848. grd_valsublist.visible = false;
  849. // 버튼 비활성화
  850. button1.disabled = true; // 밸류리스트 저장
  851. btn_up.disabled = true; // up 버튼
  852. btn_itemdown.disabled = true; // down 버튼
  853. btn_itemadd.disabled = true; // 아이템추가 버튼
  854. btn_itemdel.disabled = true; // 아이템삭제 버튼
  855. btn_cncl2.disabled = true; // 취소 버튼
  856. btn_savevalsub.disabled = true; // 저장 버튼
  857. button5.disabled = true; // 신규 버튼
  858. button2.disabled = true; // 수정 버튼
  859. button6.disabled = true; // 저장 버튼
  860. // 전체 그리드 보이기
  861. group_total.visible = true;
  862. // 저장버튼 보이기
  863. button3.visible = true; // 저장 버튼
  864. model.refresh();
  865. }
  866. else
  867. {
  868. group_total.visible = false;
  869. // 저장버튼 숨기기
  870. button3.visible = false; // 저장 버튼
  871. grd_gruplist.visible = true;
  872. grd_valsublist.visible = true;
  873. // 버튼 활성화
  874. button1.disabled = false; // 밸류리스트 저장
  875. btn_up.disabled = false; // up 버튼
  876. btn_itemdown.disabled = false; // down 버튼
  877. btn_itemadd.disabled = false; // 아이템추가 버튼
  878. btn_itemdel.disabled = false; // 아이템삭제 버튼
  879. btn_cncl2.disabled = false; // 취소 버튼
  880. btn_savevalsub.disabled = false; // 저장 버튼
  881. button5.disabled = false; // 신규 버튼
  882. button2.disabled = false; // 수정 버튼
  883. button6.disabled = false; // 저장 버튼
  884. model.refresh();
  885. }
  886. }