SMRTH01100_인사조건검색.xrw 82 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <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">
  4. <xhtml:head>
  5. <xhtml:title>인사조건검색</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <tablecode>
  12. <tablecodelist/>
  13. </tablecode>
  14. <tablewhere>
  15. <tablewherelist/>
  16. </tablewhere>
  17. <tableselect>
  18. <tableselectlist/>
  19. </tableselect>
  20. <fixitem>
  21. <fixitemlist/>
  22. <emplnodeptlist/>
  23. </fixitem>
  24. <fixdocu>
  25. <fixdoculist/>
  26. </fixdocu>
  27. <query>
  28. <querylist/>
  29. </query>
  30. </list>
  31. </main>
  32. <send>
  33. <itemqry>
  34. <itemcls/>
  35. <emplno/>
  36. </itemqry>
  37. <fixdocu>
  38. <fixtypenm/>
  39. <nursedeptflag/>
  40. </fixdocu>
  41. <save>
  42. <fixdoculist/>
  43. </save>
  44. </send>
  45. <init>
  46. <operator>
  47. <code>=</code>
  48. <cdnm>=</cdnm>
  49. </operator>
  50. <conector>
  51. <code>AND</code>
  52. <cdnm>AND</cdnm>
  53. <code>OR</code>
  54. <cdnm>OR</cdnm>
  55. </conector>
  56. <selectqry/>
  57. <fromqry/>
  58. <whereqry/>
  59. <sqlquery/>
  60. <fixdoucnm/>
  61. <mplemplno/>
  62. </init>
  63. <temp>
  64. <s/>
  65. </temp>
  66. </root>
  67. </instance>
  68. <script type="javascript" ev:event="xforms-ready">
  69. <![CDATA[
  70. misfGridInit(grd_tblcode);
  71. misfGridInit(grd_where);
  72. misfGridInit(grd_select);
  73. misfGridInit(grd_fixitem);
  74. grd_select.colsort(grd_select.colRef("sortkey")) = "asc";
  75. misfMsterDetailSet(grd_tblcode,null, "TRRTH01101" ,"N");
  76. misfMsterDetailSet(grd_where,null, "TRRTH01102" ,"N");
  77. misfMsterDetailSet(grd_select,null, "TRRTH01102" ,"N");
  78. misfMsterDetailSet(grd_fixitem,null, "TRRTH01103" ,"N");
  79. rpbfComboItemClsList(cmb_itemcls);
  80. grd_tblcode.selectionMode = "listbox";
  81. addGridComboItemAll("grd_where.operator","<>","<>","above");
  82. addGridComboItemAll("grd_where.operator",">",">","above");
  83. addGridComboItemAll("grd_where.operator",">=",">=","above");
  84. addGridComboItemAll("grd_where.operator","<","<","above");
  85. addGridComboItemAll("grd_where.operator","<=","<=","above");
  86. addGridComboItemAll("grd_where.operator","BETWEEN","BETWEEN","above");
  87. addGridComboItemAll("grd_where.operator","IN","IN","above");
  88. addGridComboItemAll("grd_where.operator","NOT IN","NOT IN","above");
  89. model.setValue("/root/send/itemqry/emplno", getUserInfo("userid"));
  90. submit("TRRTH01103");
  91. if(model.getValue("/root/main/list/fixitem/emplnodeptlist/deptcd") == "3040200000") { //로긴한 사용자가 간호부이면
  92. nursedeptflag = "Y";
  93. fAddWhereColumnNurse();
  94. }
  95. ]]>
  96. </script>
  97. <submission id="TRRTH01102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/itemqry" resultref="/root/main/list/tablecode"/>
  98. <submission id="TRRTH01104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/fixdocu" resultref="/root/main/list/fixdocu"/>
  99. <submission id="TRRTH01103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/itemqry" resultref="/root/main/list/fixitem"/>
  100. <submission id="TXRTH01101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hiddeen/temp"/>
  101. <submission id="TXRTH01102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/fixdocu" resultref="/root/hiddeen/temp"/>
  102. <submission id="TXRPB01703" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/" resultref="/root/hiddeen/temp"/>
  103. <submission id="TRRTH01101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/itemqry" resultref="/root/main/list/tablecode"/>
  104. </model>
  105. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  106. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  107. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  108. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  109. <script type="javascript">
  110. <![CDATA[
  111. var nursedeptflag = "N";
  112. //콤보에 조건검색 항목코드분류
  113. function rpbfComboItemClsList(pcontrol_name,pitemcls) {
  114. var control_id = pcontrol_name.attribute("id");
  115. var itemcls_node = "/root/send/itemcls";
  116. var itemcls_rsltnode = "/root/init/itemcls";
  117. var itemcls_itemset = "/root/init/" + control_id;
  118. if(pitemcls == null || pitemcls.length == 0)pitemcls = "";
  119. model.removeNodeset(itemcls_node);
  120. model.removeNodeset(itemcls_itemset);
  121. model.makeNode(itemcls_node);
  122. model.makeNode(itemcls_node + "/itemcls");
  123. model.makeNode(itemcls_rsltnode);
  124. model.makeNode(itemcls_itemset);
  125. pcontrol_name.choices.itemset.attribute("nodeset") = itemcls_itemset+"/itemclslist";
  126. pcontrol_name.choices.itemset.label.attribute("ref") = "itemclsnm";
  127. pcontrol_name.choices.itemset.value.attribute("ref") = "itemcls";
  128. pcontrol_name.refresh();
  129. model.setValue(itemcls_node + "/itemcls", pitemcls);
  130. model.removeChild("TRRTH01105");
  131. model.createChild("xforms:submission", "id:TRRTH01105;mediatype:application/x-www-form-urlencoded; method:post; ref:" + itemcls_node + "; resultref:" + itemcls_rsltnode + "; ");
  132. submit("TRRTH01105");
  133. model.copyNode(itemcls_itemset,itemcls_rsltnode);
  134. model.refresh();
  135. }
  136. function fAddWhereColumnNurse()
  137. {
  138. misfGridIUD(grd_where, "A","N");
  139. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemcls", "01");
  140. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemnm", "소속부(실)");
  141. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemkind", "CODE");
  142. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/tblschema", "MIS");
  143. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/tablenm", "RPBVEMPC");
  144. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/colnm", "DEPTCD");
  145. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/cdtblschema", "COM");
  146. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/cdtblnm", "ZSDDDEPT");
  147. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/codeflag", "");
  148. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/operator", "=");
  149. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu1nm", "'간호부'");
  150. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu2nm", "");
  151. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu1", model.getValue("/root/main/list/fixitem/emplnodeptlist/deptcd"));
  152. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu2", "");
  153. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemseq", "9");
  154. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemflag", "A");
  155. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/conector", "AND");
  156. grd_where.cellAttribute("disabled",grd_where.row, grd_where.colRef("itemnm")) = "true";
  157. grd_where.cellAttribute("disabled",grd_where.row, grd_where.colRef("operator")) = "true";
  158. grd_where.cellAttribute("disabled",grd_where.row, grd_where.colRef("conector")) = "true";
  159. grd_where.cellStyle("color", grd_where.row, grd_where.colRef("itemnm")) = "#ff0000";
  160. grd_where.cellStyle("color", grd_where.row, grd_where.colRef("operator")) = "#ff0000";
  161. grd_where.cellStyle("color", grd_where.row, grd_where.colRef("condvalu1nm")) = "#ff0000";
  162. grd_where.cellStyle("color", grd_where.row, grd_where.colRef("condvalu2nm")) = "#ff0000";
  163. grd_where.cellStyle("color", grd_where.row, grd_where.colRef("conector")) = "#ff0000";
  164. grd_where.refresh();
  165. return true;
  166. }
  167. function fAddWhereColumn()
  168. {
  169. if((grd_tblcode.rows - grd_tblcode.fixedRows) == 0 || grd_tblcode.row == -1)return;
  170. if(grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemflag")) == "C"){
  171. messageBox("선택한 항목은 조건 항목으로 선택할 수 없기 때문에 추가","E001");
  172. return false;
  173. }
  174. if(grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemnm")) == "소속부서" ||
  175. grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemnm")) == "근무부서"){
  176. messageBox("「" + grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemnm")) + "」조건 지정시 유의사항 \n" +
  177. " 1.연산자 '=' : 하위부서 포함 조회. \n" +
  178. " 2.연산자 'IN' : 하위부서 미포함 조회 \n" +
  179. " 지정된 「부서」코드 해당값만 조회됩니다","I");
  180. }
  181. misfGridIUD(grd_where, "A","N");
  182. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemcls", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemcls")));
  183. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemnm", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemnm")));
  184. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/itemkind", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("itemkind")));
  185. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/tblschema", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("tblschema")));
  186. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/tablenm", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("tablenm")));
  187. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/colnm", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("colnm")));
  188. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/cdtblschema", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("cdtblschema")));
  189. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/cdtblnm", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("cdtblnm")));
  190. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/codeflag", grd_tblcode.valueMatrix(grd_tblcode.row, grd_tblcode.colRef("codeflag")));
  191. grd_where.refresh();
  192. return true;
  193. }
  194. function fAddSelectColumn(){
  195. for(var s=0; s < grd_tblcode.selectedRows; s++ )
  196. {
  197. var cur_row = grd_tblcode.selectedrow(s);
  198. var finddata = grd_tblcode.valueMatrix(grd_tblcode.selectedrow(s), grd_tblcode.colRef("itemnm"));
  199. if(grd_select.findRow(finddata,grd_select.fixedRows, grd_select.colRef("itemnm"),true,true) != -1){
  200. messageBox("동일 항목이 이미 존재하므로 추가","E001");
  201. return;
  202. }
  203. misfGridIUD(grd_select, "A","N");
  204. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/itemcls", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("itemcls")));
  205. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/itemclsnm", cmb_itemcls.label);
  206. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/itemnm", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("itemnm")));
  207. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/itemkind", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("itemkind")));
  208. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/tblschema", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("tblschema")));
  209. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/tablenm", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("tablenm")));
  210. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/colnm", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("colnm")));
  211. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/cdtblschema", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("cdtblschema")));
  212. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/cdtblnm", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("cdtblnm")));
  213. model.setValue(grd_select.attribute("nodeset") + "["+(grd_select.row - grd_select.fixedRows + 1)+"]/codeflag", grd_tblcode.valueMatrix(cur_row, grd_tblcode.colRef("codeflag")));
  214. }
  215. grd_select.refresh();
  216. }
  217. function fSettingQuery(){
  218. //인사 조건 검색을 사전 작업을 진행한다
  219. // submit("TXRTH01103");
  220. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  221. {
  222. //조건항목과 검색항목의 존재여부를 체크한다
  223. if(grd_where.rows - grd_where.fixedRows == 0){
  224. messageBox("조건항목이 입력되지 않았습니다. 실행","E001");
  225. return;
  226. }
  227. if(grd_select.rows - grd_select.fixedRows == 0){
  228. messageBox("검색항목이 입력되지 않았습니다. 실행","E001");
  229. return;
  230. }
  231. if(!checkKeyColumn("grd_where","grd_select")) return;
  232. //조건을 위해 사용자가 반드시 입력해야 하는 조건들을 체크한다
  233. if(!fChkQueryCond())return;
  234. model.setValue(txt_fromqry.attribute("ref"),fGetFromQuery());//From절 Query 를 생성한다
  235. model.setValue(txt_whereqry.attribute("ref"), fGetWhereQuery()); //Where절 Query를 생성한다
  236. model.setValue(txt_selectqry.attribute("ref"), fGetSelectQuery());//Select절 Query를 생성한다
  237. model.refresh();
  238. var strquery = model.getValue(txt_selectqry.attribute("ref")) + "\n" + model.getValue(txt_fromqry.attribute("ref")) + "\n" + model.getValue(txt_whereqry.attribute("ref"));
  239. misfGridInit(grd_query);
  240. misfGridIUD(grd_query,"A","N");
  241. model.setValue(grd_query.attribute("nodeset")+"["+(grd_query.row - grd_query.fixedRows + 1)+"]/strqry", strquery);
  242. model.setValue(grd_query.attribute("nodeset")+"["+(grd_query.row - grd_query.fixedRows + 1)+"]/title", fGetTitle());
  243. //급여항목이 경우 급여항목에 해당하는 급여비용을 화면에 보여줘야 하므로 Col + 1로 Column의 갯수를 재조정한다
  244. if(grd_select.findRow("PAYITEMCD" , grd_select.fixedRows, grd_select.colRef("colnm"), true,true) > -1){
  245. model.setValue(grd_query.attribute("nodeset")+"["+(grd_query.row - grd_query.fixedRows + 1)+"]/titlecnt",(grd_select.rows- grd_select.fixedRows) + 1);
  246. }
  247. else{
  248. model.setValue(grd_query.attribute("nodeset")+"["+(grd_query.row - grd_query.fixedRows + 1)+"]/titlecnt",(grd_select.rows- grd_select.fixedRows));
  249. }
  250. //Grid화면에 보여줄 Column의 이름을 읽어온다
  251. model.setValue(grd_query.attribute("nodeset")+"["+(grd_query.row - grd_query.fixedRows + 1)+"]/titlenm",fGetColNm());
  252. //Grid Column의 Column Type를 지정한다
  253. model.setValue(grd_query.attribute("nodeset")+"["+(grd_query.row - grd_query.fixedRows + 1)+"]/coltype",fGetColType());
  254. rpbfOpenPopUpList("SMRTH01110",grd_query,"strqry,title,titlecnt,titlenm,coltype","strqry,title,titlecnt,titlenm,coltype");
  255. }
  256. }
  257. function fChkQueryCond(){
  258. var chkpay = false;
  259. var chkpaycond = false;
  260. //급여에 관계된 테이블을 사용자가 항목절에 추가했는지 체크
  261. for(var row = grd_select.fixedRows; row < grd_select.rows; row++){
  262. if(grd_select.valueMatrix(row, grd_select.colRef("tablenm")) == "RWPDYMPY" ||
  263. grd_select.valueMatrix(row, grd_select.colRef("tablenm")) == "RWPDPYIT" ){
  264. chkpay = true;
  265. break;
  266. }
  267. }
  268. if(chkpay){
  269. //급여에 관계된 테이블이 항목절에 추가되었다면,
  270. //조건절에 급여지급월이 존재하는지 체크
  271. for(var row = grd_where.fixedRows ; row < grd_where.rows; row++){
  272. if(grd_where.valueMatrix(row , grd_where.colRef("colnm")) == "PAYYM"){
  273. chkpaycond = true;
  274. break;
  275. }
  276. }
  277. }
  278. //급여에 관계된 테이블이 존재하면서 급여 지급월이 존재하지 않을 경우 쿼리를 실행하지 않도록 사용자에게 MessageBox출력후 Return false처리한다
  279. if((chkpay == true)&& (chkpaycond == false)){
  280. messageBox("급여 항목조회시 지급년월은 조회조건에" ,"I003");
  281. return false;
  282. }
  283. return true;
  284. }
  285. function fGetColType(){
  286. var itemtype = "";
  287. for(row = grd_select.fixedRows; row < grd_select.rows ; row++){
  288. //항목절에 급여항목이 존재한다면, 급여항목비용도 자동으로 보여주기로 하였으므로
  289. //급여항목내용에 관한 Format인 Text와 급여항목비용에 해당하는 Format은 Money를 추가해주기로 한다
  290. if(grd_select.valueMatrix(row , grd_select.colRef("colnm")) == "PAYITEMCD"){
  291. itemtype = itemtype + "TEXT,MONEY,";
  292. }
  293. else{
  294. itemtype = itemtype + grd_select.valueMatrix(row , grd_select.colRef("itemkind"))+ ",";
  295. }
  296. }
  297. if(itemtype.length > 0){
  298. itemtype = itemtype.substr(0, (itemtype.length - 1))
  299. }
  300. return itemtype;
  301. }
  302. function fGetColNm(){
  303. var colnm = "";
  304. for(row = grd_select.fixedRows; row < grd_select.rows ; row++){
  305. //급여항목이 항목절에 추가 되었다면 급여 항목비용도 자동으로 화면에 보여주어야 하며
  306. //급여항목비용이 아닌 급여항목명이 화면에 보여줘야하므로
  307. //급여항목비용에 해당하는 Prntnm과 PayitemAmt를 추가한다
  308. if(grd_select.valueMatrix(row , grd_select.colRef("colnm")) == "PAYITEMCD")
  309. {
  310. colnm = colnm + "PRNTNM,PAYITEMAMT,"
  311. }
  312. else{
  313. colnm = colnm + grd_select.valueMatrix(row , grd_select.colRef("colnm"))+ ",";
  314. }
  315. }
  316. if(colnm.length > 0){
  317. colnm = colnm.substr(0, (colnm.length - 1))
  318. }
  319. return colnm;
  320. }
  321. function fGetTitle(){
  322. var title = "";
  323. for(row = grd_select.fixedRows; row < grd_select.rows ; row++){
  324. title = title + grd_select.valueMatrix(row , grd_select.colRef("itemnm")) + "^";
  325. //급여항목이 항목절에 추가되었다면 급여항목과 급여항목비용도 화면에 같이 출력해주어야 하므로
  326. //타이틀에 급여급액내역도 같이 추가해 주기로 한다
  327. if(grd_select.valueMatrix(row , grd_select.colRef("colnm")) == "PAYITEMCD")title = title + "급여금액^"
  328. }
  329. if(title.length > 0){
  330. title = title.substr(0, (title.length - 1))
  331. }
  332. return title;
  333. }
  334. function fGetFromQuery(){
  335. //규칙1 : 기본적으로 From에 해당하는 테이블에 대한 Alias는 테이블명으로 동시처리한다
  336. //규칙2 : 급여항목에 관계된 내용이 있을경우 내부적으로 급여비용에 테이블과 동시 Join조건으로 추가해준다
  337. //규칙3 : 급여항목이 존재할 경우 급여항목명 테이블도 동시 Join조건으로 추가해준다
  338. var strfrom = "";
  339. for(var row = grd_where.fixedRows ; row < grd_where.rows ; row++){
  340. var tgtschema = grd_where.valueMatrix(row , grd_where.colRef("tblschema")); //테이블스키마
  341. var tgttable = grd_where.valueMatrix(row , grd_where.colRef("tablenm")); //테이블명
  342. var colnm = grd_where.valueMatrix(row , grd_where.colRef("colnm")); //컬럼이름
  343. var operator = grd_where.valueMatrix(row , grd_where.colRef("operator")); //연산자
  344. var conector = grd_where.valueMatrix(row , grd_where.colRef("conector")); // 연결자
  345. var condvalu1 = grd_where.valueMatrix(row , grd_where.colRef("condvalu1")); //조건값1
  346. var condvalu2 = grd_where.valueMatrix(row , grd_where.colRef("condvalu2")); //조건값2
  347. var tgttblalias = tgtschema + "." + tgttable;
  348. var tgtstrfrom = grd_where.valueMatrix(row , grd_where.colRef("tblschema")) +"." + grd_where.valueMatrix(row , grd_where.colRef("tablenm"));
  349. var chkfind = false;
  350. var findrow = -1;
  351. //현재 From절에 추가될 테이블이 이전 Row에 존재했었는지 체크
  352. for(var tblrow = grd_where.fixedRows ; tblrow < row ; tblrow++){
  353. if(grd_where.valueMatrix(tblrow , grd_where.colRef("tablenm")) == tgttable){
  354. chkfind = true;
  355. findrow = tblrow;
  356. break;
  357. }
  358. }
  359. if(!chkfind){
  360. //이전 Row에서도 추가된적이 없는 Table이라면 새로운 TableAlias를 입력한다
  361. model.setValue(grd_where.attribute("nodeset")+"["+(row - grd_where.fixedRows + 1)+"]/tblalias", tgttable + (row));
  362. }
  363. else{
  364. //현재 From절에 추가될 대상 테이블이 이전Row에서 이미 처리했었다면
  365. //현재 Row에 동일 테이블 alias를 setting해준다
  366. var tmpalias = grd_where.valueMatrix(findrow , grd_where.colRef("tblalias"));
  367. model.setValue(grd_where.attribute("nodeset")+"["+(row - grd_where.fixedRows + 1)+"]/tblalias", tmpalias);
  368. }
  369. if(strfrom.length == 0){
  370. strfrom = " FROM " + tgtstrfrom + " MAINTBL \n";
  371. model.setValue(grd_where.attribute("nodeset")+"["+(row - grd_where.fixedRows + 1)+"]/tblalias", "MAINTBL");
  372. }
  373. else{
  374. if(!chkfind){
  375. //이전에 급여항목에 관계된 테이블이 존재하지 않았다면
  376. var curalias = (tgttable + (row));
  377. if(tgttable == "RWPDPYIT" || tgttable == "RWPDYMPY"){
  378. var chkduppay = false;
  379. for(var tmprow = grd_where.fixedRows ; tmprow < row; tmprow++){
  380. if(grd_where.valueMatrix(tmprow,grd_where.colRef("tablenm")) == "RWPDPYIT" ||
  381. grd_where.valueMatrix(tmprow,grd_where.colRef("tablenm")) == "RWPDYMPY"){
  382. chkduppay = true;
  383. break;
  384. }
  385. }
  386. //급여에 관계된 테이블에 관계해서 한번더 alias작업을 하지 않았다면 join조건으로 아래 내역을 자동추가한다
  387. //기타 다른 테이블은 기본키를 Emplno로 맞추었기 때문에 자동으로 하드코딩없이 생성할수 있지만
  388. //급여는 기본키가 다르게 적용되므로 하나라도 급여에 관계된 테이블이 존재할 경우
  389. //join조건에 급여항목을 가져오기 위해 필요한 모든 테이블을 join건다
  390. if(!chkduppay){
  391. strfrom = strfrom + "INNER JOIN MIS.RWPDYMPY RWPDYMPY ON RWPDYMPY.EMPLNO = MAINTBL.EMPLNO \n" +
  392. "INNER JOIN MIS.RWPDPYIT RWPDPYIT ON RWPDPYIT.EMPLNO = RWPDYMPY.EMPLNO AND RWPDPYIT.PAYYM = RWPDYMPY.PAYYM AND RWPDPYIT.SALDFRAYFLAG = RWPDYMPY.SALDFRAYFLAG \n" +
  393. "INNER JOIN MIS.RWCMPYTL RWCMPYTL ON RWCMPYTL.INSTCD = RWPDYMPY.PAYINST AND RWCMPYTL.SALDFRAYFLAG = RWPDYMPY.SALDFRAYFLAG AND RWCMPYTL.PAYITEMCD = RWPDPYIT.PAYITEMCD \n";
  394. }
  395. //테입블 alias는 후에 select절이나 where 절을 만들때 따로 alias를 읽어오지 않아도 되게끔 테이블명으로 동일하게 처리한다
  396. model.setValue(grd_where.attribute("nodeset")+"["+(row - grd_where.fixedRows + 1)+"]/tblalias", tgttable);
  397. }
  398. else{
  399. //급여에 관계된 항목이 아니라면 테이블간 emplno로 join처리한다
  400. strfrom = strfrom + "INNER JOIN " + tgtstrfrom + " " + (tgttable + (row)) + " ON " + curalias + ".emplno = MAINTBL.emplno \n";
  401. model.setValue(grd_where.attribute("nodeset")+"["+(row - grd_where.fixedRows + 1)+"]/tblalias", tgttable + (row));
  402. }
  403. }
  404. }
  405. }
  406. //목적:인사 마스터 테이블이 존재할 경우 해당 row의 alias를 읽어와 부서정보의 기관정보를 join할때 같이 처리해 주도록 한다
  407. //인사마스터 테이블이 존재한다면 인사마스터에 해당하는 테이블 alias를 별도 element에 setting한다
  408. var memplrow = grd_where.findRow("RPBVEMPC", grd_where.fixedRows , grd_where.colRef("tablenm"),false,false);
  409. if(memplrow != -1){
  410. var memplalias = grd_where.valueMatrix(memplrow, grd_where.colRef("tblalias"));
  411. model.setValue(ipt_mplemplno.attribute("ref"), memplalias);
  412. }else {
  413. var memplrow = grd_where.findRow("RPBGVMVV", grd_where.fixedRows , grd_where.colRef("tablenm"),false,false);
  414. if(memplrow != -1){
  415. var memplalias = grd_where.valueMatrix(memplrow, grd_where.colRef("tblalias"));
  416. model.setValue(ipt_mplemplno.attribute("ref"), memplalias);
  417. }
  418. }
  419. return strfrom;
  420. }
  421. function fGetWhereQuery(){
  422. var strwhere = "";
  423. var maxalias = 9999;
  424. var addfromqry = "";
  425. var oldtablenm = "";
  426. var oldtblalias = "";
  427. var maintblalias = grd_where.valueMatrix(grd_where.fixedRows , grd_where.colRef("tblalias"));
  428. for(var row = grd_where.fixedRows; row < grd_where.rows ; row++){
  429. var itemnm = grd_where.valueMatrix(row , grd_where.colRef("itemnm"));
  430. var colnm = grd_where.valueMatrix(row , grd_where.colRef("colnm"));
  431. var operator = grd_where.valueMatrix(row , grd_where.colRef("operator"));
  432. var conector = grd_where.valueMatrix(row , grd_where.colRef("conector"));
  433. var condvalu1 = grd_where.valueMatrix(row , grd_where.colRef("condvalu1"));
  434. var condvalu2 = grd_where.valueMatrix(row , grd_where.colRef("condvalu2"));
  435. var tblalias = grd_where.valueMatrix(row , grd_where.colRef("tblalias"));
  436. var tgttable = grd_where.valueMatrix(row , grd_where.colRef("tablenm")); //테이블명
  437. var condsql = "";
  438. if (oldtablenm == "RPBGVMVV" && tgttable != "RPBGVMVV") {
  439. condsql = " AND " + "NVL(" + oldtblalias + "." + "DELYN,'N') != 'Y'" + "\n";
  440. }
  441. if(conector == "AND"){
  442. if(operator == "BETWEEN"){
  443. condsql = "(" + tblalias + "." + colnm + " " + operator + " " + condvalu1 + " AND " + condvalu2 + ")" + "\n";
  444. }
  445. else if(operator == "IN" || operator == "NOT IN"){
  446. condsql = tblalias + "." + colnm + " " + operator + " (" + condvalu1 + ")\n";
  447. }
  448. else{
  449. if( (itemnm == "소속부서" || itemnm == "근무부서") && (operator == "=") ){
  450. maxalias = maxalias -1;
  451. var tmpsubalias = "ZSDDDEPT" + (maxalias);
  452. //상위,하위부서를 읽기 위한 테이블을 추가한다
  453. var memplrow = grd_where.findRow("RPBVEMPC" , grd_where.fixedRows, grd_where.colRef("tablenm"), true, true);
  454. var memplalias = "";
  455. if(memplrow != -1){
  456. //인사마스터와 관계된 조건이 존재한다면 인사마스터에 해당하는 alias로 기관정보를 읽어온다
  457. memplalias = grd_where.valueMatrix(memplrow, grd_where.colRef("tblalias"));
  458. }
  459. else{
  460. //인사마스터와 관계된 조건이 존재하지 않는다면
  461. //인사마스터를 join조건으로 자동으로 추가한후 추가한 인사마스터와 하위부서를 읽기위한 테이블을 join 처리한다
  462. maxalias = maxalias -1;
  463. memplalias = "RPBVEMPC" + (maxalias);
  464. model.setValue(ipt_mplemplno.attribute("ref"), tmpsubempalias);
  465. }
  466. addfromqry = addfromqry + " LEFT OUTER JOIN COM.ZSDDDEPT " + tmpsubalias + " ON " + tmpsubalias + ".INSTCD = " + memplalias + ".INSTCD" +
  467. " AND " + tmpsubalias + ".DEPTCD = " + memplalias + ".DEPTCD \n";
  468. condsql = tmpsubalias + "." + "DEPTCD IN ( \n" +
  469. " SELECT DEPTCD \n" +
  470. " FROM COM.ZSDDDEPT Z \n" +
  471. " WHERE Z.PSNWORKSUPDEPTCD = " + condvalu1 + "\n" +
  472. " AND TO_CHAR( sysdate, 'yyyymmdd') BETWEEN Z.valifromdd AND Z.valitodd \n " +
  473. " UNION ALL \n " +
  474. " SELECT " + condvalu1 + "\n" +
  475. " FROM dual ) \n";
  476. }
  477. else{
  478. condsql = tblalias + "." + colnm + " " + operator + " " + condvalu1 + "\n";
  479. }
  480. }
  481. if(strwhere.length == 0){
  482. condsql = " WHERE " + condsql;
  483. }
  484. else{
  485. condsql = " AND " + condsql;
  486. }
  487. }
  488. else {
  489. var chkor = false;
  490. var findrow = -1;
  491. for(var subrow = grd_where.rows ; subrow > row ; subrow--){
  492. if(grd_where.valueMatrix(subrow , grd_where.colRef("conector")) == "OR"){
  493. chkor = true;
  494. findrow = subrow;
  495. break;
  496. }
  497. }
  498. if(!chkor){
  499. var tmpcondsql1 ;
  500. if(operator == "BETWEEN"){
  501. tmpcondsql1 = "(" + tblalias + "." + colnm + " " + operator + " " + condvalu1 + " AND " + condvalu1 + ")";
  502. }
  503. else if(operator == "IN" || operator == "NOT IN"){
  504. tmpcondsql1 = tblalias + "." + colnm + " " + operator + " (" + condvalu1 + ") ";
  505. }
  506. else{
  507. //소속부서와 근무부서가 조건절로 들어갈 경우 다른 부서조건과는 다르게 상위부서를 읽어온다
  508. if( (itemnm == "소속부서" ||itemnm == "근무부서") && (operator == "=")){
  509. maxalias = maxalias -1;
  510. var tmpsubalias = "ZSDDDEPT" + (maxalias);
  511. //상위,하위부서를 읽기 위한 테이블을 추가한다
  512. var memplrow = grd_where.findRow("RPBVEMPC" , grd_where.fixedRows, grd_where.colRef("tablenm"), true, true);
  513. var memplalias = "";
  514. if(memplrow != -1){
  515. //인사마스터와 관계된 조건이 존재한다면 인사마스터에 해당하는 alias로 기관정보를 읽어온다
  516. memplalias = grd_where.valueMatrix(memplrow, grd_where.colRef("tblalias"));
  517. }
  518. else{
  519. //인사마스터와 관계된 조건이 존재하지 않는다면
  520. //인사마스터를 join조건으로 자동으로 추가한후 추가한 인사마스터와 하위부서를 읽기위한 테이블을 join 처리한다
  521. maxalias = maxalias -1;
  522. memplalias = "RPBVEMPC" + (maxalias);
  523. model.setValue(ipt_mplemplno.attribute("ref"), tmpsubempalias);
  524. }
  525. addfromqry = addfromqry + " LEFT OUTER JOIN COM.ZSDDDEPT " + tmpsubalias + " ON " + tmpsubalias + ".INSTCD = " + memplalias + ".INSTCD" +
  526. " AND " + tmpsubalias + ".DEPTCD = " + memplalias + ".DEPTCD \n";
  527. tmpcondsql1 = tmpsubalias + "." + "DEPTCD IN ( \n" +
  528. " SELECT DEPTCD \n" +
  529. " FROM COM.ZSDDDEPT Z \n" +
  530. " WHERE Z.PSNWORKSUPDEPTCD = " + condvalu1 + "\n" +
  531. " AND TO_CHAR( sysdate, 'yyyymmdd') BETWEEN Z.valifromdd AND Z.valitodd \n " +
  532. " UNION ALL \n " +
  533. " SELECT " + condvalu1 + "\n" +
  534. " FROM sysibm.sysdummy1 ) \n";
  535. }
  536. else{
  537. tmpcondsql1 = tblalias + "." + colnm + " " + operator + " " + condvalu1 ;
  538. }
  539. }
  540. row= row +1;
  541. var tmpcolnm = grd_where.valueMatrix(row , grd_where.colRef("colnm"));
  542. var tmptblalias = grd_where.valueMatrix(row, grd_where.colRef("tblalias"));
  543. var tmpoperator = grd_where.valueMatrix(row, grd_where.colRef("operator"));
  544. var tmpcondvalu1 = grd_where.valueMatrix(row, grd_where.colRef("condvalu1"));
  545. var tmpcondvalu2 = grd_where.valueMatrix(row, grd_where.colRef("condvalu2"));
  546. var tmpitemnm = grd_where.valueMatrix(row, grd_where.colRef("itemnm"));
  547. var tmpcondsql2 ;
  548. if(operator == "BETWEEN"){
  549. tmpcondsql2 = "(" + tmptblalias + "." + tmpcolnm + " " + tmpoperator + " " + tmpcondvalu1 + " AND " + tmpcondvalu2 + ")" ;
  550. }
  551. else if(operator == "IN" || operator == "NOT IN"){
  552. tmpcondsql2 = tmptblalias + "." + tmpcolnm + " " + tmpoperator + " (" + tmpcondvalu1 + ") ";
  553. }
  554. else{
  555. //소속부서와 근무부서가 조건절로 들어갈 경우 다른 부서조건과는 다르게 상위부서를 읽어온다
  556. if( (tmpitemnm == "소속부서" || tmpitemnm == "근무부서") && (tmpoperator == "=")){
  557. maxalias = maxalias -1;
  558. var tmpsubalias = "ZSDDDEPT" + (maxalias);
  559. //상위,하위부서를 읽기 위한 테이블을 추가한다
  560. var memplrow = grd_where.findRow("RPBVEMPC" , grd_where.fixedRows, grd_where.colRef("tablenm"), true, true);
  561. var memplalias = "";
  562. if(memplrow != -1){
  563. //인사마스터와 관계된 조건이 존재한다면 인사마스터에 해당하는 alias로 기관정보를 읽어온다
  564. memplalias = grd_where.valueMatrix(memplrow, grd_where.colRef("tblalias"));
  565. }
  566. else{
  567. //인사마스터와 관계된 조건이 존재하지 않는다면
  568. //인사마스터를 join조건으로 자동으로 추가한후 추가한 인사마스터와 하위부서를 읽기위한 테이블을 join 처리한다
  569. maxalias = maxalias -1;
  570. memplalias = "RPBVEMPC" + (maxalias);
  571. model.setValue(ipt_mplemplno.attribute("ref"), tmpsubempalias);
  572. }
  573. addfromqry = addfromqry + " LEFT OUTER JOIN COM.ZSDDDEPT " + tmpsubalias + " ON " + tmpsubalias + ".INSTCD = " + memplalias + ".INSTCD" +
  574. " AND " + tmpsubalias + ".DEPTCD = " + memplalias + ".DEPTCD \n";
  575. tmpcondsql2 = tmpsubalias + "." + "DEPTCD IN ( \n" +
  576. " SELECT DEPTCD \n" +
  577. " FROM COM.ZSDDDEPT Z \n" +
  578. " WHERE Z.PSNWORKSUPDEPTCD = " + tmpcondvalu1 + "\n" +
  579. " AND TO_CHAR( sysdate, 'yyyymmdd' ) BETWEEN Z.valifromdd AND Z.valitodd \n " +
  580. " UNION ALL \n " +
  581. " SELECT " + tmpcondvalu1 + "\n" +
  582. " FROM sysibm.sysdummy1 ) \n";
  583. }
  584. else{
  585. tmpcondsql2 = tmptblalias + "." + tmpcolnm + " " + tmpoperator + " " + tmpcondvalu1 ;
  586. }
  587. }
  588. condsql = "(" + tmpcondsql1 + " " + conector + " " + tmpcondsql2 + ")";
  589. }
  590. else{
  591. for(var mtlrow = row ; mtlrow < findrow + 1 ; mtlrow++)
  592. {
  593. var tmpcondsql;
  594. var tmpcolnm = grd_where.valueMatrix(mtlrow , grd_where.colRef("colnm"));
  595. var tmptblalias = grd_where.valueMatrix(mtlrow, grd_where.colRef("tblalias"));
  596. var tmpoperator = grd_where.valueMatrix(mtlrow, grd_where.colRef("operator"));
  597. var tmpcondvalu1 = grd_where.valueMatrix(mtlrow, grd_where.colRef("condvalu1"));
  598. var tmpcondvalu2 = grd_where.valueMatrix(mtlrow, grd_where.colRef("condvalu2"));
  599. var tmpitemnm = grd_where.valueMatrix(mtlrow, grd_where.colRef("itemnm"));
  600. if(tmpoperator == "BETWEEN"){
  601. tmpcondsql = "(" + tmptblalias + "." + tmpcolnm + " " + tmpoperator + " " + tmpcondvalu1 + " AND " + tmpcondvalu2 + ")" ;
  602. }
  603. else if(tmpoperator == "IN" || tmpoperator == "NOT IN"){
  604. tmpcondsql = tmptblalias + "." + tmpcolnm + " " + tmpoperator + " (" + tmpcondvalu1 + ") ";
  605. }
  606. else{
  607. //소속부서와 근무부서가 조건절로 들어갈 경우 다른 부서조건과는 다르게 상위부서를 읽어온다
  608. if( (tmpitemnm == "소속부서" || tmpitemnm == "근무부서") && (tmpoperator == "=")){
  609. maxalias = maxalias -1;
  610. var tmpsubalias = "ZSDDDEPT" + (maxalias);
  611. //상위,하위부서를 읽기 위한 테이블을 추가한다
  612. var memplrow = grd_where.findRow("RPBVEMPC" , grd_where.fixedRows, grd_where.colRef("tablenm"), true, true);
  613. var memplalias = "";
  614. if(memplrow != -1){
  615. //인사마스터와 관계된 조건이 존재한다면 인사마스터에 해당하는 alias로 기관정보를 읽어온다
  616. memplalias = grd_where.valueMatrix(memplrow, grd_where.colRef("tblalias"));
  617. }
  618. else{
  619. //인사마스터와 관계된 조건이 존재하지 않는다면
  620. //인사마스터를 join조건으로 자동으로 추가한후 추가한 인사마스터와 하위부서를 읽기위한 테이블을 join 처리한다
  621. maxalias = maxalias -1;
  622. memplalias = "RPBVEMPC" + (maxalias);
  623. model.setValue(ipt_mplemplno.attribute("ref"), tmpsubempalias);
  624. }
  625. addfromqry = addfromqry + " LEFT OUTER JOIN COM.ZSDDDEPT " + tmpsubalias + " ON " + tmpsubalias + ".INSTCD = " + memplalias + ".INSTCD" +
  626. " AND " + tmpsubalias + ".DEPTCD = " + memplalias + ".DEPTCD \n";
  627. tmpcondsql = tmpsubalias + "." + "DEPTCD IN ( \n" +
  628. " SELECT DEPTCD \n" +
  629. " FROM COM.ZSDDDEPT Z \n" +
  630. " WHERE Z.PSNWORKSUPDEPTCD = " + tmpcondvalu1 + "\n" +
  631. " AND TO_CHAR( sysdate, 'yyyymmdd' ) BETWEEN Z.valifromdd AND Z.valitodd \n " +
  632. " UNION ALL \n " +
  633. " SELECT " + tmpcondvalu1 + "\n" +
  634. " FROM sysibm.sysdummy1 ) \n";
  635. }
  636. else{
  637. tmpcondsql = tmptblalias + "." + tmpcolnm + " " + tmpoperator + " " + tmpcondvalu1 ;
  638. }
  639. }
  640. if(condsql.length == 0){
  641. condsql = "( " + tmpcondsql + " " + conector + " ";
  642. }
  643. else{
  644. if(mtlrow != findrow){
  645. condsql = condsql + " " + tmpcondsql + " " + conector + " ";
  646. }
  647. else{
  648. condsql = condsql + " " + tmpcondsql + " )";
  649. }
  650. }
  651. }
  652. row = findrow;
  653. }
  654. if(strwhere.length == 0){
  655. condsql = " WHERE " + condsql;
  656. }
  657. else{
  658. condsql = " AND " + condsql;
  659. }
  660. }
  661. strwhere = strwhere + condsql;
  662. oldtablenm = tgttable;
  663. oldtblalias = tblalias;
  664. }
  665. //alert(oldtablenm);
  666. if (oldtablenm == "RPBGVMVV" ) {
  667. strwhere = strwhere + " AND " + "NVL(" + oldtblalias + "." + "DELYN,'N') != 'Y'" + "\n";
  668. }
  669. //급여항목에 관계된 테이블이 존재하면서 급여항목명을 읽어와야 하는 항목이 존재한다면
  670. //where절에 급여항목명 조회를 위해 아래와 같은 문자을 자동추가한다
  671. if((grd_where.findRow("RWPDYMPY",grd_where.fixedRows , grd_where.colRef("tablenm"),true,true) > -1) &&
  672. (grd_select.findRow("PAYITEMCD",grd_select.fixedRows , grd_select.colRef("colnm"),true,true) > -1)){
  673. strwhere = strwhere + "\n";
  674. strwhere = strwhere + "AND RWCMPYTL.APPDD = (SELECT MAX(z.APPDD) \n";
  675. strwhere = strwhere + " FROM MIS.RWCMPYTL z\n";
  676. strwhere = strwhere + " WHERE z.INSTCD = RWPDYMPY.PAYINST\n";
  677. strwhere = strwhere + " AND z.SALDFRAYFLAG = RWPDYMPY.SALDFRAYFLAG \n";
  678. strwhere = strwhere + " AND z.PAYITEMCD = RWPDPYIT.PAYITEMCD\n";
  679. strwhere = strwhere + " AND z.APPDD <= RWPDPYIT.PAYDD)\n";
  680. }
  681. if(addfromqry.length > 0){
  682. var fromqry = model.getValue(txt_fromqry.attribute("ref"));
  683. model.setValue(txt_fromqry.attribute("ref"), fromqry + "\n" + addfromqry);
  684. }
  685. return strwhere;
  686. }
  687. function fGetSelectQuery(){
  688. var maxalias = 999;
  689. var selectqry = "";
  690. var addfromqry = "";
  691. var chkyn = "N";
  692. var maintblalias = grd_where.valueMatrix(grd_where.fixedRows , grd_where.colRef("tblalias"));
  693. var emplalias = model.getValue(ipt_mplemplno.attribute("ref"));
  694. var arralias = new Array();
  695. var arrtable = new Array();
  696. var arrcnt = 0;
  697. for(var row = grd_select.fixedRows ; row < grd_select.rows ; row++){
  698. var colnm = grd_select.valueMatrix(row , grd_select.colRef("colnm")); //칼럼이름
  699. var tblschema = grd_select.valueMatrix(row , grd_select.colRef("tblschema")); //테이블스키마
  700. var tablenm = grd_select.valueMatrix(row , grd_select.colRef("tablenm")); //테이블명
  701. var cdtblschema = grd_select.valueMatrix(row , grd_select.colRef("cdtblschema")); //코드테이블스키마
  702. var cdtblnm = grd_select.valueMatrix(row , grd_select.colRef("cdtblnm")); //코드테이블명
  703. var codeflag = grd_select.valueMatrix(row , grd_select.colRef("codeflag")); //코드구분ID(CDSID)
  704. var itemnm = grd_select.valueMatrix(row , grd_select.colRef("itemnm")); //칼럼명칭
  705. //findrow = -1;
  706. var findrow = grd_where.findRow(tablenm ,grd_where.fixedRows, grd_where.colRef("tablenm")); //테이블명칭
  707. // alert(tablenm);
  708. // alert(itemnm);
  709. // alert(cdtblnm);
  710. // alert(findrow);
  711. chkyn = "N";
  712. // if (findrow == -1 && cdtblnm != "ZBCMCODE" && cdtblnm != "ZSDDDEPT" && cdtblnm != "RWCMPYTL") {
  713. if (findrow == -1 ) {
  714. // alert(row);
  715. for (var k = row - 1 ; k >= grd_select.fixedRows; k--) {
  716. // alert(k);
  717. // alert(tablenm);
  718. // alert(grd_select.valueMatrix(k, grd_select.colRef("tablenm")));
  719. if (tablenm == grd_select.valueMatrix(k, grd_select.colRef("tablenm"))) {
  720. chkyn = "Y";
  721. findrow = row;
  722. }
  723. }
  724. }
  725. var tblalias = "";
  726. var tmpquery = "";
  727. if(findrow == -1){
  728. //항목에는 추가되었으나 조건절에 해당 테이블에 관계되는 조건이 존재하지 않는다면
  729. //항목을 보여주기 위해 from 절에 join조건을 자동추가한다
  730. maxalias = maxalias -1;
  731. var tmpalias = tablenm + (maxalias);
  732. //급여에 관계된 항목이 아니라면 메인테이블과 emplno로 join 조건을 걸어준다
  733. //단 조건에 존재하지 않는 항목이므로 left outer join으로 한다
  734. if(tablenm != "RWPDPYIT" && tablenm != "RWPDYMPY"){
  735. addfromqry = addfromqry + " LEFT OUTER JOIN " + tblschema + "." + tablenm + " " + tmpalias + " ON " + tmpalias + ".emplno = " + maintblalias + ".emplno \n";
  736. }
  737. //항목절에 급여에 관계된 항목이 존재할경우 From절 생성 로직에서 급여테이블을 join걸어주었으므로
  738. //여기서는 추가해줄 필요가없으며,
  739. //그 이전에 항목에 급여에 관계된 항목이 존재하면 반드시 조건절에 급여지급월을 입력하도록 하였으므로
  740. //급여관계 테이블이 from절에 join되지 않고 넘어오는 경우는 존재하지 않는다
  741. arralias[arrcnt] = tmpalias;
  742. arrtable[arrcnt] = tablenm;
  743. tblalias = tmpalias;
  744. }
  745. else{
  746. if (chkyn == "Y") {
  747. for (var z = 0; z < arrtable.length; z++) {
  748. if (arrtable[z] == tablenm) {
  749. tblalias = arralias[z];
  750. }
  751. }
  752. }
  753. else {
  754. tblalias = grd_where.valueMatrix(findrow , grd_where.colRef("tblalias"));
  755. }
  756. }
  757. if(cdtblnm.length > 0){
  758. if(cdtblnm == "ZBCMCODE"){
  759. //공통코드와 연계된 항목이라면
  760. maxalias = maxalias -1;
  761. var tmpalias = tablenm + (maxalias);
  762. addfromqry = addfromqry + " LEFT OUTER JOIN " + cdtblschema + "." + cdtblnm + " " + tmpalias + " ON " + tmpalias + ".cdsid = '" + codeflag + "'||" + tblalias + "." + colnm + " \n";
  763. tmpquery = " " + tmpalias + ".cdnm as " + colnm + "\n";
  764. }
  765. else if (cdtblnm == "ZSDDDEPT"){
  766. if (colnm == "DEPTCD" || colnm == "TEAMCD" || colnm == "UNITCD") {
  767. tmpquery = " COM.FN_ZS_GETDEPTNM(" + emplalias + ".INSTCD, " + tblalias + "." + colnm + ", TO_CHAR( sysdate, 'yyyymmdd' ) )" + " as " + colnm + "\n";
  768. }
  769. else if (colnm == "DUTDEPTCD" || colnm == "DUTTEAMCD" || colnm == "DUTUNITCD" || colnm == "DUTPLCEDEPTCD") {
  770. tmpquery = " COM.FN_ZS_GETDEPTNM(" + emplalias + ".DUTPLCEINST, " + tblalias + "." + colnm + ", TO_CHAR( sysdate, 'yyyymmdd' ) )" + " as " + colnm + "\n";
  771. }else if (colnm == "DUPDEPTCD" || colnm == "DUPTEAMCD" || colnm == "DUPUNITCD ") {
  772. tmpquery = " COM.FN_ZS_GETDEPTNM(" + emplalias + ".DUPINSTCD, " + tblalias + "." + colnm + ", TO_CHAR( sysdate, 'yyyymmdd' ) )" + " as " + colnm + "\n";
  773. }else if (colnm == "ORGDEPTCD" ) {
  774. tmpquery = " COM.FN_ZS_GETDEPTNM(" + emplalias + ".ORGINSTCD, " + tblalias + "." + colnm + ", TO_CHAR( sysdate, 'yyyymmdd' ) )" + " as " + colnm + "\n";
  775. }
  776. }
  777. else if(cdtblnm == "RWCMPYTL"){
  778. //급여항목명을 읽어오는 경우 급여항목타이틀에 있는 컬럼을 읽어온다
  779. //단, 급여에 관계된 테이블을 from에서 명칭으로 자동생성하였으므로 여기서는 테이블명의 칼럼명을 읽어오면 된다
  780. tmpquery = " RWCMPYTL.PRNTNM as PRNTNM \n";
  781. if(colnm == "PAYITEMCD"){
  782. //급여항목을 선택한 경우 급여항목비용도 같이 화면에 조회한다
  783. tmpquery = tmpquery + "\n ,RWPDPYIT.PAYITEMAMT as PAYITEMAMT \n"
  784. }
  785. }
  786. }
  787. else{
  788. tmpquery = tblalias + "." + colnm + "\n";
  789. }
  790. if(selectqry.length == 0){
  791. selectqry = "SELECT " + tmpquery;
  792. }
  793. else{
  794. selectqry = selectqry + ", " + tmpquery;
  795. }
  796. }
  797. //select절을 추가하기위해서 필요한 from절의 join조건들은 fromquery에 추가 setting한다
  798. if(addfromqry.length > 0){
  799. var fromqry = model.getValue(txt_fromqry.attribute("ref"));
  800. model.setValue(txt_fromqry.attribute("ref"), fromqry + "\n" + addfromqry);
  801. }
  802. return selectqry;
  803. }
  804. function fSelectSortKey(pflag){
  805. var cnt = 1;
  806. var focusrow = -1;
  807. for(var row = grd_select.fixedRows ; row < grd_select.rows; row++){
  808. var data = grd_select.valueMatrix(row , grd_select.colRef("itemnm"));
  809. var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  810. for(var index = 0; index <= findnode.length ; index++){
  811. var curdata = model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/itemnm");
  812. if(curdata == data){
  813. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey", cnt);
  814. break;
  815. }
  816. }
  817. cnt++;
  818. }
  819. if(pflag == "U"){
  820. if (grd_select.row == grd_select.fixedRows) {
  821. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 1) + "]/sortkey",
  822. grd_select.rows - grd_select.fixedRows + 1);
  823. var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  824. for (var index = 1; index <= findnode.length ; index++){
  825. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey",
  826. parseInt(model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey")) - 1 );
  827. }
  828. focusrow = grd_select.rows - grd_select.fixedRows;
  829. }
  830. else {
  831. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 1) + "]/sortkey",
  832. model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows) + "]/sortkey") );
  833. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows ) + "]/sortkey",
  834. parseInt(model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows) + "]/sortkey")) + 1 );
  835. focusrow = grd_select.row - grd_select.fixedRows;
  836. }
  837. // for(var row = grd_select.fixedRows ; row < grd_select.rows; row++){
  838. // var seqno = grd_select.valueMatrix(row , grd_select.colRef("sortkey"));
  839. // if(seqno == 1)seqno = (grd_select.rows - grd_select.fixedRows);
  840. // else seqno = seqno - 1;
  841. // var data = grd_select.valueMatrix(row , grd_select.colRef("itemnm"));
  842. //
  843. // var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  844. // for(var index = 0; index <= findnode.length ; index++){
  845. // var curdata = model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/itemnm");
  846. // if(curdata == data){
  847. // model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey", seqno);
  848. // break;
  849. // }
  850. // }
  851. // }
  852. }
  853. else{
  854. if (grd_select.row == grd_select.rows-grd_select.fixedRows) {
  855. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 1) + "]/sortkey",
  856. grd_select.fixedRows);
  857. var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  858. for (var index = 1; index <= findnode.length - 1; index++){
  859. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey",
  860. parseInt(model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey")) + 1 );
  861. }
  862. focusrow = grd_select.fixedRows;
  863. }
  864. else {
  865. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 1) + "]/sortkey",
  866. model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 2) + "]/sortkey") );
  867. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 2) + "]/sortkey",
  868. parseInt(model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + (grd_select.row - grd_select.fixedRows + 2) + "]/sortkey")) - 1 );
  869. focusrow = grd_select.row - grd_select.fixedRows + 2;
  870. }
  871. // for(var row = grd_select.fixedRows ; row < grd_select.rows; row++){
  872. // var seqno = grd_select.valueMatrix(row , grd_select.colRef("sortkey"));
  873. // if(seqno == (grd_select.rows - grd_select.fixedRows))seqno = 1;
  874. // else seqno = seqno + 1;
  875. // var data = grd_select.valueMatrix(row , grd_select.colRef("itemnm"));
  876. //
  877. // var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  878. // for(var index = 0; index <= findnode.length ; index++){
  879. // var curdata = model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/itemnm");
  880. // if(curdata == data){
  881. // model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey", seqno);
  882. // break;
  883. // }
  884. // }
  885. // }
  886. }
  887. grd_select.sort(grd_select.fixedRows, grd_select.colRef("sortkey"), (grd_select.rows - grd_select.fixedRows) ,grd_select.colRef("sortkey"))= "asc";
  888. grd_select.gridToInstance();
  889. //alert(focusrow);
  890. model.setFocus("grd_select");
  891. grd_select.select(focusrow, grd_select.colRef("itemclsnm")) = true;
  892. grd_select.row = focusrow;
  893. model.refresh();
  894. }
  895. function fCreateFixDocu(pfixdoucnm){
  896. if(pfixdoucnm == null || pfixdoucnm.length == 0){
  897. messageBox("서식명칭은","I003");
  898. model.setFocus("ipt_fixdoucnm");
  899. return;
  900. }
  901. if(grd_where.rows - grd_where.fixedRows == 0){
  902. messageBox("조건항목이 입력되지 않았습니다. 실행","E001");
  903. return;
  904. }
  905. if(grd_select.rows - grd_select.fixedRows == 0){
  906. messageBox("검색항목이 입력되지 않았습니다. 실행","E001");
  907. return;
  908. }
  909. if(!checkKeyColumn("grd_where","grd_select")) return;
  910. model.removenode("/root/send/save");
  911. model.makeNode("/root/send/save/fixdoculist");
  912. misfGridInit(grd_docufix);
  913. var cnt = 1;
  914. for(var row = grd_select.fixedRows ; row < grd_select.rows; row++){
  915. var data = grd_select.valueMatrix(row , grd_select.colRef("itemnm"));
  916. var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  917. for(var index = 0; index <= findnode.length ; index++){
  918. var curdata = model.getValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/itemnm");
  919. if(curdata == data){
  920. model.setValue("/root/main/list/tableselect/tableselectlist" + "[" + index + "]/sortkey", cnt);
  921. break;
  922. }
  923. }
  924. cnt++;
  925. }
  926. model.refresh();
  927. var addRow;
  928. //
  929. // var nursedeptflag = "N";
  930. // if (model.getValue("/root/main/list/fixitem/emplnodeptlist/deptcd") == "3040200000") {
  931. // nursedeptflag = "Y";
  932. // }
  933. // else {
  934. // nursedeptflag = "N";
  935. // }
  936. var findnode = instance1.selectNodes("/root/main/list/tableselect" + "/*");
  937. for(var index = 0; index <= findnode.length ; index++){
  938. var data = index + 1;
  939. var row = grd_select.findRow(data, grd_select.fixedRows, grd_select.colRef("sortkey"), true,true);
  940. if(row != -1){
  941. misfGridIUD(grd_docufix, "A","N");
  942. addRow = grd_docufix.rows - grd_docufix.fixedRows;
  943. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_select.valueMatrix(row , grd_select.colRef("itemcls")));
  944. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/fixtypenm", pfixdoucnm);
  945. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/conditemflag", "1");
  946. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_select.valueMatrix(row , grd_select.colRef("itemcls")));
  947. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemnm", grd_select.valueMatrix(row , grd_select.colRef("itemnm")));
  948. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemkind", grd_select.valueMatrix(row , grd_select.colRef("itemkind")));
  949. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/tblschema", grd_select.valueMatrix(row , grd_select.colRef("tblschema")));
  950. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/tablenm", grd_select.valueMatrix(row , grd_select.colRef("tablenm")));
  951. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/colnm", grd_select.valueMatrix(row , grd_select.colRef("colnm")));
  952. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/cdtblschema", grd_select.valueMatrix(row , grd_select.colRef("cdtblschema")));
  953. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/cdtblnm", grd_select.valueMatrix(row , grd_select.colRef("cdtblnm")));
  954. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/codeflag", grd_select.valueMatrix(row , grd_select.colRef("codeflag")));
  955. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/nursedeptflag", nursedeptflag);
  956. }
  957. }
  958. for(var row = grd_where.fixedRows; row < grd_where.rows; row++){
  959. misfGridIUD(grd_docufix, "A","N");
  960. addRow = grd_docufix.rows - grd_docufix.fixedRows;
  961. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_where.valueMatrix(row , grd_where.colRef("itemcls")));
  962. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/fixtypenm",pfixdoucnm);
  963. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/conditemflag", "2");
  964. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_where.valueMatrix(row , grd_where.colRef("itemcls")));
  965. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemnm", grd_where.valueMatrix(row , grd_where.colRef("itemnm")));
  966. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/itemkind", grd_where.valueMatrix(row , grd_where.colRef("itemkind")));
  967. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/tblschema", grd_where.valueMatrix(row , grd_where.colRef("tblschema")));
  968. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/tablenm", grd_where.valueMatrix(row , grd_where.colRef("tablenm")));
  969. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/colnm", grd_where.valueMatrix(row , grd_where.colRef("colnm")));
  970. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/cdtblschema", grd_where.valueMatrix(row , grd_where.colRef("cdtblschema")));
  971. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/cdtblnm", grd_where.valueMatrix(row , grd_where.colRef("cdtblnm")));
  972. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/codeflag", grd_where.valueMatrix(row , grd_where.colRef("codeflag")));
  973. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/operator", grd_where.valueMatrix(row , grd_where.colRef("operator")));
  974. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/conector", grd_where.valueMatrix(row , grd_where.colRef("conector")));
  975. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/condvalu1", grd_where.valueMatrix(row , grd_where.colRef("condvalu1")));
  976. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/condvalu2", grd_where.valueMatrix(row , grd_where.colRef("condvalu2")));
  977. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/condvalu1nm", grd_where.valueMatrix(row , grd_where.colRef("condvalu1nm")));
  978. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/condvalu2nm", grd_where.valueMatrix(row , grd_where.colRef("condvalu2nm")));
  979. model.setValue(grd_docufix.attribute("nodeset")+"["+(addRow)+"]/nursedeptflag", nursedeptflag);
  980. }
  981. model.setValue("/root/send/save/fixdoculist",grd_docufix.getUpdateData());
  982. submit("TXRTH01101");
  983. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  984. {
  985. submit("TRRTH01103");
  986. }
  987. }
  988. ]]>
  989. </script>
  990. </xhtml:head>
  991. <xhtml:body guideline="1,1194;1,1061;1,1061;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  992. <group id="group1" style="left:0px; top:0px; width:1190px; height:13px; ">
  993. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">인사조건검색</caption>
  994. </group>
  995. <group id="group4" scroll="auto" style="left:0px; top:13px; width:1190px; height:27px; ">
  996. <line id="line12" class="line_6" style="x1:0px; y1:25; x2:1190px; y2:25; "/>
  997. <button id="btn_init" class="btn4_letter3" style="left:1120px; top:3px; width:68px; height:22px; ">
  998. <caption>초기화</caption>
  999. <script type="javascript" ev:event="DOMActivate">
  1000. <![CDATA[
  1001. misfGridInit(grd_where);
  1002. misfGridInit(grd_select);
  1003. model.setValue(ipt_fixdoucnm.attribute("ref"),"");
  1004. model.setValue(ipt_mplemplno.attribute("ref"),"");
  1005. model.refresh();
  1006. ]]>
  1007. </script>
  1008. </button>
  1009. <button id="btn_execute" class="btn4_letter2" style="left:1063px; top:3px; width:56px; height:22px; ">
  1010. <caption>
  1011. <![CDATA[실행]]>
  1012. </caption>
  1013. <script type="javascript" ev:event="DOMActivate">
  1014. <![CDATA[
  1015. fSettingQuery();
  1016. ]]>
  1017. </script>
  1018. </button>
  1019. </group>
  1020. <group id="group5" scroll="auto" style="left:0px; top:40; width:1195px; height:744px; ">
  1021. <group id="group3" style="left:2px; top:2px; width:355px; height:737px; ">
  1022. <select1 id="cmb_itemcls" ref="/root/send/itemqry/itemcls" appearance="minimal" style="left:79px; top:3px; width:274px; height:19px; ">
  1023. <choices>
  1024. <itemset>
  1025. <label/>
  1026. <value/>
  1027. </itemset>
  1028. </choices>
  1029. <script type="javascript" ev:event="xforms-value-changed">
  1030. <![CDATA[
  1031. submit("TRRTH01101");
  1032. //misfMsterDetailRetrieve();
  1033. ]]>
  1034. </script>
  1035. </select1>
  1036. <caption id="caption1" class="search_name" style="left:1px; top:4px; width:100px; height:17px; vertical-align:middle; ">항목구분</caption>
  1037. <line id="line1" class="line_1" style="x1:0px; y1:24px; x2:353px; y2:24px; "/>
  1038. <datagrid id="grd_tblcode" nodeset="/root/main/list/tablecode/tablecodelist" caption="항목^구분" colsep="^" colwidth="236, 95, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" style="left:0px; top:29px; width:353px; height:704px; ">
  1039. <col ref="itemnm"/>
  1040. <col ref="itemflagnm"/>
  1041. <col ref="itemcls" visibility="hidden"/>
  1042. <col ref="itemseq" visibility="hidden"/>
  1043. <col ref="itemflag" visibility="hidden"/>
  1044. <col ref="itemkind" visibility="hidden"/>
  1045. <col ref="tblschema" visibility="hidden"/>
  1046. <col ref="tablenm" visibility="hidden"/>
  1047. <col ref="colnm" visibility="hidden"/>
  1048. <col ref="cdtblschema" visibility="hidden"/>
  1049. <col ref="cdtblnm" visibility="hidden"/>
  1050. <col ref="codeflag" visibility="hidden"/>
  1051. <script type="javascript" ev:event="onaftersort">
  1052. <![CDATA[
  1053. grd_tblcode.gridToInstance();
  1054. ]]>
  1055. </script>
  1056. </datagrid>
  1057. <textarea id="txt_selectqry" ref="/root/init/selectqry" visibility="hidden" style="left:25px; top:440px; width:105px; height:130px; "/>
  1058. <textarea id="txt_fromqry" ref="/root/init/fromqry" visibility="hidden" style="left:132px; top:440px; width:110px; height:130px; "/>
  1059. <textarea id="txt_whereqry" ref="/root/init/whereqry" visibility="hidden" style="left:244px; top:440px; width:95px; height:130px; "/>
  1060. </group>
  1061. <group id="group2" style="left:355px; top:0px; width:835px; height:300px; ">
  1062. <datagrid id="grd_where" nodeset="/root/main/list/tablewhere/tablewherelist" caption="항목^연산자^조건값^조건값2^연결" colsep="^" colwidth="193, 83, 338, 141, 54, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:2px; top:31px; width:831px; height:250px; ">
  1063. <col ref="itemnm" type="inputbutton" _key="true"/>
  1064. <col ref="operator" type="combo" _key="true">
  1065. <choices>
  1066. <itemset nodeset="/root/init/operator">
  1067. <label ref="code"/>
  1068. <value ref="cdnm"/>
  1069. </itemset>
  1070. </choices>
  1071. </col>
  1072. <col ref="condvalu1nm" _key="true"/>
  1073. <col ref="condvalu2nm"/>
  1074. <col ref="conector" type="combo" _key="true">
  1075. <choices>
  1076. <itemset nodeset="/root/init/conector">
  1077. <label ref="cdnm"/>
  1078. <value ref="code"/>
  1079. </itemset>
  1080. </choices>
  1081. </col>
  1082. <col ref="condvalu1" visibility="hidden"/>
  1083. <col ref="condvalu2" visibility="hidden"/>
  1084. <col ref="itemcls" visibility="hidden"/>
  1085. <col ref="itemseq" visibility="hidden"/>
  1086. <col ref="itemflag" visibility="hidden"/>
  1087. <col ref="itemkind" visibility="hidden"/>
  1088. <col ref="tblschema" visibility="hidden"/>
  1089. <col ref="tablenm" visibility="hidden"/>
  1090. <col ref="colnm" visibility="hidden"/>
  1091. <col ref="cdtblschema" visibility="hidden"/>
  1092. <col ref="cdtblnm" visibility="hidden"/>
  1093. <col ref="codeflag" visibility="hidden"/>
  1094. <col ref="tblalias" visibility="hidden"/>
  1095. <col ref="fixtypenm" visibility="hidden"/>
  1096. <col ref="conditemflag" visibility="hidden"/>
  1097. <script type="javascript" ev:event="onbuttonclick">
  1098. <![CDATA[
  1099. if(grd_where.col == grd_where.colRef("itemnm")){
  1100. var itemkind = grd_where.valueMatrix(grd_where.row, grd_where.colRef("itemkind"));
  1101. model.removenode("/root/copynode");
  1102. model.makeNode("/root/copynode");
  1103. var CSV;
  1104. if(itemkind == "CODE" || itemkind == "YN"){
  1105. model.removenode(gvParamPath +"/SMRPB01702_/SMRPB01702_value");
  1106. rpbfOpenPopUpList("SMRPB01702",grd_where,"operator,conector,condvalu1,condvalu1nm,condvalu2,condvalu2nm,itemnm,itemkind,cdtblnm,codeflag,colnm","operator,conector,condvalu1,condvalu1nm,condvalu2,condvalu2nm,itemnm,itemkind,cdtblnm,codeflag,colnm");
  1107. CSV = model.getValue(gvParamPath +"/SMRPB01702_/SMRPB01702_value");
  1108. }
  1109. else{
  1110. model.removenode(gvParamPath +"/SMRPB01701_/SMRPB01701_value");
  1111. rpbfOpenPopUpList("SMRPB01701",grd_where,"operator,conector,condvalu1,condvalu2,itemnm,itemkind","operator,conector,condvalu1,condvalu2,itemnm,itemkind");
  1112. CSV = model.getValue(gvParamPath +"/SMRPB01701_/SMRPB01701_value");
  1113. }
  1114. setCSVToNode("/root/copynode", CSV, "itemlist");
  1115. var codynode = instance1.selectNodes("/root/copynode" + "/*");
  1116. if(codynode.length == 0)return;
  1117. var operator = model.getValue("/root/copynode/itemlist/operator");
  1118. var conector = model.getValue("/root/copynode/itemlist/conector");
  1119. var condvalu1 = model.getValue("/root/copynode/itemlist/condvalu1");
  1120. var condvalu2 = model.getValue("/root/copynode/itemlist/condvalu2");
  1121. var condvalu1nm = "";
  1122. var condvalu2nm = "";
  1123. if(itemkind == "CODE" || itemkind == "YN"){
  1124. condvalu1nm = model.getValue("/root/copynode/itemlist/condvalu1nm");
  1125. condvalu2nm = model.getValue("/root/copynode/itemlist/condvalu2nm");
  1126. }
  1127. else{
  1128. condvalu1nm = condvalu1;
  1129. condvalu2nm = condvalu2;
  1130. }
  1131. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/operator", operator);
  1132. if(grd_where.valueMatrix(grd_where.row, grd_where.colRef("tablenm")) == "RWPDYMPY" &&
  1133. grd_where.valueMatrix(grd_where.row, grd_where.colRef("colnm")) == "PAYYM" ){
  1134. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/conector", "AND");
  1135. }
  1136. else{
  1137. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/conector", conector);
  1138. }
  1139. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu1", condvalu1);
  1140. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu2", condvalu2);
  1141. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu1nm", condvalu1nm);
  1142. model.setValue(grd_where.attribute("nodeset")+"["+(grd_where.row - grd_where.fixedRows + 1)+"]/condvalu2nm", condvalu2nm);
  1143. }
  1144. ]]>
  1145. </script>
  1146. <script type="javascript" ev:event="onentercell">
  1147. <![CDATA[
  1148. if(grd_where.col == grd_where.colRef("conector"))
  1149. {
  1150. if(grd_where.valueMatrix(grd_where.row, grd_where.colRef("tablenm")) == "RWPDYMPY" &&
  1151. grd_where.valueMatrix(grd_where.row, grd_where.colRef("colnm")) == "PAYYM" ){
  1152. messageBox("급여년월은 AND만 가능합니다.변경","E001");
  1153. return;
  1154. }
  1155. }
  1156. ]]>
  1157. </script>
  1158. </datagrid>
  1159. <button id="btn_wheredelete" class="btn2_letter4" style="left:67px; top:5px; width:64px; height:19px; ">
  1160. <caption>조건삭제</caption>
  1161. <script type="javascript" ev:event="DOMActivate">
  1162. <![CDATA[
  1163. if (model.getValue("/root/main/list/fixitem/emplnodeptlist/deptcd") == "3040200000" &&
  1164. grd_where.valueMatrix(grd_where.row, grd_where.colRef("tblschema")) == "MIS" &&
  1165. grd_where.valueMatrix(grd_where.row, grd_where.colRef("tablenm")) == "RPBVEMPC" &&
  1166. grd_where.valueMatrix(grd_where.row, grd_where.colRef("colnm")) == "DEPTCD" &&
  1167. grd_where.valueMatrix(grd_where.row, grd_where.colRef("condvalu1")) == model.getValue("/root/main/list/fixitem/emplnodeptlist/deptcd")) {
  1168. messageBox("삭제 할수 없는 조건 입니다.","");
  1169. return;
  1170. }
  1171. misfGridIUD(grd_where, "D");
  1172. ]]>
  1173. </script>
  1174. </button>
  1175. <button id="btn_whereinsert" class="btn2_letter4" style="left:2px; top:5px; width:64px; height:19px; ">
  1176. <caption>조건추가</caption>
  1177. <script type="javascript" ev:event="DOMActivate">
  1178. <![CDATA[
  1179. if(grd_tblcode.rows-grd_tblcode.fixedRows == 0)return;
  1180. if(!fAddWhereColumn())return;
  1181. grd_where.col = grd_where.colRef("itemnm");
  1182. grd_where.dispatch("onbuttonclick");
  1183. grd_where.row= grd_where.rows- grd_where.fixedRows;
  1184. ]]>
  1185. </script>
  1186. </button>
  1187. <line id="line2" class="line_1" style="x1:2px; y1:26px; x2:833px; y2:26px; "/>
  1188. <caption id="caption7" class="tit_2" style="left:764px; top:10px; width:70px; height:13px; vertical-align:middle; ">조건항목</caption>
  1189. <datagrid id="grd_query" nodeset="/root/main/list/query/querylist" visibility="hidden" caption="caption1" colsep="^" colwidth="100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:215px; top:115px; width:225px; height:95px; ">
  1190. <col ref="strqry"/>
  1191. <col ref="title"/>
  1192. <col ref="titlecnt"/>
  1193. <col ref="titlenm"/>
  1194. <col ref="coltype"/>
  1195. </datagrid>
  1196. <datagrid id="grd_docufix" nodeset="/root/main/list/fixdocu/fixdoculist" visibility="hidden" caption="caption1^caption2^caption3" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:510px; top:115px; width:225px; height:95px; ">
  1197. <col ref="itemcls"/>
  1198. <col ref="itemclsnm"/>
  1199. <col ref="fixtypenm"/>
  1200. <col ref="conditemflag"/>
  1201. <col ref="itemseq"/>
  1202. <col ref="itemnm"/>
  1203. <col ref="itemkind"/>
  1204. <col ref="tblschema"/>
  1205. <col ref="tablenm"/>
  1206. <col ref="colnm"/>
  1207. <col ref="cdtblschema"/>
  1208. <col ref="cdtblnm"/>
  1209. <col ref="codeflag"/>
  1210. <col ref="operator"/>
  1211. <col ref="conector"/>
  1212. <col ref="condvalu1"/>
  1213. <col ref="condvalu2"/>
  1214. <col ref="condvalu1nm"/>
  1215. <col ref="condvalu2nm"/>
  1216. <col ref="nursedeptflag"/>
  1217. </datagrid>
  1218. <input id="ipt_mplemplno" ref="/root/init/mplemplno" visibility="hidden" style="left:215px; top:5px; width:100px; height:19px; "/>
  1219. </group>
  1220. <group id="group6" style="left:355px; top:298px; width:606px; height:440px; ">
  1221. <line id="line3" class="line_1" style="x1:2px; y1:24px; x2:605px; y2:24px; "/>
  1222. <caption id="caption2" class="tit_2" style="left:528px; top:8px; width:75px; height:13px; vertical-align:middle; ">검색항목</caption>
  1223. <datagrid id="grd_select" nodeset="/root/main/list/tableselect/tableselectlist" caption="항목구분^항목명" colsep="^" colwidth="239, 345, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:2px; top:30px; width:603px; height:400px; ">
  1224. <col ref="itemclsnm" _key="true"/>
  1225. <col ref="itemnm" _key="true"/>
  1226. <col ref="itemcls" visibility="hidden"/>
  1227. <col ref="itemseq" visibility="hidden"/>
  1228. <col ref="itemflag" visibility="hidden"/>
  1229. <col ref="itemkind" visibility="hidden"/>
  1230. <col ref="tblschema" visibility="hidden"/>
  1231. <col ref="tablenm" visibility="hidden"/>
  1232. <col ref="colnm" visibility="hidden"/>
  1233. <col ref="cdtblschema" visibility="hidden"/>
  1234. <col ref="cdtblnm" visibility="hidden"/>
  1235. <col ref="codeflag" visibility="hidden"/>
  1236. <col ref="sortkey" visibility="hidden"/>
  1237. <col ref="fixtypenm" visibility="hidden"/>
  1238. <col ref="conditemflag" visibility="hidden"/>
  1239. </datagrid>
  1240. <button id="btnselectdown" class="icon_bottom" style="left:160px; top:4px; width:26px; height:19px; ">
  1241. <caption/>
  1242. <script type="javascript" ev:event="DOMActivate">
  1243. <![CDATA[
  1244. fSelectSortKey("D");
  1245. ]]>
  1246. </script>
  1247. </button>
  1248. <button id="btnselectup" class="icon_top" style="left:133px; top:4px; width:26px; height:19px; ">
  1249. <caption/>
  1250. <script type="javascript" ev:event="DOMActivate">
  1251. <![CDATA[
  1252. fSelectSortKey("U");
  1253. ]]>
  1254. </script>
  1255. </button>
  1256. <button id="grd_selectdelete" class="btn2_letter4" style="left:68px; top:4px; width:64px; height:19px; ">
  1257. <caption>항목삭제</caption>
  1258. <script type="javascript" ev:event="DOMActivate">
  1259. <![CDATA[
  1260. misfGridIUD(grd_select, "D");
  1261. ]]>
  1262. </script>
  1263. </button>
  1264. <button id="grd_selectinsert" class="btn2_letter4" style="left:3px; top:4px; width:64px; height:19px; ">
  1265. <caption>항목추가</caption>
  1266. <script type="javascript" ev:event="DOMActivate">
  1267. <![CDATA[
  1268. grd_tblcode.refresh();
  1269. if(grd_tblcode.rows-grd_tblcode.fixedRows == 0)return;
  1270. fAddSelectColumn();
  1271. ]]>
  1272. </script>
  1273. </button>
  1274. </group>
  1275. <group id="group7" style="left:961px; top:298px; width:229px; height:440px; ">
  1276. <line id="line4" class="line_1" style="x1:1px; y1:24px; x2:227px; y2:24px; "/>
  1277. <datagrid id="grd_fixitem" nodeset="/root/main/list/fixitem/fixitemlist" caption="서식명^간호부여부" colsep="^" colwidth="207, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:1px; top:30px; width:226px; height:375px; ">
  1278. <col ref="fixtypenm"/>
  1279. <col ref="nursedeptflag" visibility="hidden"/>
  1280. </datagrid>
  1281. <input id="ipt_fixdoucnm" ref="/root/init/fixdoucnm" style="left:1px; top:411px; width:146px; height:19px; "/>
  1282. <button id="btn_docusave" class="btn4_letter4" style="left:148px; top:410px; width:80px; height:22px; ">
  1283. <caption>서식생성</caption>
  1284. <script type="javascript" ev:event="DOMActivate">
  1285. <![CDATA[
  1286. var fixdocu = ipt_fixdoucnm.value;
  1287. for (var i = grd_fixitem.fixedRows; i < grd_fixitem.rows; i++) {
  1288. if (fixdocu == grd_fixitem.valueMatrix(i, grd_fixitem.colRef("fixtypenm")) ) {
  1289. messageBox("이미 존재 하는 서식명 입니다.","I003");
  1290. return;
  1291. }
  1292. }
  1293. fCreateFixDocu(model.getValue(ipt_fixdoucnm.attribute("ref")));
  1294. ]]>
  1295. </script>
  1296. </button>
  1297. <button id="btn_docudelete" class="btn4_letter2" style="left:170px; top:1px; width:56px; height:22px; ">
  1298. <caption>삭제</caption>
  1299. <script type="javascript" ev:event="DOMActivate">
  1300. <![CDATA[
  1301. var fixtypenm = grd_fixitem.valueMatrix(grd_fixitem.row, grd_fixitem.colRef("fixtypenm"));
  1302. if(fixtypenm.length == 0){
  1303. messageBox("서식명칭을","C002");
  1304. return;
  1305. }
  1306. var save_val = messageBox(fixtypenm +" 서식내역을", "Q001");
  1307. if (save_val != "6")return;
  1308. model.setValue("/root/send/fixdocu/fixtypenm", fixtypenm);
  1309. model.setValue("/root/send/fixdocu/nursedeptflag", nursedeptflag);
  1310. submit("TXRTH01102");
  1311. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  1312. {
  1313. submit("TRRTH01103");
  1314. }
  1315. ]]>
  1316. </script>
  1317. </button>
  1318. <button id="btn_docuselect" class="btn4_letter4" style="left:34px; top:1px; width:80px; height:22px; ">
  1319. <caption>가져오기</caption>
  1320. <script type="javascript" ev:event="DOMActivate">
  1321. <![CDATA[
  1322. var fixtypenm = grd_fixitem.valueMatrix(grd_fixitem.row, grd_fixitem.colRef("fixtypenm"));
  1323. if(fixtypenm.length == 0){
  1324. messageBox("서식명칭을","C002");
  1325. return;
  1326. }
  1327. model.setValue("/root/send/fixdocu/fixtypenm", fixtypenm);
  1328. model.setValue("/root/send/fixdocu/nursedeptflag", nursedeptflag);
  1329. submit("TRRTH01104");
  1330. if(grd_docufix.rows - grd_docufix.fixedRows == 0){
  1331. messageBox("저장된 서식내역이","I004");
  1332. return;
  1333. }
  1334. misfGridInit(grd_select);
  1335. misfGridInit(grd_where);
  1336. var addRow;
  1337. for(var row = grd_docufix.fixedRows; row < grd_docufix.rows; row++){
  1338. if(grd_docufix.valueMatrix(row , grd_docufix.colRef("conditemflag")) == "1"){
  1339. misfGridIUD(grd_select, "A","N");
  1340. addRow = grd_select.rows - grd_select.fixedRows;
  1341. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemcls")));
  1342. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/itemclsnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemclsnm")));
  1343. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/fixtypenm", model.getValue(ipt_fixdoucnm.attribute("ref")));
  1344. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/conditemflag", "1");
  1345. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemcls")));
  1346. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/itemnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemnm")));
  1347. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/itemkind", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemkind")));
  1348. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/tblschema", grd_docufix.valueMatrix(row , grd_docufix.colRef("tblschema")));
  1349. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/tablenm", grd_docufix.valueMatrix(row , grd_docufix.colRef("tablenm")));
  1350. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/colnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("colnm")));
  1351. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/cdtblschema", grd_docufix.valueMatrix(row , grd_docufix.colRef("cdtblschema")));
  1352. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/cdtblnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("cdtblnm")));
  1353. model.setValue(grd_select.attribute("nodeset")+"["+(addRow)+"]/codeflag", grd_docufix.valueMatrix(row , grd_docufix.colRef("codeflag")));
  1354. }
  1355. }
  1356. for(var row = grd_docufix.fixedRows; row < grd_docufix.rows; row++){
  1357. if(grd_docufix.valueMatrix(row , grd_docufix.colRef("conditemflag")) == "2"){
  1358. misfGridIUD(grd_where, "A","N");
  1359. addRow = grd_where.rows - grd_where.fixedRows;
  1360. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemcls")));
  1361. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/fixtypenm",model.getValue(ipt_fixdoucnm.attribute("ref")));
  1362. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/conditemflag", "2");
  1363. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/itemcls", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemcls")));
  1364. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/itemnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemnm")));
  1365. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/itemkind", grd_docufix.valueMatrix(row , grd_docufix.colRef("itemkind")));
  1366. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/tblschema", grd_docufix.valueMatrix(row , grd_docufix.colRef("tblschema")));
  1367. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/tablenm", grd_docufix.valueMatrix(row , grd_docufix.colRef("tablenm")));
  1368. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/colnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("colnm")));
  1369. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/cdtblschema", grd_docufix.valueMatrix(row , grd_docufix.colRef("cdtblschema")));
  1370. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/cdtblnm", grd_docufix.valueMatrix(row , grd_docufix.colRef("cdtblnm")));
  1371. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/codeflag", grd_docufix.valueMatrix(row , grd_docufix.colRef("codeflag")));
  1372. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/operator", grd_docufix.valueMatrix(row , grd_docufix.colRef("operator")));
  1373. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/conector", grd_docufix.valueMatrix(row , grd_docufix.colRef("conector")));
  1374. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/condvalu1", grd_docufix.valueMatrix(row , grd_docufix.colRef("condvalu1")));
  1375. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/condvalu2", grd_docufix.valueMatrix(row , grd_docufix.colRef("condvalu2")));
  1376. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/condvalu1nm", grd_docufix.valueMatrix(row , grd_docufix.colRef("condvalu1nm")));
  1377. model.setValue(grd_where.attribute("nodeset")+"["+(addRow)+"]/condvalu2nm", grd_docufix.valueMatrix(row , grd_docufix.colRef("condvalu2nm")));
  1378. }
  1379. }
  1380. for (var z = grd_where.fixedRows; z < grd_where.rows; z++) {
  1381. if (nursedeptflag == "Y" &&
  1382. grd_where.valueMatrix(z, grd_where.colRef("tblschema")) == "MIS" &&
  1383. grd_where.valueMatrix(z, grd_where.colRef("tablenm")) == "RPBVEMPC" &&
  1384. grd_where.valueMatrix(z, grd_where.colRef("colnm")) == "DEPTCD" &&
  1385. grd_where.valueMatrix(z, grd_where.colRef("condvalu1")) == model.getValue("/root/main/list/fixitem/emplnodeptlist/deptcd")) {
  1386. grd_where.cellAttribute("disabled",z, grd_where.colRef("itemnm")) = "true";
  1387. grd_where.cellAttribute("disabled",z, grd_where.colRef("operator")) = "true";
  1388. grd_where.cellAttribute("disabled",z, grd_where.colRef("conector")) = "true";
  1389. grd_where.cellStyle("color", z, grd_where.colRef("itemnm")) = "#ff0000";
  1390. grd_where.cellStyle("color", z, grd_where.colRef("operator")) = "#ff0000";
  1391. grd_where.cellStyle("color", z, grd_where.colRef("condvalu1nm")) = "#ff0000";
  1392. grd_where.cellStyle("color", z, grd_where.colRef("condvalu2nm")) = "#ff0000";
  1393. grd_where.cellStyle("color", z, grd_where.colRef("conector")) = "#ff0000";
  1394. }
  1395. else {
  1396. grd_where.cellAttribute("disabled",z, grd_where.colRef("itemnm")) = "false";
  1397. grd_where.cellAttribute("disabled",z, grd_where.colRef("operator")) = "false";
  1398. grd_where.cellAttribute("disabled",z, grd_where.colRef("conector")) = "false";
  1399. grd_where.cellStyle("color", z, grd_where.colRef("itemnm")) = "";
  1400. grd_where.cellStyle("color", z, grd_where.colRef("operator")) = "";
  1401. grd_where.cellStyle("color", z, grd_where.colRef("condvalu1nm")) = "";
  1402. grd_where.cellStyle("color", z, grd_where.colRef("condvalu2nm")) = "";
  1403. grd_where.cellStyle("color", z, grd_where.colRef("conector")) = "";
  1404. }
  1405. }
  1406. ]]>
  1407. </script>
  1408. </button>
  1409. <button id="button1" class="btn4_letter2" style="left:114px; top:1px; width:56px; height:22px; ">
  1410. <caption>수정</caption>
  1411. <script type="javascript" ev:event="DOMActivate">
  1412. <![CDATA[
  1413. var fixtypenm = grd_fixitem.valueMatrix(grd_fixitem.row, grd_fixitem.colRef("fixtypenm"));
  1414. if(fixtypenm.length == 0){
  1415. messageBox("서식명칭을","C002");
  1416. return;
  1417. }
  1418. if(grd_where.rows - grd_where.fixedRows == 0){
  1419. messageBox("조건항목이 입력되지 않았습니다. 수정","E001");
  1420. return;
  1421. }
  1422. if(grd_select.rows - grd_select.fixedRows == 0){
  1423. messageBox("검색항목이 입력되지 않았습니다. 수정","E001");
  1424. return;
  1425. }
  1426. model.setValue("/root/send/fixdocu/fixtypenm", fixtypenm);
  1427. model.setValue("/root/send/fixdocu/nursedeptflag", nursedeptflag);
  1428. submit("TXRTH01102");
  1429. fCreateFixDocu(fixtypenm);
  1430. ]]>
  1431. </script>
  1432. </button>
  1433. </group>
  1434. </group>
  1435. </xhtml:body>
  1436. </xhtml:html>