SPCIT00200_만족도설문미리보기.xfdl 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPCIT00200" position="absolute 0 0 903 758" titletext="만족도 설문 미리보기" oninit="SPCIT00200_oninit" onload="SPCIT00200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Button id="button9" taborder="1" text="닫기" position="absolute 812 0 870 22" class="btn4" onclick="button9_onclick"/>
  8. </Layout>
  9. </Layouts>
  10. <Objects>
  11. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  12. <ColumnInfo>
  13. <Column id="qestseqno" type="STRING" size="256"/>
  14. <Column id="qestitemgrupseqno" type="STRING" size="256"/>
  15. <Column id="qestitemlrgcd" type="STRING" size="256"/>
  16. <Column id="qestitemmdlcd" type="STRING" size="256"/>
  17. </ColumnInfo>
  18. <Rows>
  19. <Row>
  20. <Col id="qestseqno"/>
  21. <Col id="qestitemgrupseqno"/>
  22. <Col id="qestitemlrgcd"/>
  23. <Col id="qestitemmdlcd"/>
  24. </Row>
  25. </Rows>
  26. </Dataset>
  27. <Dataset id="ds_main_qestlist" firefirstcount="0" firenextcount="0" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  28. <ColumnInfo>
  29. <Column id="qestitemgrupseqno" type="STRING" size="256"/>
  30. <Column id="qestitemgrupnm" type="STRING" size="256"/>
  31. <Column id="qestitemgrupdesc" type="STRING" size="256"/>
  32. <Column id="qestuseyn" type="STRING" size="256"/>
  33. <Column id="colgstinqestyn" type="STRING" size="256"/>
  34. <Column id="colgstinqestseqno" type="STRING" size="256"/>
  35. <Column id="qestseqno" type="STRING" size="256"/>
  36. <Column id="qpaprsortseq" type="STRING" size="256"/>
  37. <Column id="itemkindcd" type="STRING" size="256"/>
  38. <Column id="qestitemanswcnt" type="STRING" size="256"/>
  39. <Column id="qestitemanswchoicolcnt" type="STRING" size="256"/>
  40. <Column id="qestcnts" type="STRING" size="256"/>
  41. <Column id="essnanswcnt" type="STRING" size="256"/>
  42. <Column id="answseqno" type="STRING" size="256"/>
  43. <Column id="qestitemanswcnts" type="STRING" size="256"/>
  44. <Column id="divpnt" type="STRING" size="256"/>
  45. <Column id="answaddcnts" type="STRING" size="256"/>
  46. <Column id="figrinptyn" type="STRING" size="256"/>
  47. <Column id="addinptyn" type="STRING" size="256"/>
  48. <Column id="addflgrinptyn" type="STRING" size="256"/>
  49. <Column id="essninptyn" type="STRING" size="256"/>
  50. <Column id="norpaddyn" type="STRING" size="256"/>
  51. <Column id="nextqestseqno" type="STRING" size="256"/>
  52. <Column id="descinptyn" type="STRING" size="256"/>
  53. </ColumnInfo>
  54. </Dataset>
  55. </Objects>
  56. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  57. * System Name :
  58. * Job Name :
  59. * Creator :
  60. * Make Date : 2016-05-24
  61. * Description :
  62. *---------------------------------------------------------------------------------------
  63. * Modify Date Modifier Modify Description
  64. *---------------------------------------------------------------------------------------
  65. * 2016-05-24 Live Converter TF->XP
  66. *
  67. *---------------------------------------------------------------------------------------
  68. ****************************************************************************************/
  69. include "com_commonxp::comm_main.xjs";
  70. include "crm_cssaxp::CSZ001.xjs";
  71. var arGroupTop = new Array();
  72. var arIsGroupClick = new Array(); // 0: 이면 NonCheck 1이면 Check 해당 그룹을 클릭해서 불러왔는가는 체크
  73. var columns = new Array("qestitemgrupseqno", "qestitemgrupnm", "qestitemgrupdesc", "qestuseyn", "colgstinqestyn", "colgstinqestseqno", "qestseqno" , "qpaprsortseq",
  74. "itemkindcd", "qestitemanswcnt" ,"qestitemanswchoicolcnt" , "qestcnts", "essnanswcnt", "answseqno", "qestitemanswcnts", "divpnt",
  75. "answaddcnts", "figrinptyn", "addinptyn", "addflgrinptyn", "essninptyn", "norpaddyn", "nextqestseqno", "descinptyn");
  76. function SPCIT00200_oninit(obj:Form, e:InitEventInfo)
  77. {
  78. frmf_initForm(obj);
  79. }
  80. function cf_TRCIT00201(sSvcId, nErrorCode, sErrorMsg) {
  81. arErrorCode.push(sSvcId, nErrorCode);
  82. }
  83. function SPCIT00200_onload(obj:Form, e:LoadEventInfo)
  84. {
  85. // 부모창의 설문지 일련번호를 가져온다.
  86. var qestseqno = opener.frmf_getParameter("qestseqno");
  87. var qestitemgrupseqno = opener.frmf_getParameter("qestitemgrupseqno");
  88. var qestitemlrgcd = opener.frmf_getParameter("qestitemlrgcd");
  89. var qestitemmdlcd = opener.frmf_getParameter("qestitemmdlcd");
  90. ds_send.setColumn(0, "qestseqno", qestseqno);
  91. ds_send.setColumn(0, "qestitemgrupseqno", qestitemgrupseqno);
  92. ds_send.setColumn(0, "qestitemlrgcd", qestitemlrgcd);
  93. ds_send.setColumn(0, "qestitemmdlcd", qestitemmdlcd);
  94. // 설문지 미리보기을 조회 한다.
  95. var oParam = {};
  96. oParam.id = "TRCIT00201";
  97. oParam.service = "cssamngtapp.CssaMngt";
  98. oParam.method = "reqGetCsiQstrOneData";
  99. oParam.inds = "req=ds_send";
  100. oParam.outds = "ds_main_qestlist=qestlist";
  101. oParam.async = false;
  102. oParam.callback = "cf_TRCIT00201";
  103. tranf_submit(oParam);
  104. }
  105. function cf_TRCIT00201(sSvcId, nErrorCode, sErrorMsg)
  106. {
  107. if(nErrorCode < 0) return;
  108. ds_main_qestlist.updateColID("qestkindcd", "itemkindcd");
  109. ds_main_qestlist.updateColID("answchoiseqno", "answseqno");
  110. ds_main_qestlist.updateColID("qestitemanswchoicnts", "qestitemanswcnts");
  111. ds_main_qestlist.updateColID("answchoiaddcnts", "answaddcnts");
  112. ds_main_qestlist.updateColID("noinptyn", "figrinptyn");
  113. ds_main_qestlist.updateColID("addnoinptyn", "addflgrinptyn");
  114. ds_main_qestlist.updateColID("norpaddinptyn", "norpaddyn");
  115. dsf_makeValue(ds_main_qestlist, "qestuseyn", "string", "");
  116. dsf_makeValue(ds_main_qestlist, "colgstinqestyn", "string", "");
  117. dsf_makeValue(ds_main_qestlist, "colgstinqestseqno", "string", "");
  118. dsf_makeValue(ds_main_qestlist, "qestitemanswcnt", "string", "");
  119. setTab();
  120. }
  121. function setTab()
  122. {
  123. var objTab = new Tab("tab_main", 0, 0, 870, 890);
  124. this.addChild("tab_main", objTab);
  125. objTab.style.border = "0 none #808080ff,1 solid #808080ff,1 solid #808080ff,1 solid #808080ff";
  126. objTab.multiline = true;
  127. objTab.onchanged.addHandler(tab_mainIndexChangeEventInfo);
  128. objTab.show();
  129. for(var i = 0; i < ds_main_qestlist.rowcount; i++)
  130. {
  131. if(i == 0)
  132. {
  133. var tabBtnText = ds_main_qestlist.getColumn(i, "qestitemgrupnm");
  134. groupContainer = makeCase(objTab, "tabpage" + i, tabBtnText);
  135. var explOutput = makeOutput(groupContainer, ds_main_qestlist.getColumn(i, "qestitemgrupdesc"), "stt_title", 10, 20, 800, 20);
  136. arGroupTop[i] = 10 + explOutput.position.bottom;
  137. }
  138. }
  139. fnQestItemPrint(objTab.tabindex, ds_main_qestlist.getColumn(objTab.tabindex, "qestitemgrupseqno"));
  140. objTab.sendToBack();
  141. }
  142. function tab_mainIndexChangeEventInfo(obj:Tab, e:TabIndexChangeEventInfo)
  143. {
  144. fnQestItemPrint(e.postindex, ds_main_qestlist.getColumn(e.postindex, "qestitemgrupseqno"));
  145. }
  146. function fnQestItemPrint(pGroupIndex, pQestitemgrupseqno)
  147. {
  148. var poll;
  149. var pre_qestseqno = -1;
  150. var arPreDatas = null;
  151. var arDatas = new Array();
  152. var rowIndex = 0;
  153. var left = 10;
  154. var top = arGroupTop[0];
  155. var isContinuous = false; // 이전 척도연속 여부
  156. var pollHeight; //맨마지막 Row를 찍을때 시작위치
  157. var grupHeight = tab_main.position.height; //그룹의 크기를 정한다.
  158. var totDataCnt = 0; // DB에 qpaprsortseq 값이 저장되어 있는 않은 경우 예외처리를 위한 변수의 용도로도 쓰임
  159. var rowcount = ds_main_qestlist.rowcount;
  160. var tabPage = tab_main.components[tab_main.tabindex];
  161. for(var i = 0; i < rowcount; i++)
  162. {
  163. var qestseqno = ds_main_qestlist.getColumn(i, "qestseqno");
  164. // 설문 문항 출력
  165. if (qestseqno != pre_qestseqno)
  166. {
  167. if(i > 0)
  168. {
  169. isContinuous = isIdentical(arPreDatas, arDatas);
  170. if(!utlf_isNull(poll))
  171. {
  172. top += poll.position.height;
  173. if (!isContinuous)
  174. {
  175. top += 10;
  176. } // end if
  177. } // end if
  178. poll = createPoll(tabPage, arDatas, "ds_value", left, top, !isContinuous);
  179. // Container 크기를 자동으로 늘리기
  180. if (top > grupHeight)
  181. {
  182. grupHeight = top;
  183. }
  184. }
  185. arPreDatas = arDatas;
  186. pre_qestseqno = qestseqno;
  187. arDatas = new Array();
  188. rowIndex = 0;
  189. isContinuous = false;
  190. totDataCnt++;
  191. }
  192. if(!utlf_isNull(poll))
  193. {
  194. pollHeight = poll.position.height;
  195. }
  196. var obj = new Array();
  197. for(var j = 0; j < columns.length; j++)
  198. {
  199. obj[columns[j]] = utlf_transNullToEmpty(ds_main_qestlist.getColumn(i, columns[j]));
  200. if(columns[j] == "qpaprsortseq" && obj[columns[j]] == "") obj[columns[j]] = totDataCnt;
  201. }
  202. arDatas[rowIndex] = obj;
  203. rowIndex++;
  204. }
  205. // 맨 마지막 설문문항 찍기
  206. if (totDataCnt == 1 && arDatas.length > 0 )
  207. {
  208. top += qeustGap;
  209. poll = createPoll(tabPage, arDatas, "ds_value", left, top, true);
  210. }
  211. else if (totDataCnt > 1 && arDatas.length > 0 )
  212. {
  213. top = top + pollHeight;
  214. poll = createPoll(tabPage, arDatas, "ds_value", left, top, false);
  215. if (top > grupHeight)
  216. {
  217. grupHeight = top;
  218. }
  219. }
  220. tabPage.resetScroll();
  221. arDatas = null;
  222. arPreDatas = null;
  223. arIsGroupClick[tab_main.tabindex] = 1;
  224. }
  225. function button9_onclick(obj:Button, e:ClickEventInfo)
  226. {
  227. this.close();
  228. }
  229. ]]></Script>
  230. </Form>
  231. </FDL>