SMMNP07500.xjs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[//=======================================================================================
  3. // Global Form Variable
  4. //---------------------------------------------------------------------------------------
  5. var arErrorCode = new HashArray();
  6. //=======================================================================================
  7. // Function
  8. //---------------------------------------------------------------------------------------
  9. /****************************************************************************************
  10. * Argument : N/A
  11. * Description : 게시판 화면 초기화
  12. ****************************************************************************************/
  13. function fInitialize(){
  14. //조회된 조건 초기화
  15. ipt_title.value = "";
  16. ipt_content.value = "";
  17. ipt_attfilenm.value = "";
  18. //조회날짜 받아옴
  19. var fromdd = ((utlf_getCurrentDate().toDate()).getAddDate(-30)).getDateFormat();
  20. var todd = utlf_getCurrentDate();
  21. //한달을 기준으로 한달안에 보내진 게시판만 보여줌
  22. ds_main_bbs_cond.addColumn("fromdd" ,"string");
  23. ds_main_bbs_cond.addColumn("todd" ,"string");
  24. ds_main_bbs_cond.addColumn("scrhgubun" ,"string");
  25. ds_main_bbs_cond.addColumn("scrhvalue" ,"string");
  26. ds_main_bbs_cond.setColumn(0,"fromdd" ,fromdd);
  27. ds_main_bbs_cond.setColumn(0,"todd" ,todd);
  28. ds_main_bbs_cond.setColumn(0,"scrhgubun","T");
  29. ds_main_bbs_cond.setColumn(0,"scrhvalue","");
  30. // 공통코드 스크립트 호출
  31. // zbcfGetCodeList( new Array("M0636"), new Array("/root/init/M0636"));
  32. var arrParam = [{dsNm: "ds_init_M0636", cdGrpId: "M0636"}
  33. ];
  34. appf_getCodeList(arrParam);
  35. // 게시판 리스트를 조회
  36. fgetBbsList();
  37. }
  38. /****************************************************************************************
  39. * Argument : N/A
  40. * Description : 게시판 조회
  41. ****************************************************************************************/
  42. function fgetBbsList(){
  43. //조회시에 수정및 삭제를 할수 없음
  44. btn_new.enable = true;
  45. btn_mod.enable = false;
  46. btn_cancel.visible = false;
  47. btn_save.enable = false;
  48. btn_del.enable = false;
  49. btn_addcomt.enable = false;
  50. btn_addcomtsave.enable = false;
  51. btn_addcomtdel.enable = false;
  52. btn_fileadd.visible = false;
  53. btn_filedel.visible = false;
  54. btn_down.visible = false;
  55. btn_preview.visible = false;
  56. ipt_title.enable = false;
  57. cmb_bbscls.enable = false;
  58. ipt_attfilenm.enable = false;
  59. ds_main_bbs_iteminfo.addColumn("status","string");
  60. ds_main_bbs_iteminfo.setColumn(0,"status","e");
  61. // 조회 조건을 셋팅 한다.
  62. var bbscls = ds_main_bbs_cond.getColumn(0,"bbscls");
  63. var fromdd = ds_main_bbs_cond.getColumn(0,"fromdd");
  64. var todd = ds_main_bbs_cond.getColumn(0,"todd");
  65. var scrhgubun = ds_main_bbs_cond.getColumn(0,"scrhgubun");
  66. var scrhvalue = ds_main_bbs_cond.getColumn(0,"scrhvalue");
  67. ds_send2.setColumn(0,"bbscls" , bbscls);
  68. ds_send2.setColumn(0,"fromdd" , fromdd);
  69. ds_send2.setColumn(0,"todd" , todd);
  70. ds_send2.setColumn(0,"scrhgubun", scrhgubun);
  71. ds_send2.setColumn(0,"scrhvalue", scrhvalue);
  72. ds_send2.setColumn(0,"gubn" , "A");
  73. ds_main_bbs_bbsinfo_bbslist.clearData();
  74. ds_main_bbs_iteminfo.clearData();
  75. ds_main_bbs_iteminfo.addRow();
  76. // 게시판 리스트를 조회
  77. var oParam = {};
  78. oParam.id = "TRMNP00501";
  79. oParam.service = "opanstapp.OpAnstRec";
  80. oParam.method = "reqGetOpNrBbsList";
  81. oParam.inds = "req=ds_send2";
  82. oParam.outds = "ds_main_bbs_bbsinfo_bbslist=bbslist";
  83. oParam.async = false;
  84. oParam.callback = "cf_TRMNP00501";
  85. tranf_submit(oParam);
  86. }
  87. function cf_TRMNP00501(sSvcId, nErrorCode, sErrorMsg) {
  88. if(nErrorCode < 0) return;
  89. dsf_setFixVal(ds_main_bbs_bbsinfo_bbslist, "chkyn:N");
  90. }
  91. /****************************************************************************************
  92. * Argument : N/A
  93. * Description : 게시판 상세조회 (조회모드)
  94. ****************************************************************************************/
  95. function fgetBbsDetail(row){
  96. // 행번호가 없다면 바로 리턴 (버튼클릭하여 공지차을 띄운경우)
  97. if (row < 0 || utlf_isNull(row) || row >= ds_main_bbs_bbsinfo_bbslist.rowcount) return;
  98. // 이미 신규작성되거나 수정된 게시판이 존재하면 메시지 창 띄우면서 리턴
  99. var status = ds_main_bbs_iteminfo.getColumn(0,"status");
  100. if (status == "i" || status == "u"){
  101. sysf_messageBox("작성한 글이 저장되지 않았습니다. 저장버튼이나 작성취소 버튼을 눌러주세요.", "I999");
  102. return;
  103. }
  104. // 해당 게시글을 뿌려줌
  105. ds_main_bbs_iteminfo.copyRow(0,ds_main_bbs_bbsinfo_bbslist,row);
  106. // 조회수 증가
  107. var bbscls = ds_main_bbs_iteminfo.getColumn(0,"bbscls");
  108. var bbsno = ds_main_bbs_iteminfo.getColumn(0,"bbsno");
  109. if (utlf_isNull(bbscls) || utlf_isNull(bbsno)){
  110. return;
  111. }
  112. ds_send2.setColumn(0,"bbscls", bbscls);
  113. ds_send2.setColumn(0,"bbsno" , bbsno);
  114. ds_send2.setColumn(0,"gubn" , "A");
  115. var oParam = {};
  116. oParam.id = "TXMNP00502";
  117. oParam.service = "opanstapp.OpAnstRec";
  118. oParam.method = "reqSetOpNrBbsHitCnt";
  119. oParam.inds = "req=ds_send2";
  120. oParam.outds = "ds_main_bbs_resinfo_reslist=reslist";
  121. oParam.async = false;
  122. //oParam.callback = "cf_TXMNP00502";
  123. tranf_submit(oParam);
  124. var oParam = {};
  125. oParam.id = "TRMNP00504";
  126. oParam.service = "opanstapp.OpAnstRec";
  127. oParam.method = "reqGetCnfmInfo";
  128. oParam.inds = "req=ds_send2";
  129. oParam.outds = "ds_main_bbs_cnfminfo_cnfmlist=cnfmlist";
  130. oParam.async = false;
  131. //oParam.callback = "cf_TRMNP00504";
  132. tranf_submit(oParam);
  133. ds_main_bbs_bbsinfo_bbslist.setColumn(row,"cnfmyn","Y");
  134. // 사용자정보를 가지고와서 글작성자가 아니면 수정/삭제할수 없도록 함
  135. var userid = sysf_getUserId();
  136. var writerid = ds_main_bbs_iteminfo.getColumn(0,"fstrgstrid");
  137. var authuser = this.getOwnerFrame().form.ds_codelist.lookupExpr("cdid == '" + userid + "'", "cdid");
  138. if (userid == writerid) {
  139. btn_mod.enable = true;
  140. btn_del.enable = true;
  141. ipt_content.readonly = false;
  142. }else{
  143. if(utlf_isNull(authuser)) {
  144. btn_mod.enable = false;
  145. btn_del.enable = false;
  146. ipt_content.readonly = false;
  147. } else {
  148. btn_mod.enable = true;
  149. btn_del.enable = true;
  150. ipt_content.readonly = false;
  151. }
  152. }
  153. // 각종 컨트롤 보여주기 설정
  154. ipt_title.enable = false;
  155. btn_fileadd.visible = false;
  156. btn_filedel.visible = false;
  157. btn_down.visible = true;
  158. if(fCheckFileExt()) btn_preview.visible = true;
  159. else btn_preview.visible = false;
  160. btn_addcomt.enable = true;
  161. btn_addcomtsave.enable = true;
  162. btn_addcomtdel.enable = true;
  163. }
  164. /****************************************************************************************
  165. * Argument : N/A
  166. * Description : 파일 다운로드 버튼 클릭시 이벤트
  167. ****************************************************************************************/
  168. function fFileDown() {
  169. //파일명를 받아옴
  170. var getfilenm = ds_main_bbs_iteminfo.getColumn(0,"attfilenm");
  171. if(!utlf_isNull(getfilenm)){
  172. //파일명이 있는 경우 다운로드
  173. //키값을 받아옴
  174. var bbscls = ds_main_bbs_iteminfo.getColumn(0,"bbscls");
  175. var bbsno = ds_main_bbs_iteminfo.getColumn(0,"bbsno");
  176. // var recflag = ds_main_bbs_iteminfo.getColumn(0,"recflag");
  177. dsf_createDsRow("ds_req", [
  178. {col:"bbscls", type:"STRING", size:256, val:bbscls}
  179. , {col:"bbsno", type:"STRING", size:256, val:bbsno}
  180. // , {col:"recflag", type:"STRING", size:256, val:recflag}
  181. ]);
  182. sysf_setErrorMsg(false); //자바단에서 에러발생시 1.0은 오류리턴을 안해서...
  183. var oParam = {};
  184. oParam.id = "TRMNP00502";
  185. oParam.service = "opanstapp.OpAnstRec";
  186. oParam.method = "reqExeFileDownLoad";
  187. oParam.inds = "req=ds_req";
  188. oParam.outds = "ds_hidden_filelist=filelist";
  189. oParam.async = false;
  190. //oParam.callback = "cf_TRMNP00502";
  191. tranf_submit(oParam);
  192. sysf_setErrorMsg(true);
  193. //파일명의 확장자만 받아옴
  194. var fileext = getfilenm.lastIndexOf(".");
  195. var ext = getfilenm.substring(fileext +1);
  196. //파일을 다운로드 하기 위해 저장할 창을 띄움
  197. // var filesave = window.fileDialog("save","|",false,getfilenm,ext,"All Files(*.*)|*.*");
  198. var fd = new FileDialog;
  199. var objVFile = fd.open("FileSave", FileDialog.SAVE, "%MYDOCUMENT%", getfilenm); // 단일 파일 선택
  200. if (objVFile != null)
  201. {
  202. var temp = dsf_readFileFromDs(objVFile.fullpath, ds_hidden_filelist, 0, "attfilecnts"); // 파일저장
  203. sleep(1000);
  204. if( !utlf_isNull(temp) )
  205. {
  206. var rtn = sysf_messageBox("파일을", "Q004");
  207. if( rtn == 6 )
  208. {
  209. var text = new String(objVFile.fullpath);
  210. var replaceText = text.replace(" ", "");
  211. if( text.length != replaceText.length )
  212. {
  213. sysf_messageBox("공백이 포함된 [파일명/폴더]는 자동열기가 실행되지 않습니다.", "E999", "");
  214. return;
  215. }
  216. else
  217. {
  218. system.execShell(objVFile.fullpath);
  219. }
  220. }
  221. }
  222. }
  223. }
  224. }
  225. /****************************************************************************************
  226. * Argument : N/A
  227. * Description : 파일 미리보기 버튼 클릭시 이벤트
  228. ****************************************************************************************/
  229. function fFilePreview() {
  230. //파일명를 받아옴
  231. var getfilenm = ds_main_bbs_iteminfo.getColumn(0,"attfilenm");
  232. if(!utlf_isNull(getfilenm)){
  233. //파일명이 있는 경우 다운로드
  234. //키값을 받아옴
  235. var bbscls = ds_main_bbs_iteminfo.getColumn(0,"bbscls");
  236. var bbsno = ds_main_bbs_iteminfo.getColumn(0,"bbsno");
  237. // var recflag = ds_main_bbs_iteminfo.getColumn(0,"recflag");
  238. dsf_createDsRow("ds_req", [
  239. {col:"bbscls", type:"STRING", size:256, val:bbscls}
  240. , {col:"bbsno", type:"STRING", size:256, val:bbsno}
  241. // , {col:"recflag", type:"STRING", size:256, val:recflag}
  242. ]);
  243. sysf_setErrorMsg(false); //자바단에서 에러발생시 1.0은 오류리턴을 안해서...
  244. var oParam = {};
  245. oParam.id = "TRMNP00502";
  246. oParam.service = "opanstapp.OpAnstRec";
  247. oParam.method = "reqExeFileDownLoad";
  248. oParam.inds = "req=ds_req";
  249. oParam.outds = "ds_hidden_filelist=filelist";
  250. oParam.async = false;
  251. //oParam.callback = "cf_TRMNP00502";
  252. tranf_submit(oParam);
  253. sysf_setErrorMsg(true);
  254. //파일명의 확장자만 받아옴
  255. var objVFile = new Object();
  256. objVFile.fullpath = "C:\\temp2\\"+getfilenm;
  257. var temp = dsf_readFileFromDs(objVFile.fullpath, ds_hidden_filelist, 0, "attfilecnts"); // 파일저장
  258. sleep(500);
  259. if( !utlf_isNull(temp) )
  260. {
  261. var oExtCmn = new ExtCommon;
  262. oExtCmn.executeProcess(objVFile.fullpath);
  263. }
  264. }
  265. }
  266. function ManipFiles()
  267. {
  268. var fso, f1, f2, s;
  269. fso = new ActiveXObject("Scripting.FileSystemObject");
  270. f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  271. Response.Write("파일 쓰는 중 <br>");
  272. // 줄을 씁니다.
  273. f1.Write("텍스트입니다.");
  274. // 파일을 닫습니다.
  275. f1.Close();
  276. Response.Write("파일을 c:\\tmp로 이동하는 중 <br>");
  277. // C:\ 루트에 있는 파일에 대한 핸들을 가져옵니다.
  278. f2 = fso.GetFile("c:\\testfile.txt");
  279. // 파일을 \tmp 디렉터리로 옮깁니다.
  280. f2.Move ("c:\\tmp\\testfile.txt");
  281. Response.Write("파일을 c:\\temp로 복사하는 중 <br>");
  282. // 파일을 \temp로 복사합니다.
  283. f2.Copy ("c:\\temp\\testfile.txt");
  284. Response.Write("파일 삭제 중 <br>");
  285. // 파일의 현재 위치에 대한 핸들을 가져옵니다.
  286. f2 = fso.GetFile("c:\\tmp\\testfile.txt");
  287. f3 = fso.GetFile("c:\\temp\\testfile.txt");
  288. // 파일을 삭제합니다.
  289. f2.Delete();
  290. f3.Delete();
  291. Response.Write("완료되었습니다!");
  292. }
  293. // /**
  294. // * @desc : 파일첨부버튼 클릭시 이벤트
  295. // * @
  296. // * @param :
  297. // * @return :
  298. // * @author :
  299. // * @---------------------------------------------------
  300. // */
  301. // function fFileAdd() {
  302. // //******파일을 첨부하기 위해 파일열기가 open 되게 한다.
  303. // //파일의 크기를 측정한다.
  304. // var maxsize = upload1.attribute("filesize");
  305. //
  306. // var name = model.getValue("/root/main_bbs/iteminfo/attfilenm");
  307. //
  308. // if(name != '' || name == '-'){
  309. // var fileupdata = messageBox(name + " 파일 수정을" , "S001");
  310. // if(fileupdata == '6'){
  311. // //파일 삭제
  312. // //input박스에 나타난 명을 제거
  313. // ipt_attfilenm.value = "";
  314. //
  315. // //파일 저장
  316. // //파일을 받아오기 위해 파일열기 팝업창을 띄운다.
  317. // var fileopen = window.fileDialog("open","|","false");
  318. // //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  319. // model.makeValue("/root/main_bbs/iteminfo/attfilenm", fileopen);
  320. // var name = model.getValue("/root/main_bbs/iteminfo/attfilenm");
  321. // //lastIndexOf함수는 \\이것을 뒤어세 검색하여 나오면 앞에 것은 지운다.
  322. // var filename = name.lastIndexOf("\\");
  323. // //open 파일명를 input박스에 넣는다.
  324. // ipt_attfilenm.value = fileopen.substring(filename + 1);
  325. //
  326. // //선택한 파일이 저장버튼을 눌렀을때 저장이 되게 하기 위해 파일 저장 인스턴스에 파일주소를 저장해 둔다.
  327. // model.makeValue("/root/send2/file/filename", name);
  328. // model.refresh();
  329. //
  330. // //파일 크기가 너무 큰경우 메세지를 띄운다.
  331. // if (!checkFileSize(upload1)){
  332. // ipt_attfilenm.value = "";
  333. // messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  334. // model.resetInstanceNode("/root/send2/file");
  335. // }
  336. //
  337. // model.makeValue("/root/main_bbs/iteminfo/fileyn", 'Y');
  338. // }else if(fileupdata == '7'){
  339. // messageBox(name + " 파일 수정을 하지", "E007");
  340. // model.makeValue("/root/main_bbs/iteminfo/fileyn", 'N');
  341. // }else{
  342. // }
  343. // }else{
  344. // //파일을 받아오기 위해 파일열기 팝업창을 띄운다.
  345. // var fileopen = window.fileDialog("open","|","false");
  346. // //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  347. // model.makeValue("/root/main_bbs/iteminfo/attfilenm", fileopen);
  348. // var name = model.getValue("/root/main_bbs/iteminfo/attfilenm");
  349. // //lastIndexOf함수는 \\이것을 뒤어세 검색하여 나오면 앞에 것은 지운다.
  350. // var filename = name.lastIndexOf("\\");
  351. // //open 파일명를 input박스에 넣는다.
  352. // ipt_attfilenm.value = fileopen.substring(filename + 1);
  353. //
  354. // //선택한 파일이 저장버튼을 눌렀을때 저장이 되게 하기 위해 파일 저장 인스턴스에 파일주소를 저장해 둔다.
  355. // model.makeValue("/root/send2/file/filename", name);
  356. // model.refresh();
  357. //
  358. // //파일 크기가 너무 큰경우 메세지를 띄운다.
  359. // if (!checkFileSize(upload1)){
  360. // ipt_attfilenm.value = "";
  361. // messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  362. // model.resetInstanceNode("/root/send2/file");
  363. // }
  364. // model.makeValue("/root/main_bbs/iteminfo/fileyn", 'Y');
  365. // }
  366. // }
  367. /****************************************************************************************
  368. * Argument : N/A
  369. * Description : 파일첨부버튼 클릭시 이벤트
  370. ****************************************************************************************/
  371. function fFileAdd() {
  372. // 파일다이얼로그를 띄워 사용자에게 파일경로를 입력받는다.
  373. var fd = new FileDialog;
  374. var objVFile = fd.open("FileOpen", FileDialog.SINGLELOAD); // 단일 파일 선택
  375. if(!utlf_isNull(objVFile)) {
  376. var nRow = ds_send2_filename.addRow();
  377. // 해당 파일을 데이터 셋에 저장한다.
  378. lf_saveFile(objVFile, nRow);
  379. }
  380. }
  381. function lf_saveFile(objVFile, nRow)
  382. {
  383. // 그 파일의 데이터를 데이터셋의 특정 컬럼에 BLOB 형식으로 write 한다.
  384. var file = dsf_writeFileToDs(objVFile, ds_send2_filename, nRow, "data");
  385. if(file.filesize > 10485760) {
  386. ds_send2_filename.deleteRow(nRow);
  387. sysf_messageBox("파일 크기가 최대치(10485760Byte)를", "E003");
  388. return;
  389. }
  390. var filename = file.filename;
  391. var filesize = file.filesize;
  392. var idx = filename.indexOf(".");
  393. // ds_send_attach.setColumn(nRow, "file" , filename);
  394. ds_send2_filename.setColumn(nRow, "name", file.filename);
  395. ds_send2_filename.setColumn(nRow, "size", file.filesize);
  396. ds_send2_filename.setColumn(nRow, "type", file.filetype);
  397. // ds_send2_filename.setColumn(nRow, "fullpath", objVFile.fullpath);
  398. ds_main_bbs_iteminfo.setColumn(0,"attfilenm",file.filename);
  399. ds_main_bbs_iteminfo.setColumn(0,"attfilepath",objVFile.fullpath);
  400. }
  401. /****************************************************************************************
  402. * Argument : N/A
  403. * Description : 파일첨부 삭제
  404. ****************************************************************************************/
  405. function fFileDel() {
  406. var name = ds_main_bbs_iteminfo.getColumn(0,"attfilenm");
  407. if(!utlf_isNull(name)) {
  408. var fileupdata = sysf_messageBox(name + " 파일 삭제를" , "S001");
  409. if(fileupdata == "6"){
  410. //파일 삭제
  411. ds_main_bbs_iteminfo.setColumn(0,"attfilenm" ,"");
  412. ds_main_bbs_iteminfo.setColumn(0,"attfilepath","");
  413. ds_send2_filename.clearData();
  414. }
  415. }
  416. }
  417. /****************************************************************************************
  418. * Argument : N/A
  419. * Description : 게시판 내용 삭제
  420. ****************************************************************************************/
  421. function fNoticeDel() {
  422. var bbscls = ds_main_bbs_iteminfo.getColumn(0,"bbscls");
  423. var bbsno = ds_main_bbs_iteminfo.getColumn(0,"bbsno");
  424. if (utlf_isNull(bbscls) || utlf_isNull(bbsno)) {
  425. return;
  426. }
  427. // 사용자정보를 가지고와서 글작성자가 아니면 삭제할 수 없도록 함
  428. var userid = sysf_getUserId();
  429. var writerid = ds_main_bbs_iteminfo.getColumn(0,"fstrgstrid");
  430. var authuser = this.getOwnerFrame().form.ds_codelist.lookupExpr("cdid == '" + userid + "'", "cdid");
  431. if(utlf_isNull(authuser)) {
  432. btn_mod.enable = false;
  433. btn_del.enable = false;
  434. ipt_content.readonly = true;
  435. } else {
  436. btn_mod.enable = true;
  437. btn_del.enable = true;
  438. ipt_content.readonly = false;
  439. }
  440. if (userid == writerid) {
  441. dsf_makeValue(ds_main_bbs_iteminfo,"status","string","d"); // 삭제표시
  442. fExeSave(); // 저장
  443. } else {
  444. if(utlf_isNull(authuser)) {
  445. sysf_messageBox("작성자만 삭제 ","I006");
  446. } else {
  447. dsf_makeValue(ds_main_bbs_iteminfo,"status","string","d"); // 삭제표시
  448. fExeSave(); // 저장
  449. }
  450. }
  451. }
  452. /****************************************************************************************
  453. * Argument : N/A
  454. * Description : 게시판 신규 /수정 후 저장
  455. ****************************************************************************************/
  456. function fExeSave() {
  457. var status = ds_main_bbs_iteminfo.getColumn(0,"status");
  458. // 게시판 마스터
  459. // var nodes_iteminfo = instance1.selectNodes("/root/main_bbs/iteminfo");
  460. // var getData_iteminfo = getNodeListCSV(nodes_iteminfo);
  461. var getData_iteminfo = dsf_getDsCSV(ds_main_bbs_iteminfo);
  462. dsf_setCSVToDs("ds_send2_savedata",getData_iteminfo);
  463. // 서브밋한다.
  464. dsf_createDsRow("ds_file", [
  465. {col:"filenm", type:"STRING", val:ds_send2_filename.getColumn(0,"name")}
  466. , {col:"filedata", type:"BLOB", val:ds_send2_filename.getColumn(0,"data")}
  467. , {col:"filesize", type:"INT", val:ds_send2_filename.getColumn(0,"size")}
  468. , {col:"filetype", type:"STRING", val:ds_send2_filename.getColumn(0,"type")}
  469. ]);
  470. var oParam = {};
  471. oParam.id = "TXMNP00501";
  472. oParam.service = "opanstapp.OpAnstRec";
  473. oParam.method = "reqExeSaveOpNrBbs";
  474. oParam.inds = "req=ds_send2_savedata file=ds_file";
  475. oParam.outds = "";
  476. oParam.async = false;
  477. oParam.callback = "cf_TXMNP00501";
  478. tranf_submit(oParam);
  479. // 저장시 에러난 경우 목록을 재로딩함
  480. if(arErrorCode.pop("TXMNP00501") < 0)
  481. {
  482. if (status == "i"){
  483. sysf_messageBox("새 게시글 작성에", "E009");
  484. }else if (status == "u"){
  485. sysf_messageBox("새 게시글 수정에", "E009");
  486. }else{
  487. sysf_messageBox("새 게시글 삭제에", "E009");
  488. }
  489. }else{
  490. if (status == "i"){
  491. sysf_messageBox("새 게시글이 작성이", "I001");
  492. }else if (status == "u"){
  493. sysf_messageBox("게시글이 수정이", "I001");
  494. }else{
  495. sysf_messageBox("게시글이 삭제", "I001");
  496. }
  497. fgetBbsList(); // 재조회
  498. }
  499. }
  500. function cf_TXMNP00501(sSvcId, nErrorCode, sErrorMsg) {
  501. arErrorCode.push(sSvcId, nErrorCode);
  502. }
  503. /****************************************************************************************
  504. * Argument : N/A
  505. * Description :
  506. ****************************************************************************************/
  507. function fCheckFileExt() {
  508. var retvalue = false;
  509. var filename = ds_main_bbs_iteminfo.getColumn(0,"attfilenm");
  510. var IMG_FORMAT = "\\.(bmp|gif|jpg|jpeg|png|doc|xls|cvs|txt|ppt|hwp|pptx)$";
  511. if( (new RegExp(IMG_FORMAT, "i")).test(filename)){
  512. retvalue = true;
  513. }else{
  514. retvalue = false;
  515. }
  516. return retvalue;
  517. }
  518. /****************************************************************************************
  519. * Argument : N/A
  520. * Description : 첨부파일 초기화
  521. ****************************************************************************************/
  522. function fNewBbs() {
  523. //제목, 첨부, 내용에 data 제거
  524. ipt_title.value = "";
  525. ipt_content.value = "";
  526. ipt_attfilenm.value = "";
  527. var bbscls = ds_main_bbs_cond.getColumn(0,"bbscls");
  528. // var recflag = ds_main_bbs_cond.getColumn(0,"recflag");
  529. ds_main_bbs_iteminfo.setColumn(0,"bbscls" , bbscls);
  530. ds_main_bbs_iteminfo.setColumn(0,"gubn" , "A");
  531. // ds_main_bbs_iteminfo.setColumn(0,"recflag" , recflag);
  532. // 첨부파일 초기화
  533. // model.resetInstanceNode("/root/send2/file");
  534. ds_send2_filename.clearData();
  535. }
  536. /****************************************************************************************
  537. * Argument : N/A
  538. * Description : 게시판 화면 초기화
  539. ****************************************************************************************/
  540. function fPrtBbs() {
  541. dsf_createDs("ds_temp_bbsinfo_bbslist");
  542. ds_main_bbs_bbsinfo_bbslist.filter("chkyn == 'Y'");
  543. ds_temp_bbsinfo_bbslist.copyData(ds_main_bbs_bbsinfo_bbslist,true);
  544. ds_main_bbs_bbsinfo_bbslist.filter("");
  545. var objDOM = rptf_createDOM(); // DOM 객체 설정
  546. rptf_setNodeListToDOM(objDOM, "/root/temp/bbsinfo/bbslist" , ds_temp_bbsinfo_bbslist); // 데이터셋 1
  547. rptf_setNodeListToDOM(objDOM, "/root/main/cond" , ds_main_bbs_cond); // 데이터셋 1
  548. var objParam = new Object();
  549. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  550. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  551. rptf_exeReportPreview30(["RPMNP00500"],[objParam], option);
  552. }]]></Script>