SPZHA20210_다중담당결재.xfdl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPZHA20210" position="absolute 0 0 250 296" titletext="멀티 담당결재" class="frm_POP" oninit="SPZHA20210_oninit" onload="SPZHA20210_onload">
  5. <Layouts>
  6. <Layout>
  7. <Button position="absolute 128 42 184 62" id="btn_aprv1" class="btn4" text="결재" onclick="btn_aprv1_onclick"/>
  8. <Button position="absolute 188 42 244 62" id="button1" class="btn4" text="취소" onclick="button1_onclick"/>
  9. <Static id="cpt_title" text="멀티 담당결제" class="sta_POP_title" position="absolute 12 8 217 28" transparenthittest="true"/>
  10. <Button id="btn_close" taborder="1" onclick="btn_close_onclick" class="btn_POP_cls" position="absolute 224 12 238 25"/>
  11. <Div id="div_aprv1" taborder="2" position="absolute 261 65 491 284" visible="false">
  12. <Layouts>
  13. <Layout>
  14. <Static id="Static00" text="총괄 전달사항" position="absolute 0 0 112 20" class="tit_2" anchor="default"/>
  15. <Static id="Static01" text="내용" position="absolute 0 22 44 219" class="cell_1" anchor="default"/>
  16. <Shape id="line10" type="rectangle" class="line_1" position="absolute 0 18 230 22" style="strokepen:1 solid #33bbbbff;" anchor="default"/>
  17. <TextArea id="TextArea00" taborder="1" position="absolute 45 22 230 219" anchor="default" wordwrap="char"/>
  18. </Layout>
  19. </Layouts>
  20. </Div>
  21. <Div id="div_aprv" taborder="3" position="absolute 10 65 240 284">
  22. <Layouts>
  23. <Layout>
  24. <Calendar id="ipt_eststartdd_a" taborder="0" position="absolute 90 1 230 21" mask="yyyy-mm-dd" anchor="default"/>
  25. <Calendar id="ipt_estenddd_a" taborder="1" position="absolute 90 26 230 46" mask="yyyy-mm-dd" anchor="default" onchanged="div_aprv_ipt_estenddd_a_onchanged" ontextchanged="div_aprv_ipt_estenddd_a_ontextchanged"/>
  26. <Static id="caption14" text="착수예정일자" class="cell_1" position="absolute 0 0 90 23" anchor="default"/>
  27. <Static id="caption15" text="완료예정일자" class="cell_1" position="absolute 0 25 90 48" anchor="default"/>
  28. <Button id="btn_prgmradd" taborder="2" text="추가" class="btn2" position="absolute 143 57 185 77" anchor="default" onclick="div_aprv_btn_prgmradd_onclick"/>
  29. <Grid id="grd_prgmr" taborder="3" binddataset="ds_main_prgmrinfo" useinputpanel="false" autofittype="col" position="absolute 0 79 230 219" anchor="default" selecttype="multirow">
  30. <Formats>
  31. <Format id="default">
  32. <Columns>
  33. <Column size="24"/>
  34. <Column size="191"/>
  35. <Column size="0"/>
  36. <Column size="0"/>
  37. </Columns>
  38. <Rows>
  39. <Row size="24" band="head"/>
  40. <Row size="24"/>
  41. </Rows>
  42. <Band id="head">
  43. <Cell autosizecol="limitmax"/>
  44. <Cell col="1" text="개발자목록"/>
  45. <Cell col="2" text="reqno"/>
  46. <Cell col="3" text="userid"/>
  47. </Band>
  48. <Band id="body">
  49. <Cell celltype="head" autosizecol="limitmax"/>
  50. <Cell col="1" text="bind:usernm"/>
  51. <Cell col="2" text="bind:userid"/>
  52. <Cell col="3" text="bind:reqno"/>
  53. </Band>
  54. </Format>
  55. </Formats>
  56. </Grid>
  57. <Button id="btn_prgmrdel" taborder="4" text="삭제" class="btn2" position="absolute 188 57 230 77" anchor="default" onclick="div_aprv_btn_prgmrdel_onclick"/>
  58. <Edit id="ipt_usernm" taborder="5" visible="false" position="absolute 0 57 70 77" anchor="default"/>
  59. </Layout>
  60. </Layouts>
  61. </Div>
  62. </Layout>
  63. </Layouts>
  64. <Objects>
  65. <Dataset id="ds_aprvinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  66. <ColumnInfo>
  67. <Column id="eststartdd" type="STRING" size="256"/>
  68. <Column id="estenddd" type="STRING" size="256"/>
  69. <Column id="aprvmsg1" type="STRING" size="256"/>
  70. </ColumnInfo>
  71. <Rows>
  72. <Row/>
  73. </Rows>
  74. </Dataset>
  75. <Dataset id="ds_send_save" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  76. <ColumnInfo>
  77. <Column id="reqno" type="STRING" size="256"/>
  78. <Column id="gubun" type="STRING" size="256"/>
  79. <Column id="eststartdd" type="STRING" size="256"/>
  80. <Column id="estenddd" type="STRING" size="256"/>
  81. <Column id="aprvmsg1" type="STRING" size="256"/>
  82. </ColumnInfo>
  83. <Rows>
  84. <Row>
  85. <Col id="reqno"/>
  86. <Col id="gubun"/>
  87. <Col id="eststartdd"/>
  88. <Col id="estenddd"/>
  89. </Row>
  90. </Rows>
  91. </Dataset>
  92. <Dataset id="ds_hidden_prgmrinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  93. <ColumnInfo>
  94. <Column id="reqno" type="STRING" size="256" sumtext="요청번호"/>
  95. <Column id="userid" type="STRING" size="256" sumtext="요청번호"/>
  96. <Column id="usernm" type="STRING" size="256" sumtext="요청번호"/>
  97. </ColumnInfo>
  98. </Dataset>
  99. <Dataset id="ds_main_prgmrinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  100. <ColumnInfo>
  101. <Column id="reqno" type="STRING" size="256" sumtext="요청번호"/>
  102. <Column id="userid" type="STRING" size="256" sumtext="요청번호"/>
  103. <Column id="usernm" type="STRING" size="256" sumtext="요청번호"/>
  104. </ColumnInfo>
  105. </Dataset>
  106. <Dataset id="ds_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  107. </Objects>
  108. <Bind>
  109. <BindItem id="item0" compid="div_aprv.ipt_eststartdd_a" propid="value" datasetid="ds_aprvinfo" columnid="eststartdd"/>
  110. <BindItem id="item1" compid="div_aprv.ipt_estenddd_a" propid="value" datasetid="ds_aprvinfo" columnid="estenddd"/>
  111. <BindItem id="item2" compid="div_aprv1.TextArea00" propid="value" datasetid="ds_aprvinfo" columnid="aprvmsg1"/>
  112. </Bind>
  113. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  114. * System Name :
  115. * Job Name :
  116. * Creator :
  117. * Make Date : 2016-01-07
  118. * Description :
  119. *---------------------------------------------------------------------------------------
  120. * Modify Date Modifier Modify Description
  121. *---------------------------------------------------------------------------------------
  122. * 2016-01-07 Live Converter TF->XP
  123. *
  124. *---------------------------------------------------------------------------------------
  125. ****************************************************************************************/
  126. include "com_commonxp::comm_main.xjs";
  127. include "mis_miscommonxp::MIS.xjs";
  128. function SPZHA20210_oninit(obj:Form, e:InitEventInfo)
  129. {
  130. frmf_initForm(obj);
  131. }
  132. function SPZHA20210_onload(obj:Form, e:LoadEventInfo)
  133. {
  134. var gubun = "";
  135. try {
  136. gubun = arg_ds_send_param.getColumn(0, "gubun");
  137. ds_send_save.setColumn(0, "reqno", arg_ds_send_param.getColumn(0, "reqno"));
  138. ds_send_save.setColumn(0, "gubun", gubun);
  139. } catch(e) {}
  140. if(gubun == "A0") {
  141. cpt_title.text = "멀티 담당결재";
  142. div_aprv1.visible = false;
  143. div_aprv.visible = true;
  144. grdf_setRowTypeIcon(div_aprv.grd_prgmr, 0);
  145. ds_aprvinfo.setColumn(0, "eststartdd", utlf_getCurrentDate());
  146. ds_aprvinfo.setColumn(0, "estenddd", utlf_getCurrentDate());
  147. } else if(gubun == "A1"){
  148. cpt_title.text = "멀티 총괄결재";
  149. div_aprv.visible = false;
  150. div_aprv1.position.x = 10;
  151. div_aprv1.visible = true;
  152. }
  153. }
  154. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  155. {
  156. this.close();
  157. }
  158. function div_aprv_ipt_estenddd_a_onchanged(obj:Calendar, e:ChangeEventInfo)
  159. {
  160. var sStartdd = ds_aprvinfo.getColumn(0, "eststartdd");
  161. var senddd = e.posttext.replace(/[- ]/g, "");
  162. senddd = senddd.substring(0, 8);
  163. if (senddd.length == 8 && sStartdd > senddd){
  164. sysf_messageBox("'완료예정일자'는 '착수예정일자' 이전일 수 ", "I004");
  165. div_aprv.ipt_estenddd_a.setFocus();
  166. }
  167. }
  168. function div_aprv_ipt_estenddd_a_ontextchanged(obj:Calendar, e:TextChangedEventInfo)
  169. {
  170. var sStartdd = ds_aprvinfo.getColumn(0, "eststartdd");
  171. var senddd = e.posttext.replace(/[- ]/g, "");
  172. if (senddd.length == 8 && sStartdd > senddd){
  173. sysf_messageBox("'완료예정일자'는 '착수예정일자' 이전일 수 ", "I004");
  174. div_aprv.ipt_estenddd_a.setFocus();
  175. }
  176. }
  177. function div_aprv_btn_prgmradd_onclick(obj:Button, e:ClickEventInfo)
  178. {
  179. ds_hidden_prgmrinfo.clearData();
  180. ds_hidden_prgmrinfo.addRow();
  181. var recv_list = "userid,usernm";
  182. misfOpenPopUpList("70", ds_hidden_prgmrinfo, "", recv_list, sysf_getUserInfo("posinstcd"), "instcd");
  183. var userid = ds_hidden_prgmrinfo.getColumn(0, "userid");
  184. var usernm = ds_hidden_prgmrinfo.getColumn(0, "usernm");
  185. if(!utlf_isNull(userid)){
  186. var findRow = ds_main_prgmrinfo.findRow("userid", userid);
  187. if(findRow > -1){
  188. sysf_messageBox("중복된 데이터가 ","I010");
  189. return false;
  190. }
  191. var row = ds_main_prgmrinfo.addRow();
  192. ds_main_prgmrinfo.setColumn(row, "userid", userid);
  193. ds_main_prgmrinfo.setColumn(row, "usernm", usernm);
  194. ds_main_prgmrinfo.setColumn(row, "reqno", ds_send_save.getColumn(0, "reqno"));
  195. }
  196. }
  197. function div_aprv_btn_prgmrdel_onclick(obj:Button, e:ClickEventInfo)
  198. {
  199. if(ds_main_prgmrinfo.rowcount <= 0){
  200. sysf_messageBox("삭제할","E013");
  201. return false;
  202. }
  203. var selectedRows = grdf_getSelectedRows(div_aprv.grd_prgmr);
  204. if(selectedRows.length < 0){
  205. return;
  206. }
  207. var arrPostion = new Array();
  208. var index = 0;
  209. for(var i = selectedRows.length - 1; i >= 0; i--) {
  210. var iRow = selectedRows[i];
  211. var status = ds_main_prgmrinfo.getRowType(iRow);
  212. if(status == 2){
  213. ds_main_prgmrinfo.deleteRow(iRow);
  214. }else{
  215. arrPostion[index++] = iRow;
  216. }
  217. }
  218. if(arrPostion.length > 0)
  219. grdf_setStatus(ds_main_prgmrinfo, "D", arrPostion);
  220. }
  221. function btn_aprv1_onclick(obj:Button, e:ClickEventInfo)
  222. {
  223. var gubun = ds_send_save.getColumn(0, "gubun");
  224. // 멀티 담당결재 일 때만 개발자 체크
  225. if(gubun == "A0") {
  226. // 개발자목록
  227. if(ds_main_prgmrinfo.rowcount <= 0){
  228. sysf_messageBox("개발자목록은 최소 1명 이상이 ","I003");
  229. return;
  230. }
  231. ds_send_save.setColumn(0, "eststartdd", ds_aprvinfo.getColumn(0, "eststartdd"));
  232. ds_send_save.setColumn(0, "estenddd", ds_aprvinfo.getColumn(0, "estenddd"));
  233. var oDsUpdate = grdf_getGridUpdateData(div_aprv.grd_prgmr);
  234. if( oDsUpdate.rowcount < 1 ) { // utlf_isNull(oDsUpdate)
  235. sysf_messageBox("저장할 데이터가 ","E013"); // 그리드에 데이터가 업데이트 되지 않으면 "입력된 데이터가 없습니다."는 메시지 출력
  236. return ;
  237. }
  238. grdf_setStatusColumn(oDsUpdate, "sm"); // 각행의 status에 rowType 값에 따라 'i', 'u', 'd'로 업데이트 시켜준다
  239. ds_savedata.copyData(oDsUpdate, true);
  240. }
  241. // 멀티 총괄결재
  242. else if(gubun == "A1") {
  243. ds_send_save.setColumn(0, "aprvmsg1", ds_aprvinfo.getColumn(0, "aprvmsg1"));
  244. }
  245. var oParam = {};
  246. oParam.id = "TXZHA20211";
  247. oParam.service = "reqprgmapp.ReqPrgm";
  248. oParam.method = "reqSetAprvmsgMulti";
  249. oParam.inds = "req=ds_send_save prgmrlist=ds_savedata";
  250. oParam.outds = "";
  251. oParam.async = false;
  252. oParam.callback = "cf_TXZHA20211";
  253. tranf_submit(oParam);
  254. }
  255. function cf_TXZHA20211(sSvcId, nErrorCode, sErrorMsg) {
  256. if(nErrorCode < 0) return;
  257. sysf_messageBox("정상적으로 ","I001");
  258. this.close();
  259. }
  260. function button1_onclick(obj:Button, e:ClickEventInfo)
  261. {
  262. this.close();
  263. }
  264. ]]></Script>
  265. </Form>
  266. </FDL>