SMZHA20501_부서장관리.xfdl 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMZHA20501" position="absolute 0 0 1238 805" titletext="부서장관리" oninit="SMZHA20501_oninit" onload="SMZHA20501_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div position="absolute 0 0 785 41" id="grp_search" class="div_SA2">
  8. <Layouts>
  9. <Layout>
  10. <Static text="결재분류" position="absolute 20 11 96 31" id="caption20" class="search_name" anchor="default"/>
  11. <Button position="absolute 703 11 767 31" id="btn_search" class="btn1" text="조회" anchor="default" onclick="grp_search_btn_search_onclick"/>
  12. <Combo position="absolute 115 11 305 31" id="cmb_search" class="combo_search" innerdataset="ds_init_cmb_search" datacolumn="cdnm" codecolumn="cdid" anchor="default"/>
  13. <Combo position="absolute 450 11 600 31" id="cmb_instcd" class="combo_search" innerdataset="ds_init_cmb_instcd" datacolumn="cdnm" codecolumn="cdid" anchor="default" onitemchanged="grp_search_cmb_instcd_onitemchanged"/>
  14. <Static text="기 관" position="absolute 380 11 440 31" id="caption4" class="search_name" anchor="default"/>
  15. </Layout>
  16. </Layouts>
  17. </Div>
  18. <Static text="부서장조건" position="absolute 0 53 87 73" align="align:center middle;" id="caption1" class="tit_2"/>
  19. <Button position="absolute 157 50 221 70" id="btn_del_cond" class="btn2" text="조건삭제" onclick="btn_del_cond_onclick"/>
  20. <Button position="absolute 90 50 154 70" id="btn_reg_menuauthuser" class="btn2" visible="true" text="조건추가" onclick="btn_reg_menuauthuser_onclick"/>
  21. <Button position="absolute 795 21 851 41" id="btn_save" class="btn4" text="저장" anchor="top right" onclick="btn_save_onclick"/>
  22. <Grid position="absolute 0 71 785 805" id="grd_cond" binddataset="ds_grd_cond" autofittype="col" anchor="all" onexpandup="grd_cond_onexpandup" autoenter="select" autoupdatetype="comboselect">
  23. <Formats>
  24. <Format id="default">
  25. <Columns>
  26. <Column size="24"/>
  27. <Column size="132"/>
  28. <Column size="183"/>
  29. <Column size="177"/>
  30. <Column size="168"/>
  31. <Column size="85"/>
  32. <Column size="0"/>
  33. <Column size="0"/>
  34. <Column size="0"/>
  35. <Column size="0"/>
  36. <Column size="0"/>
  37. <Column size="0"/>
  38. <Column size="0"/>
  39. </Columns>
  40. <Rows>
  41. <Row size="24" band="head"/>
  42. <Row size="24"/>
  43. </Rows>
  44. <Band id="head">
  45. <Cell/>
  46. <Cell col="1" text="직종"/>
  47. <Cell col="2" text="직위"/>
  48. <Cell col="3" text="사용자근무지부서"/>
  49. <Cell col="4" text="결재대상부서"/>
  50. <Cell col="5" text="결재구분"/>
  51. <Cell col="6" text="seq"/>
  52. <Cell col="7" text="deptcd"/>
  53. <Cell col="8" text="gubun"/>
  54. <Cell col="9" text="jobkindcd"/>
  55. <Cell col="10" text="jobposcd"/>
  56. <Cell col="11" text="instcd"/>
  57. <Cell col="12" text="trgtdeptcd"/>
  58. </Band>
  59. <Band id="body">
  60. <Cell celltype="head"/>
  61. <Cell col="1" displaytype="text" edittype="expand" text="bind:jobkindnm" expandshow="show" expandsize="16"/>
  62. <Cell col="2" displaytype="text" edittype="expand" text="bind:jobposnm" expandshow="show" expandsize="16"/>
  63. <Cell col="3" displaytype="text" edittype="expand" text="bind:deptnm" expandshow="show" expandsize="16"/>
  64. <Cell col="4" displaytype="text" edittype="expand" text="bind:trgtdeptnm" expandshow="show" expandsize="16"/>
  65. <Cell col="5" displaytype="combo" edittype="combo" text="bind:trgtdeptgb" combodataset="ds_init_trgtdept" combocodecol="value" combodatacol="label"/>
  66. <Cell col="6" text="bind:seq"/>
  67. <Cell col="7" text="bind:deptcd"/>
  68. <Cell col="8" text="bind:gubun"/>
  69. <Cell col="9" text="bind:jobkindcd"/>
  70. <Cell col="10" text="bind:jobposcd"/>
  71. <Cell col="11" text="bind:instcd"/>
  72. <Cell col="12" text="bind:trgtdeptcd"/>
  73. </Band>
  74. </Format>
  75. </Formats>
  76. </Grid>
  77. <Grid position="absolute 795 71 1238 421" id="grd_allow" binddataset="ds_grd_allow" autofittype="col" anchor="top right bottom" onexpandup="grd_allow_onexpandup" autoenter="select">
  78. <Formats>
  79. <Format id="default">
  80. <Columns>
  81. <Column size="24"/>
  82. <Column size="100"/>
  83. <Column size="100"/>
  84. <Column size="203"/>
  85. <Column size="0"/>
  86. <Column size="0"/>
  87. <Column size="0"/>
  88. <Column size="0"/>
  89. <Column size="0"/>
  90. </Columns>
  91. <Rows>
  92. <Row size="24" band="head"/>
  93. <Row size="24"/>
  94. </Rows>
  95. <Band id="head">
  96. <Cell/>
  97. <Cell col="1" text="사번"/>
  98. <Cell col="2" text="이름"/>
  99. <Cell col="3" text="결재대상부서"/>
  100. <Cell col="4" text="결재구분"/>
  101. <Cell col="5" text="deptcd"/>
  102. <Cell col="6" text="gubun"/>
  103. <Cell col="7" text="seq"/>
  104. <Cell col="8" text="instcd"/>
  105. </Band>
  106. <Band id="body">
  107. <Cell celltype="head"/>
  108. <Cell col="1" displaytype="text" edittype="expand" text="bind:emplno" expandshow="show" expandsize="16"/>
  109. <Cell col="2" text="bind:name"/>
  110. <Cell col="3" displaytype="text" edittype="expand" text="bind:deptnm" expandshow="show" expandsize="16"/>
  111. <Cell col="4"/>
  112. <Cell col="5" text="bind:deptcd"/>
  113. <Cell col="6" text="bind:gubun"/>
  114. <Cell col="7" text="bind:seq"/>
  115. <Cell col="8" text="bind:instcd"/>
  116. </Band>
  117. </Format>
  118. </Formats>
  119. </Grid>
  120. <Static text="특별허용자" position="absolute 795 53 886 73" align="align:center middle;" id="caption2" class="tit_2" anchor="top right"/>
  121. <Button position="absolute 899 50 963 70" id="button1" class="btn2" visible="true" text="조건추가" anchor="top right" onclick="button1_onclick"/>
  122. <Button position="absolute 966 50 1030 70" id="button2" class="btn2" text="조건삭제" anchor="top right" onclick="button2_onclick"/>
  123. <Grid position="absolute 795 455 1238 805" id="grd_deny" binddataset="ds_grd_deny" autofittype="col" anchor="right bottom" autoenter="select" onexpandup="grd_deny_onexpandup">
  124. <Formats>
  125. <Format id="default">
  126. <Columns>
  127. <Column size="24"/>
  128. <Column size="100"/>
  129. <Column size="100"/>
  130. <Column size="203"/>
  131. <Column size="0"/>
  132. <Column size="0"/>
  133. <Column size="0"/>
  134. <Column size="0"/>
  135. </Columns>
  136. <Rows>
  137. <Row size="24" band="head"/>
  138. <Row size="24"/>
  139. </Rows>
  140. <Band id="head">
  141. <Cell/>
  142. <Cell col="1" text="사번"/>
  143. <Cell col="2" text="이름"/>
  144. <Cell col="3" text="결재대상부서"/>
  145. <Cell col="4" text="deptcd"/>
  146. <Cell col="5" text="gubun"/>
  147. <Cell col="6" text="seq"/>
  148. <Cell col="7" text="instcd"/>
  149. </Band>
  150. <Band id="body">
  151. <Cell celltype="head"/>
  152. <Cell col="1" displaytype="text" edittype="expand" text="bind:emplno" expandshow="show" expandsize="16"/>
  153. <Cell col="2" text="bind:name"/>
  154. <Cell col="3" displaytype="text" edittype="expand" text="bind:deptnm" expandshow="show" expandsize="16"/>
  155. <Cell col="4" text="bind:deptcd"/>
  156. <Cell col="5" text="bind:gubun"/>
  157. <Cell col="6" text="bind:seq"/>
  158. <Cell col="7" text="bind:instcd"/>
  159. </Band>
  160. </Format>
  161. </Formats>
  162. </Grid>
  163. <Button position="absolute 899 434 963 454" id="button3" class="btn2" visible="true" text="조건추가" anchor="right bottom" onclick="button3_onclick"/>
  164. <Button position="absolute 966 434 1030 454" id="button4" class="btn2" text="조건삭제" anchor="right bottom" onclick="button4_onclick"/>
  165. <Static text="특별제한자" position="absolute 795 437 882 457" align="align:center middle;" id="caption3" class="tit_2" anchor="right bottom"/>
  166. <Div id="div_wsearch" taborder="2" position="absolute 456 46 785 70" style="background:antiquewhite;border:1 solid #808080ff ;bordertype:round 2 2 ;">
  167. <Layouts>
  168. <Layout>
  169. <Static id="Static00" text="단어검색 :" class="search_name" position="absolute 15 2 92 22" anchor="default"/>
  170. <Edit id="edit_wsearch" taborder="1" position="absolute 91 1 247 21" anchor="default" onkeydown="div_wsearch_edit_wsearch_onkeydown" imemode="hangul"/>
  171. <Button id="btn_wsearch_pre" taborder="2" position="absolute 271 1 291 21" class="icon_pre" anchor="default" onclick="div_wsearch_btn_wsearch_pre_onclick"/>
  172. <Button id="btn_wsearch_next" taborder="3" position="absolute 293 1 313 21" class="icon_next" anchor="default" onclick="div_wsearch_btn_wsearch_next_onclick"/>
  173. <Button id="btn_wsearch" taborder="4" position="absolute 248 1 268 21" class="icon_search" anchor="default" onclick="div_wsearch_btn_wsearch_onclick"/>
  174. </Layout>
  175. </Layouts>
  176. </Div>
  177. </Layout>
  178. </Layouts>
  179. <Objects>
  180. <Dataset id="ds_init_cmb_search" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  181. <ColumnInfo>
  182. <Column id="cdnm" type="STRING"/>
  183. <Column id="cdid" type="STRING"/>
  184. </ColumnInfo>
  185. </Dataset>
  186. <Dataset id="ds_init_cmb_instcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  187. <ColumnInfo>
  188. <Column id="cdnm" type="STRING"/>
  189. <Column id="cdid" type="STRING"/>
  190. </ColumnInfo>
  191. </Dataset>
  192. <Dataset id="ds_grd_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  193. <ColumnInfo>
  194. <Column id="seq" type="STRING" size="256" sumtext="직종코드"/>
  195. <Column id="jobkindcd" type="STRING" size="256" sumtext="직종코드"/>
  196. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종명"/>
  197. <Column id="jobposcd" type="STRING" size="256" sumtext="직위코드"/>
  198. <Column id="jobposnm" type="STRING" size="256" sumtext="직위명"/>
  199. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  200. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  201. <Column id="trgtdeptgb" type="STRING" size="256" sumtext="대상부서"/>
  202. <Column id="gubun" type="STRING" size="256" sumtext="구분"/>
  203. <Column id="trgtdeptcd" type="STRING" size="256" sumtext="결재대상부서코드"/>
  204. <Column id="trgtdeptnm" type="STRING" size="256" sumtext="결재대상부서코드"/>
  205. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  206. </ColumnInfo>
  207. </Dataset>
  208. <Dataset id="ds_grd_allow" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  209. <ColumnInfo>
  210. <Column id="seq" type="STRING" size="256" sumtext="seq"/>
  211. <Column id="gubun" type="STRING" size="256" sumtext="구분"/>
  212. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  213. <Column id="name" type="STRING" size="256" sumtext="이름"/>
  214. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  215. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  216. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  217. </ColumnInfo>
  218. </Dataset>
  219. <Dataset id="ds_grd_deny" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  220. <ColumnInfo>
  221. <Column id="seq" type="STRING" size="256" sumtext="seq"/>
  222. <Column id="gubun" type="STRING" size="256" sumtext="구분"/>
  223. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  224. <Column id="name" type="STRING" size="256" sumtext="이름"/>
  225. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  226. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  227. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  228. </ColumnInfo>
  229. </Dataset>
  230. <Dataset id="ds_hidden_searchdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  231. <ColumnInfo>
  232. <Column id="gubun" type="STRING" size="256"/>
  233. <Column id="instcd" type="STRING" size="256"/>
  234. </ColumnInfo>
  235. <Rows>
  236. <Row>
  237. <Col id="gubun"/>
  238. <Col id="instcd"/>
  239. </Row>
  240. </Rows>
  241. </Dataset>
  242. <Dataset id="ds_send_searchdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  243. <Dataset id="ds_send_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  244. <Dataset id="ds_send_savedata_allow" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  245. <Dataset id="ds_send_savedata_deny" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  246. <Dataset id="ds_init_trgtdept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  247. <ColumnInfo>
  248. <Column id="label" type="STRING" size="256"/>
  249. <Column id="value" type="STRING" size="256"/>
  250. </ColumnInfo>
  251. <Rows>
  252. <Row>
  253. <Col id="label">인사근무지</Col>
  254. <Col id="value">B</Col>
  255. </Row>
  256. <Row>
  257. <Col id="label">해당부서</Col>
  258. <Col id="value">C</Col>
  259. </Row>
  260. <Row>
  261. <Col id="label">근무지부서</Col>
  262. <Col id="value">E</Col>
  263. </Row>
  264. <Row>
  265. <Col id="label">하위부서</Col>
  266. <Col id="value">G</Col>
  267. </Row>
  268. </Rows>
  269. </Dataset>
  270. </Objects>
  271. <Bind>
  272. <BindItem id="item0" compid="grp_search.cmb_search" propid="value" datasetid="ds_hidden_searchdata" columnid="gubun"/>
  273. <BindItem id="item1" compid="grp_search.cmb_instcd" propid="value" datasetid="ds_hidden_searchdata" columnid="instcd"/>
  274. </Bind>
  275. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  276. * System Name :
  277. * Job Name :
  278. * Creator :
  279. * Make Date : 2016-01-07
  280. * Description :
  281. *---------------------------------------------------------------------------------------
  282. * Modify Date Modifier Modify Description
  283. *---------------------------------------------------------------------------------------
  284. * 2016-01-07 Live Converter TF->XP
  285. *
  286. *---------------------------------------------------------------------------------------
  287. ****************************************************************************************/
  288. include "com_commonxp::comm_main.xjs";
  289. include "mis_miscommonxp::MIS.xjs";
  290. function SMZHA20501_oninit(obj:Form, e:InitEventInfo)
  291. {
  292. frmf_initForm(obj);
  293. }
  294. function SMZHA20501_onload(obj:Form, e:LoadEventInfo)
  295. {
  296. fInitialize();
  297. }
  298. function grp_search_cmb_instcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  299. {
  300. grp_search.btn_search.click();
  301. }
  302. var posGrdCond;
  303. var posGrdAllow;
  304. var posGrdDeny;
  305. function grp_search_btn_search_onclick(obj:Button, e:ClickEventInfo)
  306. {
  307. ds_send_searchdata.copyData(ds_hidden_searchdata);
  308. posGrdCond = grd_cond.vscrollbar.pos;
  309. posGrdAllow = grd_allow.vscrollbar.pos;
  310. posGrdDeny = grd_deny.vscrollbar.pos;
  311. ds_grd_cond.enableevent = false;
  312. ds_grd_allow.enableevent = false;
  313. ds_grd_deny.enableevent = false;
  314. var oParam = {};
  315. oParam.id = "TRZHA20501";
  316. oParam.service = "reqprgmapp.ReqPrgm";
  317. oParam.method = "reqGetDeptMgrCondList";
  318. oParam.inds = "req=ds_send_searchdata";
  319. oParam.outds = "ds_grd_cond=condlist ds_grd_allow=allowlist ds_grd_deny=denylist";
  320. oParam.async = true;
  321. oParam.callback = "cf_TRZHA20501";
  322. tranf_submit(oParam);
  323. }
  324. function cf_TRZHA20501(sSvcId, nErrorCode, sErrorMsg) {
  325. if(nErrorCode < 0) return;
  326. grd_cond.vscrollbar.pos = posGrdCond;
  327. grd_allow.vscrollbar.pos = posGrdAllow;
  328. grd_deny.vscrollbar.pos = posGrdDeny;
  329. ds_grd_cond.rowposition = -1;
  330. ds_grd_allow.rowposition = -1;
  331. ds_grd_deny.rowposition = -1;
  332. ds_grd_cond.enableevent = true;
  333. ds_grd_allow.enableevent = true;
  334. ds_grd_deny.enableevent = true;
  335. }
  336. function btn_reg_menuauthuser_onclick(obj:Button, e:ClickEventInfo)
  337. {
  338. var iRow = ds_grd_cond.addRow();
  339. fSetRowValue("ds_grd_cond", "trgtdeptgb", "B", iRow); //인사근무지
  340. fSetRowValue("ds_grd_cond", "gubun", ds_hidden_searchdata.getColumn(0, "gubun"), iRow);
  341. fSetRowValue("ds_grd_cond", "instcd", ds_hidden_searchdata.getColumn(0, "instcd"), iRow);
  342. }
  343. function btn_del_cond_onclick(obj:Button, e:ClickEventInfo)
  344. {
  345. var cur_row = ds_grd_cond.rowposition; // 행 번호 가져오기
  346. var iStatus = ds_grd_cond.getRowType(cur_row);
  347. if(cur_row < 0) {
  348. alert("삭제할 조건행을 선택해주세요.");
  349. return;
  350. }
  351. if (iStatus == Dataset.ROWTYPE_INSERT) { // 새로 삽입된 행이면
  352. ds_grd_cond.deleteRow(cur_row);
  353. } else {
  354. var rtn = sysf_messageBox("부서장조건을 ", "Q001");
  355. if(rtn == 6){
  356. ds_grd_cond.updatecontrol = false;
  357. ds_grd_cond.setRowType(cur_row, Dataset.ROWTYPE_DELETE);
  358. ds_grd_cond.updatecontrol = true;
  359. var oDsUpdate = grdf_getGridUpdateData(grd_cond, "delete");
  360. grdf_setStatusColumn(oDsUpdate, "status");
  361. ds_send_savedata.copyData(oDsUpdate, true);
  362. ds_send_savedata_allow.clearData();
  363. ds_send_savedata_deny.clearData();
  364. var oParam = {};
  365. oParam.id = "TXZHA20501";
  366. oParam.service = "reqprgmapp.ReqPrgm";
  367. oParam.method = "reqExeSaveDeptMgrCond";
  368. oParam.inds = "req=ds_send_savedata req_allow=ds_send_savedata_allow req_deny=ds_send_savedata_deny";
  369. oParam.typeStr = "status";
  370. oParam.async = false;
  371. oParam.callback = "cf_TXZHA20501";
  372. tranf_submit(oParam);
  373. }
  374. }
  375. }
  376. function cf_TXZHA20501(sSvcId, nErrorCode, sErrorMsg) {
  377. if(nErrorCode < 0) return;
  378. var jRow = ds_grd_cond.rowposition;
  379. ds_grd_cond.deleteRow(jRow);
  380. ds_grd_cond.applyChange(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  381. }
  382. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  383. {
  384. fSave();
  385. grp_search.btn_search.click();
  386. }
  387. function fSave(){
  388. var oDsUpdate = grdf_getGridUpdateData(grd_cond);
  389. grdf_setStatusColumn(oDsUpdate, "status");
  390. ds_send_savedata.copyData(oDsUpdate, true);
  391. var oDsUpdate_allow = grdf_getGridUpdateData(grd_allow);
  392. grdf_setStatusColumn(oDsUpdate_allow, "status");
  393. ds_send_savedata_allow.copyData(oDsUpdate_allow, true);
  394. var oDsUpdate_deny = grdf_getGridUpdateData(grd_deny);
  395. grdf_setStatusColumn(oDsUpdate_deny, "status");
  396. ds_send_savedata_deny.copyData(oDsUpdate_deny, true);
  397. var oParam = {};
  398. oParam.id = "TXZHA20501";
  399. oParam.service = "reqprgmapp.ReqPrgm";
  400. oParam.method = "reqExeSaveDeptMgrCond";
  401. oParam.inds = "req=ds_send_savedata req_allow=ds_send_savedata_allow req_deny=ds_send_savedata_deny";
  402. oParam.async = false;
  403. tranf_submit(oParam);
  404. }
  405. function fInitialize(){
  406. grdf_setRowTypeIcon(grd_cond, 0);
  407. grdf_setRowTypeIcon(grd_allow, 0);
  408. grdf_setRowTypeIcon(grd_deny, 0);
  409. grdf_initGrid(grd_cond);
  410. grdf_initGrid(grd_allow);
  411. grdf_initGrid(grd_deny);
  412. misfComboComCdList("C0117", grp_search.cmb_search, "N"); //구분
  413. misfComboComCdList("C0048", grp_search.cmb_instcd, "N"); //기관
  414. ds_hidden_searchdata.setColumn(0, "gubun","01");
  415. ds_hidden_searchdata.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
  416. }
  417. function fSetRowValue(sDataSet, destinationelement, sourceelement, row) {
  418. this.objects[sDataSet].setColumn(row, destinationelement, sourceelement);
  419. }
  420. function grd_cond_onexpandup(obj:Grid, e:GridMouseEventInfo)
  421. {
  422. if (grdf_getBindCellName(obj, e.col) == "jobkindnm" ) { //직종
  423. var recv_list = "jobkindcd,jobkindnm";
  424. misfOpenPopUpList("03", ds_grd_cond,"R0061", recv_list) ;
  425. } else if (grdf_getBindCellName(obj, e.col) == "jobposnm" ) { //직위
  426. var recv_list = "jobposcd,jobposnm";
  427. misfOpenPopUpList("03", ds_grd_cond,"R0062", recv_list);
  428. } else if (grdf_getBindCellName(obj, e.col) == "deptnm" ) { //근무지부서
  429. var recv_list = "deptcd,deptnm";
  430. misfOpenPopUpList("02", ds_grd_cond,"", recv_list, ds_grd_cond.getColumn(e.row, "instcd"), "instcd");
  431. } else if (grdf_getBindCellName(obj, e.col) == "trgtdeptnm" ) { //결재대상부서
  432. var recv_list = "trgtdeptcd,trgtdeptnm";
  433. misfOpenPopUpList("02", ds_grd_cond,"", recv_list, ds_grd_cond.getColumn(e.row, "instcd"), "instcd");
  434. }
  435. }
  436. function div_wsearch_edit_wsearch_onkeydown(obj:Edit, e:KeyEventInfo)
  437. {
  438. if(e.keycode == 13) {
  439. div_wsearch.btn_wsearch.click();
  440. div_wsearch.btn_wsearch_next.setFocus();
  441. }
  442. }
  443. var lastStartRow = 0;
  444. var lastEndRow = 0;
  445. function div_wsearch_btn_wsearch_onclick(obj:Button, e:ClickEventInfo)
  446. {
  447. fSearchWord("next");
  448. }
  449. function fSearchWord(type) {
  450. var word = div_wsearch.edit_wsearch.text;
  451. var findRow = -1;
  452. if(type == "prev") {
  453. lastStartRow = 0;
  454. lastEndRow = ds_grd_cond.rowposition - 1;
  455. } else if(type == "next") {
  456. lastStartRow = ds_grd_cond.rowposition + 1;
  457. lastEndRow = ds_grd_cond.rowcount;
  458. }
  459. if(lastEndRow == 0) lastEndRow = ds_grd_cond.rowcount;
  460. if(type == "prev") {
  461. for(var i = lastEndRow - 1; i >= lastStartRow; i--) {
  462. for(var j = 0; j < ds_grd_cond.colcount; j++) {
  463. var text = ds_grd_cond.getColumn(i, j);
  464. if(utlf_isNull(text)) continue;
  465. if(text.indexOf(word) > -1) {
  466. findRow = i;
  467. break;
  468. }
  469. }
  470. if(findRow > -1) break;
  471. }
  472. } else {
  473. for(var i = lastStartRow; i < lastEndRow; i++) {
  474. for(var j = 0; j < ds_grd_cond.colcount; j++) {
  475. var text = ds_grd_cond.getColumn(i, j);
  476. if(utlf_isNull(text)) continue;
  477. if(text.indexOf(word) > -1) {
  478. findRow = i;
  479. break;
  480. }
  481. }
  482. if(findRow > -1) break;
  483. }
  484. }
  485. if(findRow > -1)
  486. ds_grd_cond.rowposition = findRow;
  487. }
  488. function div_wsearch_btn_wsearch_pre_onclick(obj:Button, e:ClickEventInfo)
  489. {
  490. fSearchWord("prev");
  491. }
  492. function div_wsearch_btn_wsearch_next_onclick(obj:Button, e:ClickEventInfo)
  493. {
  494. fSearchWord("next");
  495. }
  496. function button1_onclick(obj:Button, e:ClickEventInfo)
  497. {
  498. var iRow = ds_grd_allow.addRow();
  499. fSetRowValue("ds_grd_allow", "gubun", ds_hidden_searchdata.getColumn(0, "gubun"), iRow);
  500. fSetRowValue("ds_grd_allow", "instcd", ds_hidden_searchdata.getColumn(0, "instcd"), iRow);
  501. }
  502. function button2_onclick(obj:Button, e:ClickEventInfo)
  503. {
  504. var cur_row = ds_grd_allow.rowposition; // 행 번호 가져오기
  505. var iStatus = ds_grd_allow.getRowType(cur_row);
  506. if(cur_row < 0) {
  507. alert("삭제할 조건행을 선택해주세요.");
  508. return;
  509. }
  510. if (iStatus == Dataset.ROWTYPE_INSERT) { // 새로 삽입된 행이면
  511. ds_grd_allow.deleteRow(cur_row);
  512. } else {
  513. var rtn = sysf_messageBox("특별허용자 조건을 ", "Q001");
  514. if(rtn == 6){
  515. ds_grd_allow.updatecontrol = false;
  516. ds_grd_allow.setRowType(cur_row, Dataset.ROWTYPE_DELETE);
  517. ds_grd_allow.updatecontrol = true;
  518. ds_send_savedata.clearData();
  519. var oDsUpdate = grdf_getGridUpdateData(grd_allow, "delete");
  520. grdf_setStatusColumn(oDsUpdate, "status");
  521. ds_send_savedata_allow.copyData(oDsUpdate, true);
  522. ds_send_savedata_deny.clearData();
  523. var oParam = {};
  524. oParam.id = "TXZHA20501";
  525. oParam.service = "reqprgmapp.ReqPrgm";
  526. oParam.method = "reqExeSaveDeptMgrCond";
  527. oParam.inds = "req=ds_send_savedata req_allow=ds_send_savedata_allow req_deny=ds_send_savedata_deny";
  528. oParam.typeStr = "status";
  529. oParam.async = false;
  530. oParam.callback = "cf_TXZHA20502";
  531. tranf_submit(oParam);
  532. }
  533. }
  534. }
  535. function cf_TXZHA20502(sSvcId, nErrorCode, sErrorMsg) {
  536. if(nErrorCode < 0) return;
  537. var jRow = ds_grd_allow.rowposition;
  538. ds_grd_allow.deleteRow(jRow);
  539. ds_grd_allow.applyChange(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  540. }
  541. function grd_allow_onexpandup(obj:Grid, e:GridMouseEventInfo)
  542. {
  543. if (grdf_getBindCellName(obj, e.col) == "deptnm" ) { //부서
  544. var recv_list = "deptcd,deptnm";
  545. misfOpenPopUpList("02", ds_grd_allow,"", recv_list, ds_grd_allow.getColumn(e.row, "instcd"), "instcd");
  546. }else if(grdf_getBindCellName(obj, e.col) == "emplno" ) { //사용자
  547. var recv_list = "emplno,name";
  548. misfOpenPopUpList("01", ds_grd_allow,"", recv_list, ds_grd_allow.getColumn(e.row, "instcd"), "instcd");
  549. }
  550. }
  551. function button3_onclick(obj:Button, e:ClickEventInfo)
  552. {
  553. var iRow = ds_grd_deny.addRow();
  554. fSetRowValue("ds_grd_deny", "gubun", ds_hidden_searchdata.getColumn(0, "gubun"), iRow);
  555. fSetRowValue("ds_grd_deny", "instcd", ds_hidden_searchdata.getColumn(0, "instcd"), iRow);
  556. }
  557. function button4_onclick(obj:Button, e:ClickEventInfo)
  558. {
  559. var cur_row = ds_grd_deny.rowposition; // 행 번호 가져오기
  560. var iStatus = ds_grd_deny.getRowType(cur_row);
  561. if(cur_row < 0) {
  562. alert("삭제할 조건행을 선택해주세요.");
  563. return;
  564. }
  565. if (iStatus == Dataset.ROWTYPE_INSERT) { // 새로 삽입된 행이면
  566. ds_grd_deny.deleteRow(cur_row);
  567. } else {
  568. var rtn = sysf_messageBox("특별제한자 조건을 ", "Q001");
  569. if(rtn == 6){
  570. ds_grd_deny.updatecontrol = false;
  571. ds_grd_deny.setRowType(cur_row, Dataset.ROWTYPE_DELETE);
  572. ds_grd_deny.updatecontrol = true;
  573. ds_send_savedata.clearData();
  574. ds_send_savedata_allow.clearData();
  575. var oDsUpdate = grdf_getGridUpdateData(grd_deny, "delete");
  576. grdf_setStatusColumn(oDsUpdate, "status");
  577. ds_send_savedata_deny.copyData(oDsUpdate, true);
  578. var oParam = {};
  579. oParam.id = "TXZHA20501";
  580. oParam.service = "reqprgmapp.ReqPrgm";
  581. oParam.method = "reqExeSaveDeptMgrCond";
  582. oParam.inds = "req=ds_send_savedata req_allow=ds_send_savedata_allow req_deny=ds_send_savedata_deny";
  583. oParam.typeStr = "status";
  584. oParam.async = false;
  585. oParam.callback = "cf_TXZHA20503";
  586. tranf_submit(oParam);
  587. }
  588. }
  589. }
  590. function cf_TXZHA20503(sSvcId, nErrorCode, sErrorMsg) {
  591. if(nErrorCode < 0) return;
  592. var jRow = ds_grd_deny.rowposition;
  593. ds_grd_deny.deleteRow(jRow);
  594. ds_grd_deny.applyChange(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  595. }
  596. function grd_deny_onexpandup(obj:Grid, e:GridMouseEventInfo)
  597. {
  598. if (grdf_getBindCellName(obj, e.col) == "deptnm" ) { //부서
  599. var recv_list = "deptcd,deptnm";
  600. misfOpenPopUpList("02", ds_grd_deny,"", recv_list, ds_grd_deny.getColumn(e.row, "instcd"), "instcd");
  601. }else if(grdf_getBindCellName(obj, e.col) == "emplno" ) { //사용자
  602. var recv_list = "emplno,name";
  603. misfOpenPopUpList("01", ds_grd_deny,"", recv_list, ds_grd_deny.getColumn(e.row, "instcd"), "instcd");
  604. }
  605. }
  606. ]]></Script>
  607. </Form>
  608. </FDL>