SPZHA20301_업무HELP.xfdl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPZHA20301" position="absolute 0 0 254 700" titletext="업무분류" oninit="SPZHA20301_oninit" onload="SPZHA20301_onload" class="frm_POP">
  5. <Layouts>
  6. <Layout>
  7. <Grid position="absolute 2 35 252 665" treeusecheckbox="false" autofit="col" id="trv_work" binddataset="ds_main_workinfo" autofittype="col" autosizingtype="col" selecttype="treecell" oncelldblclick="trv_work_oncelldblclick" onrbuttondown="trv_work_onrbuttondown">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="250"/>
  12. </Columns>
  13. <Rows>
  14. <Row size="24"/>
  15. </Rows>
  16. <Band id="body">
  17. <Cell displaytype="tree" edittype="tree" style="line:0 none #808080ff ;background:white;background2:white;" text="bind:setnm" treestartlevel="1" treelevel="bind:depth" autosizecol="limitmin"/>
  18. </Band>
  19. </Format>
  20. </Formats>
  21. </Grid>
  22. <Button position="absolute 65 672 121 692" id="button5" class="btn4" text="확인" onclick="button5_onclick"/>
  23. <Button position="absolute 135 672 191 692" id="button6" class="btn4" text="취소" onclick="button6_onclick"/>
  24. <Div position="absolute 15 575 233 630" id="group1" class="div_SA2" style="shadow:outer 4,4 4 gray;">
  25. <Layouts>
  26. <Layout>
  27. <Static text="폴더명" position="absolute 9 10 50 30" align="align:center middle;" id="caption4"/>
  28. <Edit position="absolute 59 10 213 29" id="ipt_setnm" class="input_default" autoselect="true"/>
  29. <Button position="absolute 126 31 168 50" id="btn_cnfm" class="btn2" text="확인" onclick="group1_btn_cnfm_onclick"/>
  30. <Button position="absolute 170 31 212 50" id="button3" class="btn2" text="취소" onclick="group1_button3_onclick"/>
  31. </Layout>
  32. </Layouts>
  33. </Div>
  34. <Static id="stt_titleText" text="업무분류관리" class="sta_POP_title" position="absolute 12 8 225 28" style="align:left middle;"/>
  35. <Button id="btn_close" taborder="1" onclick="btn_close_onclick" class="btn_POP_cls" position="absolute 231 12 245 25"/>
  36. <PopupMenu id="pm_menu" innerdataset="@ds_trvworkmenu1" idcolumn="func" captioncolumn="label" levelcolumn="level" position="absolute 264 184 365 206" onmenuclick="pm_menu_onmenuclick"/>
  37. </Layout>
  38. </Layouts>
  39. <Objects>
  40. <Dataset id="ds_main_workinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  41. <ColumnInfo>
  42. <Column id="depth" type="STRING" size="256" sumtext="depth"/>
  43. <Column id="setno" type="STRING" size="256" sumtext="업무번호"/>
  44. <Column id="supsetno" type="STRING" size="256" sumtext="상위업무번호"/>
  45. <Column id="setnm" type="STRING" size="256" sumtext="업무명"/>
  46. </ColumnInfo>
  47. </Dataset>
  48. <Dataset id="ds_send_resultdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  49. <ColumnInfo>
  50. <Column id="setno" type="STRING" size="256" sumtext="업무번호"/>
  51. </ColumnInfo>
  52. <Rows>
  53. <Row/>
  54. </Rows>
  55. </Dataset>
  56. <Dataset id="ds_main_selectedworkinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  57. <ColumnInfo>
  58. <Column id="setno1" type="STRING" size="256" sumtext="업무대분류"/>
  59. <Column id="setno2" type="STRING" size="256" sumtext="업무중분류"/>
  60. <Column id="setno3" type="STRING" size="256" sumtext="업무소분류"/>
  61. <Column id="setnm1" type="STRING" size="256" sumtext="업무대분류"/>
  62. <Column id="setnm2" type="STRING" size="256" sumtext="업무중분류"/>
  63. <Column id="setnm3" type="STRING" size="256" sumtext="업무소분류"/>
  64. </ColumnInfo>
  65. </Dataset>
  66. <Dataset id="ds_trvworkmenu1" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  67. <ColumnInfo>
  68. <Column id="label" type="STRING" size="256"/>
  69. <Column id="func" type="STRING" size="256"/>
  70. <Column id="level" type="STRING" size="256"/>
  71. </ColumnInfo>
  72. <Rows>
  73. <Row>
  74. <Col id="label">업무중분류추가</Col>
  75. <Col id="func">fAddworkmenu1</Col>
  76. <Col id="level">0</Col>
  77. </Row>
  78. </Rows>
  79. </Dataset>
  80. <Dataset id="ds_trvworkmenu2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  81. <ColumnInfo>
  82. <Column id="label" type="STRING" size="256"/>
  83. <Column id="func" type="STRING" size="256"/>
  84. <Column id="level" type="STRING" size="256"/>
  85. </ColumnInfo>
  86. <Rows>
  87. <Row>
  88. <Col id="label">업무소분류추가</Col>
  89. <Col id="func">fAddworkmenu2</Col>
  90. <Col id="level">0</Col>
  91. </Row>
  92. <Row>
  93. <Col id="label">삭제</Col>
  94. <Col id="func">fDelworkmenu</Col>
  95. <Col id="level">0</Col>
  96. </Row>
  97. </Rows>
  98. </Dataset>
  99. <Dataset id="ds_trvworkmenu3" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  100. <ColumnInfo>
  101. <Column id="label" type="STRING" size="256"/>
  102. <Column id="func" type="STRING" size="256"/>
  103. <Column id="level" type="STRING" size="256"/>
  104. </ColumnInfo>
  105. <Rows>
  106. <Row>
  107. <Col id="label">삭제</Col>
  108. <Col id="func">fDelworkmenu</Col>
  109. <Col id="level">0</Col>
  110. </Row>
  111. </Rows>
  112. </Dataset>
  113. <Dataset id="ds_main_iptbox" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="setnm" type="STRING" size="256"/>
  116. </ColumnInfo>
  117. <Rows>
  118. <Row/>
  119. </Rows>
  120. </Dataset>
  121. <Dataset id="ds_hidden_workinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  122. <ColumnInfo>
  123. <Column id="depth" type="STRING" size="256" sumtext="depth"/>
  124. <Column id="setno" type="STRING" size="256" sumtext="업무번호"/>
  125. <Column id="supsetno" type="STRING" size="256" sumtext="상위업무번호"/>
  126. <Column id="setnm" type="STRING" size="256" sumtext="업무명"/>
  127. <Column id="status" type="STRING" size="256"/>
  128. </ColumnInfo>
  129. <Rows>
  130. <Row/>
  131. </Rows>
  132. </Dataset>
  133. <Dataset id="ds_send_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  134. <ColumnInfo>
  135. <Column id="setno" type="STRING" size="256" sumtext="set번호"/>
  136. <Column id="supsetno" type="STRING" size="256" sumtext="상위set번호"/>
  137. <Column id="setnm" type="STRING" size="256" sumtext="set명"/>
  138. <Column id="status" type="STRING" size="256" sumtext="처리상태구분"/>
  139. <Column id="depth" type="STRING" size="256" sumtext="depth"/>
  140. </ColumnInfo>
  141. </Dataset>
  142. </Objects>
  143. <Bind>
  144. <BindItem id="item0" compid="group1.ipt_setnm" propid="value" datasetid="ds_main_iptbox" columnid="setnm"/>
  145. </Bind>
  146. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  147. * System Name :
  148. * Job Name :
  149. * Creator :
  150. * Make Date : 2014-12-09
  151. * Description :
  152. *---------------------------------------------------------------------------------------
  153. * Modify Date Modifier Modify Description
  154. *---------------------------------------------------------------------------------------
  155. * 2014-12-09 Live Converter TF->XP
  156. *
  157. *---------------------------------------------------------------------------------------
  158. ****************************************************************************************/
  159. include "com_commonxp::comm_main.xjs";
  160. function SPZHA20301_oninit(obj:Form, e:InitEventInfo)
  161. {
  162. frmf_initForm(obj);
  163. }
  164. function SPZHA20301_onload(obj:Form, e:LoadEventInfo)
  165. {
  166. frmf_setParameter("SPZHA20301_PARM_setno1","");
  167. frmf_setParameter("SPZHA20301_PARM_setno2","");
  168. frmf_setParameter("SPZHA20301_PARM_setno3","");
  169. frmf_setParameter("SPZHA20301_PARM_setnm1","");
  170. frmf_setParameter("SPZHA20301_PARM_setnm2","");
  171. frmf_setParameter("SPZHA20301_PARM_setnm3","");
  172. group1.position.height = 0;
  173. var oParam = {};
  174. oParam.id = "TRZHA20301";
  175. oParam.service = "reqprgmapp.ReqPrgm";
  176. oParam.method = "reqGetWorkList";
  177. oParam.outds = "ds_main_workinfo=worklist";
  178. oParam.async = true;
  179. oParam.callback = "cf_TRZHA20301";
  180. tranf_submit(oParam);
  181. }
  182. function cf_TRZHA20301(sSvcId, nErrorCode, sErrorMsg) {
  183. if(nErrorCode < 0) return;
  184. grdf_expandDepth(trv_work, 1, "setnm");
  185. }
  186. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  187. {
  188. this.close();
  189. }
  190. function trv_work_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  191. {
  192. fSelect();
  193. }
  194. function trv_work_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  195. {
  196. if(e.row < 0) return;
  197. grdf_setSelectedCell(obj, e);
  198. var depth = ds_main_workinfo.getColumn(e.row, "depth");
  199. pm_menu.innerdataset = "";
  200. if(depth == 1){
  201. pm_menu.innerdataset = ds_trvworkmenu1;
  202. }else if(depth == 2){
  203. pm_menu.innerdataset = ds_trvworkmenu2;
  204. }else if(depth == 3){
  205. pm_menu.innerdataset = ds_trvworkmenu3;
  206. }
  207. pm_menu.trackPopup(e.screenX,e.screenY);
  208. }
  209. function button5_onclick(obj:Button, e:ClickEventInfo)
  210. {
  211. fSelect();
  212. }
  213. function button6_onclick(obj:Button, e:ClickEventInfo)
  214. {
  215. this.close();
  216. }
  217. function fSelect(){
  218. if(frmf_checkOpener()){
  219. var row = ds_main_workinfo.rowposition;
  220. if(row < 0){
  221. sysf_messageBox("업무를 ","C002");
  222. return;
  223. }
  224. if(ds_main_workinfo.getColumn(row, "depth") != 3){
  225. sysf_messageBox("세부업무를 ","C002");
  226. return;
  227. }
  228. ds_send_resultdata.setColumn(0, "setno", ds_main_workinfo.getColumn(row, "setno"));
  229. var oParam = {};
  230. oParam.id = "TRZHA20302";
  231. oParam.service = "reqprgmapp.ReqPrgm";
  232. oParam.method = "reqGetHierWork";
  233. oParam.inds = "req=ds_send_resultdata";
  234. oParam.outds = "ds_main_selectedworkinfo=selectedworklist";
  235. oParam.async = true;
  236. oParam.callback = "cf_TRZHA20302";
  237. tranf_submit(oParam);
  238. }else{
  239. this.close();
  240. }
  241. }
  242. function cf_TRZHA20302(sSvcId, nErrorCode, sErrorMsg) {
  243. if(nErrorCode < 0) return;
  244. opener.frmf_setParameter("SPZHA20301_PARM_setno1", ds_main_selectedworkinfo.getColumn(0, "setno1"));
  245. opener.frmf_setParameter("SPZHA20301_PARM_setno2", ds_main_selectedworkinfo.getColumn(0, "setno2"));
  246. opener.frmf_setParameter("SPZHA20301_PARM_setno3", ds_main_selectedworkinfo.getColumn(0, "setno3"));
  247. opener.frmf_setParameter("SPZHA20301_PARM_setnm1", ds_main_selectedworkinfo.getColumn(0, "setnm1"));
  248. opener.frmf_setParameter("SPZHA20301_PARM_setnm2", ds_main_selectedworkinfo.getColumn(0, "setnm2"));
  249. opener.frmf_setParameter("SPZHA20301_PARM_setnm3", ds_main_selectedworkinfo.getColumn(0, "setnm3"));
  250. this.close();
  251. }
  252. function pm_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  253. {
  254. eval(e.id + "()");
  255. }
  256. function group1_btn_cnfm_onclick(obj:Button, e:ClickEventInfo)
  257. {
  258. fClkBtnCnfm();
  259. }
  260. function group1_button3_onclick(obj:Button, e:ClickEventInfo)
  261. {
  262. group1.position.height = 0;
  263. }
  264. /**
  265. * @desc : 업무중분류 추가
  266. * @
  267. * @param :
  268. * @return :
  269. * @---------------------------------------------------
  270. */
  271. function fAddworkmenu1(){
  272. var row = ds_main_workinfo.rowposition;
  273. if(row < 0){return;}
  274. ds_main_iptbox.setColumn(0, "setnm", "");
  275. group1.caption4.text = "중분류";
  276. if(fSetWorkInfo(row, "i") != -1){
  277. ds_hidden_workinfo.setColumn(0, "status", "i");
  278. fShowWndIptBox();
  279. }
  280. }
  281. /**
  282. * @desc : 업무소분류 추가
  283. * @
  284. * @param :
  285. * @return :
  286. * @---------------------------------------------------
  287. */
  288. function fAddworkmenu2(){
  289. var row = ds_main_workinfo.rowposition;
  290. if(row < 0){return;}
  291. ds_main_iptbox.setColumn(0, "setnm", "");
  292. group1.caption4.text = "소분류";
  293. if(fSetWorkInfo(row, "i") != -1){
  294. ds_hidden_workinfo.setColumn(0, "status", "i");
  295. fShowWndIptBox();
  296. }
  297. }
  298. /**
  299. * @desc : 업무 삭제
  300. * @
  301. * @param :
  302. * @return :
  303. * @---------------------------------------------------
  304. */
  305. function fDelworkmenu(){
  306. var row = ds_main_workinfo.rowposition;
  307. if(row < 0){return;}
  308. if(fSetWorkInfo(row, "d") != -1){
  309. ds_hidden_workinfo.setColumn(0, "status", "d");
  310. fSaveWork();
  311. }
  312. }
  313. /**
  314. * @desc : 업무세팅
  315. * @param rowpos
  316. * @param status
  317. * @return
  318. */
  319. function fSetWorkInfo(rowpos, status){
  320. var setnm = ds_main_workinfo.getColumn(rowpos, "setnm");
  321. if(status == "d"){
  322. var rtnval = sysf_messageBox("[" + setnm + "]하위의 모든 업무가 지워집니다. " + "[" + setnm + "]업무를", "Q001");
  323. if(rtnval == 7){
  324. return -1;
  325. }
  326. }
  327. var depth = ds_main_workinfo.getColumn(rowpos, "depth");
  328. var supsetno = ds_main_workinfo.getColumn(rowpos, "supsetno");
  329. var setno = ds_main_workinfo.getColumn(rowpos, "setno");
  330. ds_hidden_workinfo.setColumn(0, "depth", depth);
  331. ds_hidden_workinfo.setColumn(0, "setno", setno);
  332. if(status == "i"){
  333. ds_hidden_workinfo.setColumn(0, "supsetno",setno);
  334. }else{
  335. ds_hidden_workinfo.setColumn(0, "supsetno",supsetno);
  336. }
  337. }
  338. /**
  339. * @desc : 업무분류를 입력할 InputBox를 보여줌.
  340. * @
  341. * @param :
  342. * @return :
  343. * @---------------------------------------------------
  344. */
  345. function fShowWndIptBox(){
  346. var arrCellRect = trv_work.getCellRect(trv_work.getTreeRow(ds_main_workinfo.rowposition), trv_work.getCellPos());
  347. var clientY = arrCellRect.bottom + 55;
  348. if(clientY >= 665){
  349. var ypos = arrCellRect.top - 59;
  350. }else{
  351. var ypos = arrCellRect.bottom + 55;
  352. }
  353. group1.position.y = ypos;
  354. group1.position.height = 55;
  355. group1.ipt_setnm.setFocus();
  356. }
  357. /**
  358. * @desc : 폴더 저장 후, 저장된 폴더의 depth까지 펼친다
  359. * @
  360. * @param :
  361. * @return :
  362. * @authur : 오지훈 2007. 10. 21
  363. * @---------------------------------------------------
  364. */
  365. function fClkBtnCnfm(){
  366. var row = ds_main_workinfo.rowposition;
  367. if(row < 0){return;}
  368. group1.position.height = 0;
  369. trv_work.setFocus();
  370. fSaveWork();
  371. grdf_expandTree(trv_work, row, true);
  372. }
  373. /**
  374. * @desc : 업무 저장
  375. * @
  376. * @param :
  377. * @return :
  378. * @---------------------------------------------------
  379. */
  380. function fSaveWork(){
  381. var setnm = ds_main_iptbox.getColumn(0, "setnm");
  382. ds_hidden_workinfo.setColumn(0, "setnm", setnm);
  383. ds_send_savedata.copyData(ds_hidden_workinfo);
  384. var oParam = {};
  385. oParam.id = "TXZHA20301";
  386. oParam.service = "reqprgmapp.ReqPrgm";
  387. oParam.method = "reqExeSaveWork";
  388. oParam.inds = "req=ds_send_savedata";
  389. oParam.outds = "ds_main_workinfo=worklist";
  390. oParam.async = false;
  391. tranf_submit(oParam);
  392. ds_main_workinfo.rowposition = -1;
  393. }
  394. ]]></Script>
  395. </Form>
  396. </FDL>