SMZWT00110_AWT 구문관리(개인별).xfdl 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMZWT00110" position="absolute 0 0 930 700" titletext="자동구문관리" class="frm_POP" oninit="SMZWT00110_oninit" scrollbars="none">
  5. <Layouts>
  6. <Layout>
  7. <Grid position="absolute 12 107 917 657" id="grd_awtlist" binddataset="ds_grd_awtlist" autofittype="none" autosizingtype="row" extendsizetype="row" autoenter="select">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="25"/>
  12. <Column size="141"/>
  13. <Column size="725"/>
  14. <Column size="0"/>
  15. <Column size="0"/>
  16. <Column size="0"/>
  17. <Column size="0"/>
  18. <Column size="0"/>
  19. </Columns>
  20. <Rows>
  21. <Row size="24" band="head"/>
  22. <Row size="24"/>
  23. </Rows>
  24. <Band id="head">
  25. <Cell autosizecol="none"/>
  26. <Cell col="1" text="단어"/>
  27. <Cell col="2" text="구문"/>
  28. <Cell col="3"/>
  29. <Cell col="4"/>
  30. <Cell col="5"/>
  31. <Cell col="6"/>
  32. <Cell col="7"/>
  33. </Band>
  34. <Band id="body">
  35. <Cell displaytype="normal" style="align:center;" autosizecol="none"/>
  36. <Cell col="1" displaytype="text" edittype="textarea" text="bind:keyword" wordwrap="both" editacceptsenter="true" autosizerow="limitmin"/>
  37. <Cell col="2" displaytype="text" edittype="textarea" text="bind:sentense" editacceptsenter="true"/>
  38. <Cell col="3" displaytype="text" edittype="text" text="bind:sentensetype"/>
  39. <Cell col="4" displaytype="text" edittype="text" text="bind:awttype"/>
  40. <Cell col="5" displaytype="text" edittype="text" text="bind:userid"/>
  41. <Cell col="6" text="bind:awtseq"/>
  42. <Cell col="7" text="bind:backkeyword"/>
  43. </Band>
  44. </Format>
  45. </Formats>
  46. </Grid>
  47. <Button position="absolute 683 86 747 105" id="button5" class="btn2" visible="false" text="엑셀입력"/>
  48. <Button position="absolute 617 86 681 105" id="button1" class="btn2" visible="false" text="엑셀저장"/>
  49. <Button position="absolute 749 86 802 105" id="button2" class="btn5" enable="false" text="행추가" onclick="button2_onclick"/>
  50. <Button position="absolute 804 86 857 105" id="button3" class="btn5" enable="false" text="행삭제" onclick="button3_onclick"/>
  51. <Button position="absolute 861 85 917 107" id="button4" class="btn4" enable="false" text="저장" onclick="button4_onclick"/>
  52. <Static text="단어는 최대 2000개까지 표시됩니다." position="absolute 14 670 293 685" id="caption4" style="font:굴림체,9,bold;"/>
  53. <Static text="※ 사용법 : 기록화면에서 약어를 입력하신 후 F10을 누르시면 구문이 COPY됩니다." position="absolute 16 90 531 105" id="cpt_usetxt" style="color:blue;"/>
  54. <Button position="absolute 521 86 574 105" id="button6" class="btn2" visible="false" text="도움말" onclick="button6_onclick"/>
  55. <Static position="absolute 831 670 917 685" align="align:right middle;" id="cpt_cnt" style="align:right middle;"/>
  56. <Button position="absolute 24 720 44 730" id="button7" text=""/>
  57. <Static id="stt_titleText" text="AWT 구문관리" onclick="stt_titleText_onclick" class="sta_POP_title" transparenthittest="true" position="absolute 12 8 161 28"/>
  58. <Button id="btn_close" taborder="1" onclick="btn_close_onclick" class="btn_POP_cls" position="absolute 896 12 910 25"/>
  59. <Shape id="roundrect1" type="roundrectangle" position="absolute 12 40 917 80"/>
  60. <Edit id="ipt_pKeyword" taborder="2" class="input_search" position="absolute 418 51 533 70"/>
  61. <Static id="caption8" text="유형 :" class="search_name" position="absolute 23 52 83 69"/>
  62. <Radio id="radio1" taborder="3" columncount="2" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" class="radio_search" position="absolute 88 52 183 72" onitemchanged="radio1_onitemchanged">
  63. <Dataset id="innerdataset">
  64. <ColumnInfo>
  65. <Column id="codecolumn"/>
  66. <Column id="datacolumn"/>
  67. </ColumnInfo>
  68. <Rows>
  69. <Row>
  70. <Col id="codecolumn">W</Col>
  71. <Col id="datacolumn">단어</Col>
  72. </Row>
  73. <Row>
  74. <Col id="codecolumn">S</Col>
  75. <Col id="datacolumn">구문</Col>
  76. </Row>
  77. </Rows>
  78. </Dataset>
  79. </Radio>
  80. <Radio id="rdo_awt" taborder="4" columncount="3" rowcount="0" codecolumn="codecolumn" datacolumn="datacolumn" class="radio_search" position="absolute 193 52 293 72" onitemchanged="rdo_awt_onitemchanged">
  81. <Dataset id="innerdataset">
  82. <ColumnInfo>
  83. <Column id="codecolumn"/>
  84. <Column id="datacolumn"/>
  85. </ColumnInfo>
  86. <Rows>
  87. <Row>
  88. <Col id="codecolumn">P</Col>
  89. <Col id="datacolumn">개인</Col>
  90. </Row>
  91. <Row>
  92. <Col id="codecolumn">C</Col>
  93. <Col id="datacolumn">공용</Col>
  94. </Row>
  95. </Rows>
  96. </Dataset>
  97. </Radio>
  98. <Static id="caption1" text="단어 또는 약어 :" class="search_name" position="absolute 293 52 418 69"/>
  99. <Static id="caption2" text="구문 안의 단어 :" class="search_name" position="absolute 543 52 678 69"/>
  100. <Edit id="input1" taborder="5" class="input_search" position="absolute 668 51 828 70"/>
  101. <Button id="btn_search" taborder="6" text="조회" class="btn1" position="absolute 853 50 909 72" onclick="btn_search_onclick"/>
  102. <Shape id="line13" linetype="vertical" position="absolute 841 50 847 71"/>
  103. </Layout>
  104. </Layouts>
  105. <Objects>
  106. <Dataset id="ds_grd_awtlist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  107. <ColumnInfo>
  108. <Column id="keyword" type="STRING" size="255"/>
  109. <Column id="sentense" type="STRING" size="255"/>
  110. <Column id="sentensetype" type="STRING" size="255"/>
  111. <Column id="awttype" type="STRING" size="255"/>
  112. <Column id="userid" type="STRING" size="255"/>
  113. <Column id="awtseq" type="STRING" size="255"/>
  114. <Column id="backkeyword" type="STRING" size="255"/>
  115. </ColumnInfo>
  116. </Dataset>
  117. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  118. <ColumnInfo>
  119. <Column id="sentensetype" type="STRING" size="256" sumtext="단어,구문구분"/>
  120. <Column id="keyword" type="STRING" size="256" sumtext="검색keyword"/>
  121. <Column id="sentense" type="STRING" size="256" sumtext="검색sentense"/>
  122. <Column id="awttype" type="STRING" size="256" sumtext="검색awttype"/>
  123. <Column id="userid" type="STRING" size="256" sumtext="검색userid"/>
  124. </ColumnInfo>
  125. </Dataset>
  126. </Objects>
  127. <Bind>
  128. <BindItem id="item0" compid="ipt_pKeyword" propid="value" datasetid="ds_send" columnid="keyword"/>
  129. <BindItem id="item1" compid="input1" propid="value" datasetid="ds_send" columnid="sentense"/>
  130. <BindItem id="item2" compid="rdo_awt" propid="value" datasetid="ds_send" columnid="awttype"/>
  131. <BindItem id="item3" compid="radio1" propid="value" datasetid="ds_send" columnid="sentensetype"/>
  132. </Bind>
  133. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  134. * System Name :
  135. * Job Name :
  136. * Creator :
  137. * Make Date : 2014-12-23
  138. * Description :
  139. *---------------------------------------------------------------------------------------
  140. * Modify Date Modifier Modify Description
  141. *---------------------------------------------------------------------------------------
  142. * 2014-12-23 Live Converter TF->XP
  143. *
  144. *---------------------------------------------------------------------------------------
  145. ****************************************************************************************/
  146. //=======================================================================================
  147. // Lib Include
  148. //---------------------------------------------------------------------------------------
  149. include "com_commonxp::comm_main.xjs"; // 전체공통 스크립트
  150. //=======================================================================================
  151. // Global Form Variable
  152. //---------------------------------------------------------------------------------------
  153. //=======================================================================================
  154. // Function
  155. //---------------------------------------------------------------------------------------
  156. function SMZWT00110_oninit(obj:Form, e:InitEventInfo)
  157. {
  158. frmf_initForm(obj);
  159. // model.removenode("/root/main/awtlist");
  160. // model.makeNode("/root/main/awtlist");
  161. grdf_setRowTypeIcon(grd_awtlist, 0); //상태값 표시
  162. ds_send.clearData();
  163. ds_send.addRow();
  164. ds_send.setColumn(0, "sentensetype", "S");
  165. ds_send.setColumn(0, "awttype", "P");
  166. ds_send.setColumn(0, "keyword", "");
  167. ds_send.setColumn(0, "sentense", "");
  168. ds_send.setColumn(0, "userid", "");
  169. radio1.value = "S";
  170. rdo_awt.value = "P";
  171. if (rdo_awt.value == "C") {
  172. button1.enable = false;
  173. button2.enable = false;
  174. button3.enable = false;
  175. button4.enable = false;
  176. button5.enable = false;
  177. } else {
  178. button1.enable = true;
  179. button2.enable = true;
  180. button3.enable = true;
  181. button4.enable = true;
  182. button5.enable = true;
  183. }
  184. // var sInDsName = dsf_createDsRow("in_ds_search"
  185. // , [ {col: "sentensetype", val: group2.ipt_search_item.value}
  186. // ,{col: "keyword", val: group2.combo1.value}
  187. // ,{col: "sentense", val: cmb_menugrup.value}
  188. // ,{col: "awttype", val: cmb_menugrupauthlist.value}
  189. // ,{col: "userid", val: opt_menuauthcd.value} ]);
  190. var oParam = {};
  191. oParam.id = "TRZWT00100";
  192. oParam.service = "awtapp.AwtWord";
  193. oParam.method = "reqGetAwtWordList";
  194. oParam.inds = "req=ds_send";
  195. oParam.outds = "ds_grd_awtlist=item";
  196. oParam.async = false;
  197. oParam.callback = "cf_TRZWT00100";
  198. tranf_submit(oParam);
  199. // grd_awtlist.clearStatus();
  200. if (ds_send.getColumn(0, "sentensetype") == "W") {
  201. grd_awtlist.setCellProperty("Head", 1, "text", "단어");
  202. grd_awtlist.setFormatColProperty(1, "size", 861);
  203. grd_awtlist.setFormatColProperty(2, "size", 0);
  204. cpt_usetxt.visible = false;
  205. } else {
  206. grd_awtlist.setCellProperty("Head", 1, "text", "약어");
  207. grd_awtlist.setFormatColProperty(1, "size", 141);
  208. grd_awtlist.setFormatColProperty(2, "size", 725);
  209. cpt_usetxt.visible = true;
  210. }
  211. var cnt = ds_grd_awtlist.getRowCount();
  212. if( cnt > 0 ){
  213. cpt_cnt.text = "( " + cnt + " 건 )";
  214. cpt_cnt.visible = true;
  215. }else{
  216. cpt_cnt.visible = false;
  217. }
  218. }
  219. function cf_TRZWT00100(sSvcId, nErrorCode, sErrorMsg) {
  220. if(nErrorCode < 0) return;
  221. else{
  222. ds_grd_awtlist.updatecontrol = false;
  223. for(var i = 0; i < ds_grd_awtlist.rowcount; i++){
  224. ds_grd_awtlist.setColumn(i, "backkeyword", ds_grd_awtlist.getColumn(i, "keyword"));
  225. }
  226. ds_grd_awtlist.updatecontrol = true;
  227. }
  228. }
  229. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  230. {
  231. this.close();
  232. }
  233. function radio1_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  234. {
  235. if (obj.value == "W") {
  236. grd_awtlist.setCellProperty("Head", 1, "text", "단어");
  237. grd_awtlist.setFormatColProperty(1, "size", 861);
  238. grd_awtlist.setFormatColProperty(2, "size", 0);
  239. cpt_usetxt.visible = false;
  240. } else {
  241. grd_awtlist.setCellProperty("Head", 1, "text", "약어");
  242. grd_awtlist.setFormatColProperty(1, "size", 141);
  243. grd_awtlist.setFormatColProperty(2, "size", 725);
  244. cpt_usetxt.visible = true;
  245. }
  246. var oParam = {};
  247. oParam.id = "TRZWT00100";
  248. oParam.service = "awtapp.AwtWord";
  249. oParam.method = "reqGetAwtWordList";
  250. oParam.inds = "req=ds_send";
  251. oParam.outds = "ds_grd_awtlist=item";
  252. oParam.async = false;
  253. oParam.callback = "cf_TRZWT00100";
  254. tranf_submit(oParam);
  255. // grd_awtlist.clearStatus();
  256. if (obj.value == "W") {
  257. grd_awtlist.setCellProperty("Head", 1, "text", "단어");
  258. grd_awtlist.setFormatColProperty(1, "size", 861);
  259. grd_awtlist.setFormatColProperty(2, "size", 0);
  260. cpt_usetxt.visible = false;
  261. } else {
  262. grd_awtlist.setCellProperty("Head", 1, "text", "약어");
  263. grd_awtlist.setFormatColProperty(1, "size", 141);
  264. grd_awtlist.setFormatColProperty(2, "size", 725);
  265. cpt_usetxt.visible = true;
  266. }
  267. var cnt = ds_grd_awtlist.getRowCount();
  268. if( cnt > 0 ){
  269. cpt_cnt.text = "( " + cnt + " 건 )";
  270. cpt_cnt.visible = true;
  271. }else{
  272. cpt_cnt.visible = false;
  273. }
  274. }
  275. function rdo_awt_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  276. {
  277. if (obj.value == "C") {
  278. button1.enable = false;
  279. button2.enable = false;
  280. button3.enable = false;
  281. button4.enable = false;
  282. button5.enable = false;
  283. } else {
  284. button1.enable = true;
  285. button2.enable = true
  286. button3.enable = true;
  287. button4.enable = true;
  288. button5.enable = true;
  289. }
  290. var oParam = {};
  291. oParam.id = "TRZWT00100";
  292. oParam.service = "awtapp.AwtWord";
  293. oParam.method = "reqGetAwtWordList";
  294. oParam.inds = "req=ds_send";
  295. oParam.outds = "ds_grd_awtlist=item";
  296. oParam.async = false;
  297. oParam.callback = "cf_TRZWT00100";
  298. tranf_submit(oParam);
  299. // grd_awtlist.clearStatus();
  300. if (ds_send.getColumn(0, "sentensetype") == "W") {
  301. grd_awtlist.setCellProperty("Head", 1, "text", "단어");
  302. grd_awtlist.setFormatColProperty(1, "size", 861);
  303. grd_awtlist.setFormatColProperty(2, "size", 0);
  304. cpt_usetxt.visible = false;
  305. } else {
  306. grd_awtlist.setCellProperty("Head", 1, "text", "약어");
  307. grd_awtlist.setFormatColProperty(1, "size", 141);
  308. grd_awtlist.setFormatColProperty(2, "size", 725);
  309. cpt_usetxt.visible = true;
  310. }
  311. var cnt = ds_grd_awtlist.getRowCount();
  312. if( cnt > 0 ){
  313. cpt_cnt.text = "( " + cnt + " 건 )";
  314. cpt_cnt.visible = true;
  315. }else{
  316. cpt_cnt.visible = false;
  317. }
  318. }
  319. function btn_search_onclick(obj:Button, e:ClickEventInfo)
  320. {
  321. var oParam = {};
  322. oParam.id = "TRZWT00100";
  323. oParam.service = "awtapp.AwtWord";
  324. oParam.method = "reqGetAwtWordList";
  325. oParam.inds = "req=ds_send";
  326. oParam.outds = "ds_grd_awtlist=item";
  327. oParam.async = false;
  328. oParam.callback = "cf_TRZWT00100";
  329. tranf_submit(oParam);
  330. //trace(ds_grd_awtlist.saveXML());
  331. // grd_awtlist.clearStatus();
  332. if (ds_send.getColumn(0, "sentensetype") == "W") {
  333. grd_awtlist.setCellProperty("Head", 1, "text", "단어");
  334. grd_awtlist.setFormatColProperty(1, "size", 861);
  335. grd_awtlist.setFormatColProperty(2, "size", 0);
  336. cpt_usetxt.visible = false;
  337. } else {
  338. grd_awtlist.setCellProperty("Head", 1, "text", "약어");
  339. grd_awtlist.setFormatColProperty(1, "size", 141);
  340. grd_awtlist.setFormatColProperty(2, "size", 725);
  341. cpt_usetxt.visible = true;
  342. }
  343. var cnt = ds_grd_awtlist.getRowCount();
  344. if( cnt > 0 ){
  345. cpt_cnt.text = "( " + cnt + " 건 )";
  346. cpt_cnt.visible = true;
  347. }else{
  348. cpt_cnt.visible = false;
  349. }
  350. }
  351. function button2_onclick(obj:Button, e:ClickEventInfo)
  352. {
  353. ds_grd_awtlist.addRow();
  354. ds_grd_awtlist.setColumn(ds_grd_awtlist.rowcount-1, "sentense", "구문을 \n입력해주세요.");
  355. grd_awtlist.setFocus();
  356. }
  357. function button3_onclick(obj:Button, e:ClickEventInfo)
  358. {
  359. var nRow = ds_grd_awtlist.rowposition;
  360. //Dataset 행삭제
  361. ds_grd_awtlist.updatecontrol = false;
  362. if (ds_grd_awtlist.getRowType(nRow) == Dataset.ROWTYPE_INSERT) {
  363. ds_grd_awtlist.deleteRow(nRow);
  364. }
  365. else {
  366. var bSucc = ds_grd_awtlist.setRowType(nRow, Dataset.ROWTYPE_DELETE);
  367. }
  368. ds_grd_awtlist.updatecontrol = true;
  369. }
  370. function button4_onclick(obj:Button, e:ClickEventInfo)
  371. {
  372. var cnt = 0;
  373. for (var i = 0; i < grd_awtlist.rowcount; i++) {
  374. cnt = 0;
  375. if(ds_send.getColumn(0, "sentensetype") == "W"){
  376. ds_grd_awtlist.setColumn(i, "sentense", ds_grd_awtlist.getColumn(i, "keyword"));
  377. }
  378. if(ds_send.getColumn(0, "sentensetype") == "S"){
  379. if(ds_grd_awtlist.getColumn(i, "keyword") == ""){
  380. sysf_messageBox("빈 값으로 단어를 저장할 수 없습니다.【 " + i + "번째 】", "C999");
  381. return;
  382. }
  383. if(ds_grd_awtlist.getColumn(i, "sentense") == ""){
  384. sysf_messageBox("빈 값으로 구문을 저장할 수 없습니다. \n【 " + i + "번째 단어 : " + ds_grd_awtlist.getColumn(i, "keyword") + " 】", "C999");
  385. return;
  386. }
  387. }
  388. ds_grd_awtlist.setColumn(i, "awttype", ds_send.getColumn(0, "awttype"));
  389. ds_grd_awtlist.setColumn(i, "sentensetype", ds_send.getColumn(0, "sentensetype"));
  390. for(var j = 0; j < grd_awtlist.rowcount; j++){
  391. if(ds_grd_awtlist.getColumn(i, "keyword") == ds_grd_awtlist.getColumn(j, "keyword")){
  392. cnt++;
  393. }
  394. }
  395. if( cnt > 1 ){
  396. sysf_messageBox("[" + ds_grd_awtlist.getColumn(i, "keyword") + "] 동일한 " + grd_awtlist.getCellProperty("Head", 2, "text") + "가 존재합니다." , "C999");
  397. return;
  398. }
  399. // TF와 같은 데이터 형태로 저장 하기 위해 \r\n 을 \n으로 바꿔서 저장함
  400. // 그래야 awt 를 통해서 나올 때 TF가 제대로 나옴
  401. var sentense = ds_grd_awtlist.getColumn(i, "sentense");
  402. sentense = sentense.replace(/\r\n/g, "\n");
  403. ds_grd_awtlist.setColumn(i, "sentense", sentense);
  404. }
  405. var oParam = {};
  406. oParam.id = "TXZWT00200";
  407. oParam.service = "awtapp.AwtWord";
  408. oParam.method = "reqExeAwtListUser";
  409. oParam.inds = "req=ds_grd_awtlist:U";
  410. oParam.outds = "null";
  411. oParam.async = false;
  412. oParam.typeStr = "m"; // AwtWordImpl.java에서 status 변수명이 m으로 되어 있음
  413. oParam.callback = "cf_TXZWT00200";
  414. tranf_submit(oParam);
  415. }
  416. function cf_TXZWT00200(sSvcId, nErrorCode, sErrorMsg) {
  417. if(nErrorCode < 0){
  418. alert("저장에 실패하였습니다.");
  419. return;
  420. } else {
  421. alert("저장되었습니다.");
  422. btn_search.click();
  423. }
  424. }]]></Script>
  425. </Form>
  426. </FDL>