SPMMB01400_버튼환경설정.xfdl 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMB01400" position="absolute 0 0 450 540" titletext="button환경설정" oninit="SPMMB01400_oninit" onload="SPMMB01400_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="전체" position="absolute 0 50 105 70" id="caption25" class="tit_2"/>
  8. <Grid position="absolute 0 69 213 540" id="grd_btnevnlist" taborder="7" binddataset="ds_main_btnevnlist" oncelldblclick="grd_btnevnlist_oncelldblclick" cellclickbound="cell">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="22"/>
  13. <Column size="40"/>
  14. <Column size="0"/>
  15. <Column size="150"/>
  16. </Columns>
  17. <Rows>
  18. <Row size="24" band="head"/>
  19. <Row size="24"/>
  20. </Rows>
  21. <Band id="head">
  22. <Cell/>
  23. <Cell col="1" text="선택"/>
  24. <Cell col="2" text="button코드"/>
  25. <Cell col="3" text="Button명"/>
  26. </Band>
  27. <Band id="body">
  28. <Cell celltype="head" text="expr:currow + 1"/>
  29. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:useyn"/>
  30. <Cell col="2" text="bind:btncd"/>
  31. <Cell col="3" style="align:left middle;" text="bind:btnnm"/>
  32. </Band>
  33. </Format>
  34. </Formats>
  35. </Grid>
  36. <Static text="선택" position="absolute 215 50 265 70" id="caption3" class="tit_2"/>
  37. <Grid position="absolute 215 69 450 540" id="grd_userbtnevnlist" taborder="7" binddataset="ds_main_userbtnevnlist" onrbuttondown="grd_userbtnevnlist_onrbuttondown" selecttype="multirow">
  38. <Formats>
  39. <Format id="default">
  40. <Columns>
  41. <Column size="22"/>
  42. <Column size="213"/>
  43. <Column size="0"/>
  44. <Column size="0"/>
  45. <Column size="0"/>
  46. </Columns>
  47. <Rows>
  48. <Row size="24" band="head"/>
  49. <Row size="24"/>
  50. </Rows>
  51. <Band id="head">
  52. <Cell/>
  53. <Cell col="1" text="Button명"/>
  54. <Cell col="2" text="Button코드"/>
  55. <Cell col="3" text="화면종류"/>
  56. <Cell col="4" text="조회순서"/>
  57. </Band>
  58. <Band id="body">
  59. <Cell celltype="head"/>
  60. <Cell col="1" style="align:left middle;" text="bind:btnnm"/>
  61. <Cell col="2" text="bind:btncd"/>
  62. <Cell col="3" text="bind:scrnkindcd"/>
  63. <Cell col="4" displaytype="text" edittype="text" text="bind:btnseq"/>
  64. </Band>
  65. </Format>
  66. </Formats>
  67. </Grid>
  68. <Button position="absolute 168 48 210 68" id="btn_copy" class="btn2" text="복사" onclick="btn_copy_onclick"/>
  69. <Button position="absolute 408 48 450 68" id="btn_save" class="btn5" text="저장" onclick="btn_save_onclick"/>
  70. <Button position="absolute 320 48 362 68" id="button1" class="btn2" text="올림" onclick="button1_onclick"/>
  71. <Button position="absolute 363 48 405 68" id="button2" class="btn2" text="내림" onclick="button2_onclick"/>
  72. <Div id="Div00" taborder="8" position="absolute 0 0 450 39" class="div_SA2">
  73. <Layouts>
  74. <Layout>
  75. <Static id="caption2" text="화면 종류 :" class="search_name" position="absolute 20 10 101 30" anchor="default"/>
  76. <Combo id="cmb_scrnkindcd" taborder="1" innerdataset="ds_M0290" codecolumn="cdid" datacolumn="cdnm" position="absolute 115 10 255 30" anchor="default" onitemchanged="Div00_cmb_scrnkindcd_onitemchanged"/>
  77. <Shape id="line3" linetype="vertical" position="absolute 356 5 362 35" anchor="default"/>
  78. <Button id="btn_req" taborder="2" text="조회" class="btn1" position="absolute 374 10 430 30" anchor="default" onclick="Div00_btn_req_onclick"/>
  79. </Layout>
  80. </Layouts>
  81. </Div>
  82. <Static id="opt_usernm" position="absolute 234 48 316 68" style="font:Dotum,9,bold;"/>
  83. <PopupMenu id="pmn_menu" innerdataset="@ds_mouserght" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 458 95 523 117"/>
  84. </Layout>
  85. </Layouts>
  86. <Objects>
  87. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  88. <ColumnInfo>
  89. <Column id="scrnkindcd" type="STRING" size="256" sumtext="화면종류"/>
  90. <Column id="status" type="STRING" size="256"/>
  91. </ColumnInfo>
  92. <Rows>
  93. <Row/>
  94. </Rows>
  95. </Dataset>
  96. <Dataset id="ds_main_btnevnlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  97. <ColumnInfo>
  98. <Column id="useyn" type="STRING" size="256" sumtext="선택"/>
  99. <Column id="btncd" type="STRING" size="256" sumtext="버튼코드"/>
  100. <Column id="btnnm" type="STRING" size="256" sumtext="버튼명"/>
  101. <Column id="scrnkindcd" type="STRING" size="256" sumtext="화면종류"/>
  102. </ColumnInfo>
  103. </Dataset>
  104. <Dataset id="ds_main_userbtnevnlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_userbtnevnlist_oncolumnchanged">
  105. <ColumnInfo>
  106. <Column id="btncd" type="STRING" size="256" sumtext="버튼코드"/>
  107. <Column id="btnnm" type="STRING" size="256" sumtext="버튼명"/>
  108. <Column id="btnseq" type="STRING" size="256" sumtext="조회순서"/>
  109. <Column id="scrnkindcd" type="STRING" size="256" sumtext="화면종류"/>
  110. </ColumnInfo>
  111. </Dataset>
  112. <Dataset id="ds_M0290" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  113. <Dataset id="ds_mouserght" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="label" type="STRING" size="256"/>
  116. <Column id="func" type="STRING" size="256"/>
  117. <Column id="status" type="STRING" size="256"/>
  118. <Column id="level" type="STRING" size="256"/>
  119. </ColumnInfo>
  120. <Rows>
  121. <Row>
  122. <Col id="label">삭제</Col>
  123. <Col id="func">fDeleteRow</Col>
  124. <Col id="status"/>
  125. <Col id="level">0</Col>
  126. </Row>
  127. </Rows>
  128. </Dataset>
  129. <Dataset id="ds_hidden_userbtnevnlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_userbtnevnlist_oncolumnchanged">
  130. <ColumnInfo>
  131. <Column id="btncd" type="STRING" size="256" sumtext="버튼코드"/>
  132. <Column id="btnnm" type="STRING" size="256" sumtext="버튼명"/>
  133. <Column id="btnseq" type="STRING" size="256" sumtext="조회순서"/>
  134. <Column id="scrnkindcd" type="STRING" size="256" sumtext="화면종류"/>
  135. </ColumnInfo>
  136. </Dataset>
  137. <Dataset id="ds_send_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  138. <ColumnInfo>
  139. <Column id="status" type="STRING" size="256" sumtext="상태값"/>
  140. <Column id="btncd" type="STRING" size="256" sumtext="버튼코드"/>
  141. <Column id="btnnm" type="STRING" size="256" sumtext="버튼명"/>
  142. <Column id="btnseq" type="INT" size="256" sumtext="조회순서"/>
  143. <Column id="scrnkindcd" type="STRING" size="256" sumtext="화면종류"/>
  144. </ColumnInfo>
  145. </Dataset>
  146. </Objects>
  147. <Bind>
  148. <BindItem id="item0" compid="Div00.cmb_scrnkindcd" propid="value" datasetid="ds_main_cond" columnid="scrnkindcd"/>
  149. </Bind>
  150. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  151. * System Name :
  152. * Job Name :
  153. * Creator :
  154. * Make Date : 2014-12-10
  155. * Description :
  156. *---------------------------------------------------------------------------------------
  157. * Modify Date Modifier Modify Description
  158. *---------------------------------------------------------------------------------------
  159. * 2014-12-10 Live Converter TF->XP
  160. *
  161. *---------------------------------------------------------------------------------------
  162. ****************************************************************************************/
  163. include "com_commonxp::comm_main.xjs";
  164. function SPMMB01400_oninit(obj:Form, e:InitEventInfo)
  165. {
  166. frmf_initForm(obj);
  167. }
  168. function SPMMB01400_onload(obj:Form, e:LoadEventInfo)
  169. {
  170. grdf_setRowTypeIcon(grd_userbtnevnlist, 0);
  171. opener.frmf_setParameter ( "SPMMB01400_rtn", "N" );
  172. //화면종류를 공통코드로 받아옴
  173. appf_getCodeList([{dsNm: "ds_M0290", cdGrpId: "M0290"}], true);
  174. //model.setValue("/root/main/title/usernm", getUserInfo("usernm") + "님 선택");
  175. //화면종류를 첫 데이타를 보여줌
  176. Div00.cmb_scrnkindcd.index = 0;
  177. fReqBtnInfo();
  178. }
  179. function Div00_btn_req_onclick(obj:Button, e:ClickEventInfo)
  180. {
  181. fReqBtnInfo();
  182. }
  183. function fReqBtnInfo() {
  184. //그리드 상태를 초기화
  185. ds_main_btnevnlist.clearData();
  186. ds_main_userbtnevnlist.clearData();
  187. //화면종류를 가지고 버튼명을 조회
  188. //전체 버튼 조회
  189. var oParam = {};
  190. oParam.id = "TRMMB01401";
  191. oParam.service = "prcpbaseapp.EnvInfoMngt";
  192. oParam.method = "reqGetBtnEnvList";
  193. oParam.inds = "req=ds_main_cond";
  194. oParam.outds = "ds_main_btnevnlist=btnevnlist";
  195. oParam.async = false;
  196. tranf_submit(oParam);
  197. //사용자 버튼 조회
  198. var oParam = {};
  199. oParam.id = "TRMMB01402";
  200. oParam.service = "prcpbaseapp.EnvInfoMngt";
  201. oParam.method = "reqGetUserBtnEnvList";
  202. oParam.inds = "req=ds_main_cond";
  203. oParam.outds = "ds_main_userbtnevnlist=userbtnevnlist";
  204. oParam.async = false;
  205. tranf_submit(oParam);
  206. ds_main_btnevnlist.addColumn("useyn", "string");
  207. //조회한 전체 개수
  208. var rows = ds_main_btnevnlist.rowcount;
  209. for(var i = 0; i < rows; i++){
  210. ds_main_btnevnlist.setColumn(i, "useyn", '1');
  211. }
  212. //사용자별 버튼명 조회
  213. var userrows = ds_main_userbtnevnlist.rowcount;
  214. //전체와 사용자별을 같은 코드를 선택을 없앰
  215. for(var i = 0; i < userrows; i++){
  216. var btncd = ds_main_userbtnevnlist.getColumn(i, "btncd");
  217. for(var j = 0; j < rows; j++){
  218. var cd = ds_main_btnevnlist.getColumn(j, "btncd");
  219. if(cd == btncd){
  220. ds_main_btnevnlist.setColumn(j, "useyn", '0');
  221. }
  222. }
  223. }
  224. }
  225. function grd_btnevnlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  226. {
  227. if(e.row < 0 || e.col < 0) return;
  228. //신규입력 상태값
  229. ds_main_cond.setColumn(0, "status", 'i');
  230. //중복여부 확인 변수
  231. var dupl = 0;
  232. //선택한 전체버튼 로우
  233. var row = ds_main_btnevnlist.rowposition;
  234. //총 사용자별 그리드 개수
  235. var rows = ds_main_userbtnevnlist.rowcount;
  236. //총 사영자별 버튼 개수
  237. var Urows = ds_main_userbtnevnlist.rowcount;
  238. //전체 버튼의 버튼코드, 버튼명, 화면종류 를 받아옴
  239. var cd = ds_main_btnevnlist.getColumn(row, "btncd");
  240. var nm = ds_main_btnevnlist.getColumn(row, "btnnm");
  241. var kind = ds_main_btnevnlist.getColumn(row, "scrnkindcd");
  242. //선택된 버튼이 사용자 버튼에 존재하는 지 확인
  243. for(var j = 0; j < rows; j++){
  244. //코드값과 명을 받아옴
  245. var userbtncd = ds_main_userbtnevnlist.getColumn(j, "btncd");
  246. var userbtnnm = ds_main_userbtnevnlist.getColumn(j, "btnnm");
  247. //코드가 같은 것이 있는지 확인 있는 경우 메세지
  248. if(cd == userbtncd){
  249. sysf_messageBox(userbtnnm + " 버튼명이 ","E006");
  250. dupl = dupl + 1;
  251. }
  252. }
  253. //중복된 코드가 없는 경우
  254. if(dupl == 0){
  255. //사용자 버튼 그리드에 로우 추가
  256. var nRow = ds_main_userbtnevnlist.addRow();
  257. //현재 사용자 버튼 그리드에 선택된 버튼이 하나도 없을 경우
  258. if(rows == 0){
  259. //첫번째 로우에 버튼코드, 버튼명, 화면종류, 조회순서을 세팅
  260. ds_main_userbtnevnlist.setColumn(nRow, "btncd", cd);
  261. ds_main_userbtnevnlist.setColumn(nRow, "btnnm", nm);
  262. ds_main_userbtnevnlist.setColumn(nRow, "scrnkindcd", kind);
  263. ds_main_userbtnevnlist.setColumn(nRow, "btnseq", nRow + 1);
  264. //전체 버튼 그리드에 선택된 로우의 선택을 선택해제
  265. ds_main_userbtnevnlist.setColumn(nRow, "useyn", '0');
  266. }else{
  267. //사용자버튼 그리드에 선택된 버튼이 있는 경우
  268. //사용자별 총 버튼 개수의 마지막 조회순서값을 받아옴
  269. var seq = ds_main_userbtnevnlist.getColumn((Urows-1), "btnseq");
  270. //계산가능하게 변경
  271. var btnseq = parseInt(seq);
  272. //버튼코드, 버튼명, 화면종류, 조회순서을 세팅
  273. ds_main_userbtnevnlist.setColumn(nRow, "btncd", cd);
  274. ds_main_userbtnevnlist.setColumn(nRow, "btnnm", nm);
  275. ds_main_userbtnevnlist.setColumn(nRow, "scrnkindcd", kind);
  276. //조회순서는 마지막 조회순서에서 1증가하여 세팅
  277. ds_main_userbtnevnlist.setColumn(nRow, "btnseq", (btnseq + 1));
  278. //전체 버튼 그리드에 선택된 로우의 선택을 선택해제
  279. ds_main_userbtnevnlist.setColumn(nRow, "useyn", '0');
  280. }
  281. }
  282. }
  283. function grd_userbtnevnlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  284. {
  285. if(e.row < 0) return;
  286. grdf_setSelectedCell(obj, e);
  287. pmn_menu.trackPopup(e.screenX,e.screenY);
  288. }
  289. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  290. {
  291. eval(e.id + "()");
  292. }
  293. function ds_main_userbtnevnlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  294. {
  295. //복사를 했다는 상태를 나타내서 수정인것을 나타냄
  296. ds_main_cond.setColumn(0, "status", 'u');
  297. //에러가 나면 이전 상태로 만들어 주기위해 저장하여 둠
  298. ds_hidden_userbtnevnlist.copyData(obj);
  299. //조회순서가 변경되면 변경된 조회순서보다 큰것은 모두 조회순서들을 1씩 증가
  300. //변경한 로우
  301. var row = e.row;
  302. //사용자 버튼 선택 그리드 총 수
  303. var rows = obj.rowcount;
  304. //변경한 로우의 조회순서값
  305. var seq = obj.getColumn(row, "btnseq");
  306. //조회순서값을 계산가능하게..
  307. seq = parseInt(seq);
  308. //그리드를 총 비교하기 위해 루프를 돔
  309. for(var i = 0; i < rows ; i++){
  310. //조회순서값을 받아옴
  311. var rowseq = obj.getColumn(i, "btnseq");
  312. //변경한 로우의 조회순서값과 이행의 로우의 조회순서값을 비교하여 같거나 큰경우 변경하고 그 행의 조회순서는 변경안되게 한다.
  313. if((rowseq >= seq) && (i != row)){
  314. //변경한 조회순서보다 1씩 증가를 위해 값을 증가
  315. seq = seq + 1;
  316. //증가한 조회순서를 로우에 변경
  317. obj.setColumn(i, "btnseq",seq);
  318. //변경한 로우를 update상태로 변경
  319. obj.setRowType(i, Dataset.ROWTYPE_UPDATE);
  320. }
  321. }
  322. }
  323. function Div00_cmb_scrnkindcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  324. {
  325. Div00.btn_req.onclick.fireEvent(Div00.btn_req, new ClickEventInfo());
  326. }
  327. function btn_copy_onclick(obj:Button, e:ClickEventInfo)
  328. {
  329. //복사를 했다는 상태를 나타내서 신규입력인것을 나타냄
  330. ds_main_cond.setColumn(0, "status", 'i');
  331. //전체버튼 선택 개수
  332. var rows = ds_main_btnevnlist.rowcount;
  333. //사용자 버튼 선택 개수
  334. var userrows = ds_main_userbtnevnlist.rowcount;
  335. var count = 0;
  336. var row = 0;
  337. //사용자 버튼 선택된 마지막 로우의 조회순서
  338. var seq = ds_main_userbtnevnlist.getColumn(userrows - 1, "btnseq");
  339. //조회순서 값이 null이면 0 값을 입력
  340. if (utlf_isNull(seq)) {
  341. seq = 0;
  342. }
  343. //조회순서 계산 가능
  344. var kind = parseInt(seq);
  345. //전체 버튼에서 선택 되어 있는 버튼을 복사 버튼을 누르면 모두 사용자 선택버튼 쪽으로 복사
  346. for(var i = 0; i < rows; i++){
  347. //중복여부 확인 변수
  348. var dupl = 0;
  349. //선택되어 있는지 값받아옴
  350. var check = ds_main_btnevnlist.getColumn(i, "useyn");
  351. //버튼코드, 버튼명, 화면종류 값 받아옴
  352. var btncd = ds_main_btnevnlist.getColumn(i, "btncd");
  353. var btnnm = ds_main_btnevnlist.getColumn(i, "btnnm");
  354. var scrnkindcd = ds_main_btnevnlist.getColumn(i, "scrnkindcd");
  355. //선택되어 있는 경우 사용자 버튼선택에 존재하지 않으므로 복사
  356. if(check == '1'){
  357. //선택된 버튼이 사용자 버튼에 존재하는 지 확인
  358. for(var j = 0; j < userrows; j++){
  359. //코드값과 명을 받아옴
  360. var userbtncd = ds_main_userbtnevnlist.getColumn(j, "btncd");
  361. var userbtnnm = ds_main_userbtnevnlist.getColumn(j, "btnnm");
  362. //코드가 같은 것이 있는지 확인 있는 경우 메세지
  363. if(btncd == userbtncd){
  364. sysf_messageBox(userbtnnm + " 버튼명이 ","E006");
  365. dupl = dupl + 1;
  366. }
  367. }
  368. //중복된 코드가 없는 경우
  369. if(dupl == 0){
  370. //복사한 개수
  371. count = count +1;
  372. //조회순서값을 1씩 증가
  373. kind = kind + 1;
  374. //로우를 한줄 생성
  375. //한줄 성생된 로우 값
  376. row = ds_main_userbtnevnlist.addRow();
  377. //받아온 코드, 명, 화면종류를 셋하고 조회순서로 셋한다.
  378. ds_main_userbtnevnlist.setColumn(row, "btncd", btncd);
  379. ds_main_userbtnevnlist.setColumn(row, "btnnm", btnnm);
  380. ds_main_userbtnevnlist.setColumn(row, "btnseq", kind);
  381. ds_main_userbtnevnlist.setColumn(row, "scrnkindcd", scrnkindcd);
  382. //전체 그리드에서 선택된 것을 선택 해제
  383. ds_main_btnevnlist.setColumn(i, "useyn", '0');
  384. }
  385. }
  386. }
  387. }
  388. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  389. {
  390. //상태값을 받아옴
  391. //var status = model.getValue("/root/init/msrght/mouserght/status");
  392. //중복여부 확인변수
  393. var dupl = 'false';
  394. //사용자 선택 버튼 개수
  395. var rows = ds_main_userbtnevnlist.rowcount;
  396. //버튼명을 저장할 변수
  397. var nm = null;
  398. //등록할때의 상태값
  399. var status = ds_main_cond.getColumn(0, "status");
  400. //삭제할 때의 상태값
  401. var delstatus = ds_mouserght.getColumn(0, "status");
  402. //등록할 때의 상태값인경우
  403. if(status == 'i' || status == 'u'){
  404. //그리드이 상태가 변한 데이타를 가져감
  405. var oDsUpdate = grdf_getGridUpdateData(grd_userbtnevnlist);
  406. grdf_setStatusColumn(oDsUpdate, "status");
  407. ds_send_savedata.copyData(oDsUpdate, true);
  408. //상태값을 초기화
  409. ds_main_cond.setColumn(0, "status", '');
  410. }else if(delstatus == 'd'){
  411. //삭제인 경우
  412. var oDsUpdate = grdf_getGridUpdateData(grd_userbtnevnlist, "delete");
  413. grdf_setStatusColumn(oDsUpdate, "status");
  414. ds_send_savedata.copyData(oDsUpdate, true);
  415. // var xPath = "/root/main/info/userbtnevninfo/userbtnevnlist";
  416. // var savedata ="m▦rownum▦btnnm▦btncd▦scrnkindcd▦btnseq▩";
  417. //
  418. // //멀티로 선택한 데이타의 개수를 받아옴
  419. // var selectedrows = grd_userbtnevnlist.selectedRows;
  420. // //사용자버튼선택 그리드의 개수를 받아옴
  421. // var sRowCnt = grd_userbtnevnlist.rows - grd_userbtnevnlist.fixedRows;
  422. // //멀티로 선택한 로우값을 저장할 변수
  423. // var row = new Array();
  424. // //멀티로 선택한 로우값을 변수에 저장
  425. // for(var i = selectedrows-1 ; i >= 0 ; i--){
  426. // row[i] = grd_userbtnevnlist.selectedRow(i);
  427. // }
  428. // //data를 보냄
  429. // for(var i = selectedrows-1 ; i >= 0 ; i--){
  430. // savedata += "d" + "▦";
  431. // savedata += row[i] + "▦";
  432. // savedata += model.getValue(xPath+"["+row[i]+"]/btnnm" ) + "▦";
  433. // savedata += model.getValue(xPath+"["+row[i]+"]/btncd" ) + "▦";
  434. // savedata += model.getValue(xPath+"["+row[i]+"]/scrnkindcd" ) + "▦";
  435. // savedata += model.getValue(xPath+"["+row[i]+"]/btnseq" ) + "▩";
  436. // }
  437. // //받아온 데이타를 보냄
  438. // model.setValue("/root/send/savedata",savedata);
  439. //상태값을 초기화
  440. ds_mouserght.setColumn(0, "status", '');
  441. }
  442. //저장하러 간다
  443. var oParam = {};
  444. oParam.id = "TXMMB01401";
  445. oParam.service = "prcpbaseapp.EnvInfoMngt";
  446. oParam.method = "reqExeUserBtnEnvList";
  447. oParam.inds = "save=ds_send_savedata";
  448. oParam.outds = "ds_main_btnevnlist=btnevnlist ds_main_userbtnevnlist=userbtnevnlist";
  449. oParam.async = false;
  450. oParam.callback = "cf_TXMMB01401";
  451. tranf_submit(oParam);
  452. }
  453. function cf_TXMMB01401(sSvcId, nErrorCode, sErrorMsg) {
  454. if(nErrorCode > -1) {
  455. //저장이 완료되면 초기화
  456. //model.copyNode("/root/send/reqdata", "");
  457. //model.setValue("/root/send/savedata", "");
  458. ds_main_btnevnlist.addColumn("useyn", "string");
  459. //전체의 총 개수
  460. var rows = ds_main_btnevnlist.rowcount;
  461. //전체의 선택을 모두 선택상태로 만듬
  462. for(var i = 0; i < rows; i++){
  463. ds_main_btnevnlist.setColumn(i, "useyn", '1');
  464. }
  465. //사용자 버튼 선택 개수를 받아옴
  466. var userrows = ds_main_userbtnevnlist.rowcount;
  467. //사용자 선택 개수와 전체버튼 개수 코드를 비교하여 같은 것이 있는 경우 선택 해제
  468. for(var i = 0; i < userrows ; i++){
  469. btncd = ds_main_userbtnevnlist.getColumn(i, "btncd");
  470. for(var j = 0; j < rows; j++){
  471. var cd = ds_main_btnevnlist.getColumn(j, "btncd");
  472. if(cd == btncd){
  473. ds_main_btnevnlist.setColumn(j, "useyn", '0');
  474. }
  475. }
  476. }
  477. //제대로 저장되었다고 상태값을 보내고 창닫음
  478. opener.frmf_setParameter ( "SPMMB01400_rtn", "Y" );
  479. close();
  480. } else {
  481. //저장이 완료되면 초기화
  482. ds_send_savedata.clearData();
  483. //저장이 되지 않았다는 상태값을 보내고 창닫음
  484. opener.frmf_setParameter ( "SPMMB01400_rtn", "N" );
  485. close();
  486. }
  487. }
  488. function button1_onclick(obj:Button, e:ClickEventInfo)
  489. {
  490. //수정을 했다는 상태를 나타내서 수정인것을 나타냄
  491. ds_main_cond.setColumn(0, "status", 'u');
  492. var selectedRows = grdf_getSelectedRows(grd_userbtnevnlist);
  493. for(var i = 0; i < selectedRows.length; i++) {
  494. var oldrow = selectedRows[i];
  495. if(oldrow == 0) {
  496. sysf_messageBox("올림을", "E001");
  497. break;
  498. }
  499. var newrow = oldrow - 1;
  500. // btnseq만 바꾸고 moveRow 시킨다.
  501. var oldbtnseq = ds_main_userbtnevnlist.getColumn(oldrow, "btnseq");
  502. var newbtnseq = ds_main_userbtnevnlist.getColumn(newrow, "btnseq");
  503. ds_main_userbtnevnlist.setColumn(newrow, "btnseq", oldbtnseq);
  504. ds_main_userbtnevnlist.setColumn(oldrow, "btnseq", newbtnseq);
  505. ds_main_userbtnevnlist.moveRow(oldrow, newrow);
  506. ds_main_userbtnevnlist.selectRow(newrow);
  507. ds_main_userbtnevnlist.selectRow(oldrow, false);
  508. grdf_setStatus(grd_userbtnevnlist, "U", [newrow]);
  509. grdf_setStatus(grd_userbtnevnlist, "U", [oldrow]);
  510. }
  511. }
  512. function button2_onclick(obj:Button, e:ClickEventInfo)
  513. {
  514. //수정을 했다는 상태를 나타내서 수정인것을 나타냄
  515. ds_main_cond.setColumn(0, "status", 'u');
  516. var lastrow = ds_main_userbtnevnlist.rowcount - 1;
  517. var selectedRows = grdf_getSelectedRows(grd_userbtnevnlist);
  518. for(var i = 0; i < selectedRows.length; i++) {
  519. var oldrow = selectedRows[i];
  520. if(oldrow == lastrow) {
  521. sysf_messageBox("내림을", "E001");
  522. break;
  523. }
  524. var newrow = oldrow + 1;
  525. // btnseq만 바꾸고 moveRow 시킨다.
  526. var oldbtnseq = ds_main_userbtnevnlist.getColumn(oldrow, "btnseq");
  527. var newbtnseq = ds_main_userbtnevnlist.getColumn(newrow, "btnseq");
  528. ds_main_userbtnevnlist.setColumn(newrow, "btnseq", oldbtnseq);
  529. ds_main_userbtnevnlist.setColumn(oldrow, "btnseq", newbtnseq);
  530. ds_main_userbtnevnlist.moveRow(oldrow, newrow);
  531. ds_main_userbtnevnlist.selectRow(newrow);
  532. ds_main_userbtnevnlist.selectRow(oldrow, false);
  533. grdf_setStatus(grd_userbtnevnlist, "U", [newrow]);
  534. grdf_setStatus(grd_userbtnevnlist, "U", [oldrow]);
  535. }
  536. }
  537. //선택된 row삭제
  538. function fDeleteRow(){
  539. //상태값을 삭제로..
  540. ds_mouserght.setColumn(0, "status", 'd');
  541. //선택한 로우를 지움
  542. var arrPostion = new Array();
  543. arrPostion[0] = ds_main_userbtnevnlist.rowposition;
  544. grdf_setStatus(grd_userbtnevnlist, "D", arrPostion);
  545. }]]></Script>
  546. </Form>
  547. </FDL>