SPMQR06000_원내긴급코드.xfdl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMQR06000" position="absolute 0 0 800 950" titletext="원내긴급코드" oninit="SPMQR06000_oninit" onload="SPMQR06000_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div position="absolute 620 0 790 28" align="align:center top;" id="grp_sea" visible="false">
  8. <Layouts>
  9. <Layout>
  10. <Button position="absolute 5 2 61 24" id="btn_search" class="btn1" visible="false" text="조회" onclick="grp_sea_btn_search_onclick"/>
  11. <Button position="absolute 62 6 126 25" id="btn_plan" class="btn5" text="파일찾기" onclick="grp_sea_btn_plan_onclick"/>
  12. </Layout>
  13. </Layouts>
  14. </Div>
  15. <Static position="absolute 0 0 225 26" id="cap_title" class="tit_1"/>
  16. <ActiveX id="inff_objIE" position="absolute 0 27 800 950" progid="shell.explorer.2" windowed="true" useautobitmapcache="1" anchor="default" taborder="1"/>
  17. <Button id="btn_prnt" taborder="2" text="인쇄" position="absolute 748 5 800 25" class="btn6" onclick="btn_prnt_onclick"/>
  18. <ActiveX id="pHwpCtrl" position="absolute 0 27 798 950" progid="{bd9c32de-3155-4691-8972-097d53b10052}" visible="false"/>
  19. </Layout>
  20. </Layouts>
  21. <Objects>
  22. <Dataset id="ds_data_attach" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  23. <ColumnInfo>
  24. <Column id="filenm" type="STRING" size="256"/>
  25. <Column id="filedata" type="BLOB" size="256"/>
  26. <Column id="filesize" type="STRING" size="256"/>
  27. <Column id="filetype" type="STRING" size="256"/>
  28. </ColumnInfo>
  29. </Dataset>
  30. <Dataset id="ds_data_trgtcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  31. <ColumnInfo>
  32. <Column id="trgtcd" type="STRING" size="256" sumtext="구분"/>
  33. <Column id="conts" type="STRING" size="256"/>
  34. </ColumnInfo>
  35. </Dataset>
  36. <Dataset id="ds_data_cnt" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  37. <ColumnInfo>
  38. <Column id="cnt" type="STRING" size="256" sumtext="업데이트카운트"/>
  39. </ColumnInfo>
  40. </Dataset>
  41. </Objects>
  42. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  43. * System Name :
  44. * Job Name :
  45. * Creator :
  46. * Make Date : 2014-08-11
  47. * Description :
  48. *---------------------------------------------------------------------------------------
  49. * Modify Date Modifier Modify Description
  50. *---------------------------------------------------------------------------------------
  51. * 2014-08-11 Live Converter TF->XP
  52. *
  53. *---------------------------------------------------------------------------------------
  54. ****************************************************************************************/
  55. //=======================================================================================
  56. // Lib Include
  57. //---------------------------------------------------------------------------------------
  58. include "com_commonxp::comm_main.xjs"
  59. include "emr_prcpmngtxp::MMO001.xjs"
  60. //=======================================================================================
  61. // Global Form Variable
  62. //---------------------------------------------------------------------------------------
  63. var arErrorCode = new HashArray();
  64. //=======================================================================================
  65. // Function
  66. //---------------------------------------------------------------------------------------
  67. /****************************************************************************************
  68. * Argument : N/A
  69. * Description : 자식화면 완료시 수행
  70. ****************************************************************************************/
  71. var tid;
  72. var chktime=1;
  73. var tempPath = "";
  74. var timer;
  75. var timer2;
  76. var cnt = 0;
  77. var cnt2 = 0;
  78. var auth = "N";
  79. var chkcnt = 0;
  80. var delPath ="";
  81. var menuparm0 ="";
  82. var menuparm1 ="";
  83. var menuparm2 ="";
  84. function fInitialize(){
  85. var menuparm = frmf_getMenuParam();
  86. if ( utlf_isNull(menuparm)) {
  87. var menuparm = utlf_transNullToEmpty(opener.frmf_getParameter("SPMQR06000_param"));
  88. }
  89. menuparm = menuparm.split("@");
  90. menuparm0 = menuparm[0];
  91. menuparm1 = menuparm[1];
  92. menuparm2 = menuparm[2];
  93. if (menuparm0 == "A") {
  94. grp_sea.visible = true;
  95. }
  96. this.titletext = menuparm1;
  97. cap_title.text = menuparm1;
  98. /* hwp 세팅 */
  99. pHwpCtrl.SetToolBar(-1, "TOOLBAR_MENU");
  100. pHwpCtrl.SetToolBar(-1, "TOOLBAR_STANDARD");
  101. pHwpCtrl.SetToolBar(-1, "TOOLBAR_FORMAT");
  102. pHwpCtrl.SetToolBar(-1, "TOOLBAR_DRAW");
  103. pHwpCtrl.SetToolBar(-1, "-TOOLBAR_TABLE");
  104. pHwpCtrl.SetToolBar(-1, "-TOOLBAR_IMAGE");
  105. //pHwpCtrl.SetToolBar(-1, "-TOOLBAR_HEADERFOOTER");
  106. //pHwpCtrl.SetToolBar(0, "FilePreview, Print, Separator, Undo, Redo, Separator, Cut, Copy, Paste,"+"Separator, ParaNumberBullet, MultiColumn, SpellingCheck, HwpDic, Separator, PictureInsertDialog, MacroPlay1");
  107. //pHwpCtrl.SetToolBar(0, "Print, Separator, Undo, Redo, Separator, Cut, Copy, Paste,"+"Separator, ParaNumberBullet, MultiColumn, SpellingCheck, HwpDic, Separator, PictureInsertDialog, MacroPlay1");
  108. var dact = pHwpCtrl.CreateAction("CharShape");
  109. var dset = dact.CreateSet();
  110. dact.GetDefault(dset);
  111. //dset.SetItem("Height", 1300);
  112. dset.SetItem("FaceNameHangul", "굴림");
  113. dset.SetItem("FaceNameLatin", "굴림");
  114. dset.SetItem("FaceNameHanja", "굴림");
  115. dset.SetItem("FaceNameJapanese", "굴림");
  116. dset.SetItem("FaceNameOther", "굴림");
  117. dset.SetItem("FaceNameSymbol", "굴림");
  118. dset.SetItem("FaceNameUser", "굴림");
  119. //dset.SetItem("TextColor", 0xFF0000); // 글자 색을 파란색으로
  120. dact.Execute(dset); // 액션 실행
  121. fSearch();
  122. }
  123. //원내긴급코드 업데이트
  124. function fFileSave(){
  125. var fd = new FileDialog;
  126. //fd.filter = "Image File(*.png;*.gif;*.jpg)|*.png;*.gif;*.jpg|";
  127. fd.filter = "웹보관파일(*.mht)|*.mht|한글파일(*.hwp)|*.hwp";
  128. var objVFile = fd.open("FileOpen", FileDialog.LOAD, "%MYDOCUMENT%"); // 단일 파일 선택
  129. if(utlf_isNull(objVFile)) return;
  130. ds_data_trgtcd.clearData();
  131. ds_data_trgtcd.addRow();
  132. lf_saveFile(objVFile);
  133. var tempstr = objVFile.filename;
  134. var data = "";
  135. if(tempstr.toLowerCase().lastIndexOf(".hwp") > -1){
  136. pHwpCtrl.Open(objVFile.fullpath,"HWP","template:true");
  137. data = pHwpCtrl.GetTextFile("HWPML2X", ""); //HWPML2X
  138. //ds_data_trgtcd.setColumn(0, "contstxt", pHwpCtrl.GetTextFile("TEXT", ""));
  139. }
  140. ds_data_trgtcd.setColumn(0, "conts", data); //HWPML2X
  141. ds_data_trgtcd.setColumn(0, "trgtcd", menuparm2);
  142. ds_data_attach.addColumn("file", "string");
  143. ds_data_attach.setColumn(0, "file", objVFile);
  144. var oParam = {};
  145. oParam.id = "TXMQK06000";
  146. oParam.service = "qiapp.QiActivityMngt";
  147. oParam.method = "reqExeUploadHospcode";
  148. oParam.inds = "attach=ds_data_attach trgtcd=ds_data_trgtcd";
  149. oParam.outds = "ds_data_cnt=cnt";
  150. oParam.async = false;
  151. oParam.callback = "cf_TXMQK06000";
  152. tranf_submit(oParam);
  153. fSearch();
  154. }
  155. function cf_TXMQK06000(sSvcId, nErrorCode, sErrorMsg) {
  156. if(nErrorCode < 0) return;
  157. sysf_messageBox("저장 ", "I002");
  158. }
  159. // 주어진 VirtualFile 을 데이터셋에 저장한다.
  160. function lf_saveFile(objVFile)
  161. {
  162. ds_data_attach.clearData();
  163. ds_data_attach.addRow();
  164. // 그 파일의 데이터를 데이터셋의 특정 컬럼에 BLOB 형식으로 write 한다.
  165. var file = dsf_writeFileToDs(objVFile, ds_data_attach, 0, "filedata");
  166. var maxsize = 2097152;
  167. if( file.filesize > maxsize ){
  168. sysf_messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  169. return;
  170. }
  171. ds_data_attach.setColumn(0, "filenm", file.filename);
  172. ds_data_attach.setColumn(0, "filesize", file.filesize);
  173. ds_data_attach.setColumn(0, "filetype", file.filetype);
  174. }
  175. function fSearch() {
  176. sysf_trace("********** fSearch() start ********");
  177. var strPath = system.convertRealPath("%MYDOCUMENT%");
  178. var temp_path = strPath + "\KU20\\temp2";
  179. var trgtcd = menuparm2;
  180. var fileorgnm = "";
  181. var filetype = "";
  182. fExistFolder(temp_path);
  183. var sSendDsNm = dsf_createDsRow("ds_cond_TRMQK06000", [{col:"trgtcd", type:"string", size:256, val:trgtcd}]);
  184. var sRtnDsNm = dsf_createDs("ds_data_TRMQK06000", [{col:"attfilecnts", type:"string", size:256}]);
  185. var objRtnDS:Dataset = new Dataset;
  186. objRtnDS = this.objects[sRtnDsNm];
  187. sysf_setErrorMsg(false); //자바단에서 에러발생시 1.0은 오류리턴을 안해서...
  188. var oParam = {};
  189. oParam.id = "TRMQK06000";
  190. oParam.service = "qiapp.QiActivityMngt";
  191. oParam.method = "reqExeFileDownLoad";
  192. oParam.inds = "req="+sSendDsNm;
  193. oParam.outds = sRtnDsNm+"=filelist";
  194. oParam.async = false;
  195. //oParam.callback = "cf_TRMQK06000";
  196. tranf_submit(oParam);
  197. sysf_setErrorMsg(true);
  198. if(ds_data_TRMQK06000.rowcount > 0){
  199. fileorgnm = ds_data_TRMQK06000.getColumn(0, "attfilenm").toLowerCase();
  200. filetype = fileorgnm.substring(fileorgnm.lastIndexOf(".") + 1, fileorgnm.length);
  201. }
  202. var filename = menuparm1 + "." + filetype;
  203. var extobj = new ExtCommon();
  204. dsf_readFileFromDs(temp_path + "\\" + filename, objRtnDS, 0, "attfilecnts"); // 파일저장
  205. var path = temp_path+"\\"+filename;
  206. if(filetype == "mht"){
  207. pHwpCtrl.visible = false;
  208. inff_objIE.visible = true;
  209. inff_objIE.Navigate(path, null, "", null, null);
  210. trace("path >> " + path);
  211. }else if(filetype == "hwp"){
  212. if(typeof(pHwpCtrl) == undefined){
  213. sysf_messageBox("한글이 설치되지 않았습니다.\n설치 후 진행 ","I006");
  214. return;
  215. }
  216. pHwpCtrl.visible = true;
  217. inff_objIE.visible = false;
  218. pHwpCtrl.SetTextFile(ds_data_TRMQK06000.getColumn(0, "conts"), "HWPML2X", ""); //HWPML2X
  219. pHwpCtrl.MovePos(2, null, 1);//(2:문서의 시작 27:캐럿의위치)로 이동
  220. /*
  221. if(ds_data_TRMQK06000.getColumn(0, "conts") != null && ds_data_TRMQK06000.getColumn(0, "conts") != ""){
  222. }else{
  223. pHwpCtrl.SetTextFile("","HWP","");
  224. }
  225. */
  226. }else{
  227. inff_objIE.Refresh();
  228. pHwpCtrl.Clear(1);
  229. }
  230. }
  231. function fExistFolder(foldernm)
  232. {
  233. var objExtCommon = new ExtCommon();
  234. if(utlf_isNull(foldernm)){
  235. return;
  236. }
  237. var folderDept = foldernm.split("\\");
  238. var currentPos = folderDept[0];
  239. for(var i =1; i<folderDept.length ; i++){
  240. if(utlf_isNull(folderDept[i])){
  241. break;
  242. }
  243. currentPos += ("\\" + folderDept[i]);
  244. objExtCommon.checkDirectory(currentPos, 1);
  245. }
  246. }
  247. //=======================================================================================
  248. // Transaction Callback
  249. //---------------------------------------------------------------------------------------
  250. /****************************************************************************************
  251. * Argument : 01.sSvcId : 서비스 ID
  252. * : 02.nErrorCode : 에러코드
  253. * : 03.sErrorMsg : 에러메시지
  254. * Description : TRMMR00902의 콜백함수
  255. ****************************************************************************************/
  256. function cf_(sSvcId, nErrorCode, sErrorMsg) {
  257. arErrorCode.push(sSvcId, nErrorCode);
  258. if(nErrorCode < 0) return;
  259. }
  260. //=======================================================================================
  261. // Event
  262. //---------------------------------------------------------------------------------------
  263. /****************************************************************************************
  264. * Components : Form
  265. * Components ID : SPMQR06000
  266. * Event : oninit
  267. * Argument : 01.obj : Object Event has occurred
  268. * : 02.e : Event Object
  269. * Description : 화면 초기화
  270. ****************************************************************************************/
  271. function SPMQR06000_oninit(obj:Form, e:InitEventInfo)
  272. {
  273. frmf_initForm(obj);
  274. }
  275. /****************************************************************************************
  276. * Components : Form
  277. * Components ID : SPMQR06000
  278. * Event : onload
  279. * Argument : 01.obj : Object Event has occurred
  280. * : 02.e : Event Object
  281. * Description : 화면 초기화
  282. ****************************************************************************************/
  283. function SPMQR06000_onload(obj:Form, e:LoadEventInfo)
  284. {
  285. fInitialize();
  286. }
  287. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo)
  288. {
  289. fSearch();
  290. }
  291. function grp_sea_btn_plan_onclick(obj:Button, e:ClickEventInfo)
  292. {
  293. fFileSave();
  294. }
  295. /****************************************************************************************
  296. * Components : Button
  297. * Components ID : btn_prnt
  298. * Event : onclick
  299. * Argument : 01.obj : Object Event has occurred
  300. * : 02.e : Event Object
  301. * Description : 인쇄
  302. ****************************************************************************************/
  303. function btn_prnt_onclick(obj:Button, e:ClickEventInfo)
  304. {
  305. if(ds_data_TRMQK06000.getColumn(0, "attfilenm").toLowerCase().indexOf(".mht") > -1){
  306. inff_objIE.ExecWB(6, -1);
  307. }else if(ds_data_TRMQK06000.getColumn(0, "attfilenm").toLowerCase().indexOf(".hwp") > -1){
  308. pHwpCtrl.PrintDocument();
  309. }
  310. }]]></Script>
  311. </Form>
  312. </FDL>