SPMMO03700.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진단즐겨찾기 ( SPMMO03700_진단즐겨찾기.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sPRMSPRCPSETLIST = "/root/main/prmsprcpsetinfo/prmsprcpsetlist";
  7. var prevmouserow = 0;
  8. /**
  9. * @desc : 화면 초기화
  10. * @
  11. * @param :
  12. * @return :
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize_SPMMO03700(){
  16. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  17. fReqSetTreeView("P", "D", "D"); //진단SET트리 조회, 화면에 보여주지 않는다. 즐겨찾기 폴더의 setno 구하기 위해 조회한다.
  18. fReqDiagEnjoySet();
  19. }
  20. /**
  21. * @desc : 진단취소
  22. * @
  23. * @param :
  24. * @return :
  25. * @---------------------------------------------------
  26. */
  27. function fCnclDiag(){
  28. opener.javascript.setParameter("SPMMO03700_rtn", "");
  29. opener.javascript.setParameter("SPMMO03700_rtn_useyn", "N");
  30. window.close();
  31. }
  32. /**
  33. * @desc : 진단선택
  34. * @
  35. * @param :
  36. * @return :
  37. * @---------------------------------------------------
  38. */
  39. function fSelectDiag(){
  40. var rtn1 = getDiagNodeListCSV(model.instance1.selectNodes("/root/main/diaginfo/diagcdlist"));
  41. if(rtn1 =="N") {
  42. messageBox("선택된 진단이 ", "I004");
  43. return;
  44. }else{
  45. opener.javascript.setParameter("SPMMO03700_rtn", rtn1);
  46. opener.javascript.setParameter("SPMMO03700_rtn_useyn", "Y");
  47. window.close();
  48. }
  49. }
  50. /**
  51. * @desc : 그리드 더블클릭
  52. * @
  53. * @param :
  54. * @return :
  55. * @---------------------------------------------------
  56. */
  57. function fDbclkDiagGrid(){
  58. var srchflag = model.getValue("/root/main/cond/srchflag");
  59. if (srchflag == "P") {
  60. var iRow = grd_diagcdlist.row;
  61. if(iRow > 0){
  62. model.setValue("/root/main/diaginfo/diagcdlist[" + iRow + "]/status", "I");
  63. model.refresh();
  64. fSelectDiag();
  65. }
  66. } else {
  67. var iRow = grd_diaglist2.row;
  68. if(iRow > 0){
  69. model.setValue("/root/main/diaginfo/diagcdlist[" + iRow + "]/status", "I");
  70. model.refresh();
  71. fSelectDiag();
  72. }
  73. }
  74. }
  75. /**
  76. * @desc : 진단 노드리스트를 CSV형태의 String으로 변환한다.
  77. * @
  78. * @param : nodeList 노드리스트
  79. * @return :
  80. * @---------------------------------------------------
  81. */
  82. function getDiagNodeListCSV(nodeList) {
  83. if(nodeList.length == 0)
  84. return;
  85. var sColSep = "▦";
  86. var sRowSep = "▩";
  87. var rCSV = "";
  88. var childNodeList = nodeList.item(0).childNodes;
  89. var childNodeCnt = childNodeList.length;
  90. if(childNodeCnt == 0)
  91. return;
  92. var i, j;
  93. for(i = 0; i < childNodeCnt - 1; i++) {
  94. rCSV += childNodeList.item(i).nodeName + sColSep;
  95. }
  96. rCSV += childNodeList.item(i).nodeName + sRowSep;
  97. var node;
  98. var cnt = 1;
  99. var selCnt = 0;
  100. while(node = nodeList.nextNode()) {
  101. if(model.getValue ("/root/main/diaginfo/diagcdlist[" + cnt++ + "]/status") == "I") {
  102. childNodeList = node.childNodes;
  103. for( i = 0; i < childNodeCnt - 1; i++) {
  104. rCSV += childNodeList.item(i).text + sColSep;
  105. }
  106. rCSV += childNodeList.item(i).text + sRowSep;
  107. selCnt++;
  108. }
  109. }
  110. if ( selCnt == 0 ) {
  111. return "N"
  112. } else {
  113. return rCSV;
  114. }
  115. }
  116. /**
  117. * @desc : 즐겨찾기SET조회
  118. * @
  119. * @param :
  120. * @return :
  121. * @authur : 오지훈 2007. 6. 27
  122. * @---------------------------------------------------
  123. */
  124. function fReqDiagEnjoySet(){
  125. //즐겨찾기 SET은 항상 조회 최상단에 위치한다.
  126. var setno = model.getValue(sPRMSPRCPSETLIST + "[1]/setno");
  127. var settypecd = model.getValue(sPRMSPRCPSETLIST + "[1]/settypecd");
  128. model.removeNodeset("/root/send/reqdata");
  129. model.makeValue("/root/send/reqdata/setno" , setno);
  130. model.makeValue("/root/send/reqdata/settypecd", settypecd);
  131. submit("TRMMO03701");
  132. }
  133. /**
  134. * @desc : 약속SET 처방/진단/수술/프로토콜 조회
  135. * @
  136. * @param : setkindcd - SET종류코드(개인P/부서D)
  137. * : setclscd - SET분류코드(의사D)
  138. * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
  139. * : procflag - 처리구분(부서SET:D)
  140. * : deptcd - 부서코드
  141. * : deptnm - 부서명
  142. * @return :
  143. * @authur : 오지훈 2007. 6. 27
  144. * @---------------------------------------------------
  145. */
  146. function fReqSetTreeView(setkindcd, setclscd, settypecd, procflag, deptcd, deptnm){
  147. model.removeNodeset("/root/send/reqdata");
  148. model.makeValue("/root/send/reqdata/setkindcd", setkindcd); //개인, 부서
  149. model.makeValue("/root/send/reqdata/setclscd" , setclscd); //의사
  150. model.makeValue("/root/send/reqdata/settypecd", settypecd); //처방, 진단, 수술, 프로토콜
  151. model.makeValue("/root/send/reqdata/procflag" , procflag); //처리구분(부서SET 조회시 설정)
  152. model.makeValue("/root/send/reqdata/deptcd" , deptcd); //부서코드(부서SET 조회시 설정)
  153. model.makeValue("/root/send/reqdata/deptnm" , deptnm); //부서명 (부서SET 조회시 설정)
  154. submit("TRMMB00601");
  155. }
  156. /**
  157. * @desc : 개인, 과진단 Radio버튼 변경시, 약속진단SET, 즐겨찾기 진단 다시 조회
  158. * @
  159. * @param :
  160. * @return :
  161. * @authur : 오지훈 2007. 6. 27
  162. * @---------------------------------------------------
  163. */
  164. function fChngRadioBtn(){
  165. var srchflag = model.getValue("/root/main/cond/srchflag");
  166. if(srchflag == "P"){
  167. btn_del.attribute("visibility") = "visible";
  168. btn_up.attribute("visibility") = "visible";
  169. btn_save.attribute("visibility") = "visible";
  170. btn_down.attribute("visibility") = "visible";
  171. btn_excel.attribute("visibility") = "visible";
  172. model.toggle("enjoy");
  173. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  174. fReqSetTreeView(srchflag, "D", "D");
  175. fReqDiagEnjoySet();
  176. }else if(srchflag == "D"){
  177. btn_del.attribute("visibility") = "hidden";
  178. btn_up.attribute("visibility") = "hidden";
  179. btn_save.attribute("visibility") = "hidden";
  180. btn_down.attribute("visibility") = "hidden";
  181. btn_excel.attribute("visibility") = "hidden";
  182. model.toggle("deptindx");
  183. model.removeNodeset("/root/send/reqdata");
  184. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  185. model.makeValue("/root/send/reqdata/deptindxflag", "0");
  186. submit("TRMMO03111"); //과색인조회
  187. }
  188. }
  189. /**
  190. * @desc : 과색인 조회
  191. * @
  192. * @param :
  193. * @return :
  194. * @author : 오지훈
  195. * @---------------------------------------------------
  196. */
  197. function fSelectDeptIndx(trvobj){
  198. var item = trvobj.item(trvobj.selectedIndex);
  199. if(item.depth == 0){ //상위index만을 클릭한 경우 return한다.
  200. return;
  201. }
  202. var irow = item.index + 1;
  203. var deptindxcd = model.getValue("/root/main/deptindxcdlist/deptindxcdlist[" + irow + "]/deptindxcd");
  204. model.removeNodeset("/root/send/reqdata");
  205. model.makeValue("/root/send/reqdata/deptindxflag", "0");
  206. model.makeValue("/root/send/reqdata/deptindxcd" , deptindxcd);
  207. model.makeValue("/root/send/reqdata/deptcd" , getUserInfo("dutplcecd"));
  208. submit("TRMMO03112");
  209. }
  210. /**
  211. * @desc : 즐겨찾기 진단삭제
  212. * @
  213. * @param :
  214. * @return :
  215. * @author : 오지훈
  216. * @---------------------------------------------------
  217. */
  218. function fDelEnjoyDiag(){
  219. rtnval = messageBox("선택된 진단을", "Q001");
  220. if(rtnval == 6){
  221. var saveheader = "orgdiagcd▦settrgtcd▩";
  222. for(var i = 1 ; i < grd_diagcdlist.rows; i++){
  223. var status = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/status");
  224. if(status == "I"){
  225. var orgdiagcd = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/orgdiagcd");
  226. var userid = getUserInfo("userid");
  227. saveheader += orgdiagcd + "▦" + userid + "▩";
  228. }
  229. }
  230. model.setValue("/root/send/savedata", saveheader);
  231. if(submit("TXMMO03701")){
  232. fReqDiagEnjoySet();
  233. }
  234. }else{
  235. return;
  236. }
  237. }
  238. /**
  239. * @desc : 즐겨찾기 저장
  240. * @
  241. * @param :
  242. * @return :
  243. * @author : 김영학 2008.06.06
  244. * @---------------------------------------------------
  245. */
  246. function fSetEnjoyDiag(){
  247. var chngseqflag = model.getValue("/root/main/cond/chngseqflag");
  248. if (chngseqflag == "Y") {
  249. for (i=1 ; i < grd_diagcdlist.rows ; i++) {
  250. model.setValue("/root/main/diaginfo/diagcdlist[" + i + "]/refseq", i);
  251. }
  252. for (i = 1 ; i < grd_diagcdlist.rows ; i++) {
  253. grd_diagcdlist.addStatus(i, "update")
  254. }
  255. model.removeNodeset("/root/send/reqdata");
  256. model.makeValue("/root/send/reqdata/refseq" , grd_diagcdlist.getUpdateData());
  257. model.makeValue("/root/send/reqdata/setno" , model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist/setno"));
  258. model.makeValue("/root/send/reqdata/settypecd", model.getValue("/root/main/prmsprcpsetinfo/prmsprcpsetlist/settypecd"));
  259. submit("TXMMO03702");
  260. model.setValue("/root/main/cond/chngseqflag", "N");
  261. fInitialize_SPMMO03700();
  262. } else {
  263. messageBox("진단 즐겨찾기 순서가 변경되지", "E007");
  264. }
  265. }
  266. /**
  267. * @desc : 즐겨찾기 Drag & drop을 이용한 순서 번경
  268. * @
  269. * @param :
  270. * @return :
  271. * @author : 김영학 2008.06.06
  272. * @---------------------------------------------------
  273. */
  274. function fChngSeqEnjoyDiag() {
  275. var srchflag = model.getValue("/root/main/cond/srchflag");
  276. if (srchflag == "P") {
  277. g_endrow = grd_diagcdlist.mouseRow;
  278. var nodeset = "/root/main/diaginfo/diagcdlist";
  279. // 아래에서 위로
  280. if (g_startrow > g_endrow ) {
  281. var startrow = g_startrow +1 ;
  282. model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + g_startrow + "]", "*[" + g_endrow + "]");
  283. model.removenode(nodeset + "[" + startrow + "]");
  284. // 위에서 아래로
  285. } else if (g_startrow < g_endrow ) {
  286. g_endrow = g_endrow + 1;
  287. model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + g_startrow + "]", "*[" + g_endrow + "]");
  288. model.removenode(nodeset + "[" + g_startrow + "]");
  289. }
  290. grd_diagcdlist.row = grd_diagcdlist.mouseRow;
  291. model.setValue("/root/main/cond/chngseqflag", "Y");
  292. model.refresh();
  293. } else {
  294. g_endrow = grd_diaglist2.mouseRow;
  295. var nodeset = "/root/main/diaginfo/diagcdlist";
  296. // 아래에서 위로
  297. if (g_startrow > g_endrow ) {
  298. var startrow = g_startrow +1 ;
  299. model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + g_startrow + "]", "*[" + g_endrow + "]");
  300. model.removenode(nodeset + "[" + startrow + "]");
  301. // 위에서 아래로
  302. } else if (g_startrow < g_endrow ) {
  303. g_endrow = g_endrow + 1;
  304. model.duplicate(instance1.selectSingleNode(nodeset).parentNode, nodeset + "[" + g_startrow + "]", "*[" + g_endrow + "]");
  305. model.removenode(nodeset + "[" + g_startrow + "]");
  306. }
  307. grd_diaglist2.row = grd_diagcdlist.mouseRow;
  308. model.setValue("/root/main/cond/chngseqflag", "Y");
  309. model.refresh();
  310. }
  311. }
  312. /**
  313. * @desc : 즐겨찾기 올림버튼을 이용한 순서 번경
  314. * @
  315. * @param :
  316. * @return :
  317. * @author : 김영학 2008.08.07
  318. * @---------------------------------------------------
  319. */
  320. function fUpBtnClick() {
  321. //수정을 했다는 상태를 나타내서 수정인것을 나타냄
  322. model.setValue("/root/main/cond/chngseqflag", "Y");
  323. //멀티로 선택된 로우 개수
  324. var selectedRows = grd_diagcdlist.selectedRows;
  325. //선택된 로우행 저장
  326. var row = new Array();
  327. //다음로우의 버튼명 변수
  328. var nextrowsetcdno = new Array();
  329. var nextrowdiagno = new Array();
  330. var nextrowdispdiagcd = new Array();
  331. var nextrowdiagengnm = new Array();
  332. var nextrowdiaghngnm = new Array();
  333. var nextrowdiagremfact = new Array();
  334. var nextroworgdiaghngnm = new Array();
  335. var nextrowspclinfo = new Array();
  336. //멀티로 선택된 개수대로 변수에 저장
  337. for (var i= selectedRows-1 ; i >= 0 ; i--){
  338. //선택된 로우행을 변수에 저장
  339. row[i] = grd_diagcdlist.selectedrow(i);
  340. //버튼명, 버튼코드, 화면종류를 받아옴
  341. nextrowsetcdno[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/setcdno");
  342. nextrowdiagno[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diagno");
  343. nextrowdispdiagcd[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/dispdiagcd");
  344. nextrowdiagengnm[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diagengnm");
  345. nextrowdiaghngnm[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diaghngnm");
  346. nextrowdiagremfact[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diagremfact");
  347. nextroworgdiaghngnm[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/orgdiaghngnm");
  348. nextrowspclinfo[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/spclinfo");
  349. //선택된 로우가 첫번째 로우일 경우
  350. if(i == 0){
  351. var nextrow = row[i] - 1;
  352. }
  353. //선택된 로우가 마지막 로우일 경우
  354. if(i == selectedRows-1){
  355. var next = row[i];
  356. }
  357. }
  358. //마지막 로우가 가장 위일 경우 메세지
  359. if(nextrow == 0){
  360. messageBox("올림을", "E001");
  361. }else{
  362. //올림으로 선택한 첫번째 로우의 위의 로우의 버튼명, 버튼코드, 화면종류를 미리 저장
  363. var rowsetcdno = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/setcdno");
  364. var rowdiagno = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diagno");
  365. var rowdispdiagcd = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/dispdiagcd");
  366. var rowdiagengnm = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diagengnm");
  367. var rowdiaghngnm = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diaghngnm");
  368. var rowdiagremfact = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diagremfact");
  369. var roworgdiaghngnm = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/orgdiaghngnm");
  370. var rowspclinfo = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/spclinfo");
  371. //멀티로 선택된 로우의 가장 마지막 로우부터 상태값들을 저장
  372. for (var i= selectedRows-1 ; i >= 0 ; i--){
  373. var Srow = row[i]-1;
  374. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/setcdno", nextrowsetcdno[i] );
  375. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diagno", nextrowdiagno[i] );
  376. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/dispdiagcd", nextrowdispdiagcd[i] );
  377. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diagengnm", nextrowdiagengnm[i] );
  378. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diaghngnm", nextrowdiaghngnm[i] );
  379. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diagremfact", nextrowdiagremfact[i] );
  380. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/orgdiaghngnm", nextroworgdiaghngnm[i]);
  381. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/spclinfo", nextrowspclinfo[i]);
  382. grd_diagcdlist.rowStatus(Srow) = 2;
  383. }
  384. //가장마지막 로우에 가장 먼저 미리 저장해둔 값을 넣어둠
  385. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/setcdno", rowsetcdno);
  386. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diagno", rowdiagno);
  387. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/dispdiagcd", rowdispdiagcd);
  388. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diagengnm", rowdiagengnm);
  389. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diaghngnm", rowdiaghngnm);
  390. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diagremfact", rowdiagremfact);
  391. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/orgdiaghngnm", roworgdiaghngnm);
  392. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/spclinfo", rowspclinfo);
  393. grd_diagcdlist.rowStatus(next) = 2;
  394. }
  395. //이동된 row를 select 처리함
  396. if( row.length > 0 ){
  397. for(var i=0; i<row.length; i++){
  398. grd_diagcdlist.select(row[i], 0, row[i], grd_diagcdlist.cols-1) = false;
  399. }
  400. for(var j=0; j<row.length; j++){
  401. grd_diagcdlist.AddListSelect(row[j]-1);
  402. }
  403. }
  404. model.refresh();
  405. }
  406. /**
  407. * @desc : 즐겨찾기 내림버튼을 이용한 순서 번경
  408. * @
  409. * @param :
  410. * @return :
  411. * @author : 김영학 2008.08.07
  412. * @---------------------------------------------------
  413. */
  414. function fDnBtnClick() {
  415. //수정을 했다는 상태를 나타내서 수정인것을 나타냄
  416. model.setValue("/root/main/cond/chngseqflag", "Y");
  417. //총 로우의 개수
  418. var rows = grd_diagcdlist.rows;
  419. //멀티로 선택된 로우 개수
  420. var selectedRows = grd_diagcdlist.selectedRows;
  421. //선택된 로우행 저장
  422. var row = new Array();
  423. //다음로우의 버튼명 변수
  424. var nextrowsetcdno = new Array();
  425. var nextrowdiagno = new Array();
  426. var nextrowdispdiagcd = new Array();
  427. var nextrowdiagengnm = new Array();
  428. var nextrowdiaghngnm = new Array();
  429. var nextrowdiagremfact = new Array();
  430. var nextroworgdiaghngnm = new Array();
  431. var nextrowspclinfo = new Array();
  432. //멀티로 선택된 개수대로 변수에 저장
  433. for (var i= selectedRows-1 ; i >= 0 ; i--){
  434. //선택된 로우행을 변수에 저장
  435. row[i] = grd_diagcdlist.selectedrow(i);
  436. //버튼명, 버튼코드, 화면종류를 받아옴
  437. nextrowsetcdno[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/setcdno");
  438. nextrowdiagno[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diagno");
  439. nextrowdispdiagcd[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/dispdiagcd");
  440. nextrowdiagengnm[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diagengnm");
  441. nextrowdiaghngnm[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diaghngnm");
  442. nextrowdiagremfact[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/diagremfact");
  443. nextroworgdiaghngnm[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/orgdiaghngnm");
  444. nextrowspclinfo[i] = model.getValue("/root/main/diaginfo/diagcdlist[" + row[i] + "]/spclinfo");
  445. //선택된 로우가 마지막 로우일 경우
  446. if(i == selectedRows-1){
  447. var nextrow = row[i] + 1;
  448. }
  449. //선택된 로우가 첫번째 로우일 경우
  450. if(i == 0){
  451. var next = row[i];
  452. }
  453. }
  454. //마지막 로우가 가장 아래일 경우 메세지
  455. if(nextrow == rows){
  456. messageBox("내림을", "E001");
  457. }else{
  458. //내림으로 선택한 첫번째 로우의 아래의 로우의 버튼명, 버튼코드, 화면종류를 미리 저장
  459. var rowsetcdno = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/setcdno");
  460. var rowdiagno = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diagno");
  461. var rowdispdiagcd = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/dispdiagcd");
  462. var rowdiagengnm = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diagengnm");
  463. var rowdiaghngnm = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diaghngnm");
  464. var rowdiagremfact = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/diagremfact");
  465. var roworgdiaghngnm = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/orgdiaghngnm");
  466. var rowspclinfo = model.getValue("/root/main/diaginfo/diagcdlist[" + nextrow + "]/spclinfo");
  467. //멀티로 선택된 로우의 가장 마지막 로우부터 상태값들을 저장
  468. for (var i= selectedRows-1 ; i >= 0 ; i--){
  469. var Srow = row[i]+1;
  470. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/setcdno", nextrowsetcdno[i] );
  471. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diagno", nextrowdiagno[i] );
  472. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/dispdiagcd", nextrowdispdiagcd[i] );
  473. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diagengnm", nextrowdiagengnm[i] );
  474. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diaghngnm", nextrowdiaghngnm[i] );
  475. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/diagremfact", nextrowdiagremfact[i] );
  476. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/orgdiaghngnm", nextroworgdiaghngnm[i]);
  477. model.makeValue("/root/main/diaginfo/diagcdlist[" + Srow + "]/spclinfo", nextrowspclinfo[i]);
  478. grd_diagcdlist.rowStatus(Srow) = 2;
  479. }
  480. //가장마지막 로우에 가장 먼저 미리 저장해둔 값을 넣어둠
  481. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/setcdno", rowsetcdno);
  482. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diagno", rowdiagno);
  483. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/dispdiagcd", rowdispdiagcd);
  484. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diagengnm", rowdiagengnm);
  485. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diaghngnm", rowdiaghngnm);
  486. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/diagremfact", rowdiagremfact);
  487. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/orgdiaghngnm", roworgdiaghngnm);
  488. model.makeValue("/root/main/diaginfo/diagcdlist[" + next + "]/spclinfo", rowspclinfo);
  489. grd_diagcdlist.rowStatus(next) = 2;
  490. }
  491. //이동된 row를 select 처리함
  492. if( row.length > 0 ){
  493. for(var i=0; i<row.length; i++){
  494. grd_diagcdlist.select(row[i], 0, row[i], grd_diagcdlist.cols-1) = false;
  495. }
  496. for(var j=0; j<row.length; j++){
  497. grd_diagcdlist.AddListSelect(row[j]+1);
  498. }
  499. }
  500. model.refresh();
  501. }
  502. /**
  503. * @desc : 진단 즐겨찾기에서 과의 즐겨찾기를 개인에 추가하는 오른쪽 마우스 팝업 처리
  504. * @id :
  505. * @event : onmousedown
  506. * @return : void
  507. * @authur : 김영학 2008. 8. 12
  508. */
  509. function fDaigFavoriateMouseRghtBtnPopup() {
  510. if (event.button == 3) {
  511. if(grd_diaglist2.isCell(event.target) && grd_diaglist2.mouseRow >= grd_diaglist2.fixedRows) {
  512. setPopupMenu("grd_diaglist2", false, "/root/init/diagmsrght/mouserght", "label", "func");
  513. //window.setPopupMenu("grd_diaglist2", true, "/root/init/diagmsrght/mouserght", "label", "func");
  514. }
  515. }
  516. }
  517. /**
  518. * @desc : 진단 즐겨찾기에서 과의 즐겨찾기를 개인에 추가하는 오른쪽 마우스 팝업 처리
  519. * @return : void
  520. * @authur : 김영학 2008. 8. 12
  521. */
  522. function fAddEnjoyPrivate(){
  523. var header = "settypecd▦setkindcd▦setclscd▦settrgtcd▦detlsetcd▩";
  524. var totRow = grd_diaglist2.rows;
  525. for(var i = 0; i < totRow ; i++){
  526. if(grd_diaglist2.isselected(i) == true){
  527. var diagcd = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/diagcd");
  528. var settrgtcd = getUserInfo("userid");
  529. header += "E▦P▦D▦" + settrgtcd + "▦" + diagcd + "▩";
  530. }
  531. }
  532. model.makeValue("/root/send/savedata", header);
  533. submit("TXMMB00604");
  534. }