insubase.xjs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/****************************************************************************************
  3. * Description :원본 데이타셋의 rowtype 을 읽어서 추가/수정/삭제 에 해당되면 저장용 데이타셋의 status 컬럼에 세팅
  4. ****************************************************************************************/
  5. function lf_save_grd_ds(objDs, objCondDs)
  6. {
  7. objCondDs.clearData();
  8. for (var i=0; i<objDs.rowcount; i++) {
  9. // 저장용 데이타셋 생성
  10. if ( objDs.getRowType(i) > 1 ) {
  11. var aRow = objCondDs.addRow();
  12. objCondDs.copyRow(aRow, objDs, i);
  13. var status = objCondDs.getColumnInfo("status");
  14. if (utlf_isNull(status)) {
  15. objCondDs.addColumn("status", "string"); // status 컬럼이 없으면 생성(오류방지)
  16. }
  17. if ( objDs.getRowType(i) == 2) {
  18. objCondDs.setColumn(aRow, "status", "i");
  19. } else if ( objDs.getRowType(i) == 4) {
  20. objCondDs.setColumn(aRow, "status", "u");
  21. } else if ( objDs.getRowType(i) == 8) {
  22. objCondDs.setColumn(aRow, "status", "d");
  23. }
  24. }
  25. }
  26. }
  27. /**
  28. * @desc : 그리드 여러줄 행삭제 기능
  29. * <pre>
  30. * 그리드에서 여러줄을 클릭하고 행삭제를 눌렀을때
  31. * 데이터그리드의 선택된 줄의 rowstatus 를 D로 만들어 놓고
  32. * 데이타 그리드의 내용중에서 D인것만 submit으로 보내 데이타베이스에서 삭제하고
  33. * 그리드에서 선택한 내용을 삭제한다
  34. * </pre>
  35. * @param : objDS-삭제할원본DS, objCondDs-삭제데이터DS, sid-서브밋ID, sservice-서비스, smethod-메소트, sinds-보낼DS, status-상태값(대소문자)
  36. * @return :
  37. * @---------------------------------------------------
  38. */
  39. function lf_DelGrdRows(objDS, objCondDs, sid, sservice, smethod, sinds, status)
  40. {
  41. if ( objDS.rowposition == -1 ) {
  42. sysf_messageBox("삭제할 행을","C002");
  43. return;
  44. }
  45. var del = sysf_messageBox("해당 데이터를 ", "Q001"); // 데이터 삭제 확인시(위의 메세지 박스에서 예를 누르면 6 반환)
  46. if ( del == 6 ) {
  47. objCondDs.clearData();
  48. for (var i=0; i<objDS.rowcount; i++) {
  49. if ( objDS.getSelect(i) == true ) {
  50. if ( objDS.getRowType(i) != 2 ) { // insert row 가 아니면 삭제용 ds에 추가
  51. var aRow = objCondDs.addRow();
  52. objCondDs.copyRow(aRow, objDS, i);
  53. objCondDs.addColumn("status", "string");
  54. objCondDs.setColumn(aRow, "status", status);
  55. objCondDs.setRowType(aRow, "D");
  56. }
  57. objDS.setRowType(i, "D");
  58. }
  59. }
  60. // trace(objCondDs.saveXML());
  61. tranf_submit({
  62. id: sid
  63. , service: sservice
  64. , method: smethod
  65. , inds : sinds
  66. , async: false
  67. });
  68. //그리드의 선택한 로우를 삭제한다
  69. for (var i=0; i<objDS.rowcount; i++) {
  70. if ( objDS.getSelect(i) == true ) {
  71. if ( objDS.getRowType(i) == 8 ) {
  72. objDS.deleteRow(i);
  73. }
  74. }
  75. }
  76. sysf_messageBox("선택하신 데이터들이 삭제","I001");
  77. }
  78. }
  79. /****************************************************************************************
  80. * Description : 그리드의 다중선택된 row 의 체크값을 변경해주는 함수
  81. * objDS :데이타셋
  82. * objCol :컬럼명
  83. * cFlag :변경값YN
  84. * ex) fCheckYNSelectedRows(ds_grid_grd_ordlist, "chkflag", "Y");
  85. ****************************************************************************************/
  86. // 그리드의 선택된 row 의 체크값을 변경해주는 함수
  87. // objDS:데이타셋 , objCol:컬럼명 , cFlag:변경값YN
  88. function fCheckYNSelectedRows(objDS, objCol, cFlag)
  89. {
  90. objDS.enableevent = false;
  91. for (var i=0; i<objDS.rowcount; i++) {
  92. if ( objDS.getSelect(i) == true ) {
  93. objDS.setColumn(i, objCol, cFlag);
  94. }
  95. }
  96. objDS.enableevent = true;
  97. }
  98. /****************************************************************************************
  99. * Description : 수가조회 함수
  100. *
  101. * calcscorcd : 수가코드
  102. * openflag : 조회 구분
  103. * dd : 날짜
  104. * insu : 인수
  105. * parentname : 부모창 화면 ID
  106. *
  107. * ex) var rtn = lf_SMPIC00200(con1_dd, con2_gsflag, con3_search1, con4_search2, con5_insu, openflag, parentname)
  108. // 조회된 값이 있다면
  109. if (!utlf_isNull(rtn)) {
  110. var hngnm = ds_rslt_calcscorcd.getColumn(0, "hngnm");
  111. // 팝업에서 가져온 경우
  112. if ( utlf_isNull(hngnm) ) {
  113. ds_send_itemchk.setColumn(0, "calcscorcd", ds_temp_picmmech.getColumn(0, "picmmech_calcscorcd"));
  114. ds_send_itemchk.setColumn(0, "ordnm", ds_temp_picmmech.getColumn(0, "picmmech_hngnm"));
  115. // 수가조회 쿼리에서 바로 수가코드명을 가져온 경우
  116. } else {
  117. ds_send_itemchk.setColumn(0, "ordnm", hngnm);
  118. }
  119. // 값 없을시 초기화
  120. } else {
  121. ds_send_itemchk.setColumn(0, "calcscorcd", "");
  122. ds_send_itemchk.setColumn(0, "ordnm", "");
  123. }
  124. ****************************************************************************************/
  125. // 유의점 : 그리드의 text에선 grid.updateToDataset() / 일반 edit 컴포넌트에선 ipt_diagcd.updateToDataset() 를 먼저 해줘야 bind 시키는 dataset 에 반영된값으로 조회됨
  126. function lf_SMPIC00200(con1_dd, con2_gsflag, con3_search1, con4_search2, con5_insu, openflag, parentname)
  127. {
  128. // 수가 조회용
  129. dsf_createDsRow("ds_cond_calcscorcd", [{col:"con1_dd", type:"string", size:256, val:con1_dd},
  130. {col:"con2_gsflag", type:"string", size:256, val:con2_gsflag},
  131. {col:"con3_search1", type:"string", size:256, val:con3_search1},
  132. {col:"con4_search2", type:"string", size:256, val:con4_search2},
  133. {col:"srchdrugcd", type:"string", size:256, val:con4_search2},
  134. {col:"con5_insu", type:"string", size:256, val:con5_insu}]);
  135. // 수가 조회 결과용
  136. dsf_createDs("ds_rslt_calcscorcd", [{col:"calcscorcd"}, {col:"hngnm"}, {col:"prcpcd"}, {col:"prcpnm"}, {col:"fromdd"}, {col:"todd"}]);
  137. ds_rslt_calcscorcd.clearData();
  138. var rtn = "";
  139. var objArg = new Object();
  140. // 조회된 값이 없다면 수가조회 팝업을 띄움
  141. if ( utlf_isNull(ds_rslt_calcscorcd.getColumn(0, "hngnm")) ) {
  142. frmf_setParameter("openflag", openflag);
  143. frmf_setParameter("iParam_mother_view", parentname);
  144. frmf_setParameter("iParam_picmmech_temp_grupsnglflag", con2_gsflag);
  145. objArg.ds_arg_temp = ds_cond_calcscorcd;
  146. rtn = frmf_modal("SMPIC00200", "SMPIC00200", objArg, null, 1, 100, 200, null, null, null, null, null, "M");
  147. if ( utlf_isNull(rtn) ) {
  148. sysf_messageBox("수가조회 화면에서 선택한 결과가", "I004") ; // 없습니다.
  149. }
  150. } else {
  151. if ( parentname == "SMPIB00800_자동메모생성관리" ) {
  152. objArg.picmmech_hngnm = ds_rslt_calcscorcd.getColumn(0, "hngnm");
  153. rtn = objArg;
  154. } else {
  155. rtn = ds_rslt_calcscorcd.getColumn(0, "hngnm");
  156. }
  157. }
  158. return rtn;
  159. }
  160. /****************************************************************************************
  161. * Description : 상병조회 함수
  162. *
  163. * diagcd : 상병코드
  164. * diagnm : 상병코드명
  165. * basedd : 날짜
  166. * singleflag : S-싱글 M-멀티
  167. * selectrdo : 유형 (1-ICD10, 2-확장)
  168. *
  169. * ex) var rtn = lf_SPPIZ00400( ds_send_itemchk.getColumn(0, "diagcd")
  170. , ""
  171. , utlf_getCurrentDate()
  172. , "S"
  173. , "1"
  174. );
  175. // 조회된 값이 있다면
  176. if (!utlf_isNull(rtn)) {
  177. var diagcd = rtn.sDiagcd;
  178. var diagnm = rtn.sDiagnm;
  179. // 팝업에서 가져온 경우
  180. if ( !utlf_isNull(diagcd) ) {
  181. ds_send_itemchk.setColumn(0, "diagcd", diagcd);
  182. ds_send_itemchk.setColumn(0, "diagnm", diagnm);
  183. // 상병조회 쿼리에서 바로 상병명을 가져온 경우
  184. } else {
  185. ds_send_itemchk.setColumn(0, "diagnm", diagnm);
  186. }
  187. // 값 없을시 초기화
  188. } else {
  189. ds_send_itemchk.setColumn(0, "diagcd", "");
  190. ds_send_itemchk.setColumn(0, "diagnm", "");
  191. }
  192. ****************************************************************************************/
  193. // 유의점 : 그리드의 text에선 grid.updateToDataset() / 일반 edit 컴포넌트에선 ipt_diagcd.updateToDataset() 를 먼저 해줘야 bind 시키는 dataset 에 반영된값으로 조회됨
  194. function lf_SPPIZ00400(diagcd, diagnm, basedd, singleflag, selectrdo)
  195. {
  196. // 상병 조회용
  197. dsf_createDsRow("ds_cond_diagcd", [{col:"diagcdfrom", type:"string", size:256, val:diagcd}, {col:"diagkind", type:"string", size:256, val:selectrdo}]);
  198. // 상병 조회 결과용
  199. dsf_createDsRow("ds_rslt_diagcd", [{col:"hngnm", type:"string", size:256, val:""}, {col:"hngcnt", type:"string", size:256, val:""}]);
  200. ds_rslt_diagcd.clearData();
  201. tranf_submit({
  202. id : "TRPIB00803"
  203. , service : "insubasecdmngtapp.AutMemoCret"
  204. , method : "reqGetAutMemoCretDiagnmfrom"
  205. , inds : "req=ds_cond_diagcd"
  206. , outds : "ds_rslt_diagcd=rsltnm"
  207. , async : false
  208. });
  209. var rtn = "";
  210. var objArg = new Object();
  211. // 조회된 값이 없다면 상병조회 팝업을 띄움
  212. if ( utlf_isNull(ds_rslt_diagcd.getColumn(0, "hngnm")) ) {
  213. objArg.sDiagcd = diagcd;
  214. objArg.sDiagnm = diagnm;
  215. objArg.sBasedd = basedd;
  216. objArg.sSingleFlag = singleflag;
  217. objArg.sSelectedrdodiagkind = selectrdo;
  218. rtn = frmf_modal("SPPIZ00400", "SPPIZ00400", objArg);
  219. if ( utlf_isNull(rtn) ) {
  220. sysf_messageBox("상병조회 화면에서 선택한 결과가", "I004") ; // 없습니다.
  221. }
  222. } else {
  223. objArg.sDiagcd = "";
  224. objArg.sDiagnm = ds_rslt_diagcd.getColumn(0, "hngnm");
  225. objArg.sBasedd = "";
  226. objArg.sSingleFlag = "";
  227. objArg.sSelectedrdodiagkind = "";
  228. rtn = objArg;
  229. }
  230. return rtn;
  231. }]]></Script>