SMRAD02000_구매검수자료일괄기표.xrw 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  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. <grnt>
  11. <grntlist2>
  12. <acctid/>
  13. <kydate/>
  14. <kyseq/>
  15. <custcode/>
  16. <custnm/>
  17. <rmrk/>
  18. <ibgoymd/>
  19. <ibgoseq/>
  20. <yejungymd/>
  21. <keumak/>
  22. <gipyoymd/>
  23. <flag/>
  24. <gipyoseq/>
  25. <gubun/>
  26. <ymdwrite/>
  27. <fromdd/>
  28. <kyno/>
  29. <seqwrite/>
  30. <maxseq/>
  31. <ymdaction/>
  32. </grntlist2>
  33. </grnt>
  34. </main>
  35. <send>
  36. <paydedu>
  37. <instcd/>
  38. <fromdd/>
  39. <todd/>
  40. <kyno/>
  41. <chk/>
  42. </paydedu>
  43. <save>
  44. <grntlist1/>
  45. </save>
  46. </send>
  47. <seqinfo>
  48. <seqlist>
  49. <flagseq/>
  50. </seqlist>
  51. </seqinfo>
  52. <hidden>
  53. <item>
  54. <pumno/>
  55. </item>
  56. </hidden>
  57. <maxseq/>
  58. </root>
  59. </instance>
  60. <script type="javascript" ev:event="xforms-ready">
  61. <![CDATA[
  62. initialize();
  63. ]]>
  64. </script>
  65. <submission id="TRRAD02001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/paydedu" resultref="/root/main/grnt"/>
  66. <submission id="TRRAD02002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/paydedu" resultref="/root/seqinfo"/>
  67. <submission id="TXRAD02001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden"/>
  68. </model>
  69. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  70. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  71. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  72. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  73. <script type="javascript" src="../../../mis/paybaseinfomngtweb/js/RWC001.js"/>
  74. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  75. <script type="javascript" src="../../../mis/paybaseinfomngtweb/js/RWC001.js"/>
  76. <script type="javascript" src="../../../mis/miscommonweb/js/RAC001.js"/>
  77. <script type="javascript" src="../../../mis/acntcommonweb/js/RAD001.js"/>
  78. <script type="javascript">
  79. <![CDATA[
  80. function fOpenPopupDeptHelp(pControl, pInstance)
  81. {
  82. misfOpenPopUpList("02", pControl, "", pInstance);
  83. model.refresh();
  84. }
  85. function fOpenPopupHelp(pHelper, pControl, pInstance, pCdgrupid, pValueControl, pNodeName)
  86. {
  87. misfOpenPopUpList(pHelper, pControl, pCdgrupid, pInstance, pValueControl, pNodeName);
  88. model.refresh();
  89. }
  90. function initialize(){
  91. misfGridInit(grd_grntpsn1);
  92. misfMsterDetailSet(grd_grntpsn1,null, "TRRAD02001" ,"Y");
  93. var curdate = getCurrentDate();
  94. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  95. var deptcd = getUserInfo("dutplcecd");
  96. var deptnm = getUserInfo("dutplcenm");
  97. model.setValue("/root/send/paydedu/fromdd", curdate); //기표일자 setting
  98. //var emplno = getUserInfo("userid");
  99. //var emplnm = getUserInfo("usernm");
  100. misfComboInstCdListMulti("cmb_instcd",getCurrentDate(),"","N"); //기관코드 setting
  101. //misfComboComCdListMulti("R0001","grd_grntpsn1.bankcode");
  102. //2011.04.29 박준범 - 의미 없는 듯해서 comment처리
  103. //model.setFocus("input1");
  104. model.setValue("/root/send/paydedu/chk", "1");
  105. misfMsterDetailRetrieve(); //조회 및 그리드 setting
  106. //2011.05.02 박준범 - maxseq를 setting한다.
  107. if( grd_grntpsn1.rows > 1 ){
  108. model.setValue("/root/maxseq", grd_grntpsn1.valueMatrix(1, grd_grntpsn1.colRef("maxseq")) );
  109. } else {
  110. model.setValue("/root/maxseq", "0");
  111. }
  112. //2011.04.28 박준범 - ymdaction 이 null 인 경우, 기표시 error 가 발생하므로 사전에 data를 구분하기 위해
  113. // 빨강색이 되도록 한다.
  114. for(var i = 0 ; i < grd_grntpsn1.rows ; i++)
  115. {
  116. if(grd_grntpsn1.valueMatrix(i, grd_grntpsn1.colRef("ymdaction")) == ""){
  117. grd_grntpsn1.rowStyle(i, "all", "color") = "red";
  118. grd_grntpsn1.rowStyle(i, "all", "font-weight") = "bold";
  119. cpt_alert.visible = true;
  120. }else{
  121. grd_grntpsn1.rowStyle(i, "all", "color") = "";
  122. grd_grntpsn1.rowStyle(i, "all", "font-weight") = "";
  123. }
  124. }
  125. /* 2011.05.02 박준범 - gipyoseq는 그리드 조회시 가져오므로, 중복해서 가져올 필요가 없음
  126. submit("TRRAD02002"); //SELECT nvl(max(gipyoseq), 0) flagseq
  127. //FROM MIS.RADHTRGM a
  128. // WHERE a.instcd = #%dutplceinstcd# AND a.ymdwrite = #fromdd#
  129. */
  130. grd_grntpsn1.row = 0;
  131. //2011.05.02 박준범 - 불필요해 보여서 comment처리
  132. //model.setFocus("input1");
  133. //btn_search.dispatch("DOMActivate");
  134. //model.refresh();
  135. }
  136. function Popup(){
  137. var ymd = model.getValue("/root/main/grnt/grntlist1/junpyodate");
  138. var mdeptcd = model.getValue("/root/main/grnt/grntlist1/makedeptcd");
  139. var ydeptcd = model.getValue("/root/main/grnt/grntlist1/yogudeptcd");
  140. if (ymd != "" && mdeptcd != "" && ydeptcd != ""){
  141. model.setValue("/root/popdata/junpyodate", ymd);
  142. model.setValue("/root/popdata/makedeptcd", mdeptcd);
  143. model.setValue("/root/popdata/yogudeptcd", ydeptcd);
  144. model.setValue("/root/popdata/pumgubun", "3");
  145. modal("SPRAD00400", "", "", "", "SPRAD00400","/root/popdata","/root/popdata");
  146. }
  147. }
  148. // gipyoseq setting
  149. function Setseq(){
  150. //2011.05.02 박준범 - seq 생성하는 것 새로 생성
  151. var curseq; //현재의 maxseq를 담기위한 변수
  152. if( grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("flag")) == "Y" ) {
  153. curseq = parseInt(model.getValue("/root/maxseq")) + 1;
  154. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/gipyoseq", curseq);
  155. } else {
  156. curseq = parseInt(model.getValue("/root/maxseq")) - 1;
  157. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/gipyoseq", "");
  158. }
  159. model.setValue("/root/maxseq", curseq);
  160. //2011.05.04 박준범 - 속도 향상을 위해 model.refresh 대신 model.refreshpart 사용하여 구현함으로 아래 추가
  161. model.refreshpart("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/gipyoseq");
  162. model.refreshpart("/root/maxseq");
  163. //2011.05.02 박준범
  164. // 이미 기표된 것을 check 해지 후 저장하지 않은 상태에서 다시 check할 경우, row가 수정된 것으로 인식되는데,
  165. // 이 경우는 row가 수정된 것으로 인식되지 않도록 row의 status 를 강제 조정한다.
  166. //2011.05.04 박준범
  167. // 기표가 안된 것인데 check했다가 check를 해지했을 경우 row가 수정된 것으로 인식하므로
  168. // 이 경우도 row가 수정된 것으로 인식하시 않도록 row의 status를 강제 조정한다.
  169. if( ( grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("flag")) == "Y" &&
  170. grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("gipyoymd")) != "" ) ||
  171. ( grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("flag")) == "N" &&
  172. grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("gipyoymd")) == "" ) ) {
  173. grd_grntpsn1.rowStatus(grd_grntpsn1.row) = 0;
  174. }
  175. /*
  176. var flag = model.getValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/flag");
  177. if (flag == "Y"){
  178. var ymd = model.getValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/ymdwrite");
  179. var maxseq = 0;
  180. var maxseq1 = 0;
  181. var maxseq2 = 0;
  182. var ymd1 = "";
  183. -- for (var i = 1; i < grd_grntpsn1.rows; i++){
  184. -- ymd1 = model.getValue("/root/main/grnt/grntlist2[" + i + "]/ymdwrite");
  185. -- if (ymd == ymd1){
  186. -- maxseq1 = model.getValue("/root/main/grnt/grntlist2[" + i + "]/maxseq");
  187. -- if (isNaN(maxseq1)){
  188. -- maxseq1 = 0;
  189. -- }
  190. -- if (parseInt(maxseq1) > parseInt(maxseq)){
  191. -- maxseq = maxseq1;
  192. -- }
  193. -- }
  194. -- }
  195. -- if (maxseq == 0){
  196. -- maxseq = 1;
  197. -- }
  198. for (var i = 1; i < grd_grntpsn1.rows; i++){
  199. ymd1 = model.getValue("/root/main/grnt/grntlist2[" + i + "]/ymdwrite");
  200. //if (ymd == ymd1){
  201. maxseq1 = model.getValue("/root/main/grnt/grntlist2[" + i + "]/gipyoseq");
  202. if (isNaN(maxseq1)){
  203. maxseq1 = 0;
  204. }
  205. if (parseInt(maxseq1) > parseInt(maxseq)){
  206. maxseq = maxseq1;
  207. }
  208. //}
  209. }
  210. maxseq = model.getValue("/root/seqinfo/seqlist/flagseq");
  211. maxseq = parseInt(maxseq) + 1;
  212. model.setValue("/root/seqinfo/seqlist/flagseq", maxseq);
  213. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/gipyoseq", maxseq);
  214. grd_grntpsn1.rowStatus(grd_grntpsn1.row) = 2;
  215. }else{
  216. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/gipyoseq", "");
  217. if (model.getValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/seqwrite") == ""){
  218. grd_grntpsn1.rowStatus(grd_grntpsn1.row) = 0;
  219. }
  220. }
  221. */
  222. //2011.05.02 박준범 - 불필요해 보여서 comment처리
  223. //model.setFocus("input1");
  224. //2011.05.02 박준범 - 불필요해 보여서 comment처리
  225. //model.refresh();
  226. }
  227. ]]>
  228. </script>
  229. </xhtml:head>
  230. <xhtml:body>
  231. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  232. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">구매검수자료일괄기표</caption>
  233. </group>
  234. <group id="group2" scroll="auto" style="left:0px; top:38; width:1195px; height:744px; ">
  235. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1194px; height:40px; background-color:#fffbf2; border-color:#ffd799; "/>
  236. <button id="btn_search" class="btn1_letter2" style="left:1128px; top:16px; width:56px; height:22px; ">
  237. <caption>조회</caption>
  238. <script type="javascript" ev:event="DOMActivate">
  239. <![CDATA[
  240. cpt_alert.visible = false;
  241. model.setValue("/root/send/paydedu/chk", "2");
  242. misfMsterDetailRetrieve();
  243. //2011.05.02 박준범 - maxseq를 setting한다.
  244. if( grd_grntpsn1.rows > 1 ){
  245. model.setValue("/root/maxseq", model.getValue("/root/main/grnt/grntlist2[1]/maxseq") );
  246. } else {
  247. model.setValue("/root/maxseq", "0");
  248. }
  249. //2011.04.28 박준범 - ymdaction 이 null 인 경우, 기표시 error 가 발생하므로 사전에 data를 구분하기 위해
  250. // 빨강색이 되도록 한다.
  251. for(var i = 0 ; i < grd_grntpsn1.rows ; i++)
  252. {
  253. if(grd_grntpsn1.valueMatrix(i, grd_grntpsn1.colRef("ymdaction")) == ""){
  254. grd_grntpsn1.rowStyle(i, "all", "color") = "red";
  255. grd_grntpsn1.rowStyle(i, "all", "font-weight") = "bold";
  256. cpt_alert.visible = true;
  257. } else {
  258. grd_grntpsn1.rowStyle(i, "all", "color") = "";
  259. grd_grntpsn1.rowStyle(i, "all", "font-weight") = "";
  260. }
  261. }
  262. /* 2011.05.02 박준범 - gipyoseq는 그리드 조회시 가져오므로, 중복해서 가져올 필요가 없음
  263. submit("TRRAD02002")
  264. */
  265. grd_grntpsn1.row = 0;
  266. //2011.05.02 박준범 - 불필요해 보여서 comment처리
  267. //model.setFocus("input1");
  268. ]]>
  269. </script>
  270. </button>
  271. <line id="line13" class="line_4" visibility="hidden" style="x1:1121px; y1:16px; x2:1121px; y2:38px; "/>
  272. <line id="line1" class="line_1" style="x1:0px; y1:71px; x2:1192px; y2:71px; "/>
  273. <select1 id="cmb_instcd" ref="/root/send/paydedu/instcd" class="combo_s_essential" disabled="true" appearance="minimal" style="left:78px; top:17px; width:115px; height:19px; ">
  274. <choices>
  275. <itemset>
  276. <label/>
  277. <value/>
  278. </itemset>
  279. </choices>
  280. </select1>
  281. <caption id="caption2" class="search_name" style="left:12px; top:18px; width:61px; height:17px; ">기관 :</caption>
  282. <datagrid id="grd_grntpsn1" nodeset="/root/main/grnt/grntlist2" caption="계정^계약일자^계약일자^거래처^거래처^계약건명^검수일자^검수일자^예정일자^금액^기표일자^여부^순번^caption4^caption5^caption1^caption2^caption3^caption6^caption7" colsep="^" colwidth="81, 91, 48, 43, 120, 243, 100, 33, 114, 100, 100, 33, 48, 100, 100, 100, 100, 100, 100, 100" dataheight="25" ellipsis="true" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" style="left:0px; top:77px; width:1192px; height:665px; ">
  283. <col disabled="true" ref="acctid" style="text-align:center; "/>
  284. <col ref="kydate" format="yyyy-mm-dd" style="text-align:center; "/>
  285. <col ref="kyseq" style="text-align:center; "/>
  286. <col ref="custcode" style="text-align:center; "/>
  287. <col ref="custnm"/>
  288. <col ref="rmrk"/>
  289. <col ref="ibgoymd" format="yyyy-mm-dd" style="text-align:center; "/>
  290. <col ref="ibgoseq" style="text-align:center; "/>
  291. <col ref="yejungymd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  292. <col ref="keumak" type="input" format="(-)#,###" style="text-align:right; "/>
  293. <col ref="gipyoymd" format="yyyy-mm-dd" style="text-align:center; "/>
  294. <col checkvalue="Y,N" ref="flag" type="checkbox" style="text-align:center; "/>
  295. <col ref="gipyoseq" style="text-align:center; "/>
  296. <col ref="gubun" visibility="hidden"/>
  297. <col ref="ymdwrite" visibility="hidden"/>
  298. <col ref="fromdd" visibility="hidden"/>
  299. <col ref="kyno" visibility="hidden"/>
  300. <col ref="seqwrite" visibility="hidden"/>
  301. <col ref="maxseq" visibility="hidden"/>
  302. <col ref="ymdaction" visibility="hidden"/>
  303. <script type="javascript" ev:event="xforms-value-changed">
  304. <![CDATA[
  305. if (grd_grntpsn1.colAttribute(grd_grntpsn1.col,"ref") == "flag"){
  306. //2011.04.29 박준범
  307. // 그리드의 row중 ymdaction 컬럼이 null 인 것은 기표시 Error가 발생하므로,
  308. // 기표대상으로 선택되지 않도록 처리하고, Message를 발생시켜 정보통신실에서 처리하도록 한다.
  309. if( grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("ymdaction")) == "" ) {
  310. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/flag", "N");
  311. //2011.05.04 박준범- if절 하단의 model.refresh() 대신 속도 향상을 refreshpart 로 변경
  312. model.refreshpart("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/flag");
  313. grd_grntpsn1.rowStatus(grd_grntpsn1.row) = 0;
  314. messageBox("기표불가한 자료입니다. 정보통신실로 연락하셔서 조치 후 기표 가능합니다.", "E999", "");
  315. return;
  316. }
  317. Setseq(); //gipyoseq setting
  318. /*
  319. //2011.05.02 박준범
  320. // 이미 기표된 것을 check 해지 후 저장하지 않은 상태에서 다시 check할 경우, row가 수정된 것으로 인식되는데,
  321. // 이 경우는 row가 수정된 것으로 인식되지 않도록 row의 status 를 강제 조정한다.
  322. //2011.05.04 박준범
  323. // 기표가 안된 것인데 check했다가 check를 해지했을 경우 row가 수정된 것으로 인식하므로
  324. // 이 경우도 row가 수정된 것으로 인식하시 않도록 row의 status를 강제 조정한다.
  325. if( ( grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("flag")) == "Y" &&
  326. grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("gipyoymd")) != "" ) ||
  327. ( grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("flag")) == "N" &&
  328. grd_grntpsn1.valueMatrix(grd_grntpsn1.row, grd_grntpsn1.colRef("gipyoymd")) == "" ) ) {
  329. grd_grntpsn1.rowStatus(grd_grntpsn1.row) = 0;
  330. }
  331. */
  332. }
  333. //2011.05.02 박준범 - 불필요해 보여서 comment처리
  334. //model.setFocus("input1");
  335. //2011.05.04 박준범 - 속도향상을 위해 위의 if 절 안에 refreshpart 로 변경구현했음
  336. //model.refresh();
  337. /*
  338. if (grd_grntpsn1.colAttribute(grd_grntpsn1.col,"ref") == "flagwrite" && model.getValue("/root/send/paydedu/newgb") == "I") {
  339. var flagwrite = model.getValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/flagwrite");
  340. if (flagwrite == "Y"){
  341. var seq = model.getValue("/root/send/paydedu/flagseq");
  342. if (isNaN(seq) || seq == null || seq == ""){
  343. seq = 0;
  344. }
  345. seq = parseInt(seq) + 1;
  346. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/flagseq", seq);
  347. model.setValue("/root/send/paydedu/flagseq", seq);
  348. }else{
  349. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/flagseq", "");
  350. model.setValue("/root/main/grnt/grntlist2[" + grd_grntpsn1.row + "]/ymdgive", "");
  351. }
  352. model.refresh();
  353. }
  354. */
  355. ]]>
  356. </script>
  357. <script type="javascript" ev:event="onaftersort">
  358. <![CDATA[
  359. grd_grntpsn1.gridToInstance();
  360. ]]>
  361. </script>
  362. </datagrid>
  363. <input id="ipt_unsldd" ref="/root/send/paydedu/fromdd" class="input_s_essential" navindex="1" inputtype="date" style="left:320px; top:19px; width:115px; height:19px; text-align:center; ">
  364. <script type="javascript" ev:event="xforms-value-changed">
  365. <![CDATA[
  366. btn_search.dispatch("DOMActivate");
  367. /*
  368. for (var i = 1; i < grd_grntpsn1.rows;i++){
  369. model.setValue("/root/main/grnt/grntlist2[" + i + "]/junpyodate", model.getValue("/root/main/grnt/grntlist1/junpyodate"));
  370. }
  371. model.refresh();
  372. */
  373. ]]>
  374. </script>
  375. </input>
  376. <caption id="caption5" class="search_name" style="left:230px; top:18px; width:86px; height:17px; ">기표일자 :</caption>
  377. <caption id="caption1" class="tit_2" style="left:5px; top:56px; width:131px; height:14px; ">구매검수내역</caption>
  378. <input id="input1" ref="/root/send/paydedu/kyno" style="left:725px; top:20px; width:130px; height:19px; ">
  379. <script type="javascript" ev:event="xforms-value-changed">
  380. <![CDATA[
  381. //2011.06.02 박준범 - 검색어 부분에 값이 있을 경우에는 아래 findrow 작업을 하도록 수정
  382. // 값이 없는 경우, findrow를 실행하면 첫 row를 찾아 check하는 오류 방지
  383. if (input1.label == "") return;
  384. var kyno = model.getValue("/root/send/paydedu/kyno");
  385. var irow = grd_grntpsn1.findRow(kyno, 1, grd_grntpsn1.colRef("kyno"), false, false);
  386. if (irow > 0){
  387. grd_grntpsn1.row = irow;
  388. grd_grntpsn1.topRow = irow;
  389. if (model.getValue("/root/main/grnt/grntlist2[" + irow + "]/flag") == "N"){
  390. //2011.05.04 박준범
  391. // 그리드의 row중 ymdaction 컬럼이 null 인 것은 기표시 Error가 발생하므로,
  392. // 기표대상으로 선택되지 않도록 처리하고, Message를 발생시켜 정보통신실에서 처리하도록 한다.
  393. if( grd_grntpsn1.valueMatrix(irow, grd_grntpsn1.colRef("ymdaction")) == "" ) {
  394. messageBox("기표불가한 자료입니다. 정보통신실로 연락하셔서 조치 후 기표 가능합니다.", "E999", "");
  395. return;
  396. }
  397. model.setValue("/root/main/grnt/grntlist2[" + irow + "]/flag", "Y");
  398. //2011.05.04 박준범 - 속도향상을 위해 아래 model.refresh 대신 refreshpart 로 구현
  399. model.refreshpart("/root/main/grnt/grntlist2[" + irow + "]/flag");
  400. grd_grntpsn1.rowStatus(irow) = 2;
  401. Setseq(); //gipyoseq setting
  402. }
  403. }
  404. //2011.05.02 박준범 - 불필요해 보여서 comment처리
  405. //model.setFocus("input1");
  406. //2011.05.04 박준범 - 속도 향상을 위해 refresh 대신 상다의 if절 안에 refreshpart 로 구현
  407. //model.refresh();
  408. ]]>
  409. </script>
  410. <script type="javascript" ev:event="onkeyup">
  411. <![CDATA[
  412. /* 2011.05.04 박준범 - 입력 후 enter key를 누르면 다음 입력을 용이하게 하기위해 text가 select 되도록 */
  413. if(event.keyCode == "13" ) {
  414. input1.selBegin = 0;
  415. }
  416. inputEnterKey("input1", "xforms-value-changed");
  417. ]]>
  418. </script>
  419. </input>
  420. <input id="input2" ref="/root/send/paydedu/chk" visibility="hidden" style="left:515px; top:20px; width:100px; height:20px; "/>
  421. <output id="output1" ref="/root/seqinfo/seqlist/flagseq" style="left:885px; top:20px; width:40px; height:19px; font-weight:bold; text-align:center; "/>
  422. <caption id="caption4" class="search_name" style="left:645px; top:20px; width:75px; height:22px; ">검색어 :</caption>
  423. <caption id="cpt_alert" visibility="hidden" style="left:480px; top:53px; width:633px; height:20px; font-weight:bold; color:#ff0000; text-align:right; ">※ 기표불가 자료(빨강색)가 포함되었습니다. 정보통신실로 연락하셔서 조치 후 기표가능합니다.</caption>
  424. </group>
  425. <group id="grp_btn" scroll="auto" style="left:0px; top:12; width:1195px; height:27px; ">
  426. <button id="button36" class="btn4_letter2" style="left:1139px; top:3; width:56px; height:22px; ">
  427. <caption>저장</caption>
  428. <script type="javascript" ev:event="DOMActivate">
  429. <![CDATA[
  430. /*
  431. for (var i = 1; i < grd_grntpsn1.rows; i++){
  432. if (model.getValue("/root/main/grnt/grntlist2[" + i + "]/flagseq") == ""){
  433. messageBox(i + "번째 지출번호는 필수 입력항목입니다.", "E999", "");
  434. return;
  435. }
  436. }
  437. */
  438. if (misfSave("TXRAD02001")){
  439. /*
  440. model.setValue("/root/send/paydedu/chk", "1");
  441. misfMsterDetailRetrieve();
  442. grd_grntpsn1.row = 0;
  443. model.setFocus("input1");
  444. */
  445. //2011.05.02 박준범 - 저장 후 다시 조회 루틴을 실행. 그렇지 않으면 삭제,저장 후 기표일자가 남아있어
  446. // 다시 check 하여 저장하면 기존에 그리드에 남아있던 일자로 전표가 또 발생하게 된다.
  447. btn_search.dispatch("DOMActivate");
  448. }
  449. ]]>
  450. </script>
  451. </button>
  452. <button id="button35" class="btn4_letter3" visibility="hidden" style="left:1069px; top:3; width:68px; height:22px; ">
  453. <caption>초기화</caption>
  454. <script type="javascript" ev:event="DOMActivate">
  455. <![CDATA[
  456. model.resetInstanceNode("/root/main/grnt/grntlist1");
  457. group3.disabled = false;
  458. grd_grntpsn1.disabled = false;
  459. ipt_unsldd.disabled = false;
  460. ipt_costcntrdeptcd.disabled = false;
  461. combo1.disabled = false;
  462. input4.disabled = false;
  463. input14.disabled = true;
  464. input15.disabled = true;
  465. input10.disabled = true;
  466. model.setValue("/root/send/paydedu/pumno1", "");
  467. model.setValue("/root/send/paydedu/pumno2", "");
  468. initialize();
  469. ]]>
  470. </script>
  471. </button>
  472. <line id="line9" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  473. <button id="button3" class="btn2_letter3" visibility="hidden" style="left:1010px; top:5px; width:53px; height:19px; ">
  474. <caption>출력</caption>
  475. <script type="javascript" ev:event="DOMActivate">
  476. <![CDATA[
  477. if( messageBox("출력하시겠습니까" , "Q99" ) == 6 ){
  478. exeReportPreview("RPRAD01501", "XMLSTR" , "" , "" , "true" , "", "", "", "", "true","","","","","","","","false");
  479. }
  480. ]]>
  481. </script>
  482. </button>
  483. </group>
  484. </xhtml:body>
  485. </xhtml:html>