SMMNR014.xjs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 간호일지I_문장 속성 입력(SMMNR01400.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. var sStmtList = "";
  8. var sPageTop = 3;//69; // 최상위 여백 :3, 속성등록버튼 : 19, 하위 여백 : 3, 구분선 : 1) 시작위치
  9. var bindchk = 0;
  10. var buttonchk = 0;
  11. var tmp_count = 0;
  12. var cbk_TRMNR01401_flag = 0; // 콜백flag
  13. dsf_createDs("ds_tempc");
  14. /**
  15. * @group :
  16. * @ver : 2007.04.25
  17. * @by : 이은영
  18. * @---------------------------------------------------
  19. * @type : function
  20. * @access : public
  21. * @desc : 화면 초기화
  22. * @param :
  23. * @return :
  24. * @---------------------------------------------------
  25. */
  26. function fInit(){
  27. ds_cond.setColumn(0,"attrinfo","");
  28. var sSMMNR014_Param = opener.frmf_getParameter("SMMNR014_Param");
  29. opener.frmf_setParameter("SMMNR014_Return","");
  30. if(utlf_isNull(sSMMNR014_Param)) return;
  31. sStmtList = sSMMNR014_Param.split("▩");
  32. var sAttrInfo = "";
  33. var sStmtInfo = "";
  34. var sSendData = "";
  35. var sStmtRow = 0; // 진술문장 인스턴스
  36. var sAttrRow = 0; // 속성 인스턴스
  37. var sAttrYN = "N";
  38. // 진술문장 별로 속성 가져오고 인스턴스 생성
  39. for(var i=0; i<sStmtList.length-1; i++){
  40. sStmtInfo = sStmtList[i].split("▦");
  41. ds_data_stmtinfo.addRow();
  42. ds_data_stmtinfo.setColumn(sStmtRow,"stmtcd",sStmtInfo[0]);
  43. ds_data_stmtinfo.setColumn(sStmtRow,"stmtcnts",sStmtInfo[1]);
  44. ds_data_stmtinfo.setColumn(sStmtRow,"attrinfo1",sStmtInfo[2]);
  45. ds_data_stmtinfo.setColumn(sStmtRow,"attrinfo2",sStmtInfo[3]);
  46. ds_data_stmtinfo.setColumn(sStmtRow,"attressnyn",sStmtInfo[4]);
  47. ds_init_dnar.filter("itemcd=='"+sStmtInfo[5]+"'");
  48. ds_data_stmtinfo.setColumn(sStmtRow,"dnarnm",ds_init_dnar.getColumn(0,"itemnm"));
  49. ds_init_dnar.filter("");
  50. sAttrInfo = sStmtInfo[2].split("⊙");
  51. sAttrYN = "N";
  52. // 문장 내의 속성 가져오기
  53. for(var j=0; j<sAttrInfo.length-1; j++){
  54. ds_data_attrinfo.addRow();
  55. ds_data_attrinfo.setColumn(sAttrRow,"attrseq",j);
  56. ds_data_attrinfo.setColumn(sAttrRow,"attrval","");
  57. ds_data_attrinfo.setColumn(sAttrRow,"attrvalcd","");
  58. ds_data_attrinfo.setColumn(sAttrRow,"attrcd",sAttrInfo[j]);
  59. sAttrRow++;
  60. if(fExistAttrCd(sAttrInfo[j]) == "Y") continue;
  61. sSendData = ds_cond.getColumn(0,"attrinfo");
  62. if(!utlf_isNull(sSendData)) sSendData += ",";
  63. sSendData += sAttrInfo[j];
  64. ds_cond.setColumn(0,"attrinfo",sSendData);
  65. }
  66. sStmtRow++;
  67. }
  68. var lineCnt = 1;
  69. var sAttrFlag = "";
  70. var sPlnumChoiYN = "";
  71. var sStmtCnt = 0;
  72. var sStmtCnts= "";
  73. var sStmtCD = "";
  74. var sClass = "";
  75. var sClassCombo = "";
  76. var sDnarNm = "";
  77. var ds_temp = dsf_createDsRow("ds_temp", [{col: "attrinfo", val:ds_cond.getColumn(0,"attrinfo") }]);
  78. tranf_submit({
  79. id: "TRMNR01401"
  80. , service: "carerecapp.NursingRecord"
  81. , method: "reqGetAttrList"
  82. , inds: "refCond="+ds_temp
  83. , outds: "ds_init_attrinfo=attrinfo"
  84. , async: false
  85. , callback: "cbk_TRMNR01401"
  86. });
  87. if(cbk_TRMNR01401_flag==1){
  88. sStmtRow = 1; // 진술문장 인스턴스
  89. sAttrRow = 1; // 속성 인스턴스
  90. sStmtCnt = ds_data_stmtinfo.rowcount;
  91. ds_init_combo.copyData(ds_init_attrinfo);
  92. for(var i=0; i<sStmtCnt; i++){
  93. sStmtCnts = ds_data_stmtinfo.getColumn(i,"stmtcnts");
  94. if(!utlf_isNull(ds_data_stmtinfo.getColumn(i,"dnarnm")))
  95. sDnarNm = ds_data_stmtinfo.getColumn(i,"dnarnm");
  96. if(ds_data_stmtinfo.getColumn(i,"attressnyn") == "E"){
  97. sClass = "input_essential";
  98. sClassCombo = "input_essential";
  99. }else{
  100. sClass = "input_default";
  101. sClassCombo = "input_default";
  102. }
  103. fCretInputTool("cap","SS",i,sPageTop,sStmtCnts); // 진술문장
  104. fCretInputTool("cap","SA",i,sPageTop,sDnarNm); // dnar구분
  105. sPageTop += 46; // caption 크기만큼 추가
  106. sAttrInfo = ds_data_stmtinfo.getColumn(i,"attrinfo1").split("⊙");
  107. sAttrRow = 1;
  108. sStmtCD = ds_data_stmtinfo.getColumn(i,"stmtcd");
  109. for(var j=0; j<sAttrInfo.length-1; j++){
  110. sPageTop+=1; // 여백
  111. ds_init_attrinfo.filter("attrcd=='"+sAttrInfo[j]+"'");
  112. fCretInputTool("cap","A",sStmtRow+""+sAttrRow, sPageTop, utlf_transNullToEmpty(ds_init_attrinfo.getColumn(0,"attrnm")), j); // 진술문장
  113. sAttrFlag = ds_init_attrinfo.getColumn(0,"attrflag");
  114. if(sAttrFlag == "C" || sAttrFlag == "A"){ // C : 코드속성, A : 사정도구 -> 입력도구 : combo
  115. sPlnumChoiYN = ds_init_attrinfo.getColumn(0,"plnumchoiyn");
  116. if(sPlnumChoiYN == "Y"){
  117. fCretInputTool("opt",sClass,sStmtRow+""+sAttrRow,sPageTop+1, sAttrInfo[j], j);
  118. }else{
  119. fCretInputTool("cmb",sClassCombo,sStmtRow+""+sAttrRow,sPageTop+1, sAttrInfo[j], j);
  120. }
  121. }else if(sAttrFlag == "V" || sAttrFlag == "F"){ // V : 수치속성, F : 특수속성 -> 입력도구 : input
  122. fCretInputTool("ipt", sClass,sStmtRow+""+sAttrRow,sPageTop+1,sAttrInfo[j], j);
  123. }
  124. sPageTop += 23; // caption 크기만큼 추가
  125. sAttrRow++;
  126. ds_init_attrinfo.filter("");
  127. }
  128. sStmtRow++;
  129. sPageTop+=1;
  130. }
  131. sPageTop += 52;
  132. if(sPageTop < 600){
  133. this.getOwnerFrame().position.height = sPageTop + 27;
  134. }
  135. }
  136. fCretInputTool("static","",0,sPageTop);
  137. cbk_TRMNR01401_flag=0;
  138. div_pop.resetScroll();
  139. }
  140. function cbk_TRMNR01401(sScvId, nErrorCode, sErrorMsg){
  141. if(nErrorCode == 0){//성공하였을때
  142. cbk_TRMNR01401_flag = 1;
  143. }else{
  144. sysf_messageBox(sErrorMsg, "E");
  145. }
  146. }
  147. /**
  148. * @group :
  149. * @ver : 2007.04.25
  150. * @by : 이은영
  151. * @---------------------------------------------------
  152. * @type : function
  153. * @access : public
  154. * @desc : 가져올 데이터의 속성 코드 존재 유무 check
  155. * @param :
  156. * @return :
  157. * @---------------------------------------------------
  158. */
  159. function fExistAttrCd(pAttrCD){
  160. if(!utlf_isNull(ds_cond.getColumn(0,"attrinfo"))){
  161. var sAttrInfo = ds_cond.getColumn(0,"attrinfo").split(",");
  162. for(var i=0; i<sAttrInfo.length; i++){
  163. if(sAttrInfo[i] == pAttrCD){
  164. return "Y";
  165. }
  166. }
  167. }
  168. return "N";
  169. }
  170. /**
  171. * @group :
  172. * @ver : 2007.04.25
  173. * @by : 이은영
  174. * @---------------------------------------------------
  175. * @type : function
  176. * @access : public
  177. * @desc : caption 생성
  178. * @param : pContolFlag : cap(caption) 일 경우 pFlag ( S : 진술문장, A : 속성명), pSeq : caption 순서, pTop : top위치, pText : caption명
  179. * @param : pContolFlag : line 일 경우 pFlag : class 속성 pSeq : line 순서, pTop : top위치
  180. * @param : pContolFlag : ipt(input) 일 경우 pFlag : class 속성, pSeq : input 순서, pTop : top위치, pRefPath : 매핑 경로
  181. * @param : pContolFlag : cmb(combo) 일 경우 pFlag : class 속성, pSeq : combo 순서, pTop : top위치, pText : combolist, , pRefPath : 매핑 경로
  182. * @return :
  183. * @---------------------------------------------------
  184. */
  185. function fCretInputTool(pContolFlag, pFlag, pSeq, pTop, pText, pRefPath){
  186. var sHeight = 0;
  187. var sWidth = 0;
  188. var sLeft = 0;
  189. var btnObj; // 2014-02-10 중복된 선언으로 인한 재선언
  190. var objStatic;
  191. switch(pContolFlag){
  192. case "cap":
  193. var sCapID = "";
  194. objStatic = new Static();
  195. if(pFlag == "SS"){
  196. sCapID = "cap_stmtcnts"+pSeq;
  197. sLeft = 133;
  198. sTop = pTop;
  199. sRight = 507
  200. sBottom = sTop+46;
  201. }else if(pFlag == "SA"){
  202. sCapID = "cap_dnarnm"+pSeq;
  203. sLeft = 13;
  204. sTop = pTop;
  205. sRight = 132;
  206. sBottom = sTop+46;
  207. }else if(pFlag == "A"){
  208. sCapID = "cap_attrnm"+pSeq;
  209. sLeft = 13;
  210. sTop = pTop;
  211. sRight = 132;
  212. sBottom = sTop+23;;
  213. }
  214. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  215. this.div_pop.addChild(objStatic.name, objStatic);
  216. objStatic.text = pText;
  217. objStatic.class = "cell_1";
  218. objStatic.style.align = "center middle";
  219. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  220. objStatic.show();
  221. break;
  222. case "ipt" :
  223. objStatic = new Edit();
  224. sCapID = "ipt_attrinfo"+pSeq;
  225. sLeft = 133;
  226. sTop = pTop;
  227. sRight = 505;
  228. sBottom = sTop+20;
  229. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  230. this.div_pop.addChild(objStatic.name, objStatic);
  231. objStatic.class = pFlag;
  232. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  233. objStatic.show();
  234. ds_data_attrinfo.setColumn(buttonchk,"buttonchk",sCapID);
  235. buttonchk++;
  236. fbindset(sCapID);
  237. break;
  238. case "cmb" :
  239. objStatic = new Combo();
  240. sCapID = "cmb_attrinfo"+pSeq;
  241. sLeft = 133;
  242. sTop = pTop;
  243. sRight = 496;
  244. sBottom = sTop+20;
  245. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  246. this.div_pop.addChild(objStatic.name, objStatic);
  247. objStatic.class = pFlag;
  248. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  249. objStatic.show();
  250. objStatic.onitemchanged.addHandler(fcmbonitemchanged);
  251. objStatic.ondropdown.addHandler(fcmbondropdown);
  252. fbindset(sCapID, "cmb");
  253. objStatic = new Edit();
  254. sCapID = "ipt_attrinfo"+pSeq;
  255. sLeft = 133;
  256. sTop = pTop;
  257. sRight = 472;
  258. sBottom = sTop+21;
  259. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  260. this.div_pop.addChild(objStatic.name, objStatic);
  261. objStatic.class = pFlag;
  262. objStatic.autoselect = "true";
  263. objStatic.onkeydown.addHandler(fstconkeydown);
  264. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  265. objStatic.show();
  266. fbindset(sCapID);
  267. objStatic = new Button();
  268. sCapID = "btn_attrinfo"+pSeq;
  269. sLeft = 492;
  270. sTop = pTop+2;
  271. sRight = 506;
  272. sBottom = sTop+16;
  273. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  274. this.div_pop.addChild(objStatic.name, objStatic);
  275. //objStatic.style.backgroundImage = "URL('IMG::emr/MR/move_prev.png')";//"theme://images/icon_pre.png";
  276. objStatic.style.backgroundRepeat = "stretch";
  277. objStatic.style.border.style = "none";
  278. objStatic.class = "icon_pre_month";
  279. objStatic.style.backgroundImage = "URL('theme://images/btn_arrow_N.png') stretch 5,5";
  280. objStatic.style.image = "URL(theme://images/icon_arrowPre_N.png)";
  281. objStatic.onclick.addHandler(fbtnDel);
  282. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  283. objStatic.show();
  284. ds_data_attrinfo.setColumn(buttonchk,"buttonchk",sCapID);
  285. buttonchk++;
  286. break;
  287. case "opt" :
  288. objStatic = new Edit();
  289. sCapID = "ipt_attrinfo"+pSeq;
  290. sLeft = 133;
  291. sTop = pTop;
  292. sRight = 462;
  293. sBottom = sTop+20;
  294. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  295. this.div_pop.addChild(objStatic.name, objStatic);
  296. objStatic.class = pFlag;
  297. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  298. objStatic.show();
  299. fbindset(sCapID);
  300. objStatic = new Button();
  301. sCapID = "btn_attrinfo"+pSeq;
  302. sLeft = 463;
  303. sTop = pTop;
  304. sRight = 505;
  305. sBottom = sTop+20;
  306. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  307. this.div_pop.addChild(objStatic.name, objStatic);
  308. objStatic.class = "btn2";
  309. objStatic.text = "입력";
  310. objStatic.onclick.addHandler(fbtnonclick);
  311. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  312. objStatic.show();
  313. ds_data_attrinfo.setColumn(buttonchk,"buttonchk",sCapID);
  314. buttonchk++;
  315. break;
  316. case "static" :
  317. objStatic = new Static();
  318. sCapID = "cap_static"+pSeq;
  319. sLeft = 12;
  320. sTop = 2;
  321. sRight = 508;
  322. sBottom = pTop-52;
  323. objStatic.init(sCapID,sLeft, sTop, sRight, sBottom);
  324. this.div_pop.addChild(objStatic.name, objStatic);
  325. objStatic.class = "sta_DA_box";
  326. objStatic.sendToBack();
  327. //objStatic.tooltiptext = sCapID + "\n" + objStatic.position
  328. objStatic.show();
  329. break;
  330. }
  331. }
  332. /**
  333. * @group :
  334. * @ver : 2007.04.26
  335. * @by : 이은영
  336. * @---------------------------------------------------
  337. * @type : function
  338. * @access : public
  339. * @desc : 속성 등록 버튼 이벤트 처리
  340. * @param :
  341. * @return :
  342. * @---------------------------------------------------
  343. */
  344. function fRgstAttrInfo(){
  345. var sStmtCnt = ds_data_stmtinfo.rowcount;
  346. var sAttrEssnYN = ""; // 선택 : C, 필수 : E
  347. var sStmtCnts = "";
  348. var sStmtCd = "";
  349. var sRetnParamTitle = "stmtcd▦stmtcnts▦attrinfo▩";
  350. var sRetnParam = "";
  351. var sStmtInfo = "";
  352. var sRtn = sysf_messageBox("","Q004");
  353. if(sRtn != 6){
  354. return;
  355. }
  356. //팝업창 오류... -> fExistAttrInput()함수에서 쓰기 위해서 데이터셋 합침...신혜진, 추민수
  357. ds_tempc.copyData(ds_data_attrinfo);
  358. for(var a = 0 ; a < ds_tempc.rowcount; a++){
  359. ds_tempc.setColumn(a, "attrval",ds_data_input.getColumn(0, "attrval"+a));
  360. ds_tempc.setColumn(a, "attrvalcd",ds_data_input.getColumn(0, "attrvalcd"+a));
  361. }
  362. for(var iStmtRow=0; iStmtRow < sStmtCnt; iStmtRow++){
  363. sAttrEssnYN = ds_data_stmtinfo.getColumn(iStmtRow,"attressnyn");
  364. sStmtCd = ds_data_stmtinfo.getColumn(iStmtRow,"stmtcd");
  365. sStmtCnts = ds_data_stmtinfo.getColumn(iStmtRow,"stmtcnts");
  366. // 속성 필수 입력 check
  367. if(sAttrEssnYN == "E" && fExistAttrInput(iStmtRow) == "N"){
  368. sysf_messageBox(sStmtCnts+" 진술문은 속성이","I003");
  369. tmp_count = 0;
  370. return;
  371. }
  372. sStmtInfo = fMakeStmt(iStmtRow);
  373. sRetnParam += sStmtCd+"▦"
  374. + sStmtInfo+"▩";
  375. }
  376. ////////////////////////////////////////
  377. for(var i = 0; i < ds_data_stmtinfo.rowcount; i++){
  378. var tmpsAttrInfo = ds_data_stmtinfo.getColumn(i,"attrinfo1").split("⊙");
  379. for(var j=0; j<tmpsAttrInfo.length-1; j++){
  380. ds_init_attrinfo.filter("attrcd=='"+tmpsAttrInfo[j]+"'");
  381. if(ds_init_attrinfo.rowcount ==0){
  382. sysf_messageBox(ds_data_stmtinfo.getColumn(i,"stmtcnts")+" 진술문은 속성이","I003");
  383. tmp_count = 0;
  384. return;
  385. }
  386. ds_init_attrinfo.filter("");
  387. }
  388. }
  389. ////////////////////////////////////////
  390. ds_tempc.clearData();
  391. opener.frmf_setParameter("SMMNR014_Return",sRetnParamTitle+sRetnParam);
  392. this.close();
  393. }
  394. /**
  395. * @group :
  396. * @ver : 2007.04.26
  397. * @by : 이은영
  398. * @---------------------------------------------------
  399. * @type : function
  400. * @access : public
  401. * @desc : 필수 입력 진술문 내의 속성이 모두 입력되었는지 여부
  402. * @param : pPath : 속성 path
  403. * @return :
  404. * @---------------------------------------------------
  405. */
  406. function fExistAttrInput(iStmtRow){
  407. //위에 본소스... 밑에 수정본 신혜진, 추민수
  408. /*
  409. var sAttrCnt = ds_data_attrinfo.rowcount;
  410. for(var i=0; i<sAttrCnt; i++){
  411. if(ds_data_input.getColumnInfo("attrval"+i) <> null){
  412. if(utlf_isNull(ds_data_input.getColumn(0,"attrval"+i))){
  413. return "N";
  414. }
  415. }
  416. }
  417. return "Y";
  418. */
  419. var sAttrCnt = ds_tempc.rowcount;
  420. for(var i=0; i<sAttrCnt; i++){
  421. if((iStmtRow + 1) == ( utlf_transNullToEmpty(ds_tempc.getColumn(i, "buttonchk")).substring(utlf_transNullToEmpty(ds_tempc.getColumn(i, "buttonchk")).length - 2, utlf_transNullToEmpty(ds_tempc.getColumn(i, "buttonchk")).length-1))){
  422. //if(ds_tempc.getColumnInfo("attrval"+i) <> null){
  423. if(utlf_isNull(ds_tempc.getColumn(i,"attrval"))){
  424. return "N";
  425. }
  426. //}
  427. }
  428. }
  429. return "Y";
  430. }
  431. /**
  432. * @group :
  433. * @ver : 2007.04.26
  434. * @by : 이은영
  435. * @---------------------------------------------------
  436. * @type : function
  437. * @access : public
  438. * @desc : 입력받은 속성정보를 가지고 완성된 진술문장을 만든다.
  439. * @param :
  440. * @return :
  441. * @---------------------------------------------------
  442. */
  443. function fMakeStmt(pStmtPath){
  444. //속성입력 에러로 인한 추가 로직
  445. var sAttrCnt = 0; //속성 카운터 수
  446. var sStmtInfo = "";
  447. //tmp_count = 0;
  448. var sSplitBfStmt = ds_data_stmtinfo.getColumn(pStmtPath,"stmtcnts");
  449. for(var i=0 ; i < sSplitBfStmt.length ; i++ ){
  450. if( sSplitBfStmt.substr(i, 1) == "(" ) {
  451. sAttrCnt ++;
  452. }else if(sSplitBfStmt.substr(i, 1) == ")" ){
  453. sAttrCnt --;
  454. }
  455. if(sAttrCnt == 0){
  456. sStmtInfo += sSplitBfStmt.substr(i, 1);
  457. }else{
  458. if(sSplitBfStmt.substr(i, 1) == " "){
  459. sStmtInfo += "^";
  460. }else{
  461. sStmtInfo += sSplitBfStmt.substr(i, 1);
  462. }
  463. }
  464. }
  465. sStmtInfo = sStmtInfo.split(" ");
  466. var sAttrInfo2 = ds_data_stmtinfo.getColumn(pStmtPath,"attrinfo2").split(" ");
  467. var sStmtCnts = ""; // 완성된 문장
  468. var sAttrInfo = ""; // 기록을 원하는 속성명
  469. var sAttrSeq = 0; // 속성 위치
  470. var sAttrCd = ""; // 속성코드
  471. var sAttrNM = ""; // 속성명 (combo)
  472. var sAttrFlag = ""; // 속성 구분
  473. var sAttrVal = ""; // 입력된 속성명
  474. var sUnitNM = ""; // 단위명
  475. var sPlNumChoiYN = ""; // 속성 멀티 입력 여부
  476. var sTmpAttrNM = ""; // 속성을 제외한 기호
  477. for(var i=0; i<sStmtInfo.length; i++){
  478. sStmtInfo[i] = sStmtInfo[i].replace("^", " ");
  479. if(sStmtInfo[i] == sAttrInfo2[i]){
  480. sStmtCnts += sStmtInfo[i]+" "; // 속성이 아닌 경우
  481. }else{
  482. sAttrSeq = sAttrInfo2[i].substr(1,1);
  483. sAttrCd = ds_data_attrinfo.getColumn(tmp_count,"attrcd");
  484. sAttrFlag = ds_init_attrinfo.getColumn(ds_init_attrinfo.findRow("attrcd",sAttrCd),"attrflag");
  485. sAttrVal = ds_data_input.getColumn(0,"attrval"+tmp_count);
  486. tmp_count++;
  487. sTmpAttrNM = sStmtInfo[i].replace(ds_init_attrinfo.getColumn(ds_init_attrinfo.findRow("attrcd",sAttrCd),"attrnm"),"");
  488. if(sAttrFlag == "C" || sAttrFlag == "A"){ // C : 코드속성, A : 사정도구 -> 입력도구 : combo
  489. sPlNumChoiYN = ds_init_attrinfo.getColumn(ds_init_attrinfo.findRow("attrcd",sAttrCd),"plnumchoiyn");
  490. if(sPlNumChoiYN == "Y"){ // 멀티 입력 여부
  491. if(!utlf_isNull(sAttrVal)) sStmtCnts += sAttrVal+sTmpAttrNM+" ";
  492. sAttrInfo += sAttrVal+"⊙";
  493. }else{
  494. sAttrNM = ds_init_attrinfo.getColumn(ds_init_attrinfo.findRow("attrcd",sAttrVal),"attrnm");
  495. if(!utlf_isNull(sAttrNM)){
  496. sStmtCnts += sAttrNM+sTmpAttrNM+" ";
  497. sAttrInfo += sAttrNM+"⊙";
  498. }else if(!utlf_isNull(sAttrVal) && utlf_isNull(sAttrNM)){
  499. sStmtCnts += sAttrVal+sTmpAttrNM+" ";
  500. sAttrInfo += sAttrVal+"⊙";
  501. }
  502. }
  503. }else if(sAttrFlag == "F"){ // F : 특수속성 -> 입력도구 : input
  504. if(!utlf_isNull(sAttrVal)) sStmtCnts += sAttrVal +sTmpAttrNM+ " ";
  505. sAttrInfo += sAttrVal+"⊙";
  506. }else if(sAttrFlag == "V" ){ // V : 수치속성 -> 입력도구 : input값 + 단위명
  507. sUnitNM = ds_init_attrinfo.getColumn(ds_init_attrinfo.findRow("attrcd",sAttrCd),"unitnm");
  508. if(!utlf_isNull(sAttrVal)){
  509. sStmtCnts += sAttrVal + sUnitNM +sTmpAttrNM+ " ";
  510. sAttrInfo += sAttrVal + sUnitNM +"⊙";
  511. }else{
  512. sAttrInfo += "⊙";
  513. }
  514. }
  515. }
  516. }
  517. sStmtCnts = sStmtCnts.replace(" ", " ");
  518. return sStmtCnts+"▦"+sAttrInfo;
  519. }
  520. /**
  521. * @group :
  522. * @ver : 2007.04.26
  523. * @by : 이은영
  524. * @---------------------------------------------------
  525. * @type : function
  526. * @access : public
  527. * @desc : 다중 선택의 속성코드의 경우 멀티 선택 가능 화면을 호출한다.
  528. * @param : pCode : 속성 코드
  529. * @return :
  530. * @---------------------------------------------------
  531. */
  532. function fCallDetlAttrInfo(pRefPath,Row){
  533. var sRtn_Msg = "";
  534. var sAttrInfo = "";
  535. frmf_setParameter("SPMNR03000_Param",pRefPath);
  536. frmf_modal("SPMNR03000","SPMNR03000","","","","","","","","","","","M");
  537. frmf_setParameter("SPMNR03000_Param","");
  538. sRtn_Msg = frmf_getParameter("SPMNR03000_Return");
  539. if(utlf_isNull(sRtn_Msg)) return;
  540. sAttrInfo = sRtn_Msg.split("▦");
  541. var tmp_seq = ds_data_attrinfo.getColumn(ds_data_attrinfo.findRow("attrcd",pRefPath),"attrseq");
  542. ds_data_input.setColumn(0,"attrval"+Row,sAttrInfo[0]);
  543. ds_data_input.setColumn(0,"attrvalcd"+Row,sAttrInfo[1]);
  544. }
  545. function fbindset(sCapID, combo){
  546. var objBindItem;
  547. var objCap, sCapNm;
  548. objCap = div_pop.components[sCapID];
  549. if(objCap <> null) sCapNm = objCap.name;
  550. if(combo != "cmb"){
  551. ds_data_input.addColumn("attrval"+bindchk,"string");
  552. ds_data_input.addColumn("attrvalcd"+bindchk,"string");
  553. if(ds_data_input.rowcount < 1)
  554. ds_data_input.addRow();
  555. objBindItem = new BindItem();
  556. objBindItem.init("attrval"+bindchk, sCapID, "value", "ds_data_input","attrval"+bindchk);
  557. this.div_pop.addChild(objBindItem.name, objBindItem);
  558. objBindItem.bind();
  559. bindchk++;
  560. }else{
  561. objCap.innerdataset = "ds_init_combo";
  562. objCap.codecolumn = "attrcd";
  563. objCap.datacolumn = "attrnm";
  564. var tmp_attrseq = sCapID.substring(sCapID.length-1, sCapID.length) - 1;
  565. var tmp_attrcd = ds_data_attrinfo.getColumn(ds_data_attrinfo.findRow("attrseq",tmp_attrseq),"attrcd");
  566. ds_init_combo.filter("supcd=='"+tmp_attrcd+"'");
  567. }
  568. }
  569. function fbtnonclick(obj:Button, e:ClickEventInfo){
  570. var tmp_id = obj.name;
  571. var attrcd = ds_data_attrinfo.getColumn(ds_data_attrinfo.findRow("buttonchk",tmp_id),"attrcd");
  572. fCallDetlAttrInfo(attrcd,ds_data_attrinfo.findRow("buttonchk",tmp_id));
  573. }
  574. var temp_id = 0;
  575. function fcmbonitemchanged(obj, e){
  576. var tmp_id = obj.name;
  577. tmp_id = tmp_id.substring(tmp_id.length-2,tmp_id.length);
  578. temp_id = tmp_id;
  579. tmp_id = ds_data_attrinfo.findRow("buttonchk","btn_attrinfo"+tmp_id);
  580. ds_data_input.setColumn(0,"attrval"+tmp_id,obj.text);
  581. this.setTimer(0, 100);
  582. //eval("div_pop.ipt_attrinfo"+temp_id).setFocus();
  583. }
  584. function fstconkeydown(obj:Edit, e:KeyEventInfo){
  585. var tmp_id = obj.name;
  586. tmp_id = tmp_id.substring(tmp_id.length-2,tmp_id.length);
  587. if( e.keycode == 38 ){
  588. if( eval("div_pop.cmb_attrinfo"+tmp_id).index > 0 ){
  589. eval("div_pop.cmb_attrinfo"+tmp_id).setFocus();
  590. eval("div_pop.cmb_attrinfo"+tmp_id).index = eval("div_pop.cmb_attrinfo"+tmp_id).index - 1;
  591. fcmbonitemchanged(eval("div_pop.cmb_attrinfo"+tmp_id), e);
  592. }
  593. }else if( e.keycode == 40 ){
  594. if( eval("div_pop.cmb_attrinfo"+tmp_id).index < (ds_init_combo.rowcount-1) ){
  595. eval("div_pop.cmb_attrinfo"+tmp_id).setFocus();
  596. eval("div_pop.cmb_attrinfo"+tmp_id).index = eval("div_pop.cmb_attrinfo"+tmp_id).index + 1;
  597. fcmbonitemchanged(eval("div_pop.cmb_attrinfo"+tmp_id), e);
  598. }
  599. }
  600. }
  601. function fcmbondropdown(obj:Combo, e:EventInfo){
  602. var tmp_id = obj.name;
  603. tmp_id = tmp_id.substring(tmp_id.length-2,tmp_id.length);
  604. var attrcd = ds_data_attrinfo.getColumn(ds_data_attrinfo.findRow("buttonchk","btn_attrinfo"+tmp_id),"attrcd");
  605. ds_init_combo.filter("supcd=='"+attrcd+"'");
  606. }
  607. function fbtnDel(obj:Button, e:ClickEventInfo){
  608. var tmp_id = obj.name;
  609. tmp_id = ds_data_attrinfo.findRow("buttonchk",tmp_id);
  610. ds_data_input.setColumn(0,"attrval"+tmp_id,"");
  611. ds_data_input.setColumn(0,"attrvalcd"+tmp_id,"");
  612. }]]></Script>