SMAHB00600_기본코드관리.xfdl 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMAHB00600" position="absolute 0 0 1196 785" titletext="기본코드관리" onload="SMAHB00600_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="기본코드 관리" class="tit_1" position="absolute 0 0 120 25"/>
  8. <Static id="caption1" text="분류코드" class="tit_2" position="absolute 0 73 78 90"/>
  9. <Shape id="line1" class="line_10" position="absolute 0 89 594 95"/>
  10. <Button id="btn_grddel" taborder="1" text="행삭제" class="btn2" position="absolute 541 67 594 89" onclick="btn_grddel_onclick"/>
  11. <Div id="grp_sea" taborder="2" position="absolute 0 25 1195 65" class="div_SA" anchor="left top right">
  12. <Layouts>
  13. <Layout>
  14. <Static id="caption2" text="건진구분 :" class="search_name" position="absolute 16 12 102 29" anchor="default"/>
  15. <Shape id="line13" linetype="vertical" class="line_4" position="absolute 1104 10 1110 32" anchor="top right"/>
  16. <Combo id="cmb_clscd" taborder="1" innerdataset="@ds_init_selectinput_item" codecolumn="etcdetlcd" datacolumn="etcdetlnm" class="combo_essential" position="absolute 105 11 255 30" anchor="default" onitemchanged="grp_sea_cmb_clscd_onitemchanged"/>
  17. <Button id="btn_search" taborder="2" text="조회" class="btn1" position="absolute 1123 10 1179 32" anchor="top right" onclick="grp_sea_btn_search_onclick"/>
  18. </Layout>
  19. </Layouts>
  20. </Div>
  21. <Static id="caption3" text="상세코드" class="tit_2" position="absolute 601 73 679 90"/>
  22. <Shape id="line2" linetype="horizontal" class="line_10" position="absolute 601 89 1195 95" anchor="left top right"/>
  23. <Button id="button1" taborder="3" text="행삭제" class="btn2" position="absolute 879 38 932 60" anchor="top right" onclick="button1_onclick" visible="false"/>
  24. <Button id="btn_grdadd" taborder="4" text="행추가" class="btn2" position="absolute 935 67 988 89" anchor="top right" onclick="btn_grdadd_onclick"/>
  25. <Grid id="grd_detlcodelst" taborder="5" binddataset="ds_main_detlcodelst_item" useinputpanel="false" position="absolute 601 94 1195 757" cellclickbound="cell" autoenter="key" autofittype="col" anchor="all" selecttype="multiarea" cellsizebandtype="allband" cellsizingtype="col">
  26. <Formats>
  27. <Format id="default">
  28. <Columns>
  29. <Column size="25" band="left"/>
  30. <Column size="0"/>
  31. <Column size="57"/>
  32. <Column size="100"/>
  33. <Column size="100"/>
  34. <Column size="166"/>
  35. <Column size="90"/>
  36. <Column size="90"/>
  37. <Column size="90"/>
  38. <Column size="60"/>
  39. <Column size="64"/>
  40. <Column size="0"/>
  41. </Columns>
  42. <Rows>
  43. <Row size="30" band="head"/>
  44. <Row size="24"/>
  45. </Rows>
  46. <Band id="head">
  47. <Cell/>
  48. <Cell col="1" text="caption1"/>
  49. <Cell col="2" text="코드" wordwrap="char"/>
  50. <Cell col="3" text="시작일자" wordwrap="char"/>
  51. <Cell col="4" text="종료일자" wordwrap="char"/>
  52. <Cell col="5" text="상세코드명" wordwrap="char"/>
  53. <Cell col="6" text="기타1" wordwrap="char"/>
  54. <Cell col="7" text="기타2" wordwrap="char"/>
  55. <Cell col="8" text="기타3" wordwrap="char"/>
  56. <Cell col="9" text="순번" wordwrap="char"/>
  57. <Cell col="10" text="적용여부" wordwrap="char"/>
  58. <Cell col="11" text="rowid"/>
  59. </Band>
  60. <Band id="body">
  61. <Cell celltype="head"/>
  62. <Cell col="1" text="bind:etccd"/>
  63. <Cell col="2" displaytype="text" edittype="expr:getRowType(currow)==1||getRowType(currow)==2?'text':'none'" text="bind:etcdetlcd" editautoselect="true" enable="true"/>
  64. <Cell col="3" displaytype="date" edittype="date" text="bind:fromdd"/>
  65. <Cell col="4" displaytype="date" edittype="date" text="bind:todd"/>
  66. <Cell col="5" displaytype="text" edittype="text" text="bind:etcdetlnm" editautoselect="true"/>
  67. <Cell col="6" displaytype="text" edittype="text" text="bind:etcitemcnts" editautoselect="true"/>
  68. <Cell col="7" displaytype="text" edittype="text" text="bind:etcitemcnts2" editautoselect="true"/>
  69. <Cell col="8" displaytype="text" edittype="text" text="bind:etcitemcnts3" editautoselect="true"/>
  70. <Cell col="9" displaytype="number" edittype="masknumber" text="bind:seqno"/>
  71. <Cell col="10" displaytype="checkbox" edittype="checkbox" text="bind:useyn" expr="expr:(useyn==&quot;Y&quot;||useyn==1)?1:0"/>
  72. <Cell col="11" text="bind:etcm_rowid"/>
  73. </Band>
  74. </Format>
  75. </Formats>
  76. </Grid>
  77. <Button id="button2" taborder="6" text="행추가" class="btn2" position="absolute 485 67 538 89" onclick="button2_onclick"/>
  78. <Grid id="grd_etclst" taborder="7" binddataset="ds_main_etclst_item" useinputpanel="false" position="absolute 0 94 594 757" cellclickbound="cell" autoenter="key" autofittype="col" anchor="left top bottom" selecttype="multirow" oncellclick="grd_etclst_oncellclick" oncelldblclick="grd_etclst_oncelldblclick" cellsizebandtype="allband" cellsizingtype="col">
  79. <Formats>
  80. <Format id="default">
  81. <Columns>
  82. <Column size="25" band="left"/>
  83. <Column size="0"/>
  84. <Column size="100"/>
  85. <Column size="0"/>
  86. <Column size="373"/>
  87. <Column size="99"/>
  88. </Columns>
  89. <Rows>
  90. <Row size="30" band="head"/>
  91. <Row size="24"/>
  92. </Rows>
  93. <Band id="head">
  94. <Cell/>
  95. <Cell col="1" text="caption1"/>
  96. <Cell col="2" text="코드"/>
  97. <Cell col="3" text="상세코드"/>
  98. <Cell col="4" text="분류코드명"/>
  99. <Cell col="5" text="적용여부"/>
  100. </Band>
  101. <Band id="body">
  102. <Cell celltype="head"/>
  103. <Cell col="1" text="bind:etccdkey"/>
  104. <Cell col="2" displaytype="text" edittype="text" text="bind:etccd" editautoselect="true"/>
  105. <Cell col="3" text="bind:etcdetlcd"/>
  106. <Cell col="4" displaytype="text" edittype="text" text="bind:etcdetlnm" editautoselect="true"/>
  107. <Cell col="5" displaytype="checkbox" edittype="checkbox" text="bind:useyn" expr="expr:(useyn==&quot;Y&quot;||useyn==1)?1:0"/>
  108. </Band>
  109. </Format>
  110. <Format id="format_copy"/>
  111. </Formats>
  112. </Grid>
  113. <Button id="btn_fileupload" taborder="8" text="엑셀업로드" class="btn7" position="absolute 991 67 1082 89" anchor="top right" onclick="btn_fileupload_onclick"/>
  114. <Button id="btn_seldeldetl" taborder="9" text="선택행삭제" class="btn2" position="absolute 801 38 876 60" anchor="top right" onclick="btn_seldeldetl_onclick" visible="false"/>
  115. <Div id="grp_btn" taborder="10" position="absolute 0 756 1195 783" anchor="left right bottom">
  116. <Layouts>
  117. <Layout>
  118. <Button id="btn_clear2" taborder="1" text="초기화" class="btn4" position="absolute 1067 4 1135 26" anchor="right" onclick="grp_btn_btn_clear2_onclick"/>
  119. <Button id="btn_save2" taborder="2" text="저장" class="btn4" position="absolute 1138 4 1194 26" anchor="right" onclick="grp_btn_btn_save2_onclick"/>
  120. <Button id="btn_save1" taborder="3" text="저장" class="btn4" position="absolute 537 4 593 26" anchor="default" onclick="grp_btn_btn_save1_onclick"/>
  121. <Button id="btn_clear1" taborder="4" text="초기화" class="btn4" position="absolute 466 4 534 26" anchor="default" onclick="grp_btn_btn_clear1_onclick"/>
  122. </Layout>
  123. </Layouts>
  124. </Div>
  125. <CheckBox id="chk_delall" taborder="11" text="기존데이터 삭제" position="absolute 1087 69 1195 89" anchor="top right"/>
  126. <Combo id="cmb_cmpylist" taborder="12" position="absolute 684 67 804 89" innerdataset="ds_init_cmpylist" codecolumn="cdid" datacolumn="cdnm" index="-1" visible="false" onitemchanged="cmb_cmpylist_onitemchanged"/>
  127. <Button id="btn_filedownload" taborder="13" text="엑셀저장" class="btn7" position="absolute 857 67 932 89" anchor="top right" onclick="btn_filedownload_onclick" visible="false"/>
  128. </Layout>
  129. </Layouts>
  130. <Objects>
  131. <Dataset id="ds_main_etclst_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep" oncolumnchanged="ds_main_etclst_item_oncolumnchanged">
  132. <ColumnInfo>
  133. <Column id="etccd" type="STRING" size="256"/>
  134. <Column id="etcdetlcd" type="STRING" size="256"/>
  135. <Column id="etccdkey" type="STRING" size="256"/>
  136. <Column id="etcdetlnm" type="STRING" size="256"/>
  137. <Column id="useyn" type="STRING" size="256"/>
  138. </ColumnInfo>
  139. <Rows>
  140. <Row>
  141. <Col id="etccd"/>
  142. <Col id="etcdetlcd"/>
  143. <Col id="etccdkey"/>
  144. <Col id="etcdetlnm"/>
  145. <Col id="useyn"/>
  146. </Row>
  147. </Rows>
  148. </Dataset>
  149. <Dataset id="ds_main_detlcodelst_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep" oncolumnchanged="ds_main_detlcodelst_item_oncolumnchanged">
  150. <ColumnInfo>
  151. <Column id="etccd" type="STRING" size="256"/>
  152. <Column id="etcdetlcd" type="STRING" size="256"/>
  153. <Column id="etcdetlcdkey" type="STRING" size="256"/>
  154. <Column id="etcdetlnm" type="STRING" size="256"/>
  155. <Column id="etcitemcnts" type="STRING" size="256"/>
  156. <Column id="etcitemcnts2" type="STRING" size="256"/>
  157. <Column id="etcitemcnts3" type="STRING" size="256"/>
  158. <Column id="useyn" type="STRING" size="256"/>
  159. <Column id="fromdd" type="STRING" size="256"/>
  160. <Column id="todd" type="STRING" size="256"/>
  161. <Column id="etcm_rowid" type="STRING" size="256"/>
  162. </ColumnInfo>
  163. <Rows>
  164. <Row>
  165. <Col id="etccd"/>
  166. <Col id="etcdetlcd"/>
  167. <Col id="etcdetlcdkey"/>
  168. <Col id="etcdetlnm"/>
  169. <Col id="etcitemcnts"/>
  170. <Col id="etcitemcnts2"/>
  171. <Col id="etcitemcnts3"/>
  172. <Col id="useyn"/>
  173. </Row>
  174. </Rows>
  175. </Dataset>
  176. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  177. <ColumnInfo>
  178. <Column id="clscd" type="STRING" size="256"/>
  179. </ColumnInfo>
  180. <Rows>
  181. <Row>
  182. <Col id="clscd"/>
  183. </Row>
  184. </Rows>
  185. </Dataset>
  186. <Dataset id="ds_send_req" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  187. <ColumnInfo>
  188. <Column id="savedata" type="STRING" size="256"/>
  189. <Column id="clscd" type="STRING" size="256"/>
  190. <Column id="etccd" type="STRING" size="256"/>
  191. <Column id="etcitemcnts2" type="STRING" size="256"/>
  192. </ColumnInfo>
  193. <Rows>
  194. <Row>
  195. <Col id="savedata"/>
  196. <Col id="clscd"/>
  197. <Col id="etccd"/>
  198. <Col id="etcitemcnts2"/>
  199. </Row>
  200. </Rows>
  201. </Dataset>
  202. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  203. <ColumnInfo>
  204. <Column id="item" type="STRING" size="256"/>
  205. </ColumnInfo>
  206. </Dataset>
  207. <Dataset id="ds_init_selectinput_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  208. <ColumnInfo>
  209. <Column id="etcdetlnm" type="STRING" size="256"/>
  210. <Column id="etcdetlcd" type="STRING" size="256"/>
  211. </ColumnInfo>
  212. <Rows>
  213. <Row>
  214. <Col id="etcdetlnm"/>
  215. <Col id="etcdetlcd"/>
  216. </Row>
  217. </Rows>
  218. </Dataset>
  219. <Dataset id="ds_init_cmpylist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  220. <ColumnInfo>
  221. <Column id="cdid" type="STRING" size="256"/>
  222. <Column id="cdnm" type="STRING" size="256"/>
  223. </ColumnInfo>
  224. </Dataset>
  225. </Objects>
  226. <Bind>
  227. <BindItem id="item0" compid="grp_sea.cmb_clscd" propid="value" datasetid="ds_send" columnid="clscd"/>
  228. <BindItem id="item1" compid="cmb_cmpylist" propid="value" datasetid="ds_send_req" columnid="etcitemcnts2"/>
  229. </Bind>
  230. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  231. * System Name :
  232. * Job Name :
  233. * Creator :
  234. * Make Date : 2017-12-04
  235. * Description :
  236. *---------------------------------------------------------------------------------------
  237. * Modify Date Modifier Modify Description
  238. *---------------------------------------------------------------------------------------
  239. * 2017-06-19 Live Converter TF->XP
  240. *
  241. *---------------------------------------------------------------------------------------
  242. ****************************************************************************************/
  243. //=======================================================================================
  244. // Lib Include
  245. //---------------------------------------------------------------------------------------
  246. include "com_commonxp::comm_main.xjs";
  247. //include "ast_healexamxp::healexam.xjs";
  248. //=======================================================================================
  249. // Global Form Variable
  250. //---------------------------------------------------------------------------------------
  251. var arErrorCode = new HashArray();
  252. //=======================================================================================
  253. // Function
  254. //---------------------------------------------------------------------------------------
  255. /*-**************************************************************************************
  256. * Argument : N/A
  257. * Description : 셀렉트박스 초기화
  258. ****************************************************************************************/
  259. function fGetSelInputInit(){
  260. var oParam = {};
  261. oParam.id = "TRAHB00603";
  262. oParam.service = "healexambaseapp.EtcCode";
  263. oParam.method = "reqGetSelInput";
  264. oParam.inds = "req=ds_send";
  265. oParam.outds = "ds_init_selectinput_item=item";
  266. oParam.async = false;
  267. oParam.callback = "cf_TRAHB00603";
  268. tranf_submit(oParam);
  269. if(arErrorCode.pop("TRAHB00603") > -1) return true;
  270. else return false;
  271. }
  272. function cf_TRAHB00603(sSvcId, nErrorCode, sErrorMsg) {
  273. arErrorCode.push(sSvcId, nErrorCode);
  274. }
  275. /*-**************************************************************************************
  276. * Argument : N/A
  277. * Description : 분류코드 리스트 조회
  278. ****************************************************************************************/
  279. function fGetEtcList(){
  280. ds_main_etclst_item.clearData();
  281. ds_main_detlcodelst_item.clearData();
  282. cmb_cmpylist.visible = false;
  283. btn_filedownload.visible = false;
  284. var oParam = {};
  285. oParam.id = "TRAHB00601";
  286. oParam.service = "healexambaseapp.EtcCode";
  287. oParam.method = "reqGetEtcList";
  288. oParam.inds = "req=ds_send";
  289. oParam.outds = "ds_main_etclst_item=item";
  290. oParam.async = false;
  291. oParam.callback = "cf_TRAHB00601";
  292. tranf_submit(oParam);
  293. if(arErrorCode.pop("TRAHB00601") > -1) return true;
  294. else return false;
  295. }
  296. function cf_TRAHB00601(sSvcId, nErrorCode, sErrorMsg) {
  297. arErrorCode.push(sSvcId, nErrorCode);
  298. }
  299. /*-**************************************************************************************
  300. * Argument : N/A
  301. * Description : 분류코드 저장
  302. ****************************************************************************************/
  303. function fSaveEtc(){
  304. var dsUpdate = grdf_getGridUpdateData(grd_etclst, "all");
  305. grdf_setStatusColumn(dsUpdate, "m");
  306. if( utlf_isNull(dsUpdate) || dsUpdate.rowcount == 0 ) {
  307. sysf_messageBox("저장할 내역이 ","I004");
  308. return ;
  309. }
  310. for( var i = 0; i < ds_main_etclst_item.rowcount; i++){
  311. if( utlf_isNull(ds_main_etclst_item.getColumn(i, "etccd")) ) {
  312. sysf_messageBox("분류코드의 코드값이 비어","I010");
  313. return ;
  314. }
  315. }
  316. var ret = false;
  317. if ( sysf_messageBox("기본코드정보를","Q002")==6 ) {
  318. dsf_createDs("ds_send_req_savedata");
  319. ds_send_req_savedata.copyData(dsUpdate, true);
  320. dsf_setFixVal(ds_send_req_savedata, "clscd:"+ds_send.getColumn(0, "clscd"));
  321. var oParam = {};
  322. oParam.id = "TXAHB00601";
  323. oParam.service = "healexambaseapp.EtcCode";
  324. oParam.method = "reqExeEtcCode";
  325. oParam.inds = "req=ds_send_req_savedata";
  326. oParam.outds = "ds_hidden=item";
  327. oParam.async = false;
  328. oParam.callback = "cf_TXAHB00601";
  329. tranf_submit(oParam);
  330. if(arErrorCode.pop("TXAHB00601") > -1) ret = true;
  331. else ret = false;
  332. }
  333. return ret;
  334. }
  335. function cf_TXAHB00601(sSvcId, nErrorCode, sErrorMsg) {
  336. arErrorCode.push(sSvcId, nErrorCode);
  337. }
  338. /*-**************************************************************************************
  339. * Argument : N/A
  340. * Description : 상세코드 리스트 조회
  341. ****************************************************************************************/
  342. function fGetDetlCodeList(){
  343. var idx = ds_main_etclst_item.rowposition;
  344. if( idx < 0) return;
  345. ds_main_detlcodelst_item.clearData();
  346. ds_send_req.setColumn( 0, "clscd", ds_send.getColumn(0, "clscd"));
  347. ds_send_req.setColumn( 0, "etccd", ds_main_etclst_item.getColumn(idx, "etccd"));
  348. var oParam = {};
  349. oParam.id = "TRAHB00602";
  350. oParam.service = "healexambaseapp.EtcCode";
  351. oParam.method = "reqGetDetlCodeList";
  352. oParam.inds = "req=ds_send_req";
  353. oParam.outds = "ds_main_detlcodelst_item=item";
  354. oParam.async = false;
  355. oParam.callback = "cf_TRAHB00602";
  356. tranf_submit(oParam);
  357. if(arErrorCode.pop("TRAHB00602") > -1) return true;
  358. else return false;
  359. }
  360. function cf_TRAHB00602(sSvcId, nErrorCode, sErrorMsg) {
  361. arErrorCode.push(sSvcId, nErrorCode);
  362. ds_main_detlcodelst_item.updatecontrol = false;
  363. dsf_setFixVal(ds_main_detlcodelst_item, "sel:N");
  364. ds_main_detlcodelst_item.updatecontrol = true;
  365. }
  366. /*-**************************************************************************************
  367. * Argument : N/A
  368. * Description : 상세코드 저장
  369. ****************************************************************************************/
  370. function fSaveDetlCode(){
  371. var dsUpdate = grdf_getGridUpdateData(grd_detlcodelst, "all");
  372. grdf_setStatusColumn(dsUpdate, "m");
  373. if( utlf_isNull(dsUpdate) || dsUpdate.rowcount == 0 ) {
  374. sysf_messageBox("저장할 내역이 ","I004");
  375. return ;
  376. }
  377. if ( utlf_isNull(ds_send_req.getColumn(0, "etccd")) ) {
  378. sysf_messageBox("분류코드가 선택되지 않았습니다.","");
  379. return ;
  380. }
  381. for( var i = 0; i < ds_main_detlcodelst_item.rowcount; i++){
  382. if ( utlf_isNull(ds_main_detlcodelst_item.getColumn(i, "fromdd"))) {
  383. sysf_messageBox("시작일자가 입력되지 않았습니다.","");
  384. return ;
  385. }
  386. if ( utlf_isNull(ds_main_detlcodelst_item.getColumn(i, "todd")) ) {
  387. sysf_messageBox("종료일자가 입력되지 않았습니다.","");
  388. return ;
  389. }
  390. if( utlf_isNull(ds_main_detlcodelst_item.getColumn(i, "etcdetlcd")) ) {
  391. sysf_messageBox("코드값이 비었습니다.","");
  392. return ;
  393. }
  394. }
  395. var ret = false;
  396. if ( sysf_messageBox("기본코드정보를","Q002")==6 ) {
  397. dsf_createDs("ds_send_req_savedata");
  398. ds_send_req_savedata.copyData(dsUpdate, true);
  399. dsf_setFixVal(ds_send_req_savedata, "clscd:"+ds_send.getColumn(0, "clscd"));
  400. dsf_setFixVal(ds_send_req_savedata, "etccd:"+ds_send_req.getColumn(0, "etccd"));
  401. var oParam = {};
  402. oParam.id = "TXAHB00602";
  403. oParam.service = "healexambaseapp.EtcCode";
  404. oParam.method = "reqExeDetlCode";
  405. oParam.inds = "req=ds_send_req_savedata";
  406. oParam.outds = "ds_hidden=item";
  407. oParam.async = false;
  408. oParam.callback = "cf_TXAHB00602";
  409. tranf_submit(oParam);
  410. if(arErrorCode.pop("TXAHB00602") > -1) ret = true;
  411. else ret = false;
  412. }
  413. return ret;
  414. }
  415. function cf_TXAHB00602(sSvcId, nErrorCode, sErrorMsg) {
  416. arErrorCode.push(sSvcId, nErrorCode);
  417. }
  418. /*-**************************************************************************************
  419. * Argument : N/A
  420. * Description : 분류코드 초기화
  421. ****************************************************************************************/
  422. function fEtcclear(){
  423. ds_main_etclst_item.clearData();
  424. ds_main_detlcodelst_item.clearData();
  425. }
  426. /*-**************************************************************************************
  427. * Argument : N/A
  428. * Description : 상세코드 초기화
  429. ****************************************************************************************/
  430. function fDeticodeclear(){
  431. ds_main_detlcodelst_item.clearData();
  432. }
  433. /*-**************************************************************************************
  434. * Argument : grdObj - 그리드 objects
  435. * Description : 엑셀파일 업로드
  436. ****************************************************************************************/
  437. function fExcelUpload(grdObj){
  438. var dsObj = grdObj.binddataset;
  439. var cntorg = objects[dsObj].rowcount;
  440. if(chk_delall.value) {
  441. for(var i = 0 ; i < cntorg ; i++) {
  442. grdf_setStatus(grdObj, "D", [i]);
  443. }
  444. }
  445. grdf_ImportExcel(dsObj, 2, grdObj, 0);
  446. var cnt = objects[dsObj].rowcount;
  447. for(var i = cntorg; i < cnt ; i++)
  448. {
  449. //objects[dsObj].setColumn(i, "fromdd", utlf_getCurrentDate());
  450. objects[dsObj].setColumn(i, "fromdd", objects[dsObj].getColumn(i, "fromdd").substr(0,8));
  451. objects[dsObj].setColumn(i, "todd", objects[dsObj].getColumn(i, "todd").substr(0,8));
  452. grdf_setStatus(grdObj, "I", [i]);
  453. }
  454. // grdObj.deleteRow(1);
  455. }
  456. /*-**************************************************************************************
  457. * Argument : vGrdObj - 그리드 objects
  458. * Description : etccode 설정 ( 상세코드 저장시 사용 )
  459. ****************************************************************************************/
  460. function fSetEtcCode(vGrdObj){
  461. if( utlf_isNull(vGrdObj) ) return false;
  462. var etccd = objects[vGrdObj.binddataset].getColumn(vGrdObj.currentrow, "etccd") ;
  463. ds_send_req.setColumn(0, "etccd", etccd);
  464. }
  465. /*-**************************************************************************************
  466. * Argument : N/A
  467. * Description : P99 종합검진 단체결과출력 단체명 조회
  468. ****************************************************************************************/
  469. function lf_getCmpyList() {
  470. ds_init_cmpylist.clearData();
  471. dsf_createDsRow("ds_send_temp", [{col:"clscd", val:ds_send.getColumn(0, "clscd")}
  472. ,{col:"etccd", val:"P99"}])
  473. var oParam = {};
  474. oParam.id = "TRAHS03701";
  475. oParam.service = "healexamstatapp.StatRef";
  476. oParam.method = "reqGetCmpyCodeList";
  477. oParam.inds = "req=ds_send_temp";
  478. oParam.outds = "ds_init_cmpylist=item";
  479. oParam.async = false;
  480. //oParam.callback = "cf_TRAHS03701";
  481. tranf_submit(oParam);
  482. ds_init_cmpylist.insertRow(0);
  483. ds_init_cmpylist.setColumn(0, "cdid", "-");
  484. ds_init_cmpylist.setColumn(0, "cdnm", "신규");
  485. if(ds_init_cmpylist.rowcount > 1) {
  486. cmb_cmpylist.index = 1;
  487. } else {
  488. cmb_cmpylist.index = 0;
  489. }
  490. }
  491. //=======================================================================================
  492. // Event
  493. //---------------------------------------------------------------------------------------
  494. /****************************************************************************************
  495. * Components : Form
  496. * Description : 화면 처음 초기화시 폼초기화
  497. ****************************************************************************************/
  498. function SMAHB00600_onload(obj:Form, e:LoadEventInfo) {
  499. frmf_initForm(obj);
  500. //grdf_initGrid(grd_XXX);
  501. //grdf_setGridSort(grd_XXX);
  502. grdf_setRowTypeIcon(grd_etclst, 0);
  503. grdf_setRowTypeIcon(grd_detlcodelst, 0);
  504. grdf_initGrid(grd_etclst);
  505. grdf_initGrid(grd_detlcodelst);
  506. fGetSelInputInit();
  507. if( ds_init_selectinput_item.rowcount > 0 ){
  508. grp_sea.cmb_clscd.index = 0;
  509. grp_sea.cmb_clscd.updateToDataset();
  510. fGetEtcList();
  511. }
  512. //화면권한추가
  513. grp_sea.btn_search.enable = frmf_checkAuth("R");
  514. grp_btn.btn_clear1.enable = frmf_checkAuth("X");
  515. grp_btn.btn_clear2.enable = frmf_checkAuth("X");
  516. grp_btn.btn_save1.enable = frmf_checkAuth("X");
  517. grp_btn.btn_save2.enable = frmf_checkAuth("X");
  518. }
  519. /****************************************************************************************
  520. * Components : Button
  521. * Description : 분류코드 행삭제
  522. ****************************************************************************************/
  523. function btn_grddel_onclick(obj:Button, e:ClickEventInfo) {
  524. var selectedRows = grdf_getSelectedRows(grd_etclst);
  525. for (var i = 0; i < selectedRows.length; i++){
  526. if( objects[grd_etclst.binddataset].getRowType(selectedRows[i]) == 2 ) {
  527. objects[grd_etclst.binddataset].deleteRow(selectedRows[i]);
  528. }else{
  529. grdf_setStatus(grd_etclst, "D", [selectedRows[i]]);
  530. }
  531. }
  532. }
  533. /****************************************************************************************
  534. * Components : Button
  535. * Description : 조회
  536. ****************************************************************************************/
  537. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo) {
  538. fGetEtcList();
  539. }
  540. /****************************************************************************************
  541. * Components : Button
  542. * Description : 상세코드 행삭제
  543. ****************************************************************************************/
  544. function button1_onclick(obj:Button, e:ClickEventInfo) {
  545. var selectedRows = grdf_getSelectedRows(grd_detlcodelst);
  546. for (var i = 0; i < selectedRows.length; i++){
  547. if( objects[grd_detlcodelst.binddataset].getRowType(selectedRows[i]) == 2 ) {
  548. objects[grd_detlcodelst.binddataset].deleteRow(selectedRows[i]);
  549. }else{
  550. grdf_setStatus(grd_detlcodelst, "D", [selectedRows[i]]);
  551. }
  552. }
  553. }
  554. /****************************************************************************************
  555. * Components : Button
  556. * Description : 상세코드 행추가
  557. ****************************************************************************************/
  558. function btn_grdadd_onclick(obj:Button, e:ClickEventInfo) {
  559. ds_main_detlcodelst_item.insertRow(0);
  560. ds_main_detlcodelst_item.setColumn(0, "fromdd", utlf_getCurrentDate());
  561. ds_main_detlcodelst_item.setColumn(0, "todd", "99991231");
  562. grd_detlcodelst.setFocus();
  563. grd_detlcodelst.setCellPos(grd_detlcodelst.getBindCellIndex("body","etcdetlcd"));
  564. grd_detlcodelst.showEditor(true);
  565. }
  566. /****************************************************************************************
  567. * Components : Button
  568. * Description : 분류코드 행추가
  569. ****************************************************************************************/
  570. function button2_onclick(obj:Button, e:ClickEventInfo) {
  571. ds_main_etclst_item.addRow();
  572. grd_etclst.setFocus();
  573. grd_etclst.setCellPos(grd_etclst.getBindCellIndex("body","etccd"));
  574. grd_etclst.showEditor(true);
  575. }
  576. /****************************************************************************************
  577. * Components : Grid
  578. * Description : 분류코드 선택 상세조회
  579. ****************************************************************************************/
  580. function grd_etclst_oncelldblclick(obj:Grid, e:GridClickEventInfo) {
  581. fSetEtcCode(obj);
  582. //P99 종합검진 단체결과출력 단체명 조회
  583. if( ds_send_req.getColumn(0, "etccd") == "P99" ) {
  584. cmb_cmpylist.visible = true;
  585. btn_filedownload.visible = true;
  586. lf_getCmpyList();
  587. } else {
  588. cmb_cmpylist.visible = false;
  589. btn_filedownload.visible = false;
  590. ds_send_req.setColumn(0, "etcitemcnts2", "");
  591. }
  592. fGetDetlCodeList();
  593. }
  594. /****************************************************************************************
  595. * Components : Grid
  596. * Description : 분류코드 선택
  597. ****************************************************************************************/
  598. function grd_etclst_oncellclick(obj:Grid, e:GridClickEventInfo) {
  599. // fSetEtcCode(obj);
  600. }
  601. /****************************************************************************************
  602. * Components : Button
  603. * Description : 파일업로드
  604. ****************************************************************************************/
  605. function btn_fileupload_onclick(obj:Button, e:ClickEventInfo) {
  606. fExcelUpload(grd_detlcodelst);
  607. }
  608. /****************************************************************************************
  609. * Components : Button
  610. * Description : 상세코드 선택행삭제(행삭제와 기능 같음)
  611. ****************************************************************************************/
  612. function btn_seldeldetl_onclick(obj:Button, e:ClickEventInfo) {
  613. var selectedRows = grdf_getSelectedRows(grd_detlcodelst);
  614. for (var i = 0; i < selectedRows.length; i++){
  615. if( objects[grd_detlcodelst.binddataset].getRowType(selectedRows[i]) == 2 ) {
  616. objects[grd_detlcodelst.binddataset].deleteRow(selectedRows[i]);
  617. }else{
  618. grdf_setStatus(grd_detlcodelst, "D", [selectedRows[i]]);
  619. }
  620. }
  621. }
  622. /****************************************************************************************
  623. * Components : Button
  624. * Description : 상세코드 초기화
  625. ****************************************************************************************/
  626. function grp_btn_btn_clear2_onclick(obj:Button, e:ClickEventInfo) {
  627. fDeticodeclear();
  628. }
  629. /****************************************************************************************
  630. * Components : Button
  631. * Description : 상세코드 저장
  632. ****************************************************************************************/
  633. function grp_btn_btn_save2_onclick(obj:Button, e:ClickEventInfo) {
  634. if( fSaveDetlCode() == true ){
  635. fGetDetlCodeList();
  636. }
  637. }
  638. /****************************************************************************************
  639. * Components : Button
  640. * Description : 분료코드 저장
  641. ****************************************************************************************/
  642. function grp_btn_btn_save1_onclick(obj:Button, e:ClickEventInfo) {
  643. if( fSaveEtc() == true ){
  644. fGetEtcList();
  645. }
  646. }
  647. /****************************************************************************************
  648. * Components : Button
  649. * Description : 분류코드 초기화
  650. ****************************************************************************************/
  651. function grp_btn_btn_clear1_onclick(obj:Button, e:ClickEventInfo) {
  652. fEtcclear();
  653. }
  654. /****************************************************************************************
  655. * Components : Combo
  656. * Description : 건진구분 변경
  657. ****************************************************************************************/
  658. function grp_sea_cmb_clscd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  659. {
  660. fGetEtcList();
  661. }
  662. function ds_main_etclst_item_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  663. {
  664. switch( e.columnid ){
  665. case "useyn" :
  666. if( e.newvalue == "Y" || e.newvalue == "1" ){
  667. obj.setColumn(e.row, e.columnid, "Y");
  668. }else{
  669. obj.setColumn(e.row, e.columnid, "N");
  670. }
  671. break;
  672. default :
  673. break;
  674. }
  675. }
  676. function ds_main_detlcodelst_item_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  677. {
  678. if(e.columnid=="useyn"){
  679. if( e.newvalue == "Y" || e.newvalue == "1" ){
  680. obj.setColumn(e.row, e.columnid, "Y");
  681. }else{
  682. obj.setColumn(e.row, e.columnid, "N");
  683. }
  684. }else if(e.columnid=="fromdd"){
  685. obj.addColumn("old_fromdd", "string");
  686. obj.setColumn(e.row, "old_fromdd", e.oldvalue);
  687. }else if(e.columnid=="todd"){
  688. obj.addColumn("old_todd", "string");
  689. obj.setColumn(e.row, "old_todd", e.oldvalue);
  690. }
  691. /* 2019/02/26 if문으로 교체(이정택)
  692. switch( e.columnid ){
  693. case "useyn" :
  694. if( e.newvalue == "Y" || e.newvalue == "1" ){
  695. obj.setColumn(e.row, e.columnid, "Y");
  696. }else{
  697. obj.setColumn(e.row, e.columnid, "N");
  698. }
  699. break;
  700. default :
  701. break;
  702. }
  703. */
  704. }
  705. function cmb_cmpylist_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  706. {
  707. ds_main_detlcodelst_item.clearData();
  708. var oParam = {};
  709. oParam.id = "TRAHB00602";
  710. oParam.service = "healexambaseapp.EtcCode";
  711. oParam.method = "reqGetDetlCodeList";
  712. oParam.inds = "req=ds_send_req";
  713. oParam.outds = "ds_main_detlcodelst_item=item";
  714. oParam.async = false;
  715. oParam.callback = "cf_TRAHB00602";
  716. tranf_submit(oParam);
  717. if(arErrorCode.pop("TRAHB00602") > -1) return true;
  718. else return false;
  719. }
  720. function btn_filedownload_onclick(obj:Button, e:ClickEventInfo)
  721. {
  722. if(ds_main_detlcodelst_item.rowcount > 0) grdf_exportExcel(grd_detlcodelst, cmb_cmpylist.text, "Sheet1","","","user",true);
  723. }
  724. ]]></Script>
  725. </Form>
  726. </FDL>