SMZSA20500_화면및보고서관리.xfdl 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMZSA20500_화면및보고서관리" classname="SMZSA20500_화면및보고서관리" inheritanceid="" position="absolute 0 0 1256 805" titletext="화면및보고서관리" onload="SMZSA20500_onload">
  5. <Layouts>
  6. <Layout>
  7. <Button id="bt_excelsave" taborder="0" text="엑셀저장" style=":disabled {font:Dotum,9;}" class="btn7" anchor="top right" position="absolute 991 74 1067 94" onclick="bt_excelsave_onclick"/>
  8. <Button id="bt_excelinput" taborder="1" text="엑셀입력" style=":disabled {font:Dotum,9;}" class="btn2" anchor="top right" position="absolute 1070 74 1138 94" onclick="bt_excelinput_onclick"/>
  9. <Button id="bt_addrow" taborder="2" text="행추가" style=":disabled {font:Dotum,9;}" onclick="bt_addrow_onclick" class="btn2" anchor="top right" position="absolute 1141 74 1197 94"/>
  10. <Button id="bt_deleterow" taborder="3" text="행삭제" style=":disabled {font:Dotum,9;}" onclick="bt_deleterow_onclick" class="btn2" anchor="top right" position="absolute 1200 74 1256 94"/>
  11. <Grid id="gd_screenreport" taborder="4" binddataset="out_ds_grid_screen" cellsizingtype="col" style="font:맑은고딕,10;" anchor="all" position="absolute 0 97 1256 782" positiontype="position" oncloseup="gd_screenreport_oncloseup" ondropdown="gd_screenreport_ondropdown" onlbuttondown="gd_screenreport_onlbuttondown" autofittype="col" autoenter="select" autoupdatetype="comboselect">
  12. <Formats>
  13. <Format id="default">
  14. <Columns>
  15. <Column size="25"/>
  16. <Column size="90"/>
  17. <Column size="102"/>
  18. <Column size="512"/>
  19. <Column size="134"/>
  20. <Column size="65"/>
  21. <Column size="45"/>
  22. <Column size="65"/>
  23. <Column size="93"/>
  24. <Column size="100"/>
  25. </Columns>
  26. <Rows>
  27. <Row size="24" band="head"/>
  28. <Row size="24"/>
  29. </Rows>
  30. <Band id="head">
  31. <Cell/>
  32. <Cell col="1" text="화면구분"/>
  33. <Cell col="2" text="화면코드"/>
  34. <Cell col="3" text="화면URL"/>
  35. <Cell col="4" text="화면위치/아이콘종류"/>
  36. <Cell col="5" displaytype="normal" edittype="none" text="사용여부"/>
  37. <Cell col="6" text="AWT"/>
  38. <Cell col="7" text="공개상태"/>
  39. <Cell col="8" text="업무"/>
  40. <Cell col="9" text="TF여부"/>
  41. </Band>
  42. <Band id="body">
  43. <Cell displaytype="image" style="controlalign: ;"/>
  44. <Cell col="1" displaytype="combo" edittype="combo" style="align:center;" class="cell_nopadding" text="bind:scrnflag" editautoselect="true" combodataset="fds_kindCode" combocodecol="cdid" combodatacol="cdnm"/>
  45. <Cell col="2" displaytype="text" edittype="expr:(getRowType(currow) == 2) ? 'text' : 'none'" editfilter="upper,digit" style="align:center;" class="cell_nopadding" text="bind:scrncd" editlimit="10" editimemode="alpha" editautoselect="true" editlengthunit="utf16"/>
  46. <Cell col="3" displaytype="normal" edittype="normal" style="align:left;padding:0 8 0 8;" class="cell_nopadding" text="bind:scrnurlxp" editlimit="120" editimemode="alpha" editautoselect="true" editlengthunit="utf8"/>
  47. <Cell col="4" displaytype="combo" edittype="combo" style="align:center middle;" class="cell_nopadding" text="bind:gbn_id" combodataset="ds_cb_screenpos" combocodecol="gbn_id" combodatacol="cdnm"/>
  48. <Cell col="5" displaytype="checkbox" edittype="checkbox" text="bind:useyn" expr="expr:useyn=='Y' ? '1' : (useyn=='N' ? '0' : useyn)"/>
  49. <Cell col="6" displaytype="checkbox" edittype="checkbox" text="bind:awtyn" expr="expr:awtyn=='Y' ? '1' : '0'"/>
  50. <Cell col="7" displaytype="combo" edittype="combo" style="align:center middle;" text="bind:releasestate" combodataset="ds_releasestate" combocodecol="value" combodatacol="label"/>
  51. <Cell col="8" displaytype="combo" edittype="combo" style="align:center middle;" text="bind:workcd" combodataset="ds_workcd" combocodecol="value" combodatacol="label"/>
  52. <Cell col="9" displaytype="combo" edittype="combo" style="align:center middle;" text="bind:tfyn" combodataset="ds_tfyn" combocodecol="value" combodatacol="label"/>
  53. </Band>
  54. </Format>
  55. </Formats>
  56. </Grid>
  57. <Button id="bt_init" taborder="5" text="초기화" style=":disabled {font:Dotum,9;}" onclick="bt_init_onclick" class="btn4" anchor="right bottom" position="absolute 1187 785 1256 805"/>
  58. <Button id="bt_save" taborder="6" text="저장" style=":disabled {font:Dotum,9;}" onclick="bt_save_onclick" class="btn4" anchor="right bottom" position="absolute 1128 785 1184 805"/>
  59. <Static id="caption6" text="화면 및 보고서 관리" onclick="&quot;caption6_onclick&quot;" class="tit_1" position="absolute 0 0 169 25" anchor="default" positiontype="position"/>
  60. <Static id="caption00" text="화면 및 보고서 목록" onclick="&quot;caption6_onclick&quot;" class="tit_2" position="absolute 0 77 169 97" anchor="default" positiontype="position"/>
  61. <Div id="grp_sea" anchor="left top right" taborder="13" style="align:center top;" class="div_SA" position="absolute 0 25 1256 68">
  62. <Layouts>
  63. <Layout>
  64. <Static id="Static02" text="화면구분" class="search_name" anchor="default" position="absolute 8 12 76 32" positiontype="position"/>
  65. <Static id="Static03" text="화면코드" class="search_name" anchor="default" position="absolute 182 12 246 32" positiontype="position"/>
  66. <Edit id="ed_screencode" taborder="2" autoselect="true" anchor="default" position="absolute 257 12 346 32" onkeyup="grp_sea_ed_screencode_onkeyup" imemode="alpha" positiontype="position" value="RFM0284100"/>
  67. <Static id="Static04" text="화면URL" class="search_name" anchor="default" position="absolute 370 12 441 32" positiontype="position"/>
  68. <Edit id="ed_screenurl" taborder="3" autoselect="true" anchor="default" position="absolute 447 12 809 32" onkeyup="grp_sea_ed_screenurl_onkeyup" imemode="alpha" lengthunit="utf8" positiontype="position"/>
  69. <Button id="bt_search" taborder="4" text="조회" onclick="bt_search_onclick" class="btn1" style=":disabled {font:Dotum,9;}" anchor="top right" position="absolute 1188 12 1244 32" positiontype="position"/>
  70. <Combo id="cb_screengbn" taborder="5" value="-" position="absolute 84 12 158 32" anchor="default"/>
  71. <Static id="Static00" text="AWT여부" class="search_name" position="absolute 826 12 889 32" anchor="default"/>
  72. <Radio id="rdo_awt" taborder="6" columncount="3" rowcount="1" position="absolute 903 12 1019 32" codecolumn="codecolumn" datacolumn="datacolumn" anchor="default" index="0">
  73. <Dataset id="innerdataset">
  74. <ColumnInfo>
  75. <Column id="codecolumn" size="256"/>
  76. <Column id="datacolumn" size="256"/>
  77. </ColumnInfo>
  78. <Rows>
  79. <Row>
  80. <Col id="codecolumn"/>
  81. <Col id="datacolumn">All</Col>
  82. </Row>
  83. <Row>
  84. <Col id="codecolumn">Y</Col>
  85. <Col id="datacolumn">On</Col>
  86. </Row>
  87. <Row>
  88. <Col id="codecolumn">N</Col>
  89. <Col id="datacolumn">Off</Col>
  90. </Row>
  91. </Rows>
  92. </Dataset>
  93. </Radio>
  94. </Layout>
  95. </Layouts>
  96. </Div>
  97. </Layout>
  98. </Layouts>
  99. <Objects>
  100. <Dataset id="out_ds_grid_screen" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" onvaluechanged="out_ds_grid_screen_onvaluechanged" canrowposchange="out_ds_grid_screen_canrowposchange" oncolumnchanged="out_ds_grid_screen_oncolumnchanged">
  101. <ColumnInfo>
  102. <Column id="scrncd" type="STRING" size="256"/>
  103. <Column id="scrnflag" type="STRING" size="256"/>
  104. <Column id="scrnurl" type="STRING" size="256"/>
  105. <Column id="scrnurlxp" type="STRING" size="256"/>
  106. <Column id="scrnpos" type="STRING" size="256"/>
  107. <Column id="useyn" type="STRING" size="256"/>
  108. <Column id="releasestate" type="STRING" size="256"/>
  109. <Column id="workcd" type="STRING" size="256"/>
  110. <Column id="awtyn" type="STRING" size="256"/>
  111. <Column id="tfyn" type="STRING" size="256"/>
  112. <Column id="gbn_id" type="STRING" size="256"/>
  113. </ColumnInfo>
  114. </Dataset>
  115. <Dataset id="ds_cb_screenpos" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  116. <ColumnInfo>
  117. <Column id="gbn" type="STRING" size="256"/>
  118. <Column id="cdid" type="STRING" size="256"/>
  119. <Column id="cdnm" type="STRING" size="256"/>
  120. <Column id="gbn_id" type="STRING" size="256"/>
  121. </ColumnInfo>
  122. </Dataset>
  123. <Dataset id="ds_cb_screenyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  124. <ColumnInfo>
  125. <Column id="code" type="STRING" size="256"/>
  126. <Column id="name" type="STRING" size="256"/>
  127. </ColumnInfo>
  128. <Rows>
  129. <Row>
  130. <Col id="code">N</Col>
  131. <Col id="name">N</Col>
  132. </Row>
  133. <Row>
  134. <Col id="code">Y</Col>
  135. <Col id="name">Y</Col>
  136. </Row>
  137. </Rows>
  138. </Dataset>
  139. <FilteredDataset id="fds_kindCode" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  140. <Dataset id="ds_releasestate" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  141. <ColumnInfo>
  142. <Column id="label" type="STRING" size="256"/>
  143. <Column id="value" type="STRING" size="256"/>
  144. </ColumnInfo>
  145. <Rows>
  146. <Row>
  147. <Col id="label">Y</Col>
  148. <Col id="value">Y</Col>
  149. </Row>
  150. <Row>
  151. <Col id="label">N</Col>
  152. <Col id="value">N</Col>
  153. </Row>
  154. </Rows>
  155. </Dataset>
  156. <Dataset id="ds_workcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  157. <ColumnInfo>
  158. <Column id="label" type="STRING" size="256"/>
  159. <Column id="value" type="STRING" size="256"/>
  160. </ColumnInfo>
  161. <Rows>
  162. <Row>
  163. <Col id="label">기반기술</Col>
  164. <Col id="value">1</Col>
  165. </Row>
  166. <Row>
  167. <Col id="label">원무심사</Col>
  168. <Col id="value">2</Col>
  169. </Row>
  170. <Row>
  171. <Col id="label">진료/기록</Col>
  172. <Col id="value">3</Col>
  173. </Row>
  174. <Row>
  175. <Col id="label">진료지원</Col>
  176. <Col id="value">4</Col>
  177. </Row>
  178. <Row>
  179. <Col id="label">간호</Col>
  180. <Col id="value">5</Col>
  181. </Row>
  182. <Row>
  183. <Col id="label">MIS</Col>
  184. <Col id="value">6</Col>
  185. </Row>
  186. </Rows>
  187. </Dataset>
  188. <Dataset id="ds_tfyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  189. <ColumnInfo>
  190. <Column id="label" type="STRING" size="256"/>
  191. <Column id="value" type="STRING" size="256"/>
  192. </ColumnInfo>
  193. <Rows>
  194. <Row>
  195. <Col id="label">1.0 (TF)</Col>
  196. <Col id="value">Y</Col>
  197. </Row>
  198. <Row>
  199. <Col id="value">N</Col>
  200. <Col id="label">2.0 (XP)</Col>
  201. </Row>
  202. <Row>
  203. <Col id="value">T</Col>
  204. <Col id="label">2.0 시범운영</Col>
  205. </Row>
  206. </Rows>
  207. </Dataset>
  208. </Objects>
  209. <Script type="xscript4.0"><![CDATA[/************************************************************************************************
  210. * 파 일 명 : SMZSA20500_화면및보고서관리.xfdl
  211. * 작 성 자 : 김상득
  212. * 작 성 일 : 2014.02.03
  213. * 설 명 : 화면및 보고서 등록관리.
  214. * 수 정 자 :
  215. * 수정이력 :
  216. ************************************************************************************************/
  217. include "com_commonxp::comm_main.xjs"
  218. /******************************* Form Variable *************************************************/
  219. /************************************************************************************************
  220. ******************************** Form Event ****************************************************
  221. ************************************************************************************************/
  222. function SMZSA20500_onload(obj:Form, e:LoadEventInfo)
  223. {
  224. frmf_initForm(obj); // 초기화
  225. grdf_initGrid(gd_screenreport);
  226. lf_Init();
  227. }
  228. function bt_excelsave_onclick(obj:Button, e:ClickEventInfo)
  229. {
  230. // 엑셀저장(Grid명,파일명,탭명)
  231. grdf_exportExcel(gd_screenreport, "화면및보고서목록" , "화면및보고서목록");
  232. }
  233. function bt_excelinput_onclick(obj:Button, e:ClickEventInfo)
  234. {
  235. // 엑셀입력( 데이터셋이름, 추가할행위치) )
  236. grdf_ImportExcel("out_ds_grid_screen", 2, gd_screenreport,1);
  237. }
  238. function grp_sea_ed_screencode_onkeyup(obj:Edit, e:KeyEventInfo)
  239. {
  240. if (e.keycode=='13') {
  241. lf_Search();
  242. }
  243. }
  244. function grp_sea_ed_screenurl_onkeyup(obj:Edit, e:KeyEventInfo)
  245. {
  246. if (e.keycode=='13') {
  247. lf_Search();
  248. }
  249. }
  250. function bt_search_onclick(obj:Button, e:ClickEventInfo)
  251. {
  252. lf_Search();
  253. }
  254. function bt_addrow_onclick(obj:Button, e:ClickEventInfo)
  255. {
  256. lf_AddRow();
  257. }
  258. function bt_deleterow_onclick(obj:Button, e:ClickEventInfo)
  259. {
  260. lf_Delete();
  261. }
  262. function bt_init_onclick(obj:Button, e:ClickEventInfo)
  263. {
  264. lf_Init();
  265. }
  266. function bt_save_onclick(obj:Button, e:ClickEventInfo)
  267. {
  268. lf_Save();
  269. }
  270. function out_ds_grid_screen_onvaluechanged(obj:Dataset, e:DSColChangeEventInfo)
  271. {
  272. // Dataset 변경되면 저장버튼 활성화
  273. if ( dsf_datasetUpdateChk(obj) ) {
  274. bt_save.enable = true;
  275. }
  276. else {
  277. bt_save.enable = false;
  278. }
  279. }
  280. function gd_screenreport_ondropdown(obj:Grid, e:GridEditEventInfo)
  281. {
  282. if (e.cell == 4) {
  283. var sValue = obj.getCellValue(e.row, 1);
  284. // 화면구분에 따라 화면위치/아이콘종류 필터 설정
  285. ds_cb_screenpos.filter("");
  286. ds_cb_screenpos.filter("gbn == '"+sValue+"'");
  287. }
  288. }
  289. function gd_screenreport_oncloseup(obj:Grid, e:GridEditEventInfo)
  290. {
  291. if(e.cell == 1 || e.cell == 4) {
  292. gd_screenreport.showEditor(false);
  293. }
  294. }
  295. function gd_screenreport_onlbuttondown(obj:Grid, e:GridMouseEventInfo)
  296. {
  297. if (e.cell == 4) {
  298. var sValue = obj.getCellValue(e.row, 1);
  299. // 화면구분에 따라 화면위치/아이콘종류 필터 설정
  300. ds_cb_screenpos.filter("");
  301. ds_cb_screenpos.filter("gbn == '"+sValue+"'");
  302. }
  303. }
  304. function out_ds_grid_screen_canrowposchange(obj:Dataset, e:DSRowPosChangeEventInfo)
  305. {
  306. // var nRowType = out_ds_grid_screen.getRowType(e.newrow);
  307. //
  308. // if(nRowType == Dataset.ROWTYPE_NORMAL )
  309. // gd_screenreport.autoenter = "select";
  310. // } else {
  311. // gd_screenreport.autoenter = "none";
  312. // }
  313. }
  314. function out_ds_grid_screen_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  315. {
  316. if(e.columnid == "useyn") {
  317. grdf_columnSetData(obj, e.row, "useyn", e.newvalue, "Y", "N"); //체크박스변경
  318. } else if(e.columnid == "awtyn") {
  319. grdf_columnSetData(obj, e.row, "awtyn", e.newvalue, "Y", "N"); //체크박스변경
  320. } else if(e.columnid == "scrnflag") {
  321. var sValue = e.newvalue;//obj.getCellValue(e.row, 1);
  322. var nRowType = obj.getRowType(e.row);
  323. var sScrnflag = obj.getColumn(e.row, "scrnflag");
  324. var sScrnflagOrg = obj.getOrgColumn(e.row, "scrnflag");
  325. // 화면구분 콤보 변경 (update 및 행추가 시)
  326. if( sScrnflag <> sScrnflagOrg || nRowType == Dataset.ROWTYPE_INSERT )
  327. {
  328. ds_cb_screenpos.filter("");
  329. ds_cb_screenpos.filter( "gbn == '" + e.newvalue +"'");
  330. // 화면 구분에 해당하는 화면위치/아이콘종류 기본값 설정.
  331. var sVal = ds_cb_screenpos.getColumn(0, "gbn_id");//"cdid");
  332. obj.setColumn(e.row, "gbn_id", sVal);
  333. var sScrnpos = utlf_right(sVal, 1);
  334. obj.setColumn(e.row, "scrnpos", sScrnpos);
  335. }
  336. // 화면구분 콤보 변경 시 기존 값을 선택하는 경우
  337. else if ( sScrnflag == sScrnflagOrg )
  338. {
  339. ds_cb_screenpos.filter("");
  340. ds_cb_screenpos.filter( "gbn == '" + e.newvalue +"'");
  341. // 기존 값 설정
  342. var sValue = obj.getOrgColumn(e.row, "gbn_id");//"cdid");
  343. obj.setColumn(e.row, "gbn_id", sValue);
  344. var sScrnpos = obj.getOrgColumn(e.row, "scrnpos");
  345. obj.setColumn(e.row, "scrnpos", sScrnpos);
  346. }
  347. //obj.updateToDataset();
  348. ds_cb_screenpos.filter("");
  349. } else if(e.columnid == "gbn_id") {
  350. var sGbn = obj.getColumn(e.row, "gbn_id");
  351. var sGbnOrg = obj.getOrgColumn(e.row, "gbn_id");
  352. var sValue = e.newvalue;//obj.getCellValue(e.row, 1);
  353. var nRowType = obj.getRowType(e.row);
  354. // 화면위치/아이콘종류 콤보 변경 (update 및 행추가 시)
  355. if( sGbn <> sGbnOrg || nRowType == Dataset.ROWTYPE_INSERT )
  356. {
  357. var sVal = obj.getColumn(e.row, "gbn_id");//"cdid");
  358. obj.setColumn(e.row, "gbn_id", sVal);
  359. var sScrnpos = utlf_right(sVal, 1);
  360. obj.setColumn(e.row, "scrnpos", sScrnpos);
  361. //obj.updateToDataset();
  362. }
  363. // 화면위치/아이콘종류 콤보 변경 시 기존 값을 선택하는 경우
  364. else if ( sGbn == sGbnOrg )
  365. {
  366. // 기존 값 설정
  367. var sVal = obj.getOrgColumn(e.row, "gbn_id");//"cdid");
  368. obj.setColumn(e.row, "gbn_id", sVal);
  369. var sScrnpos = obj.getOrgColumn(e.row, "scrnpos");
  370. obj.setColumn(e.row, "scrnpos", sScrnpos);
  371. //obj.updateToDataset();
  372. }
  373. } else if(e.columnid == "scrnurlxp") {
  374. lf_convertXfdlToXrw(obj, e.row, e.newvalue);
  375. }
  376. }
  377. function lf_convertXfdlToXrw(obj:Dataset, row, newvalue) {
  378. var scrnurlxp = newvalue;
  379. if(utlf_isNull(scrnurlxp)) return;
  380. var scrnflag = obj.getColumn(row, "scrnflag");
  381. if(scrnflag == "gif") {
  382. obj.setColumn(row, "scrnurl", '-');
  383. } else if(scrnurlxp.lastIndexOf(".xfdl") > -1) {
  384. var arScrnurlxp = scrnurlxp.split("::");
  385. var servicename = arScrnurlxp[0];
  386. var filename = arScrnurlxp[1];
  387. var service = servicename.split("_");
  388. var biz = service[0] + "/";
  389. var project = service[1];
  390. if(utlf_isNull(filename)) {
  391. filename = servicename;
  392. }
  393. if(utlf_isNull(project)) {
  394. biz = "";
  395. project = "";
  396. } else {
  397. project = project.substring(0, project.length - 2) + "web" + "/xrw/";
  398. }
  399. var xrwname = filename.substring(0, filename.length - 4) + "xrw";
  400. var scrnurl = biz + project + xrwname;
  401. obj.setColumn(row, "scrnurl", scrnurl);
  402. } else if(scrnurlxp.lastIndexOf(".reb") > -1) {
  403. var arScrnurlxp = scrnurlxp.split("/rex/");
  404. var servicename = arScrnurlxp[0];
  405. var filename = arScrnurlxp[1];
  406. var service = servicename.split("/");
  407. var biz = service[0] + "/";
  408. var project = service[1];
  409. if(utlf_isNull(filename)) {
  410. filename = servicename;
  411. }
  412. if(utlf_isNull(project)) {
  413. biz = "";
  414. project = "";
  415. } else {
  416. project = project.substring(0, project.length - 2) + "web" + "/rex/";
  417. }
  418. var rexname = filename.substring(0, filename.length - 3) + "rex";
  419. var scrnurl = biz + project + rexname;
  420. obj.setColumn(row, "scrnurl", scrnurl);
  421. }
  422. }
  423. /************************************************************************************************
  424. Form Function
  425. ************************************************************************************************/
  426. /********************************************************************************
  427. * 설 명 : 초기화 함수.
  428. * argument :
  429. ********************************************************************************/
  430. function lf_Init()
  431. {
  432. // Grid 초기화
  433. grdf_setRowTypeIcon(gd_screenreport, 0); //상태값 표시
  434. //Dataset 초기화
  435. out_ds_grid_screen.clearData();
  436. grp_sea.ed_screencode.value ="";
  437. grp_sea.ed_screenurl.value = "";
  438. grp_sea.cb_screengbn.index = 0;
  439. /* 버튼 권한 설정 R : Readonly / X : Read Write / P : Print */
  440. grp_sea.bt_search.enable = frmf_checkAuth("X");
  441. bt_save.enable = frmf_checkAuth("X");
  442. bt_init.enable = frmf_checkAuth("X");
  443. bt_excelinput.enable = frmf_checkAuth("P");
  444. bt_excelsave.enable = frmf_checkAuth("P");
  445. bt_addrow.enable = frmf_checkAuth("X");
  446. bt_deleterow.enable = frmf_checkAuth("X");
  447. bt_save.enable = false;
  448. //공통코드조회
  449. appf_getCodeList([{dsNm: "ds_code_1", cdGrpId: "Z0005", sortField:"cdid", sortMehotd: "desc"} //화면구분
  450. ,{dsNm: "ds_code_2", cdGrpId: "Z0006", sortField:"cdid", sortMehotd: "asc"} //화면위치
  451. ,{dsNm: "ds_code_3", cdGrpId: "Z0013", sortField:"cdid", sortMehotd: "desc"} //아이콘종류
  452. ], false);
  453. //화면구분
  454. grp_sea.cb_screengbn.innerdataset = "ds_code_1";
  455. grp_sea.cb_screengbn.datacolumn = "cdnm";
  456. grp_sea.cb_screengbn.codecolumn = "cdid";
  457. frmf_addComboItem("grp_sea.cb_screengbn", "전 체", "-");
  458. grp_sea.cb_screengbn.index = 0;
  459. //그리드 화면구분 콤보 지정
  460. fds_kindCode.binddataset = ds_code_1;
  461. gd_screenreport.setCellProperty( "body", 1, "combocodecol" , "cdid" );
  462. gd_screenreport.setCellProperty( "body", 1, "combodatacol" , "cdnm" );
  463. gd_screenreport.setCellProperty( "body", 1, "combodataset" , "fds_kindCode");
  464. fds_kindCode.filter("cdnm != '전 체'");
  465. // 화면위치+아이콘종류
  466. // gbn 컬럼추가
  467. for (var i = 0; i < ds_code_2.rowcount; i++) {
  468. var row = ds_cb_screenpos.addRow();
  469. ds_cb_screenpos.setColumn(row, "gbn", "xrw");
  470. ds_cb_screenpos.setColumn(row, "cdid", ds_code_2.getColumn(i, "cdid"));
  471. ds_cb_screenpos.setColumn(row, "cdnm", ds_code_2.getColumn(i, "cdnm"));
  472. ds_cb_screenpos.setColumn(row, "gbn_id", "xrw"+ds_code_2.getColumn(i, "cdid"));
  473. }
  474. for (var i = 0; i < ds_code_2.rowcount; i++) {
  475. var row = ds_cb_screenpos.addRow();
  476. ds_cb_screenpos.setColumn(row, "gbn", "rex");
  477. ds_cb_screenpos.setColumn(row, "cdid", ds_code_2.getColumn(i, "cdid"));
  478. ds_cb_screenpos.setColumn(row, "cdnm", ds_code_2.getColumn(i, "cdnm"));
  479. ds_cb_screenpos.setColumn(row, "gbn_id", "rex"+ds_code_2.getColumn(i, "cdid"));
  480. }
  481. for (var i = 0; i < ds_code_3.rowcount; i++) {
  482. var row = ds_cb_screenpos.addRow();
  483. ds_cb_screenpos.setColumn(row, "gbn", "gif");
  484. ds_cb_screenpos.setColumn(row, "cdid", ds_code_3.getColumn(i, "cdid"));
  485. ds_cb_screenpos.setColumn(row, "cdnm", ds_code_3.getColumn(i, "cdnm"));
  486. ds_cb_screenpos.setColumn(row, "gbn_id", "gif"+ds_code_3.getColumn(i, "cdid"));
  487. }
  488. }
  489. /********************************************************************************
  490. * 설 명 : 조회함수.
  491. * argument :
  492. ********************************************************************************/
  493. function lf_Search()
  494. {
  495. var sInDsName = dsf_createDsRow("in_ds_search"
  496. , [{col: "scrnkind", val: grp_sea.cb_screengbn.value}
  497. , {col: "scrncd", val: grp_sea.ed_screencode.value}
  498. , {col: "scrnurlxp", val: grp_sea.ed_screenurl.value}
  499. , {col: "awtyn", val: grp_sea.rdo_awt.value}]);
  500. // 서브밋호출
  501. tranf_submit({
  502. id: "TRZSA20501"
  503. , service: "authinfoapp.AuthInfo"
  504. , method: "reqGetScrnList"
  505. , inds : "req="+sInDsName
  506. , outds: "out_ds_grid_screen=scrnlist"
  507. , async: true
  508. , callback : "cbf_TRZSA20501"
  509. });
  510. }
  511. function cbf_TRZSA20501()
  512. {
  513. out_ds_grid_screen.updatecontrol = false;
  514. out_ds_grid_screen.addColumn("gbn_id", "String", 256);
  515. var nRowCnt = out_ds_grid_screen.rowcount;
  516. var sScrnflag = "";
  517. var sScrnPos ="";
  518. //gd_screenreport.redraw = false;
  519. for(var i=0 ; i<nRowCnt ; i++){
  520. sScrnflag = out_ds_grid_screen.getColumn(i, "scrnflag");
  521. sScrnPos = out_ds_grid_screen.getColumn(i, "scrnpos");
  522. out_ds_grid_screen.setColumn(i, "gbn_id", sScrnflag+sScrnPos);
  523. out_ds_grid_screen.setRowType(i, Dataset.ROWTYPE_NORMAL);
  524. }
  525. //gd_screenreport.redraw = true;
  526. out_ds_grid_screen.updatecontrol = true;
  527. }
  528. /********************************************************************************
  529. * 설 명 : 삭제 함수.
  530. * argument :
  531. ********************************************************************************/
  532. function lf_Delete()
  533. {
  534. var nRow = out_ds_grid_screen.rowposition;
  535. //Dataset 행삭제
  536. out_ds_grid_screen.updatecontrol = false;
  537. if (out_ds_grid_screen.getRowType(nRow) == Dataset.ROWTYPE_INSERT) {
  538. out_ds_grid_screen.deleteRow(nRow);
  539. }
  540. else {
  541. var bSucc = out_ds_grid_screen.setRowType(nRow, Dataset.ROWTYPE_DELETE);
  542. bt_save.enable = true;
  543. }
  544. out_ds_grid_screen.updatecontrol = true;
  545. }
  546. /********************************************************************************
  547. * 설 명 : 저장함수.
  548. * argument :
  549. ********************************************************************************/
  550. function lf_Save()
  551. {
  552. if(!frmf_chkMdtGrid(gd_screenreport, [2, 3], ["화면코드", "화면URL"])) {
  553. return;
  554. }
  555. var sInDsName = dsf_createDsRow("in_ds_search"
  556. , [{col: "scrnkind", val: grp_sea.cb_screengbn.value}
  557. , {col: "scrncd", val: grp_sea.ed_screencode.value}
  558. , {col: "scrnurlxp", val: grp_sea.ed_screenurl.value}
  559. , {col: "awtyn", val: grp_sea.rdo_awt.value}]);
  560. tranf_submit({
  561. id: "TXZSA20501"
  562. , service: "authinfoapp.AuthInfo"
  563. , method: "reqExeSaveScrnList"
  564. , inds : "req=out_ds_grid_screen:U req2=in_ds_search"
  565. , outds: "out_ds_grid_screen=scrnlist"
  566. //, callback: "cbf_TXZSA20501"
  567. , callback: "cbf_TRZSA20501" // 조회시 사용하는 콜백 동일 하게 사용
  568. , async: true
  569. });
  570. }
  571. // function cbf_TXZSA20501()
  572. // {
  573. // out_ds_grid_screen.updatecontrol = true;
  574. //
  575. // lf_Search();
  576. // }
  577. /********************************************************************************
  578. * 설 명 : 행추가 함수.
  579. * argument :
  580. ********************************************************************************/
  581. function lf_AddRow()
  582. {
  583. /*
  584. Dataset.ROWTYPE_EMPTY 0 존재하지 않는 Row 상태
  585. Dataset.ROWTYPE_NORMAL 1 초기 Row 상태
  586. Dataset.ROWTYPE_INSERT 2 추가된 Row 상태
  587. Dataset.ROWTYPE_UPDATE 4 수정된 Row 상태
  588. Dataset.ROWTYPE_DELETE 8 삭제된 Row 상태
  589. Dataset.ROWTYPE_GROUP 16 Group 정보 Row 상태
  590. */
  591. //Dataset 행추가
  592. var nRowNum = out_ds_grid_screen.addRow();
  593. //Dataset 초기값 셋팅
  594. out_ds_grid_screen.setColumn(nRowNum, "scrnflag", "xrw");
  595. out_ds_grid_screen.setColumn(nRowNum, "scrnurlxp", "");
  596. out_ds_grid_screen.setColumn(nRowNum, "scrnpos", "M");
  597. out_ds_grid_screen.setColumn(nRowNum, "gbn_id", "xrwM");
  598. out_ds_grid_screen.setColumn(nRowNum, "useyn", "1"); // out_ds_grid_screen_oncolumnchanged에서 Y로 변경되어 저장됨
  599. out_ds_grid_screen.setColumn(nRowNum, "releasestate", "N");
  600. out_ds_grid_screen.setColumn(nRowNum, "awtyn", "1");
  601. out_ds_grid_screen.setColumn(nRowNum, "tfyn", "0");
  602. //gd_screenreport.autoenter= 'select';
  603. // 속성넣기
  604. gd_screenreport.setCellProperty( "body", 1, "combodisplay" ,"expr:getRowType(currow) == Dataset.ROWTYPE_INSERT ? 'display' : 'edit'" );
  605. gd_screenreport.setCellProperty( "body", 2, "editdisplay" ,"expr:getRowType(currow) == Dataset.ROWTYPE_INSERT ? 'display' : 'edit'" );
  606. gd_screenreport.setCellProperty( "body", 3, "editdisplay" ,"expr:getRowType(currow) == Dataset.ROWTYPE_INSERT ? 'display' : 'edit'" );
  607. gd_screenreport.setCellProperty( "body", 4, "combodisplay" ,"expr:getRowType(currow) == Dataset.ROWTYPE_INSERT ? 'display' : 'edit'" );
  608. gd_screenreport.setCellProperty( "body", 5, "editdisplay" ,"expr:getRowType(currow) == Dataset.ROWTYPE_INSERT ? 'display' : 'edit'" );
  609. gd_screenreport.rowposition = nRowNum;
  610. gd_screenreport.setCellPos(2);
  611. gd_screenreport.setFocus();
  612. }
  613. ]]></Script>
  614. </Form>
  615. </FDL>