SMAHR02300_문진결과.xrw 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMAHR01000.xrw
  4. * 설 명 : 문진결과
  5. * 설 계 자 : 김호익
  6. * 작 성 자 : 김호익
  7. * 작 성 일 : 2007.07.13
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  13. <xhtml:head>
  14. <xhtml:title>Untitle</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <acptinfo>
  20. <item>
  21. <pid/>
  22. <hngnm/>
  23. <rgstno1/>
  24. <rgstno2/>
  25. <sex/>
  26. <age/>
  27. <cmpycd/>
  28. <cmpynm/>
  29. <pkgcd/>
  30. <pkgnm/>
  31. <schlgrde/>
  32. <clsid/>
  33. <stuid/>
  34. <plceflag/>
  35. <orddd/>
  36. <judgdd/>
  37. <judgdrid/>
  38. <drnm/>
  39. <reexamfg/>
  40. </item>
  41. <rsltlst>
  42. <item>
  43. <prcpdd/>
  44. <execprcpuniqno/>
  45. <prcpno/>
  46. <testcd/>
  47. <testnm/>
  48. <testrsltcnts>
  49. </testrsltcnts>
  50. <outtestrsltcnts/>
  51. <rsltunit/>
  52. <rsltflag/>
  53. <remcnts/>
  54. <assorsltcnts/>
  55. <judgcd/>
  56. <judgrsltcnts/>
  57. <inptflag/>
  58. <choirslt>
  59. <item/>
  60. </choirslt>
  61. <judgmark/>
  62. <refh/>
  63. <refl/>
  64. </item>
  65. </rsltlst>
  66. <rsltlst2>
  67. <item>
  68. <prcpdd/>
  69. <execprcpuniqno/>
  70. <prcpno/>
  71. <testcd/>
  72. <testnm/>
  73. <testrsltcnts>
  74. </testrsltcnts>
  75. <outtestrsltcnts/>
  76. <rsltunit/>
  77. <rsltflag/>
  78. <remcnts/>
  79. <assorsltcnts/>
  80. <judgcd/>
  81. <judgrsltcnts/>
  82. <inptflag/>
  83. <choirslt>
  84. <item/>
  85. </choirslt>
  86. <judgmark/>
  87. <refh/>
  88. <refl/>
  89. </item>
  90. </rsltlst2>
  91. <judginfo>
  92. <firstjudg>
  93. <fst_inqryn>Y</fst_inqryn>
  94. <fst_estmamt/>
  95. <fst_judgcd/>
  96. <fst_bjudgdetl/>
  97. <fst_rjudgdetl/>
  98. <fst_etcsickcd/>
  99. <fst_etcsickcnts/>
  100. <fst_judgexamcd/>
  101. <fst_judgexamcnts/>
  102. <fst_histflag/>
  103. <fst_histcnts/>
  104. <fst_lifestatflag/>
  105. <fst_lifestatcnts/>
  106. <fst_trmaflag/>
  107. <fst_gnrlstatflag/>
  108. <fst_judgdd/>
  109. <fst_judgdrid/>
  110. </firstjudg>
  111. <secondjudg>
  112. <sec_judgcd/>
  113. <sec_D1sickcd/>
  114. <sec_D2sickcd/>
  115. <sec_aftercd/>
  116. <sec_judgexamcd/>
  117. <sec_judgexamcnts/>
  118. <sec_judgdd/>
  119. <sec_judgdrid/>
  120. </secondjudg>
  121. <oraljudg>
  122. <oral_estmamt/>
  123. <oral_judgcd/>
  124. <oral_judgdrid/>
  125. <oral_judgdd/>
  126. </oraljudg>
  127. <specjudg/>
  128. <genrjudg/>
  129. <secsicklst>
  130. <sickcd/>
  131. <sicknm/>
  132. </secsicklst>
  133. </judginfo>
  134. <inqrlst>
  135. <item>
  136. <lvl/>
  137. <appyear/>
  138. <inqrcd/>
  139. <supinqrcd/>
  140. <inqrnm/>
  141. <inqrengnm/>
  142. <inqrrsltcd/>
  143. <inqrrsltcnts/>
  144. <remcnts/>
  145. <answflag/>
  146. <titleyn/>
  147. <inqrflag/>
  148. <rsltscore/>
  149. <path/>
  150. <root/>
  151. </item>
  152. <answitem>
  153. <sel/>
  154. <appyear/>
  155. <inqrflag/>
  156. <inqrcd/>
  157. <answcd/>
  158. <answnm/>
  159. <answengnm/>
  160. <infinqryn/>
  161. <infinqrcd/>
  162. <reminptyn/>
  163. </answitem>
  164. </inqrlst>
  165. </acptinfo>
  166. <tempinfo>
  167. <anslst>
  168. <item/>
  169. </anslst>
  170. <answcd/>
  171. <assoinqranswlst>
  172. <item>
  173. <sel/>
  174. <answcd/>
  175. <answnm/>
  176. <answengnm/>
  177. <infinqryn/>
  178. <infinqrcd/>
  179. <reminptyn/>
  180. <appyear/>
  181. <inqrflag/>
  182. <inqrcd/>
  183. <answpoint/>
  184. </item>
  185. </assoinqranswlst>
  186. </tempinfo>
  187. </main>
  188. </root>
  189. </instance>
  190. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  191. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  192. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  193. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  194. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  195. <script type="javascript" src="../../../ast/healexamweb/js/AHA001.js"/>
  196. <submission id="TRAHA04331" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/acptinfo/inqrlst"/>
  197. <submission id="TRAHB00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/tempinfo/anslst"/>
  198. </model>
  199. <script type="javascript">
  200. <![CDATA[
  201. //var col_inqranswcd = 3;
  202. //var col_inqranswflag = 6;
  203. function fViewNum(){
  204. window.parent.javascript.vidx = "2";
  205. }
  206. function fInitDasplay(){
  207. /*
  208. var inqrflag = model.getValue("/root/init/baseinfo/inqrflag");
  209. model.copyNode("/root/init/baseinfo",opener.root.init);//parent
  210. model.copyNode("/root/init/baseinfo", opener.root.init.baseinfo);
  211. model.makeValue("/root/init/baseinfo/inqrflag",inqrflag);
  212. model.makeNode("/root/init/srchinqrflag");
  213. model.copyNode("/root/send/srchinqrflag","/root/init/baseinfo/inqrflag");
  214. nodenumber = 0;
  215. */
  216. /*여의도 성모인 경우 답안설명 컬럼이 추가되면서 적용년도, 문진코드, 비고는 hidden시킨다.*/
  217. /*
  218. if(getUserInfo("dutplceinstcd") == "011"){
  219. grd_assoinqrlst.colWidth(grd_assoinqrlst.colRef("inqrnm")) = 350;
  220. grd_assoinqrlst.colWidth(grd_assoinqrlst.colRef("inqrrsltcnts")) = 80;
  221. grd_assoinqrlst.colHidden(grd_assoinqrlst.colRef("answcont")) = false;
  222. grd_assoinqrlst.colHidden(grd_assoinqrlst.colRef("appyear")) = true;
  223. grd_assoinqrlst.colHidden(grd_assoinqrlst.colRef("inqrcd")) = true;
  224. grd_assoinqrlst.colHidden(grd_assoinqrlst.colRef("remcnts")) = true;
  225. grd_assoinqrlst.colType(grd_assoinqrlst.colRef("inqrrsltcd")) = "input";
  226. grd_assoinqrlst.colType(grd_assoinqrlst.colRef("inqrrsltcnts")) = "input";
  227. }
  228. */
  229. model.refresh();
  230. }
  231. //대상자 클릭시
  232. function fGetInqrCdList(){
  233. model.removeNodeset(grd_assoinqrlst.nodeset);
  234. window.parent.javascript.fCheckExamInfo();
  235. model.makeNode("/root/init/baseinfo");
  236. model.makeNode("/root/send");
  237. model.copyNode("/root/init" , opener.root.init);
  238. model.copyNode("/root/send" , opener.root.send);
  239. model.makeValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  240. if(model.getValue("/root/send/srchhealexamdetlflag") == "G09"){
  241. model.makeValue("/root/send/srchhealexamkindflag", "G003"); //암건진
  242. }else if(model.getValue("/root/send/srchhealexamdetlflag") == "G03"){
  243. model.makeValue("/root/send/srchgubun", "spcl"); //특수건진
  244. }
  245. /* 여의도 성모일 경우 5대암이 하나로 통합이 되었으므로 문진결과 화면 크기를 줄여준다.
  246. if(getUserInfo("dutplceinstcd") == "011"){
  247. if(model.getValue("/root/send/srchhealexamdetlflag") == "G09"){
  248. grd_assoinqrlst.attribute("width") = 764 + "px";
  249. grd_assoinqrlst.attribute("height") = 527 + "px";
  250. }else{
  251. grd_assoinqrlst.attribute("width") = 769 + "px";
  252. grd_assoinqrlst.attribute("height") = 557 + "px";
  253. }
  254. }
  255. */
  256. openLoadingBar("문진표 ");
  257. if(submit("TRAHA04331")) {
  258. grd_assoinqrlst.rebuildStyle();
  259. grd_assoinqrlst.rebuild();
  260. // var arr = "";
  261. for(nRow=1; nRow<=grd_assoinqrlst.rows; nRow++){
  262. //그리드 상태변경, isReadOnly처리(답안내역, 비고)
  263. var titleYn = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("titleyn"));
  264. if(titleYn == "N"){
  265. // grd_assoinqrlst.rowStatus(nRow) = 1;
  266. }else{
  267. grd_assoinqrlst.rowstyle(nRow, "data", "background-color") = "#c0c0c0";
  268. // grd_assoinqrlst.isReadOnly(nRow, grd_assoinqrlst.colRef("sel")) = true; //선택
  269. // grd_assoinqrlst.isReadOnly(nRow, grd_assoinqrlst.colRef("inqrrsltcd")) = true; //답안결과
  270. // grd_assoinqrlst.isReadOnly(nRow, grd_assoinqrlst.colRef("inqrrsltcnts")) = true; //답안내역
  271. // grd_assoinqrlst.isReadOnly(nRow, grd_assoinqrlst.colRef("remcnts")) = true; //비고
  272. }
  273. //답안설명을 화면에 보이게끔
  274. // var srcAppYear = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("appyear"));
  275. // var srcInqrFlag = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("inqrflag"));
  276. // var srcInqrCd = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("inqrcd"));
  277. // for(var i=1; i<=getNodesetCount("/root/main/acptinfo/inqrlst/answitem"); i++) {
  278. // var desAppYear = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/appyear");
  279. // var desInqrFlag = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/inqrflag");
  280. // var desInqrCd = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/inqrcd");
  281. // var desAnswNm = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/answcd") + ":" + model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/answnm") + " ";
  282. // if(srcAppYear == desAppYear && srcInqrFlag == desInqrFlag && srcInqrCd == desInqrCd ){
  283. // arr += desAnswNm;
  284. // }
  285. // grd_assoinqrlst.valueMatrix(nRow, grd_assoinqrlst.colRef("answcont")) = arr;
  286. // }
  287. // arr = "";
  288. }
  289. setTree(grd_assoinqrlst, grd_assoinqrlst.colRef("lvl"), grd_assoinqrlst.colRef("inqrnm"), false);
  290. }
  291. closeLoadingBar();
  292. }
  293. /**
  294. * 문진답안선택시 gird로 값 setting
  295. */
  296. function fSetInqrAns(vInptYN, vGridYn){
  297. if(vGridYn == null) vGridYn = "N";
  298. var inqrRsltArr = new Array();
  299. var addCnt = 0;
  300. if(vInptYN == "Y") {
  301. if(vGridYn == "N"){
  302. var answcd = ipt_answcd.currentText ;
  303. }else{
  304. var answcd = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcd"));
  305. }
  306. var answArr = answcd.split('^');
  307. for(var i=0; i < answArr.length; i++) {
  308. for(var j=1; j < grd_assoinqranslst.rows; j++) {
  309. if(answArr[i] == grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd")) ) {
  310. inqrRsltArr[addCnt] = grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd"));
  311. addCnt++;
  312. }
  313. }
  314. }
  315. }else if(vInptYN == "N") {
  316. for(var x=1; x < grd_assoinqranslst.rows; x++) {
  317. if(grd_assoinqranslst.valueMatrix(x , grd_assoinqranslst.colRef("sel")) == "Y" ) {
  318. inqrRsltArr[addCnt] = grd_assoinqranslst.valueMatrix(x , grd_assoinqranslst.colRef("answcd"));
  319. addCnt++;
  320. }
  321. }
  322. }
  323. return fSetInqrRslt(inqrRsltArr);
  324. }
  325. /*문진답안선택시 gird로 값 setting*/
  326. function fSetInqrRslt(vInqrArr) {
  327. var insCnt = 0;
  328. var inqrRsltCd = "";
  329. var inqrRsltCnts = "";
  330. var inqrScore = 0;
  331. var befIdx = 1;
  332. var initBool = false;
  333. var moveRow = fChoiGrdTree(grd_assoinqrlst , grd_assoinqrlst.row , true);
  334. for(var i=0; i < vInqrArr.length; i++) {
  335. for(var j=1; j < grd_assoinqranslst.rows; j++) {
  336. if(vInqrArr[i] == grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd")) ) {
  337. if(insCnt < 1) {
  338. inqrRsltCd += grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd"));
  339. inqrRsltCnts += grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answnm"));
  340. inqrScore += parseInt(grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answpoint")));
  341. }else {
  342. inqrRsltCd += "^" + grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd"));
  343. inqrRsltCnts += "^" + grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answnm"));
  344. inqrScore += parseInt(grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answpoint")));
  345. }
  346. // 비고 입력 체크
  347. if(grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("reminptyn")) == "Y") {
  348. grd_assoinqrlst.col = grd_assoinqrlst.colRef("remcnts");
  349. grd_assoinqrlst.editCell();
  350. }
  351. // 하위메뉴 펼치기
  352. if(grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("infinqryn")) == "Y") {
  353. var srcInqrCd = grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("infinqrcd"));
  354. var srcAppYear = grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("appyear"));
  355. var srcInqrFlag = grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("inqrflag"));
  356. for(var m=1; m < grd_assoinqrlst.rows; m++) {
  357. var desInqrCd = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("inqrcd"));
  358. var desAppYear = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("appyear"));
  359. var desInqrFlag = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("inqrflag"));
  360. if(srcInqrCd == desInqrCd && srcAppYear == desAppYear && srcInqrFlag == desInqrFlag) {
  361. var pathArr = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("path") ).split('^');
  362. for(n=0; n < pathArr.length; n++) {
  363. var idx = grd_assoinqrlst.findRow(pathArr[n] , grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrcd"), false, true);
  364. var desAppYear1 = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("appyear"));
  365. var desInqrFlag1 = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("inqrflag"));
  366. if(srcAppYear == desAppYear1 && srcInqrFlag == desInqrFlag1) {
  367. grd_assoinqrlst.iscollapsed(idx) = false;
  368. if(initBool == false) {
  369. if(idx > 0) {
  370. befIdx = idx;
  371. initBool = true;
  372. }
  373. }else {
  374. if(befIdx < idx) {
  375. befIdx = idx;
  376. }
  377. }
  378. }
  379. }
  380. }
  381. }
  382. }else {
  383. var pathArr = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("path") ).split('^');
  384. var desAppYear = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("appyear"));
  385. var desInqrFlag = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrflag"));
  386. for(var x = 0; x < pathArr.length - 1; x++) {
  387. var desInqrCd = pathArr[x];
  388. for(var u=1; u < grd_assoinqrlst.rows; u++) {
  389. var srcAppYear = grd_assoinqrlst.valueMatrix(u, grd_assoinqrlst.colRef("appyear"));
  390. var srcInqrFlag = grd_assoinqrlst.valueMatrix(u , grd_assoinqrlst.colRef("inqrflag"));
  391. var srcInqrCd = grd_assoinqrlst.valueMatrix(u , grd_assoinqrlst.colRef("inqrcd"));
  392. if(desAppYear == srcAppYear && desInqrFlag == srcInqrFlag && desInqrCd == srcInqrCd) {
  393. if(grd_assoinqrlst.valueMatrix(u , grd_assoinqrlst.colRef("titleyn")) == "Y") {
  394. grd_assoinqrlst.iscollapsed(u) = false;
  395. moveRow = 1;
  396. }
  397. }
  398. }
  399. }
  400. }
  401. insCnt++;
  402. }
  403. }
  404. }
  405. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrrsltcd")) = inqrRsltCd;
  406. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrrsltcnts")) = inqrRsltCnts;
  407. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("rsltscore")) = inqrScore;
  408. if(initBool) {
  409. moveRow = befIdx - grd_assoinqrlst.row ;
  410. }
  411. return moveRow;
  412. }
  413. function fChoiGrdTree(vGrd , vRow , vBool) {
  414. if(vBool == null) vBool = true;
  415. var moveRow = 0;
  416. var inqrflag = vGrd.valueMatrix(vRow , vGrd.colRef("inqrflag"));
  417. var root = vGrd.valueMatrix(vRow , vGrd.colRef("root"));
  418. for(var i = 1; i <vGrd.rows ; i++) {
  419. var desInqrFlag = vGrd.valueMatrix(i , vGrd.colRef("inqrflag"));
  420. var desRoot = vGrd.valueMatrix(i , vGrd.colRef("root"));
  421. if(inqrflag == desInqrFlag && root == desRoot) {
  422. vGrd.iscollapsed(i) = vBool;
  423. moveRow++;
  424. }
  425. }
  426. return moveRow;
  427. }
  428. /**
  429. * 문진입력을 용이하게 하기위한 함수.
  430. * 답안입력시 row이동
  431. * bMove : true이면 row이동
  432. */
  433. function fMoveInqrFocus(bCol, bMove , bRow){
  434. if(bCol == "" || bCol == null) bCol = 8;
  435. if(bRow == "" || bRow == null) bRow = 1;
  436. if(bCol != 7 && bCol != 8) return;
  437. //if( grd_assoinqrlst.col != grd_assoinqrlst.colRef("inqrrsltcnts") ) return ;
  438. var idx = grd_assoinqrlst.row;
  439. if( idx < 1) return ;
  440. if( bMove == true ){
  441. idx = grd_assoinqrlst.row + bRow;
  442. if( idx >= grd_assoinqrlst.rows ) {
  443. idx = grd_assoinqrlst.rows ;
  444. return;
  445. }
  446. grd_assoinqrlst.row = idx;
  447. }
  448. //타이틀 여부 체크
  449. if(grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("titleyn")) == "Y") {
  450. fMoveInqrFocus(bCol, true);
  451. }else {
  452. if( grd_assoinqrlst.valueMatrix( idx, grd_assoinqrlst.colRef("answflag")) == "O" ){
  453. var y = parseInt( grd_assoinqrlst.attribute("top") ) + parseInt(grd_assoinqrlst.rowheight(0) ) + parseInt(grd_assoinqrlst.rowheight(1) )* idx ;
  454. var lim_y = parseInt( grd_assoinqrlst.attribute("top") ) + parseInt( grd_assoinqrlst.attribute("height") ) - parseInt(grd_assoinqrlst.attribute("height")) ;
  455. var lim_y = parseInt( grd_assoinqrlst.attribute("top") ) + parseInt( grd_assoinqrlst.attribute("height") ) - parseInt(grd_assoinqrlst.attribute("height")) ;
  456. if( y > lim_y){
  457. y = lim_y ;
  458. }
  459. fGetInqrAnsCdList (bCol, y);
  460. }
  461. else if( grd_assoinqrlst.valueMatrix( idx, grd_assoinqrlst.colRef("answflag")) == "T" || grd_assoinqrlst.valueMatrix( idx, grd_assoinqrlst.colRef("answflag")) == "N"){
  462. if(grd_assoinqrlst.iscollapsed(idx)) {
  463. var srcAppYear = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("appyear"));
  464. var srcInqrFlag = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrflag"));
  465. var srcInqrCd = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrcd"));
  466. var pathArr = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("path")).split('^');
  467. var findChk = false;
  468. var moveRow = 0;
  469. for(var i =0; i < pathArr.length; i++) {
  470. if(srcInqrCd == pathArr[i] ) {
  471. findChk = true;
  472. }
  473. if(findChk) {
  474. for(var j=1; j < grd_assoinqrlst.rows; j++) {
  475. var desAppYear = grd_assoinqrlst.valueMatrix(j , grd_assoinqrlst.colRef("appyear"));
  476. var desInqrFlag = grd_assoinqrlst.valueMatrix(j , grd_assoinqrlst.colRef("inqrflag"));
  477. var desInqrCd = grd_assoinqrlst.valueMatrix(j , grd_assoinqrlst.colRef("supinqrcd"));
  478. if(srcAppYear == desAppYear && srcInqrFlag == desInqrFlag && pathArr[i] == desInqrCd) {
  479. moveRow++;
  480. }
  481. }
  482. }
  483. }
  484. fMoveInqrFocus(bCol, true , moveRow);
  485. }else {
  486. if("object" == typeof htmlwindow) {
  487. htmlwindow.setTimeout(function() {grd_assoinqrlst.editCell()},10);
  488. } else {
  489. grd_assoinqrlst.editCell();
  490. }
  491. }
  492. }
  493. else {
  494. fMoveInqrFocus(bCol, true);
  495. }
  496. }
  497. }
  498. /**
  499. *문진선택형결과 가져오기
  500. * IN : 문진구분/문진코드/기관코드
  501. */
  502. function fGetInqrAnsCdList(bCol, vTop ){
  503. var idx = grd_assoinqrlst.row;
  504. if( idx < 1) return ;
  505. model.removeNodeset(grd_assoinqranslst.nodeset);
  506. model.makeNode(grd_assoinqranslst.nodeset);
  507. model.resetInstanceNode("/root/main/tempinfo/answcd");
  508. ipt_answcd.refresh();
  509. var srcAppYear = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("appyear"));
  510. var srcInqrFlag = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrflag"));
  511. var srcInqrCd = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrcd"));
  512. for(var i=1; i <= getNodesetCount("/root/main/acptinfo/inqrlst/answitem"); i++) {
  513. var desAppYear = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/appyear");
  514. var desInqrFlag = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/inqrflag");
  515. var desInqrCd = model.getValue("/root/main/acptinfo/inqrlst/answitem[" + i + "]/inqrcd");
  516. if(srcAppYear == desAppYear && srcInqrFlag == desInqrFlag && srcInqrCd == desInqrCd ) {
  517. copyNodesetType(grd_assoinqranslst.nodeset, "/root/main/acptinfo/inqrlst/answitem[" + i + "]","after" );
  518. }
  519. }
  520. grd_assoinqranslst.rebuild();
  521. grp_inqrans.attribute("top") = vTop;
  522. if(bCol == 8){
  523. grp_inqrans.visible = true;
  524. model.setFocus("ipt_answcd");
  525. }else{
  526. grp_inqrans.visible = false;
  527. }
  528. }
  529. /*답변의 Validation을 체크한다. 선택형에 없는 값을 입력하는지 체크한다.*/
  530. function fValidAnswer(vAnsw) {
  531. var answ = vAnsw.split('^');
  532. var valid = false;
  533. for(var i = 0; i < answ.length; i++) {
  534. var srchAnsw = answ[i];
  535. if( grd_assoinqranslst.findRow(srchAnsw , 1 , grd_assoinqranslst.colRef("answcd") , false , true) < 0 ) {
  536. valid = true;
  537. break;
  538. }
  539. }
  540. return valid;
  541. }
  542. /*2010.03.10. 이전 함수로 함수에 2를 붙여 구분*/
  543. function fSetInqrAns2(){
  544. var idx = grd_inqrlst.row;
  545. if( idx < 1) return ;
  546. var ansidx = grd_inqranslst.row;
  547. if( ansidx < 1 ) return ;
  548. var old_ans = grd_inqrlst.valueMatrix(idx, col_inqranswcd) ;
  549. var new_ans = grd_inqranslst.valueMatrix( ansidx, 1);
  550. if( old_ans == new_ans ) return ;
  551. grd_inqrlst.valueMatrix(idx, grd_inqrlst.colRef("answcd")) = grd_inqranslst.valueMatrix( ansidx, grd_inqranslst.colRef("answcd"));
  552. grd_inqrlst.valueMatrix(idx, grd_inqrlst.colRef("answcnts")) = grd_inqranslst.valueMatrix( ansidx, grd_inqranslst.colRef("answcnts"));
  553. if( grd_inqrlst.rowStatus(idx) == 0 ) {
  554. grd_inqrlst.addStatus(idx, "update");
  555. }
  556. grd_inqrlst.refresh();
  557. }
  558. function fMoveInqrFocus2(bMove){
  559. if( grd_inqrlst.col != col_inqranswcd ) return ;
  560. var idx = grd_inqrlst.row;
  561. if( idx < 1) return ;
  562. if( bMove == true ){
  563. idx ++;
  564. if( idx > grd_inqrlst.rows ) idx = grd_inqrlst.rows ;
  565. grd_inqrlst.row = idx;
  566. }
  567. grd_inqrlst.col = col_inqranswcd ;
  568. if( grd_inqrlst.valueMatrix( idx, col_inqranswflag) == "O" ){
  569. var y = parseInt( grd_inqrlst.attribute("top") ) + parseInt(grd_inqrlst.rowheight(0) ) + parseInt(grd_inqrlst.rowheight(1) )* idx ;
  570. var lim_y = parseInt( grd_inqrlst.attribute("top") ) + parseInt( grd_inqrlst.attribute("height") ) - parseInt(grp_inqrans.attribute("height")) ;
  571. if( y > lim_y){
  572. y = lim_y ;
  573. }
  574. //fGetInqrAnsCdList (y);
  575. }
  576. else if( grd_inqrlst.valueMatrix( idx, col_inqranswflag) == "T" ){
  577. grd_inqrlst.editCell();
  578. }
  579. else {
  580. //idx ++;
  581. if( idx > grd_inqrlst.rows ) idx = grd_inqrlst.rows ;
  582. grd_inqrlst.row = idx;
  583. }
  584. }
  585. function fGetInqrAnsCdList2( vTop ){
  586. var idx = grd_inqrlst.row;
  587. if( idx < 1) return ;
  588. model.makeNode("/root/send/srchinqrflag");
  589. model.makeNode("/root/send/ansinqrcd");
  590. model.makeNode("/root/send/srchinstcd");
  591. model.setValue( "/root/send/srchinqrflag" , model.getValue(rdo_srchinqrflag.attribute("ref") ) );
  592. model.setValue( "/root/send/ansinqrcd" , model.getValue(grd_inqrlst.nodeset + "[" + idx + "]/inqrcd" ) );
  593. model.setValue( "/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  594. model.removeNodeset(grd_inqranslst.nodeset);
  595. ipt_answcd.value = "";
  596. if( submit("TRAHB00202") == true ) {
  597. if( vTop != "" ){
  598. grp_inqrans.attribute("top") = parseInt(vTop);
  599. }
  600. grp_inqrans.visible = true;
  601. grp_inqrans.visible = true;
  602. model.setFocus("ipt_answcd");
  603. }
  604. }
  605. ]]>
  606. </script>
  607. </xhtml:head>
  608. <xhtml:body>
  609. <datagrid id="grd_assoinqrlst" nodeset="/root/main/acptinfo/inqrlst/item" autoresize="true" backcoloralternate="transparent" caption="lvl^적용년도^문진코드^상위문진코드^문진명^영문문진명^답안결과^답안내역^비고^답안설명^답압구분^제목여부^문진구분^점수^경로^최상위루트" colsep="^" colwidth="30, 55, 55, 55, 420, 55, 55, 120, 120, 55, 55, 55, 55, 55, 55, 55" frozencols="5" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:5px; width:769px; height:557px; ">
  610. <col ref="lvl" visibility="hidden"/>
  611. <col disabled="true" ref="appyear" type="combo" visibility="visible">
  612. <choices>
  613. <item>
  614. <label>2009년</label>
  615. <value>2009</value>
  616. </item>
  617. <item>
  618. <label>2010년</label>
  619. <value>2010</value>
  620. </item>
  621. <item>
  622. <label>2011년</label>
  623. <value>2011</value>
  624. </item>
  625. <item>
  626. <label>2012년</label>
  627. <value>2012</value>
  628. </item>
  629. <item>
  630. <label>2013년</label>
  631. <value>2013</value>
  632. </item>
  633. <item>
  634. <label>2014년</label>
  635. <value>2014</value>
  636. </item>
  637. </choices>
  638. </col>
  639. <col ref="inqrcd" visibility="visible"/>
  640. <col ref="supinqrcd" visibility="hidden"/>
  641. <col ref="inqrnm"/>
  642. <col ref="inqrengnm" visibility="hidden"/>
  643. <col ref="inqrrsltcd"/>
  644. <col ref="inqrrsltcnts"/>
  645. <col ref="remcnts" visibility="visible"/>
  646. <col ref="answcont" visibility="hidden"/>
  647. <col disabled="true" ref="answflag" type="combo">
  648. <choices>
  649. <itemset nodeset="/root/init/baseinfo/rslttypelst/A0066">
  650. <label ref="cdnm"/>
  651. <value ref="cdid"/>
  652. </itemset>
  653. </choices>
  654. </col>
  655. <col checkvalue="Y,N" disabled="true" ref="titleyn" type="checkbox" visibility="hidden"/>
  656. <col disabled="true" ref="inqrflag" type="combo" visibility="hidden">
  657. <choices>
  658. <itemset nodeset="/root/init/baseinfo/inqrflaglst/G008">
  659. <label ref="cdnm"/>
  660. <value ref="cdid"/>
  661. </itemset>
  662. </choices>
  663. </col>
  664. <col ref="rsltscore" visibility="visible"/>
  665. <col ref="path" visibility="hidden"/>
  666. <col ref="root" visibility="hidden"/>
  667. <script type="javascript" ev:event="onclick">
  668. <![CDATA[
  669. if(getUserInfo("dutplceinstcd") == "011"){
  670. //그리드의 셀 이외의 곳을 클릭하면 종료한다.
  671. if(!eval(grd_assoinqrlst.iscell(event.target))) return false;
  672. // 그리드의 헤더부분을 클릭하면 종료한다.
  673. if(eval(grd_assoinqrlst.row) < eval(grd_assoinqrlst.fixedRows)) return false;
  674. if(grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("titleyn")) != "Y"){
  675. grd_assoinqrlst.addStatus(grd_assoinqrlst.row, "insert");
  676. }
  677. fMoveInqrFocus(grd_assoinqrlst.col, false);
  678. }
  679. ]]>
  680. </script>
  681. <script type="javascript" ev:event="onendedit">
  682. <![CDATA[
  683. //if( event.keyCode != 13 ) return ;
  684. if(grd_assoinqrlst.col == grd_assoinqrlst.colRef("inqrrsltcnts")){
  685. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true);
  686. }else if(grd_assoinqrlst.col == grd_assoinqrlst.colRef("inqrrsltcd")){
  687. var answcd = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcd"));
  688. if( answcd == "" ) return ;
  689. if(fValidAnswer(answcd)) return;
  690. var idx = fSetInqrAns("Y", "Y");
  691. grp_inqrans.visible = false;
  692. //row이동
  693. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcd"), true, idx);
  694. }
  695. ]]>
  696. </script>
  697. <script type="javascript" ev:event="xforms-value-changed">
  698. <![CDATA[
  699. if(grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("titleyn")) != "Y"){
  700. grd_assoinqrlst.addStatus(grd_assoinqrlst.row, "insert");
  701. }
  702. ]]>
  703. </script>
  704. </datagrid>
  705. <group id="grp_inqrans" visibility="hidden" style="left:456px; top:74px; width:295px; height:268px; ">
  706. <caption id="caption56" class="tit_2" style="left:5px; top:10px; width:108px; height:13px; ">문진선택답안</caption>
  707. <datagrid id="grd_assoinqranslst" nodeset="/root/main/tempinfo/assoinqranswlst/item" allowselection="false" caption="선택^코드^결과내용^영문답안^하위사용여부^하위사용코드^비고입력여부^적용년도^문진구분^문진코드^점수" colsep="^" colwidth="30, 30, 187, 50, 50, 50, 50, 50, 50, 50, 50" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" style="left:5px; top:28px; width:285px; height:210px; ">
  708. <col checkvalue="Y,N" ref="sel" type="checkbox"/>
  709. <col ref="answcd"/>
  710. <col ref="answnm"/>
  711. <col ref="answengnm" visibility="hidden"/>
  712. <col checkvalue="Y,N" disabled="true" ref="infinqryn" type="checkbox" visibility="hidden"/>
  713. <col ref="infinqrcd" visibility="hidden"/>
  714. <col checkvalue="Y,N" disabled="true" ref="reminptyn" type="checkbox" visibility="hidden"/>
  715. <col ref="appyear" visibility="hidden"/>
  716. <col ref="inqrflag" visibility="hidden"/>
  717. <col ref="inqrcd" visibility="hidden"/>
  718. <col ref="answpoint" visibility="hidden"/>
  719. </datagrid>
  720. <line id="line36" class="line_1" style="x1:5px; y1:25px; x2:290px; y2:25px; "/>
  721. <button id="btn_ansclose" class="icon_plus" style="left:275px; top:4px; width:13px; height:15px; ">
  722. <caption/>
  723. <script type="javascript" ev:event="DOMActivate">
  724. <![CDATA[
  725. grp_inqrans.visible = false;
  726. ]]>
  727. </script>
  728. </button>
  729. <input id="ipt_answcd" ref="/root/main/tempinfo/answcd" class="input_default" style="left:120px; top:5px; width:140px; height:19px; ">
  730. <script type="javascript" ev:event="onkeyup">
  731. <![CDATA[
  732. if( event.keyCode != 13 ) return ;
  733. var answcd = ipt_answcd.currentText ;
  734. if( answcd == "" ) return ;
  735. if(fValidAnswer(answcd)) return;
  736. var idx = fSetInqrAns("Y");
  737. grp_inqrans.visible = false;
  738. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true, idx);
  739. ]]>
  740. </script>
  741. </input>
  742. <button id="button11" class="btn4_letter2" visibility="visible" style="left:235px; top:242px; width:56px; height:22px; ">
  743. <caption>확인</caption>
  744. <script type="javascript" ev:event="DOMActivate">
  745. <![CDATA[
  746. var nodeList = instance1.selectNodes(grd_assoinqranslst.nodeset + "[sel='Y']" );
  747. if(nodeList.length < 1) return;
  748. var idx = fSetInqrAns("N");
  749. grp_inqrans.visible = false;
  750. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true ,idx);
  751. ]]>
  752. </script>
  753. </button>
  754. </group>
  755. </xhtml:body>
  756. </xhtml:html>