SMMNP00500.xjs 21 KB

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