SMMMB08200_하드코드내역.xfdl 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMMMB08200" position="absolute 0 0 1195 798" titletext="Hard-Code 내역" onload="SMMMB08200_onload" oninit="SMMMB08200_oninit">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption1" class="tit_1" position="absolute 0 0 140 24" style="" text="Hard-Code 내역"/>
  8. <Static id="caption3" class="tit_2" position="absolute 0 87 175 108" text="Hard-Code 내역 리스트"/>
  9. <Shape id="line2" class="line_10" linetype="horizontal" position="absolute 0 101 671 112" style="" anchor="default"/>
  10. <Grid id="grd_hardcodespec" binddataset="ds_main_info_specinfo_speclist" position="absolute 0 108 671 790" style="" oncellclick="grd_hardcodespec_oncellclick" oncellclick1="grd_hardcodespec_oncellclick1" autoenter="select" cellsizingtype="col" selecttype="multirow" anchor="left top bottom">
  11. <Formats>
  12. <Format id="default">
  13. <Columns>
  14. <Column size="33"/>
  15. <Column size="100"/>
  16. <Column size="500"/>
  17. </Columns>
  18. <Rows>
  19. <Row size="24" band="head"/>
  20. <Row size="24"/>
  21. </Rows>
  22. <Band id="head">
  23. <Cell/>
  24. <Cell col="1" text="코드"/>
  25. <Cell col="2" text="코드명"/>
  26. </Band>
  27. <Band id="body">
  28. <Cell celltype="head" expr="currow+1"/>
  29. <Cell col="1" displaytype="text" style="align:center middle;" text="bind:hardcdno" editlimitbymask="none"/>
  30. <Cell col="2" style="align:left middle;" text="bind:hardcdnm"/>
  31. </Band>
  32. </Format>
  33. </Formats>
  34. </Grid>
  35. <Static id="caption4" class="tit_2" position="absolute 675 32 895 53" text="Hard-Code 상세 내역 리스트"/>
  36. <Shape id="line1" class="line_10" linetype="horizontal" position="absolute 675 46 1192 57" style="" anchor="left top right"/>
  37. <Grid id="grd_hardcodespecdetl" binddataset="ds_main_info_specdetlinfo_specdetllist" position="absolute 675 53 1192 790" style="" selecttype="multirow" cellsizingtype="col" oncelldblclick="grd_hardcodespecdetl_oncelldblclick" autoenter="select" anchor="all">
  38. <Formats>
  39. <Format id="default">
  40. <Columns>
  41. <Column size="21"/>
  42. <Column size="100"/>
  43. <Column size="200"/>
  44. <Column size="0"/>
  45. <Column size="0"/>
  46. <Column size="90"/>
  47. <Column size="90"/>
  48. </Columns>
  49. <Rows>
  50. <Row size="24" band="head"/>
  51. <Row size="24"/>
  52. </Rows>
  53. <Band id="head">
  54. <Cell/>
  55. <Cell col="1" text="코드"/>
  56. <Cell col="2" text="코드명"/>
  57. <Cell col="3" text="Hard-Code코드"/>
  58. <Cell col="4" text="코드일련번호"/>
  59. <Cell col="5" text="시작일자"/>
  60. <Cell col="6" text="종료일자"/>
  61. </Band>
  62. <Band id="body">
  63. <Cell celltype="head"/>
  64. <Cell col="1" edittype="text" style="align:left middle;" text="bind:trgtcd" editautoselect="true"/>
  65. <Cell col="2" edittype="textarea" style="align:left top;padding:5 2 3 2;" text="bind:trgtcdnm" wordwrap="word" editautoselect="true" autosizerow="limitmin" autosizecol="default"/>
  66. <Cell col="3" text="bind:hardcdno"/>
  67. <Cell col="4" text="bind:cdseqno"/>
  68. <Cell col="5" displaytype="date" edittype="date" style="align:left middle;" text="bind:valifromdd" editautoselect="true" calendardisplaynulltype="nulltext"/>
  69. <Cell col="6" displaytype="date" edittype="date" style="align:left middle;" text="bind:valitodd" editautoselect="true" calendardisplaynulltype="nulltext"/>
  70. </Band>
  71. </Format>
  72. </Formats>
  73. </Grid>
  74. <Button id="button7" class="btn2" position="absolute 1059 29 1101 48" style="" text="신규" onclick="button7_onclick" anchor="top right"/>
  75. <Button id="button8" class="btn2" position="absolute 1105 29 1147 48" style="" text="삭제" onclick="button8_onclick" anchor="top right"/>
  76. <Button id="button9" class="btn5" position="absolute 1150 29 1192 48" style="" text="저장" onclick="button9_onclick" anchor="top right"/>
  77. <Button id="button1" class="btn4" position="absolute 556 26 612 48" style="" text="신규" onclick="button1_onclick"/>
  78. <Button id="button2" class="btn2" position="absolute 629 84 671 103" style="" text="삭제" onclick="button2_onclick"/>
  79. <Button id="button3" class="btn4" position="absolute 614 26 670 48" style="" text="저장" onclick="button3_onclick"/>
  80. <Static id="caption2" class="cell_1" position="absolute 0 53 101 76" style="padding:0 0 0 0;align:center middle;" text="Hard-Code"/>
  81. <Edit id="ipt_hardcdno" class="input_search" position="absolute 104 55 196 74" style="" anchor="default"/>
  82. <Static id="caption5" class="cell_1" position="absolute 200 53 301 76" style="padding:0 0 0 0;align:center middle;" text="Hard-Code 명"/>
  83. <Edit id="ipt_hardcdnm" class="input_search" position="absolute 304 55 670 74" style="" anchor="default"/>
  84. <Shape id="line3" class="line_10" linetype="horizontal" position="absolute 0 46 671 57" style="" anchor="default"/>
  85. <Static id="caption6" class="tit_2" position="absolute 0 32 175 53" text="Hard-Code 내역 등록"/>
  86. <Shape id="line4" class="line_3" linetype="horizontal" position="absolute 0 77 671 80" style="" anchor="default"/>
  87. </Layout>
  88. </Layouts>
  89. <Objects>
  90. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  91. <ColumnInfo>
  92. <Column id="hardcdno" type="STRING" size="256"/>
  93. <Column id="hardcdnm" type="STRING" size="256"/>
  94. <Column id="status" type="STRING" size="256"/>
  95. </ColumnInfo>
  96. <Rows>
  97. <Row>
  98. <Col id="hardcdno"/>
  99. <Col id="hardcdnm"/>
  100. <Col id="status"/>
  101. </Row>
  102. </Rows>
  103. </Dataset>
  104. <Dataset id="ds_main_info_specinfo_speclist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  105. <ColumnInfo>
  106. <Column id="hardcdno" type="STRING" size="256" sumtext="하드코드"/>
  107. <Column id="hardcdnm" type="STRING" size="256" sumtext="하드코드명"/>
  108. </ColumnInfo>
  109. </Dataset>
  110. <Dataset id="ds_main_info_specdetlinfo_specdetllist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  111. <ColumnInfo>
  112. <Column id="trgtcd" type="STRING" size="256" sumtext="대상코드"/>
  113. <Column id="trgtcdnm" type="STRING" size="256" sumtext="대상코드명"/>
  114. <Column id="valifromdd" type="STRING" size="256" sumtext="시작일자"/>
  115. <Column id="valitodd" type="STRING" size="256" sumtext="종료일자"/>
  116. <Column id="hardcdno" type="STRING" size="256" sumtext="하드코드"/>
  117. <Column id="cdseqno" type="STRING" size="256" sumtext="코드일련번호"/>
  118. </ColumnInfo>
  119. </Dataset>
  120. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  121. <Dataset id="ds_send_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  122. </Objects>
  123. <Bind>
  124. <BindItem id="item0" compid="ipt_hardcdno" propid="value" datasetid="ds_main_cond" columnid="hardcdno"/>
  125. <BindItem id="item1" compid="ipt_hardcdnm" propid="value" datasetid="ds_main_cond" columnid="hardcdnm"/>
  126. </Bind>
  127. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  128. * System Name :
  129. * Job Name :
  130. * File Name :
  131. * Creator :
  132. * Make Date :
  133. *
  134. * Description :
  135. *---------------------------------------------------------------------------------------
  136. ****************************************************************************************/
  137. include "com_commonxp::comm_main.xjs"
  138. function SMMMB08200_oninit(obj:Form, e:InitEventInfo)
  139. {
  140. frmf_initForm(obj);
  141. }
  142. function SMMMB08200_onload(obj:Form, e:LoadEventInfo)
  143. {
  144. grdf_initGrid(grd_hardcodespec);
  145. grdf_initGrid(grd_hardcodespecdetl);
  146. grdf_setRowTypeIcon(grd_hardcodespecdetl, 0);
  147. //그리드 초기화
  148. ds_main_info_specinfo_speclist.clearData();
  149. ds_main_info_specdetlinfo_specdetllist.clearData();
  150. //hard-code내역을 조회
  151. var oParam = {};
  152. oParam.id = "TRMMB08204";
  153. oParam.service = "prcpbaseapp.PrcpClsMngt";
  154. oParam.method = "reqGetSpecList";
  155. oParam.inds = "";
  156. oParam.outds = "ds_main_info_specinfo_speclist=speclist";
  157. oParam.async = false;
  158. //oParam.callback = "cf_TRMMB08204";
  159. tranf_submit(oParam);
  160. //hard-code내역에 해당하는 첫번째 행의 상세내역을 조회
  161. ds_send_reqdata.copyData(ds_main_info_specinfo_speclist);
  162. ds_send_reqdata.addColumn("status", "status");
  163. var oParam = {};
  164. oParam.id = "TRMMB08205";
  165. oParam.service = "prcpbaseapp.PrcpClsMngt";
  166. oParam.method = "reqGetSpecDetlList";
  167. oParam.inds = "req=ds_send_reqdata";
  168. oParam.outds = "ds_main_info_specdetlinfo_specdetllist=specdetllist";
  169. oParam.async = false;
  170. //oParam.callback = "cf_TRMMB08205";
  171. tranf_submit(oParam);
  172. //하드코드 내역을 불러온것의 첫번째 값을 읽어옴
  173. var hardcdno = ds_main_info_specinfo_speclist.getColumn(0, "hardcdno");
  174. var hardcdnm = ds_main_info_specinfo_speclist.getColumn(0, "hardcdnm");
  175. //단지 첫번째 값을 보여주므로 input박스 비활성화
  176. ipt_hardcdno.enable = false;
  177. ipt_hardcdnm.enable = false;
  178. //받아온 첫번째 하드코드,하드코드명을 input박스에 뿌려줌
  179. ipt_hardcdno.value = hardcdno;
  180. ipt_hardcdnm.value = hardcdnm;
  181. }
  182. function grd_hardcodespec_oncellclick(obj:Grid, e:GridClickEventInfo)
  183. {
  184. //그리드 row선택시 row외 다른곳 선택시 error메세지
  185. if(!utlf_isNull(obj.getCellText(e.row, e.cell)) && e.row >= 0)
  186. {
  187. ///수정를 원하는 로우를 얻어온다.
  188. var gridrow = ds_main_info_specinfo_speclist.rowposition;
  189. //코드값을 가지고 가기위해
  190. ds_send_reqdata.copyData(ds_main_info_specinfo_speclist);
  191. ds_send_reqdata.clearData();
  192. ds_send_reqdata.copyRow(ds_send_reqdata.addRow(), ds_main_info_specinfo_speclist, gridrow);
  193. //상세내역을 알기 위해 하드코드 값을 가지고 상세내역 조회
  194. var oParam = {};
  195. oParam.id = "TRMMB08205";
  196. oParam.service = "prcpbaseapp.PrcpClsMngt";
  197. oParam.method = "reqGetSpecDetlList";
  198. oParam.inds = "req=ds_send_reqdata";
  199. oParam.outds = "ds_main_info_specdetlinfo_specdetllist=specdetllist";
  200. oParam.async = false;
  201. //oParam.callback = "cf_TRMMB08205";
  202. tranf_submit(oParam);
  203. ds_send_reqdata.clearData();
  204. }
  205. }
  206. function button2_onclick(obj:Button, e:ClickEventInfo)
  207. {
  208. //멀티로 삭제를 원하는 로우를 얻어온다.
  209. var selectedRows = grdf_getSelectedRows(grd_hardcodespec);
  210. //선택한 로우의 하드코드,하드코드명을 받아옴
  211. var cdno = new Array();
  212. var cdnm = new Array();
  213. //선택한 삭제로우행을 받아오기 위해 배열지정
  214. var row = new Array();
  215. //멀티로 선택한 로우행값, 하드코드, 하드코드명을 받아옴
  216. for (var i = selectedRows.length-1; i >= 0; i--)
  217. {
  218. row[i] = selectedRows[i];
  219. cdno[i] = ds_main_info_specinfo_speclist.getColumn(row[i], "hardcdno");
  220. cdnm[i] = ds_main_info_specinfo_speclist.getColumn(row[i], "hardcdnm");
  221. }
  222. xPath = ds_main_info_specinfo_speclist;
  223. var savedata ="status▦hardcdno▦hardcdnm▩";
  224. for (var i = selectedRows.length-1; i >= 0; i--)
  225. {
  226. //삭제를 원하는 로우의 하드코드를 얻어온다.
  227. var hardcdno = cdno[i];
  228. //하드코드값이 비어있으면 메세지
  229. if(utlf_isNull(hardcdno))
  230. {
  231. sysf_messageBox("삭제할 Hard-Code 를 ", "C002");
  232. }
  233. else
  234. {
  235. savedata += 'd' + "▦";
  236. savedata += xPath.getColumn(row[i], "hardcdno") + "▦";
  237. savedata += xPath.getColumn(row[i], "hardcdnm") + "▩";
  238. }
  239. }
  240. dsf_setCSVToDs("ds_send_savedata", savedata);
  241. ds_send_reqdata.clearData();
  242. var oParam = {};
  243. oParam.id = "TXMMB08201";
  244. oParam.service = "prcpbaseapp.PrcpClsMngt";
  245. oParam.method = "reqExeSaveSpecList";
  246. oParam.inds = "save=ds_send_savedata req=ds_send_reqdata";
  247. oParam.outds = "ds_main_info_specinfo_speclist=speclist ds_main_info_specdetlinfo_specdetllist=specdetllist";
  248. oParam.async = false;
  249. //oParam.callback = "cf_TXMMB08201";
  250. tranf_submit(oParam);
  251. ipt_hardcdno.enable = false;
  252. ipt_hardcdnm.enable = false;
  253. ipt_hardcdno.value = '';
  254. ipt_hardcdnm.value = '';
  255. }
  256. function button1_onclick(obj:Button, e:ClickEventInfo)
  257. {
  258. //관심슬립 그리드의 선택이 해제되게 하기
  259. ds_main_info_specinfo_speclist.clearSelect();
  260. ds_main_info_specinfo_speclist.rowposition = -1;
  261. ipt_hardcdno.value = '';
  262. ipt_hardcdnm.value = '';
  263. ipt_hardcdno.enable = true;
  264. ipt_hardcdnm.enable = true;
  265. //상태값을 등록으로 만든다.
  266. ds_main_cond.setColumn(0, "status", 'i');
  267. ds_main_info_specdetlinfo_specdetllist.clearData();
  268. }
  269. function button3_onclick(obj:Button, e:ClickEventInfo)
  270. {
  271. //현재 상태값을 받아옴
  272. var status = ds_main_cond.getColumn(0, "status");
  273. //신규나 삭제 상태가 아닌 경우는 수정 상태로 만듬
  274. if((status != 'i') && (status != 'd'))
  275. {
  276. ds_main_cond.setColumn(0, "status", 'u');
  277. }
  278. //하드코드내역의 선택된 로우
  279. var gridrow = ds_main_info_specinfo_speclist.rowposition;
  280. //하드코드내역의 총 로우수
  281. var gridrows = ds_main_info_specinfo_speclist.rowcount;
  282. //하드코드 내역의 선택된 로우의 하드코드
  283. var hardcdno1 = ds_main_cond.getColumn(0, "hardcdno");
  284. var count = 0;
  285. var status = ds_main_cond.getColumn(0, "status");
  286. //코드가 중복인지 확인
  287. if(status != 'u')
  288. {
  289. for(var i = 0; i < gridrows; i++)
  290. {
  291. var hardcdno2 = utlf_transNullToEmpty(ds_main_info_specinfo_speclist.getColumn(i, "hardcdno"));
  292. //중복되어 같은 것이 있는지 확인
  293. if(hardcdno1 == hardcdno2)
  294. {
  295. sysf_messageBox(hardcdno2 + " Hard-Code가","E006");
  296. ipt_hardcdno.value = '';
  297. count = 1;
  298. break;
  299. }
  300. }
  301. }
  302. else
  303. {
  304. //선택된 로우의 해당 하드코드값을 받아옴
  305. var hardcdno2 = ds_main_info_specinfo_speclist.getColumn(gridrow , "hardcdno");
  306. //선택된 로우와 등록에 존재하는 하드코드가 서로 다른 경우 신규로 등록하는 경우
  307. if(hardcdno1 != hardcdno2)
  308. {
  309. for(var i = 0; i < gridrows; i++)
  310. {
  311. var hardcdno2 = utlf_transNullToEmpty(ds_main_info_specinfo_speclist.getColumn(i, "hardcdno"));
  312. //신규로 하드코드 등록시 같은 하드 코드가 있는지 비교
  313. if(hardcdno1 == hardcdno2)
  314. {
  315. sysf_messageBox(hardcdno2 + " Hard-Code가","E006");
  316. ipt_hardcdno.value = '';
  317. count = 1;
  318. break;
  319. }
  320. }
  321. }
  322. }
  323. //중복된 하드 코드가 없는경우
  324. if(count == 0)
  325. {
  326. var status = ds_main_cond.getColumn(0, "status");
  327. if(status == 'u')
  328. {
  329. xPath = ds_main_info_specinfo_speclist;
  330. var savedata ="status▦hardcdno▦hardcdnm▩";
  331. savedata += 'u' + "▦";
  332. savedata += xPath.getColumn(gridrow, "hardcdno") + "▦";
  333. savedata += xPath.getColumn(gridrow, "hardcdnm") + "▩";
  334. dsf_setCSVToDs("ds_send_savedata", savedata);
  335. }
  336. else
  337. {
  338. ds_send_savedata.clearData();
  339. }
  340. ds_send_reqdata.copyData(ds_main_cond);
  341. //하드코드내역을 저장
  342. var oParam = {};
  343. oParam.id = "TXMMB08201";
  344. oParam.service = "prcpbaseapp.PrcpClsMngt";
  345. oParam.method = "reqExeSaveSpecList";
  346. oParam.inds = "save=ds_send_savedata req=ds_send_reqdata";
  347. oParam.outds = "ds_main_info_specinfo_speclist=speclist ds_main_info_specdetlinfo_specdetllist=specdetllist";
  348. oParam.async = false;
  349. //oParam.callback = "cf_TXMMB08201";
  350. tranf_submit(oParam);
  351. }
  352. ds_main_cond.setColumn(0, "status", '-');
  353. //저장후 입력한 것을 지우고 입력창을 비활성화한다
  354. ipt_hardcdno.enable = false;
  355. ipt_hardcdnm.enable = false;
  356. ipt_hardcdno.value = '';
  357. ipt_hardcdnm.value = '';
  358. }
  359. function grd_hardcodespecdetl_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  360. {
  361. //그리드 row선택시 row외 다른곳 선택시 error메세지
  362. if( e.row >= 0 && !utlf_isNull(obj.getCellText(e.row, e.cell)))
  363. {
  364. //내역 그리드의 선택한 코드번호를 받아온다.
  365. var gridrow = ds_main_info_specinfo_speclist.rowposition;
  366. //내역 리스트에서 선택한 하드코드값을 받아옴
  367. var hardcdno = ds_main_cond.getColumn(0, "hardcdno");
  368. //내역 리스트를 선택하지 않은 경우
  369. if(utlf_isNull(hardcdno ))
  370. {
  371. //화면 open시 첫번째 코드를 받아오므로 첫번째 하드코드값을 가진다.
  372. var hardcdno = ds_main_info_specdetlinfo_specdetllist.getColumn(0, "hardcdno");
  373. }
  374. //상세내역 그리드의 신규로 생성한 로우에 코드를 저장한다
  375. var row = ds_main_info_specdetlinfo_specdetllist.rowposition;
  376. //받아온 하드코드값을 상세내역 리스트하드코드 값으로 넣는다.
  377. ds_main_info_specdetlinfo_specdetllist.updatecontrol = false;
  378. ds_main_info_specdetlinfo_specdetllist.setColumn(row, "hardcdno",hardcdno);
  379. //상태값을 만든다.
  380. dsf_makeValue(ds_main_info_specdetlinfo_specdetllist, "status", "string", "-", row);
  381. ds_main_info_specdetlinfo_specdetllist.updatecontrol = true;
  382. //조회나 저장을 위해 로우 값을 가진다.
  383. ds_send_reqdata.copyData(ds_main_info_specdetlinfo_specdetllist);
  384. ds_send_reqdata.clearData();
  385. ds_send_reqdata.copyRow(ds_send_reqdata.addRow(), ds_main_info_specdetlinfo_specdetllist, row);
  386. }
  387. }
  388. function button7_onclick(obj:Button, e:ClickEventInfo)
  389. {
  390. //조회된 행의 개수
  391. var gridrows = ds_main_info_specinfo_speclist.rowcount;
  392. //배열변수를 선언
  393. var my_array = new Array();
  394. //선택된 하드코드내역의 코드값
  395. var hardcdno1 = ds_main_cond.getColumn(0, "hardcdno");
  396. //내역 리스트를 선택하지 않은 경우
  397. if(utlf_isNull(hardcdno1))
  398. {
  399. //화면 open시 첫번째 코드를 받아오므로 첫번째 하드코드값을 가진다.
  400. var hardcdno1 = ds_main_info_specdetlinfo_specdetllist.getColumn(0, "hardcdno");
  401. }
  402. //DB에 저장된 하드코드와 지금 입력되어진 하드코드가 있는지 비교
  403. if(utlf_isNull(hardcdno1))
  404. {
  405. sysf_messageBox("Hard-Code 내역을","C002");
  406. }
  407. else
  408. {
  409. for(var i = 0; i< gridrows; i++)
  410. {
  411. my_array[i] = 0;
  412. var hardcdno2 = ds_main_info_specinfo_speclist.getColumn(i, "hardcdno");
  413. //하드코드 내역에 존재하는 것과 지금 지정된 하드코드와 같은 것이 있으면 DB에 저장된 것이므로 상세내역을 저장 가능
  414. if(hardcdno1 == hardcdno2)
  415. {
  416. my_array[i] = my_array[i] + 1;
  417. }
  418. }
  419. var count = 0;
  420. //현재 입력된 하드코드가 없으면 값은 '0'일 것이다.
  421. for(var i = 0; i< gridrows; i++)
  422. {
  423. count = count + my_array[i];
  424. }
  425. //DB에 저장되지 않는 경우는 메세지를 띄우고 있는경우는 행을 추가한다.
  426. if(count == 0)
  427. {
  428. sysf_messageBox("저장된 Hard-Code 내역의 상세내역만 등록","C001");
  429. }
  430. else
  431. {
  432. //신규입력을 원할 경우 row를 생성하여 준다
  433. var detlrows = ds_main_info_specdetlinfo_specdetllist.addRow();
  434. //유효시작일자에 현재일자
  435. ds_main_info_specdetlinfo_specdetllist.setColumn(detlrows, "valifromdd", utlf_getCurrentDate());
  436. //유효종료일자에 '99991231'
  437. ds_main_info_specdetlinfo_specdetllist.setColumn(detlrows, "valitodd", "99991231");
  438. //현재선택된 하드 코드
  439. ds_main_info_specdetlinfo_specdetllist.setColumn(detlrows, "hardcdno",hardcdno1);
  440. }
  441. }
  442. }
  443. function button8_onclick(obj:Button, e:ClickEventInfo)
  444. {
  445. //멀티로 삭제를 원하는 로우를 얻어온다.
  446. var selectedRows = grdf_getSelectedRows(grd_hardcodespecdetl);
  447. //선택한 로우가 없는 경우 메세지
  448. if(selectedRows.length == 0)
  449. {
  450. sysf_messageBox("삭제할 Hard-Code 상세 내역을 ", "C002");
  451. }
  452. else
  453. {
  454. xPath = ds_main_info_specdetlinfo_specdetllist;
  455. var savedata ="status▦hardcdno▦trgtcd▦trgtcdnm▦valifromdd▦valitodd▦cdseqno▩";
  456. //멀티로 선택한 개수로 루프를 돔
  457. for (var i = selectedRows.length; i >= 0; i--)
  458. {
  459. var m_row = selectedRows[i];
  460. savedata += 'd' + "▦";
  461. savedata += xPath.getColumn(m_row, "hardcdno") + "▦";
  462. savedata += xPath.getColumn(m_row, "trgtcd") + "▦";
  463. savedata += xPath.getColumn(m_row, "trgtcdnm") + "▦";
  464. savedata += xPath.getColumn(m_row, "valifromdd") + "▦";
  465. savedata += xPath.getColumn(m_row, "valitodd") + "▦";
  466. savedata += xPath.getColumn(m_row, "cdseqno") + "▩";
  467. }
  468. //멀티로 원한 데이타를 가지고 삭제하러 간다
  469. ds_send_reqdata.clearData();
  470. dsf_setCSVToDs("ds_send_savedata", savedata);
  471. var oParam = {};
  472. oParam.id = "TXMMB08202";
  473. oParam.service = "prcpbaseapp.PrcpClsMngt";
  474. oParam.method = "reqExeSaveSpecDetlList";
  475. oParam.inds = "save=ds_send_savedata";
  476. oParam.outds = "ds_main_info_specinfo_speclist=speclist ds_main_info_specdetlinfo_specdetllist=specdetllist";
  477. oParam.async = false;
  478. //oParam.callback = "cf_TXMMB08202";
  479. tranf_submit(oParam);
  480. }
  481. }
  482. function button9_onclick(obj:Button, e:ClickEventInfo)
  483. {
  484. //상세 내역의 개수를 구한다.
  485. var rows = ds_main_info_specdetlinfo_specdetllist.rowcount;
  486. var count = new Array();
  487. //대상코드가 같은 것을 신규로 등록하는 것을 방지하기 위해 비교한다.
  488. for(var i = 0; i < rows; i++)
  489. {
  490. count[i] = 0;
  491. var trgtcd1 = utlf_transNullToEmpty(ds_main_info_specdetlinfo_specdetllist.getColumn(i, "trgtcd"));
  492. // 키값을 안가지고 있는 경우를 확인
  493. var hardcdno = ds_main_info_specdetlinfo_specdetllist.getColumn(i, "hardcdno");
  494. if(utlf_isNull(hardcdno))
  495. {
  496. sysf_messageBox("Hard-Code 내역을","C002");
  497. }
  498. else
  499. {
  500. //대상코드를 입력하지 않은 경우 그 로우를 제거하고 메세지
  501. if(utlf_isNull(trgtcd1))
  502. {
  503. ds_main_info_specdetlinfo_specdetllist.deleteRow(i);
  504. sysf_messageBox(trgtcd1 + " 대상코드가","I004");
  505. rows = parseInt(rows - 1);
  506. break;
  507. }
  508. else
  509. {
  510. //중복 data 확인
  511. for(var j = i+1 ; j < rows; j++)
  512. {
  513. var trgtcd2 = utlf_transNullToEmpty(ds_main_info_specdetlinfo_specdetllist.getColumn(j, "trgtcd"));
  514. //중복된 대상코드가 존재하는지 확인
  515. if(trgtcd1 == trgtcd2)
  516. {
  517. count[i] = count[i] + 1;
  518. }
  519. //중복된 대상코드가 있는경우 행을 제거하고 메세지
  520. if(count[i] >= 1)
  521. {
  522. ds_main_info_specdetlinfo_specdetllist.deleteRow(j);
  523. sysf_messageBox(trgtcd2 + " 대상코드가","E006");
  524. count[i] = 0;
  525. rows = parseInt(rows - 1);
  526. break;
  527. }
  528. }
  529. }
  530. }
  531. }
  532. //하드코드 상세내역을 등록, 수정
  533. var updategrid = grdf_getGridUpdateData(grd_hardcodespecdetl);
  534. grdf_setStatusColumn(updategrid, "status");
  535. ds_send_savedata.copyData(updategrid, true);
  536. var oParam = {};
  537. oParam.id = "TXMMB08202";
  538. oParam.service = "prcpbaseapp.PrcpClsMngt";
  539. oParam.method = "reqExeSaveSpecDetlList";
  540. oParam.inds = "save=ds_send_savedata";
  541. oParam.outds = "ds_main_info_specinfo_speclist=speclist ds_main_info_specdetlinfo_specdetllist=specdetllist";
  542. oParam.async = false;
  543. //oParam.callback = "cf_TXMMB08202";
  544. tranf_submit(oParam);
  545. }
  546. ]]></Script>
  547. </Form>
  548. </FDL>