SPCIT01900_만족도입력정보.xrw 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SPCIT01900_만족도입력정보
  4. * Summary : 만족도입력정보
  5. * Programmer : 황현석
  6. * Date Written : 2010.12.08
  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. <main>
  18. <title>
  19. <stinseqno/>
  20. <stintitlcnts/>
  21. <qpaprseqno/>
  22. <qpaprtitlcnts/>
  23. </title>
  24. <rsltlist>
  25. <row/>
  26. <key/>
  27. </rsltlist>
  28. <execlist>
  29. <answprsnseqno/>
  30. <stintrgtflagcd/>
  31. <stintrgtid/>
  32. <qestseqno/>
  33. <emaladdr/>
  34. <lists/>
  35. </execlist>
  36. </main>
  37. <send>
  38. <qestprvw>
  39. <qpaprseqno/>
  40. <stinseqno/>
  41. <mode>B</mode>
  42. </qestprvw>
  43. </send>
  44. <hidden>
  45. <sendgrd>
  46. <stinseqno/>
  47. <qpaprseqno/>
  48. <qestitemgrupseqno/>
  49. <answprsnseqno/>
  50. <qestseqno/>
  51. <stintrgtflagcd/>
  52. <pid/>
  53. <homepgid/>
  54. <userid/>
  55. <emailaddr/>
  56. <qestanswno/>
  57. <qestmltlanswno/>
  58. <descinptcnts/>
  59. <descinptaddcnts/>
  60. <qestrspsyn/>
  61. <baseqestgrupyn/>
  62. </sendgrd>
  63. <grupgrd>
  64. <stinseqno/>
  65. <qpaprseqno/>
  66. <answprsnseqno/>
  67. </grupgrd>
  68. </hidden>
  69. <temp>
  70. <rsltlist/>
  71. <result/>
  72. </temp>
  73. </root>
  74. </instance>
  75. <submission id="TRCIT01801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/qestprvw" resultref="/root/main/execlist"/>
  76. <submission id="TRCIT01901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/qestprvw" resultref="/root/temp/rsltlist"/>
  77. <submission id="TXCIT01901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/temp/result"/>
  78. </model>
  79. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  80. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  81. <script type="javascript" ev:event="xforms-ready">
  82. <![CDATA[
  83. // 부모창의 설문지 일련번호를 가져온다.
  84. var qpaprseqno = opener.window.javascript.getParameter("qpaprseqno");
  85. model.setValue("/root/main/title/qpaprseqno", qpaprseqno);
  86. model.setValue("/root/send/qestprvw/qpaprseqno", qpaprseqno);
  87. var stinseqno = opener.window.javascript.getParameter("stinseqno");
  88. model.setValue("/root/main/title/stinseqno", stinseqno);
  89. model.setValue("/root/send/qestprvw/stinseqno", stinseqno);
  90. var qpaprtitlcnts = opener.window.javascript.getParameter("qpaprtitlcnts");
  91. model.setValue("/root/main/title/qpaprtitlcnts", qpaprtitlcnts);
  92. var stintitlcnts = opener.window.javascript.getParameter("stintitlcnts");
  93. model.setValue("/root/main/title/stintitlcnts", stintitlcnts);
  94. model.removeNodeset("/root/hidden/sendgrd");
  95. model.removeNodeset("/root/hidden/grupgrd");
  96. fGetNResultRef();
  97. model.refresh();
  98. ]]>
  99. </script>
  100. <script type="javascript">
  101. <![CDATA[
  102. function fGetNResultRef() {
  103. submit("TRCIT01901", false);
  104. var gridCaption = model.getValue("/root/temp/rsltlist/header/caption");
  105. if(gridCaption == "") return;
  106. //ref 정보
  107. var gridColRef = model.getValue("/root/temp/rsltlist/header/colref");
  108. var gridColRefArray = gridColRef.split("^");
  109. var gridColType = model.getValue("/root/temp/rsltlist/header/type");
  110. var gridColTypeArray = gridColType.split("^");
  111. for( var i = 0; i < gridColRefArray.length; i++ ) {
  112. datagrid1.addColumn("ref:" + gridColRefArray[i] + "; type:"+gridColTypeArray[i]+"; ", false);
  113. datagrid1.colWidth(i+1) = 90;
  114. }
  115. datagrid1.caption = gridCaption;
  116. var node = instance1.selectSingleNode("/root/main");
  117. node.replaceChild(instance1.root.temp.rsltlist, instance1.root.main.rsltlist);
  118. datagrid1.rowheight(0) = 30;
  119. datagrid1.colAttribute(3, "imemode") = "disabled";
  120. // 부모창에서 넘어온 대상자구분 코드
  121. var stintrgtflagcd = opener.window.javascript.getParameter("stintrgtflagcd");
  122. model.setValue("/root/main/rsltlist/row/stintrgtflagcd", stintrgtflagcd);
  123. datagrid1.rebuild();
  124. }
  125. function fSaveMode() {
  126. var chk = model.getValue("/root/main/rsltlist/header/colrefarray");
  127. var chkArray = chk.split("^");
  128. var qestCount = chkArray.length-1;
  129. var rowCount = datagrid1.rows-1;
  130. var stinseqno = model.getValue("/root/main/title/stinseqno");
  131. var qpaprseqno = model.getValue("/root/main/title/qpaprseqno");
  132. var answprsnseqno = eval(model.getValue("/root/main/rsltlist/key/answprsnseqno"));
  133. var baseqestgrupyn = "";
  134. var stintrgtflagcd = "";
  135. var pid = "";
  136. var userid = "";
  137. var rows = "";
  138. var sColSep = "▦";
  139. var sRowSep = "▩";
  140. var send_data1 = "m" + sColSep + "stinseqno" + sColSep + "qpaprseqno" + sColSep + "answprsnseqno" + sRowSep; //타이틀 map file 등에서 사용
  141. var send_data2 = "m" + sColSep + "stinseqno" + sColSep + "qpaprseqno" + sColSep + "qestitemgrupseqno" + sColSep + "answprsnseqno" +
  142. sColSep + "qestseqno" + sColSep + "pid" + sColSep + "userid" + sColSep + "stintrgtflagcd" + sColSep + "descinptcnts" + sColSep + "baseqestgrupyn" +
  143. sColSep + "qestanswno" + sColSep + "qestmltlanswno" + sColSep + "qestrspsyn" + sRowSep; //타이틀 map file 등에서 사용
  144. for (var i=0; i < rowCount; i++) { // row 개수만큼
  145. stintrgtflagcd = datagrid1.valueMatrix((i+1), datagrid1.colRef("stintrgtflagcd"));
  146. send_data1 += "m" + sColSep + stinseqno + sColSep + qpaprseqno + sColSep + (answprsnseqno+i) + sRowSep;
  147. for (var k=0; k < qestCount; k++) { // 문항 개수만큼
  148. var qestseqno = datagrid3.valueMatrix((k+1), datagrid3.colRef("qestseqno"));
  149. var qestitemgrupseqno = datagrid3.valueMatrix((k+1), datagrid3.colRef("qestitemgrupseqno"));
  150. var itemkindcd = datagrid3.valueMatrix((k+1), datagrid3.colRef("itemkindcd"));
  151. var descinptcnts = datagrid1.valueMatrix((i+1), datagrid1.colRef("descinptcnts"+k));
  152. var qestanswno = datagrid1.valueMatrix((i+1), datagrid1.colRef("qestanswno"+k));
  153. var qestmltlanswno = datagrid1.valueMatrix((i+1), datagrid1.colRef("qestmltlanswno"+k));
  154. // 답변자 id 설정
  155. if (stintrgtflagcd == "1" || stintrgtflagcd == "2" || stintrgtflagcd == "3") {
  156. pid = datagrid1.valueMatrix((i+1), datagrid1.colRef("stintrgtid"));
  157. } else {
  158. userid = datagrid1.valueMatrix((i+1), datagrid1.colRef("stintrgtid"));
  159. }
  160. if (qestitemgrupseqno == 1) {
  161. baseqestgrupyn = "Y";
  162. } else {
  163. baseqestgrupyn = "N";
  164. }
  165. if (itemkindcd == "1" || itemkindcd == "6" || itemkindcd == "7" || itemkindcd == "8" || itemkindcd == "10") {
  166. if (qestanswno == "" || qestanswno == "0") {
  167. qestanswno = "99";
  168. qestrspsyn = "N";
  169. } else {
  170. qestrspsyn = "Y";
  171. }
  172. } else if (itemkindcd == "2") {
  173. if (qestmltlanswno == "" || qestmltlanswno == "0") {
  174. qestmltlanswno = "99";
  175. qestrspsyn = "N";
  176. } else {
  177. qestrspsyn = "Y";
  178. }
  179. } else if (itemkindcd == "3") {
  180. if (qestmltlanswno == "" || qestmltlanswno == "0") {
  181. qestmltlanswno = "99:99";
  182. qestrspsyn = "N";
  183. } else {
  184. qestrspsyn = "Y";
  185. }
  186. } else {
  187. if (descinptcnts == "" || descinptcnts == "0") {
  188. qestanswno = "99";
  189. qestrspsyn = "N";
  190. } else {
  191. qestanswno = "1";
  192. qestrspsyn = "Y";
  193. }
  194. }
  195. send_data2 += "m" + sColSep + stinseqno + sColSep + qpaprseqno + sColSep + qestitemgrupseqno + sColSep + (answprsnseqno+i) +
  196. sColSep + qestseqno + sColSep + pid + sColSep + userid + sColSep + stintrgtflagcd + sColSep + descinptcnts + sColSep + baseqestgrupyn +
  197. sColSep + qestanswno + sColSep + qestmltlanswno + sColSep + qestrspsyn + sRowSep;
  198. }
  199. }
  200. model.makeNode("/root/send/savedata");
  201. model.makeValue("/root/send/savedata/grupgrd", send_data1);
  202. model.makeValue("/root/send/savedata/sendgrd",send_data2);
  203. if (submit("TXCIT01901")) {
  204. messageBox("만족도 답변정보 입력이","I002");
  205. window.close();
  206. }
  207. model.removeNodeset("/root/hidden/sendgrd");
  208. model.removeNodeset("/root/send/savedata");
  209. model.refresh();
  210. }
  211. ]]>
  212. </script>
  213. </xhtml:head>
  214. <xhtml:body pagewidth="1030" pageheight="620" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  215. <line id="line3" class="line_2" style="x1:0px; y1:22px; x2:1000; y2:22px; "/>
  216. <caption id="caption1" class="cell_1" style="left:0; top:0; width:100px; height:23; ">만족도 제목</caption>
  217. <input id="input1" ref="/root/main/title/stintitlcnts" disabled="true" inputMode="digits" style="left:103px; top:1px; width:896px; height:19px; "/>
  218. <line id="line4" class="line_3" style="x1:0px; y1:46px; x2:1000; y2:46px; "/>
  219. <caption id="caption2" class="cell_1" style="left:0px; top:24px; width:100px; height:23px; ">설문지</caption>
  220. <input id="input2" ref="/root/main/title/qpaprtitlcnts" disabled="true" style="left:103px; top:25px; width:797px; height:19px; "/>
  221. <button id="button1" class="btn2_letter7" style="left:903px; top:25px; width:97px; height:19px; ">
  222. <caption>설문지 미리보기</caption>
  223. <script type="javascript" ev:event="DOMActivate">
  224. <![CDATA[
  225. var qpaprseqno = model.getValue("/root/send/qestprvw/qpaprseqno");
  226. setParameter("qpaprseqno", qpaprseqno);
  227. modal("SPCIT00400");
  228. clearParameter("qpaprseqno");
  229. model.refresh();
  230. ]]>
  231. </script>
  232. </button>
  233. <button id="button2" class="btn2_letter4" style="left:869px; top:50px; width:64px; height:19px; ">
  234. <caption>샘플파일</caption>
  235. <script type="javascript" ev:event="DOMActivate">
  236. <![CDATA[
  237. var fileName = window.fileDialog("save", ",", false, "결과입력셈플", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  238. if (fileName != "")
  239. {
  240. datagrid1.saveExcel(fileName, "주소록", true, true, "", "", true);
  241. }
  242. ]]>
  243. </script>
  244. </button>
  245. <button id="button3" class="btn2_letter4" style="left:936px; top:50px; width:64px; height:19px; ">
  246. <caption>엑셀입력</caption>
  247. <script type="javascript" ev:event="DOMActivate">
  248. <![CDATA[
  249. var fileName = window.fileDialog("open", ",", false, "", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  250. datagrid1.loadExcel(fileName, 1, false);
  251. datagrid1.deleteRow(1);
  252. model.SetFocus("datagrid1");
  253. if (datagrid1.rows > 500) {
  254. messageBox("한번에 100 명이 넘는 답변은 저장 ", "E001");
  255. window.close();
  256. }
  257. model.refresh();
  258. ]]>
  259. </script>
  260. </button>
  261. <line id="line1" class="line_1" style="x1:0px; y1:72px; x2:1000px; y2:72px; "/>
  262. <datagrid id="datagrid1" nodeset="/root/main/rsltlist/row" backcoloralternate="transparent" colsep="^" dataheight="25" ellipsis="true" frozencols="3" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="30" rowsep="|" selectionmode="free" style="left:0px; top:77px; width:1000px; height:500px; "/>
  263. <group id="group1" style="left:0px; top:578px; width:1000; height:27px; ">
  264. <button id="button4" class="btn4_letter2" style="left:443px; top:5px; width:56px; height:22px; ">
  265. <caption>저장</caption>
  266. <script type="javascript" ev:event="DOMActivate">
  267. <![CDATA[
  268. var rowCount = datagrid1.rows-1;
  269. var saveCount = 0;
  270. // 사용자 아이디를 검색
  271. for (var j=0; j < rowCount; j++) {
  272. var stintrgtid = datagrid1.valueMatrix((j+1), datagrid1.colRef("stintrgtid"));
  273. if (stintrgtid == "") {
  274. messageBox("설문지 ID를", "C001");
  275. saveCount = 0;
  276. break;
  277. } else {
  278. saveCount++;
  279. }
  280. }
  281. if (saveCount > 0) {
  282. fSaveMode();
  283. }
  284. ]]>
  285. </script>
  286. </button>
  287. <button id="button5" class="btn4_letter2" style="left:502px; top:5px; width:56px; height:22px; ">
  288. <caption>취소</caption>
  289. <close ev:event="DOMActivate"/>
  290. </button>
  291. </group>
  292. <datagrid id="datagrid2" nodeset="/root/hidden/sendgrd" visibility="hidden" caption="stinseqno^qpaprseqno^qestitemgrupseqno^answprsnseqno^qestseqno^stintrgtflagcd^pid^homepgid^userid^emailaddr^qestanswno^qestmltlanswno^descinptcnts^descinptaddcnts^qestrspsyn^baseqestgrupyn" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:370px; width:955px; height:200px; ">
  293. <col ref="stinseqno"/>
  294. <col ref="qpaprseqno"/>
  295. <col ref="qestitemgrupseqno"/>
  296. <col ref="answprsnseqno"/>
  297. <col ref="qestseqno"/>
  298. <col ref="stintrgtflagcd"/>
  299. <col ref="pid"/>
  300. <col ref="homepgid"/>
  301. <col ref="userid"/>
  302. <col ref="emailaddr"/>
  303. <col ref="qestanswno"/>
  304. <col ref="qestmltlanswno"/>
  305. <col ref="descinptcnts"/>
  306. <col ref="descinptaddcnts"/>
  307. <col ref="qestrspsyn"/>
  308. <col ref="baseqestgrupyn"/>
  309. <col ref="rowcount"/>
  310. </datagrid>
  311. <datagrid id="datagrid3" nodeset="/root/main/rsltlist/key" visibility="hidden" caption="itemkindcd^qestitemgrupseqno^answprsnseqno^qestseqno" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:5px; top:215px; width:520px; height:100px; ">
  312. <col ref="itemkindcd"/>
  313. <col ref="qestitemgrupseqno"/>
  314. <col ref="answprsnseqno"/>
  315. <col ref="qestseqno"/>
  316. </datagrid>
  317. </xhtml:body>
  318. </xhtml:html>