SPCIT01300_만족도결과입력.xrw 21 KB

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