SPCIT01301_만족도설문입력.xrw 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SPCIT01300_만족도결과입력
  4. * Summary : 만족도결과입력
  5. * Programmer : 신용준
  6. * Date Written : 2010.11.11
  7. * History :
  8. * Remark :
  9. -->
  10. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  11. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://www.comsquare.co.kr/example" xmlns:ms="urn:schemas-microsoft-com:xslt" 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" xmlns:cs="http://www.comsquare.co.kr/xforms">
  12. <xhtml:head>
  13. <xhtml:title>만족도 설문입력</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <codes/>
  18. <main>
  19. <qestlistGrp>
  20. <qestitemgrupseqno/>
  21. <qestitemgrupnm/>
  22. <qestitemgrupdesc/>
  23. <qestuseyn/>
  24. <colgstinqestyn/>
  25. <colgstinqestseqno/>
  26. </qestlistGrp>
  27. <qestlist>
  28. <qestitemgrupseqno/>
  29. <qestitemgrupnm/>
  30. <qestitemgrupdesc/>
  31. <qestuseyn/>
  32. <colgstinqestyn/>
  33. <colgstinqestseqno/>
  34. <qestseqno/>
  35. <qpaprsortseq/>
  36. <itemkindcd/>
  37. <qestitemanswcnt/>
  38. <qestitemanswchoicolcnt/>
  39. <qestcnts/>
  40. <essnanswcnt/>
  41. <answseqno/>
  42. <qestitemanswcnts/>
  43. <divpnt/>
  44. <answaddcnts/>
  45. <figrinptyn/>
  46. <addinptyn/>
  47. <addflgrinptyn/>
  48. <essninptyn/>
  49. <norpaddyn/>
  50. <nextqestseqno/>
  51. <descinptyn/>
  52. </qestlist>
  53. <stinuser>
  54. <stintrgtflagcd/>
  55. <pidanduserid/>
  56. <pidandusernm/>
  57. </stinuser>
  58. </main>
  59. <send>
  60. <qpaprseqno/>
  61. <stinseqno/>
  62. <qestitemgrupseqno/>
  63. </send>
  64. <temp>
  65. <sendgrd>
  66. <qestitemgrupseqno/>
  67. <qestseqno/>
  68. <stintrgtflagcd/>
  69. <pid/>
  70. <homepgid/>
  71. <userid/>
  72. <emailaddr/>
  73. <connipaddr/>
  74. <qestanswno/>
  75. <qestmltlanswno/>
  76. <divpnt/>
  77. <descinptcnts/>
  78. <descinptaddcnts/>
  79. <qestrspsyn/>
  80. </sendgrd>
  81. </temp>
  82. <hidden>
  83. <itemcount/>
  84. <qpaprseqno/>
  85. <stinseqno/>
  86. <answprsncnt/>
  87. <stintrgtnopl/>
  88. <mode>A</mode>
  89. </hidden>
  90. <init>
  91. <C0109list/>
  92. </init>
  93. </root>
  94. </instance>
  95. <submission id="TRCIT00402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/qestlistGrp"/>
  96. <submission id="TRCIT00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/qestlist"/>
  97. <submission id="TXCIT01301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata"/>
  98. </model>
  99. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  100. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  101. <script type="javascript" src="../../../crm/cssaweb/js/CSZ001.js"/>
  102. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  103. <script type="javascript" ev:event="xforms-ready">
  104. <![CDATA[
  105. model.setValue("/root/main/stinuser/pidanduserid", getUserInfo("userid"));
  106. model.setValue("/root/main/stinuser/pidandusernm", getUserInfo("usernm"));
  107. model.refresh();
  108. ]]>
  109. </script>
  110. <script type="javascript" ev:event="xforms-model-construct">
  111. <![CDATA[
  112. /*
  113. var nodeSet = new Array();
  114. for (var i = 0; i < 5; i++) {
  115. nodeSet[i] = {"label": "sdfasdfasfasfdasdfafasdf" + i , "value":"value" + i};
  116. }
  117. var top = 0;
  118. var radio = makeRadio(body, "rd1", "/root/example", "/root/codes", nodeSet, 1, 0, top);
  119. top = top + parseInt(radio.attribute("height") ,10);
  120. var check = makeCheckbox(body, "ck1", "/root/example", "/root/codes", nodeSet, 1, 0, top, 200);
  121. top = top + parseInt(check.attribute("height") ,10);
  122. var combo = makeCombo(body, "cb1", "/root/example", "/root/codes", nodeSet, 1, 0, top, 200);
  123. top = top + parseInt(combo.attribute("height") ,10);
  124. var input = makeInput(body, "ip1", "/root/example", 0, top, 200);
  125. top = top + parseInt(input.attribute("height") ,10);
  126. var textarea = makeTextarea(body, "ta1", "/root/example", 0, top);
  127. */
  128. ]]>
  129. </script>
  130. <script type="javascript">
  131. <![CDATA[
  132. var arGroupTop = new Array(); //각각의 그룹에 시작할 위치를 미리 전역 배열에 넣어 놓는다.
  133. var arIsGroupClick = new Array(); // 0: 이면 NonCheck 1이면 Check 해당 그룹을 클릭해서 불러왔는가는 체크
  134. var arIsGroupContainer = new Array(); // 그룹 컨테이너
  135. // 만족도 설문지화면에 그리는 함수
  136. var elementName = Array("xforms:choices", "xforms:item", "xforms:label");
  137. function fSearch(){
  138. // 공통코드 C0109 : 만족도 대상구분,
  139. zbcfGetCodeList( new Array("C0109"), new Array("/root/init/C0109list"));
  140. model.removeNodeset("/root/temp/sendgrd");
  141. // 부모창의 설문지 일련번호를 가져온다.
  142. /* var qpaprseqno = opener.window.javascript.getParameter("qpaprseqno");
  143. model.setValue("/root/send/qpaprseqno", qpaprseqno);
  144. model.setValue("/root/hidden/qpaprseqno", qpaprseqno);
  145. var stinseqno = opener.window.javascript.getParameter("stinseqno");
  146. model.setValue("/root/send/stinseqno", stinseqno);
  147. model.setValue("/root/hidden/stinseqno", stinseqno);
  148. var itemcount = opener.window.javascript.getParameter("itemcount");
  149. model.setValue("/root/hidden/itemcount", itemcount);
  150. var stintrgtflagcd = opener.window.javascript.getParameter("stintrgtflagcd");
  151. model.setValue("/root/main/stinuser/stintrgtflagcd", stintrgtflagcd);
  152. var answprsncnt = opener.window.javascript.getParameter("answprsncnt"); // 답변자
  153. model.setValue("/root/hidden/answprsncnt", answprsncnt);
  154. var stintrgtnopl = opener.window.javascript.getParameter("stintrgtnopl"); // 설문인원수
  155. model.setValue("/root/hidden/stintrgtnopl", stintrgtnopl);
  156. */ model.setValue("/root/send/qpaprseqno", "3");
  157. model.setValue("/root/hidden/qpaprseqno", "3");
  158. var tempqestitemgrupseqno = 0;
  159. // 설문지 미리보기(먼저 그룹을 조회함)을 조회 한다.
  160. if (submit("TRCIT00402")){
  161. var nodeList = root.selectNodes("/root/main/qestlistGrp");
  162. // 그룹 정보
  163. var inLeft = 20;
  164. var inTop = 40;
  165. var groupContainer = body;
  166. var groupIndex = 0;
  167. var buttons = new Array();
  168. var selectIndex = 0;
  169. for (var i = 1; i <= nodeList.length; i ++ ) {
  170. var xPath = "/root/main/qestlistGrp[" + i + "]";
  171. var qestitemgrupseqno = model.getValue(xPath + "/qestitemgrupseqno");
  172. var qestseqno= model.getValue(xPath + "/qestseqno");
  173. var button = makeButton(body, model.getValue(xPath + "/qestitemgrupnm"), 0, 0);
  174. var sfuncall = "";
  175. button.attribute("group") = "answers";
  176. //첫번째 그룹 시퀀스를 저장해 놨다가 나중에 그 페이지만 먼저 화면에 뿌린다.
  177. if (i == 1) {
  178. tempqestitemgrupseqno = qestitemgrupseqno;
  179. }
  180. sfuncall = "fnQestItemPrint(" + groupIndex + ", " + qpaprseqno + ", " + qestitemgrupseqno + "); ";
  181. sfuncall = sfuncall + "groups.selectedIndex = " + groupIndex +";";
  182. button.attribute("onclick") = sfuncall;
  183. button.visible = false;
  184. var buttonWidth = parseInt(button.attribute("width"), 10);
  185. if (inLeft + buttonWidth > 800) {
  186. inTop += 20;
  187. inLeft = 20;
  188. } else {
  189. inLeft += buttonWidth;
  190. } // end if
  191. buttons[groupIndex] = button;
  192. groupContainer = makeCase(groups, "group_" + groupIndex, 0, 0, 800, 1000);
  193. var explOutput = makeOutput(groupContainer, model.getValue(xPath + "/qestitemgrupdesc"), 10, 20, 760);
  194. arIsGroupContainer[groupIndex] = groupContainer;
  195. arGroupTop[groupIndex] = 20 + parseInt(explOutput.attribute("height"), 10); // 각각의 그룹에 시작할 위치를 미리 전역 배열에 넣어 놓는다.
  196. arIsGroupClick[groupIndex] = "0" // 0: 이면 NonCheck 1이면 Check 해당 그룹을 클릭해서 불러왔는가는 체크
  197. groupIndex ++;
  198. } // end for
  199. buttons[selectIndex].selected = true;
  200. groups.selectedIndex = selectIndex;
  201. groups.attribute("top") = inTop + 20;
  202. // Tab버튼 위치 조정
  203. inLeft = 20;
  204. for (var i = 0; i< buttons.length; i ++) {
  205. var button = buttons[i];
  206. var buttonWidth = parseInt(button.attribute("width"), 10);
  207. if (inLeft + buttonWidth > 800) {
  208. inTop -= 20;
  209. inLeft = 20;
  210. }
  211. button.attribute("top") = inTop;
  212. button.attribute("left") = inLeft;
  213. button.visible = true;
  214. inLeft += buttonWidth;
  215. } // end for
  216. // groups.refresh();
  217. buttons = null;
  218. // 첫패이지는 일단 뿌린다.
  219. fnQestItemPrint(selectIndex, qpaprseqno, tempqestitemgrupseqno);
  220. }
  221. model.refresh();
  222. }
  223. function printChildrenEelementName (prnt) {
  224. var chld = prnt.children;
  225. textarea1.value = textarea1.value + prnt.elementName + "\n";
  226. for (var i = 0; i < chld.length; i ++) {
  227. var elementName = chld.item(i).elementName;
  228. if (elementName == "xforms:choices" || elementName == "xforms:item" || elementName == "xforms:label" ) {
  229. printChildrenEelementName(chld.item(i));
  230. } else {
  231. textarea1.value = textarea1.value + elementName + "\n";
  232. }
  233. }
  234. }
  235. //설문지 그룹별로 화면에 내용을 그리는 함수
  236. function fnQestItemPrint(pGroupIndex, pQpaprseqno, pQestitemgrupseqno) {
  237. if (arIsGroupClick[pGroupIndex] == "0") {
  238. model.setValue("/root/send/qpaprseqno", pQpaprseqno);
  239. model.setValue("/root/send/qestitemgrupseqno", pQestitemgrupseqno);
  240. var columns = new Array("qestitemgrupseqno", "qestitemgrupnm", "qestitemgrupdesc", "qestuseyn", "colgstinqestyn", "colgstinqestseqno", "qestseqno" , "qpaprsortseq",
  241. "itemkindcd", "qestitemanswcnt" ,"qestitemanswchoicolcnt" , "qestcnts", "essnanswcnt",
  242. "answseqno", "qestitemanswcnts", "divpnt", "answaddcnts", "figrinptyn",
  243. "addinptyn", "addflgrinptyn", "essninptyn", "norpaddyn", "nextqestseqno",
  244. "descinptyn");
  245. // 설문지 그룹별 미리보기
  246. if (submit("TRCIT00401")){
  247. var nodeList = root.selectNodes("/root/main/qestlist");
  248. // 설문 정보
  249. var poll;
  250. var pre_qestseqno = -1;
  251. var arPreDatas = null;
  252. var arDatas = new Array();
  253. var rowIndex = 0;
  254. var left = 10;
  255. var groupContainer = arIsGroupContainer[pGroupIndex]; // 컨테이너 위치
  256. var top = arGroupTop[pGroupIndex]; //기존에 각 그룹별 시작 위치
  257. var isContinuous = false; // 이전 척도연속 여부
  258. var pollHeight; //맨마지막 Row를 찍을때 시작위치
  259. var grupHeight; //그룹의 크기를 정한다.
  260. grupHeight = parseInt(groups.attribute("height"), 10);
  261. var totDataCnt = 0;
  262. for (var i = 1; i <= nodeList.length; i ++ ) {
  263. var xPath = "/root/main/qestlist[" + i + "]";
  264. var qestseqno= model.getValue(xPath + "/qestseqno");
  265. // 설문 문항 출력
  266. if (qestseqno != pre_qestseqno) {
  267. if( i != 1) {
  268. isContinuous = isIdentical(arPreDatas, arDatas);
  269. if(poll != undefined && poll != null) {
  270. top += parseInt(poll.attribute("height") ,10);
  271. if (!isContinuous) {
  272. top += 10;
  273. } // end if
  274. } // end if
  275. poll = createPoll(groupContainer, arDatas, "/root/value", left, top, !isContinuous);
  276. // Container 크기를 자동으로 늘리기
  277. if (top > grupHeight) {
  278. grupHeight = top;
  279. }
  280. }
  281. arPreDatas = arDatas;
  282. pre_qestseqno = qestseqno;
  283. arDatas = new Array();
  284. rowIndex = 0;
  285. isContinuous = false;
  286. totDataCnt++
  287. } // end i
  288. if(poll != undefined) {
  289. pollHeight = parseInt(poll.attribute("height"));
  290. }
  291. var obj = new Object();
  292. for(var j = 0; j < columns.length; j ++) {
  293. obj[columns[j]] = model.getValue(xPath + "/" + columns[j]);
  294. } // end for
  295. arDatas[rowIndex] = obj;
  296. rowIndex ++;
  297. } // end for
  298. // 맨 마지막 설문문항 찍기
  299. if (totDataCnt == 1 && arDatas.length >0 ) {
  300. top += 10
  301. poll = createPoll(groupContainer, arDatas, "/root/value", left, top, true);
  302. }else if (totDataCnt > 1 && arDatas.length >0 ) {
  303. top = top + parseInt(pollHeight ,10);
  304. var poll = createPoll(groupContainer, arDatas, "/root/value", left, top, false);
  305. if (top > grupHeight) {
  306. grupHeight = top;
  307. }
  308. }
  309. if ( grupHeight > parseInt(groups.attribute("height"), 10) ) {
  310. groups.attribute("height") = grupHeight + 32 + 20; // 마지막으로 Container 크기를 늘린다.
  311. }
  312. arDatas = null;
  313. arPreDatas = null;
  314. }
  315. model.refresh();
  316. arIsGroupClick[pGroupIndex] = "1"; // 한번 읽은 그룹은 다음에 읽지 않게 표시
  317. columns = null;
  318. }
  319. }
  320. function fSaveMode() {
  321. var answprsncnt = model.getValue("/root/hidden/answprsncnt");
  322. var stintrgtnopl = model.getValue("/root/hidden/stintrgtnopl");
  323. var itemcount = model.getValue("/root/hidden/itemcount");
  324. var cdid = model.getValue("/root/main/stinuser/stintrgtflagcd");
  325. var trgtid = model.getValue("/root/main/stinuser/pidanduserid");
  326. var stintrgtflagcd = model.getValue("/root/main/stinuser/stintrgtflagcd");
  327. var qestrspsyn = "";
  328. var savecount = 0;
  329. var itemsrch = 0;
  330. var srchcnt = 0;
  331. for (var i = 1; i <= itemcount; i++) {
  332. var qestitemgrupseqno = model.getValue("/root/value/row"+i+"/qestitemgrupseqno");
  333. var qestseqno = model.getValue("/root/value/row"+i+"/qestseqno");
  334. var qestanswno = model.getValue("/root/value/row"+i+"/qestanswno");
  335. var descinptcnts = model.getValue("/root/value/row"+i+"/descinptcnts");
  336. var descinptaddcnts = model.getValue("/root/value/row"+i+"/descinptaddcnts");
  337. var itemkindcd = model.getValue("/root/value/row"+i+"/itemkindcd");
  338. var qestrspsyn = model.getValue("/root/value/row"+i+"/qestrspsyn");
  339. var qestmltlanswno = model.getValue("/root/value/row"+i+"/qestmltlanswno");
  340. var answno_count = model.getValue("/root/value/row"+i+"/qestmltlanswno_count");
  341. if (itemkindcd == "2") {
  342. if (qestmltlanswno == "") {
  343. messageBox( i + " 번째 설문 답변이 입력되지", "E007");
  344. qestrspsyn = "N";
  345. qestmltlanswno = "99";
  346. // model.removeNodeset("/root/send/savedata");
  347. // model.removeNodeset("/root/temp/sendgrd");
  348. // break;
  349. } else {
  350. qestrspsyn = "Y";
  351. }
  352. } else if (itemkindcd == "4" || itemkindcd == "5") {
  353. if (descinptcnts == "") {
  354. messageBox( i + " 번째 설문 답변이 입력되지", "E007");
  355. qestrspsyn = "N";
  356. descinptcnts = "99";
  357. // model.removeNodeset("/root/send/savedata");
  358. // model.removeNodeset("/root/temp/sendgrd");
  359. // break;
  360. } else {
  361. qestrspsyn = "Y";
  362. }
  363. } else if (itemkindcd == "1" || itemkindcd == "6" || itemkindcd == "7" || itemkindcd == "8" || itemkindcd == "10"){
  364. if (qestanswno == "") {
  365. messageBox( i + " 번째 설문 답변이 입력되지", "E007");
  366. qestrspsyn = "N";
  367. qestanswno = "99";
  368. // model.removeNodeset("/root/send/savedata");
  369. // model.removeNodeset("/root/temp/sendgrd");
  370. // break;
  371. } else {
  372. qestrspsyn = "Y";
  373. }
  374. }
  375. // 입력하기 위해 그리드에 addRow
  376. grd_sendgrd.addRow(false);
  377. model.setValue("/root/temp/sendgrd["+i+"]/qestitemgrupseqno", qestitemgrupseqno);
  378. model.setValue("/root/temp/sendgrd["+i+"]/qestseqno", qestseqno);
  379. model.setValue("/root/temp/sendgrd["+i+"]/qestanswno", qestanswno);
  380. model.setValue("/root/temp/sendgrd["+i+"]/qestmltlanswno", qestmltlanswno);
  381. model.setValue("/root/temp/sendgrd["+i+"]/qestrspsyn", qestrspsyn);
  382. model.setValue("/root/temp/sendgrd["+i+"]/descinptcnts", descinptcnts);
  383. model.setValue("/root/temp/sendgrd["+i+"]/descinptaddcnts", descinptaddcnts);
  384. model.setValue("/root/temp/sendgrd["+i+"]/qestrspsyn", qestrspsyn);
  385. model.setValue("/root/temp/sendgrd["+i+"]/stintrgtflagcd", model.getValue("/root/main/stinuser/stintrgtflagcd"));
  386. if (stintrgtflagcd == "1" || stintrgtflagcd == "2" || stintrgtflagcd == "3") {
  387. model.setValue("/root/temp/sendgrd["+i+"]/pid", model.getValue("/root/main/stinuser/pidanduserid"));
  388. } else {
  389. model.setValue("/root/temp/sendgrd["+i+"]/userid", model.getValue("/root/main/stinuser/pidanduserid"));
  390. }
  391. savecount++;
  392. if (itemkindcd == "3") {
  393. for (var j=0; j<answno_count; j++) {
  394. var mltlanswno = model.getValue("/root/value/row"+i+"/qestmltlanswno"+j);
  395. if (mltlanswno != "") {
  396. if (j == 0) {
  397. model.setValue("/root/temp/sendgrd["+i+"]/qestmltlanswno", model.getValue("/root/value/row"+i+"/qestmltlanswno"+j));
  398. } else {
  399. model.setValue("/root/temp/sendgrd["+i+"]/qestmltlanswno", model.getValue("/root/temp/sendgrd["+i+"]/qestmltlanswno") + "," + model.getValue("/root/value/row"+i+"/qestmltlanswno"+j));
  400. }
  401. model.setValue("/root/temp/sendgrd["+i+"]/qestrspsyn", "Y");
  402. } else {
  403. messageBox(i +" 번 문항의 순위 선택이 입력되지", "E007");
  404. model.setValue("/root/temp/sendgrd["+i+"]/qestrspsyn", "N");
  405. break;
  406. }
  407. }
  408. itemsrch = i;
  409. srchcnt = answno_count;
  410. }
  411. }
  412. // 실제 저장되는 부분
  413. if (savecount == itemcount) {
  414. var rtn = messageBox("이대로 설문지 답변 입력을", "Q002");
  415. if (rtn == "6") {
  416. model.makeNode("/root/send/savedata");
  417. model.makeNode("/root/send/savedata/sendgrd");
  418. copyNodesetType("/root/send/savedata","/root/hidden");
  419. model.makeValue("/root/send/savedata/sendgrd", grd_sendgrd.getUpdateData());
  420. submit("TXCIT01301");
  421. var rtn2 = messageBox("다른 사용자로", "Q003");
  422. if (rtn2 != 6) {
  423. window.close();
  424. } else {
  425. // 연속 입력시 초기화
  426. model.removeNodeset("/root/send/savedata");
  427. model.removeNodeset("/root/temp/sendgrd");
  428. model.setValue("/root/main/stinuser/pidanduserid", "");
  429. for (var i = 1; i <= itemcount; i++) {
  430. model.setValue("/root/value/row"+i+"/qestanswno", "");
  431. model.setValue("/root/value/row"+i+"/qestmltlanswno", "");
  432. model.setValue("/root/value/row"+i+"/descinptcnts", "");
  433. model.setValue("/root/value/row"+i+"/descinptaddcnts", "");
  434. // 순위 선택일때만 나타다는 인스턴스때문에 이런 작업을 수행 필요한 값들은 입력시에 얻어옴.
  435. if (itemsrch != 0) {
  436. for (var k =0; k < srchcnt; k++) {
  437. var mltlanswno = model.getValue("/root/value/row"+itemsrch+"/qestmltlanswno"+k);
  438. if (mltlanswno != "") {
  439. model.setValue("/root/value/row"+itemsrch+"/qestmltlanswno"+k, "");
  440. } else {
  441. break;
  442. }
  443. }
  444. }
  445. }
  446. }
  447. } else {
  448. // 답변입력 초기화시
  449. model.removeNodeset("/root/send/savedata");
  450. model.removeNodeset("/root/temp/sendgrd");
  451. }
  452. }
  453. grd_sendgrd.rebuild();
  454. model.refresh();
  455. // else if (answprsncnt >= stintrgtnopl) {
  456. // messageBox("답변자가 초과되었기 때문에 더이상 입력", "E001");
  457. // window.close();
  458. // }
  459. }
  460. ]]>
  461. </script>
  462. </xhtml:head>
  463. <xhtml:body pagewidth="860" pageheight="780" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  464. <switch id="groups" style="left:5px; top:70px; width:800px; height:700px; border-width:1px; border-style:solid; "/>
  465. <group id="group1" style="left:5px; top:25px; width:800px; height:40px; ">
  466. <line id="line2" class="line_1" style="x1:0px; y1:5px; x2:800px; y2:5px; "/>
  467. <line id="line6" class="line_3" style="x1:0px; y1:32px; x2:800px; y2:32px; "/>
  468. <caption id="caption1" class="cell_1" style="left:0px; top:10px; width:70px; height:23px; text-align:center; ">설 문 자</caption>
  469. <select1 id="cmb_stintrgtflagcd" ref="/root/main/stinuser/stintrgtflagcd" visibility="hidden" appearance="minimal" style="left:263px; top:11px; width:60px; height:19px; ">
  470. <choices>
  471. <itemset nodeset="/root/init/C0109list/C0109">
  472. <label ref="cdnm"/>
  473. <value ref="cdid"/>
  474. </itemset>
  475. </choices>
  476. </select1>
  477. <input id="ipt_user" ref="/root/main/stinuser/pidanduserid" class="input_essential" style="left:71px; top:11px; width:80px; height:19px; "/>
  478. <caption id="caption2" class="cell_1" style="left:351px; top:11px; width:75px; height:19px; text-align:center; ">설 문 지</caption>
  479. <button id="button2" class="btn4_letter2" style="left:744px; top:10px; width:56px; height:22px; ">
  480. <caption>취소</caption>
  481. <close ev:event="DOMActivate"/>
  482. </button>
  483. <button id="button3" class="btn4_letter2" style="left:686px; top:10px; width:56px; height:22px; ">
  484. <caption>저장</caption>
  485. <script type="javascript" ev:event="DOMActivate">
  486. <![CDATA[
  487. var pidanduserid = model.getValue("/root/main/stinuser/pidanduserid");
  488. if (pidanduserid != "") {
  489. fSaveMode();
  490. } else {
  491. messageBox("설문지 일련번호를","C001");
  492. model.setFocus("ipt_user");
  493. }
  494. ]]>
  495. </script>
  496. </button>
  497. <button id="button1" class="btn1_letter4" style="left:545px; top:10px; width:56px; height:22px; ">
  498. <caption>설문조회</caption>
  499. <script type="javascript" ev:event="DOMActivate">
  500. <![CDATA[
  501. fSearch();
  502. ]]>
  503. </script>
  504. </button>
  505. <input id="input1" ref="/root/send/qpaprseqno" class="input_essential" style="left:428px; top:11px; width:115px; height:19px; "/>
  506. <input id="input2" ref="/root/main/stinuser/pidandusernm" class="input_essential" style="left:153px; top:11px; width:105px; height:19px; "/>
  507. </group>
  508. <datagrid id="grd_sendgrd" nodeset="/root/temp/sendgrd" visibility="hidden" caption="qestitemgrupseqno^qestseqno^stintrgtflagcd^pid^homepgid^userid^emailaddr^connipaddr^qestanswno^qestmltlanswno^divpnt^descinptcnts^descinptaddcnts^qestrspsyn" colsep="^" colwidth="100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:15px; top:565px; width:785px; height:140px; ">
  509. <col ref="qestitemgrupseqno"/>
  510. <col ref="qestseqno"/>
  511. <col ref="stintrgtflagcd"/>
  512. <col ref="pid"/>
  513. <col ref="homepgid"/>
  514. <col ref="userid"/>
  515. <col ref="emailaddr"/>
  516. <col ref="connipaddr"/>
  517. <col ref="qestanswno"/>
  518. <col ref="qestmltlanswno"/>
  519. <col ref="divpnt"/>
  520. <col ref="descinptcnts"/>
  521. <col ref="descinptaddcnts"/>
  522. <col ref="qestrspsyn"/>
  523. </datagrid>
  524. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">만족도 설문입력</caption>
  525. </xhtml:body>
  526. </xhtml:html>