SPCIT01301_만족도설문입력.xfdl 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPCIT01301" position="absolute 0 0 900 950" titletext="근골격계질환 증상조사" oninit="SPCIT01301_oninit" onload="SPCIT01301_onload">
  5. <Layouts>
  6. <Layout>
  7. <Grid position="absolute 15 565 800 705" id="grd_sendgrd" visible="false" binddataset="ds_grd_sendgrd">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="100"/>
  12. <Column size="100"/>
  13. <Column size="100"/>
  14. <Column size="100"/>
  15. <Column size="100"/>
  16. <Column size="100"/>
  17. <Column size="100"/>
  18. <Column size="100"/>
  19. <Column size="100"/>
  20. <Column size="100"/>
  21. <Column size="100"/>
  22. <Column size="100"/>
  23. <Column size="100"/>
  24. <Column size="100"/>
  25. <Column size="100"/>
  26. <Column size="100"/>
  27. <Column size="100"/>
  28. </Columns>
  29. <Rows>
  30. <Row size="24" band="head"/>
  31. <Row size="24"/>
  32. </Rows>
  33. <Band id="head">
  34. <Cell text="qestitemgrupseqno"/>
  35. <Cell col="1" text="qestseqno"/>
  36. <Cell col="2" text="stintrgtflagcd"/>
  37. <Cell col="3" text="pid"/>
  38. <Cell col="4" text="homepgid"/>
  39. <Cell col="5" text="userid"/>
  40. <Cell col="6" text="emailaddr"/>
  41. <Cell col="7" text="connipaddr"/>
  42. <Cell col="8" text="qestanswno"/>
  43. <Cell col="9" text="qestmltlanswno"/>
  44. <Cell col="10" text="divpnt"/>
  45. <Cell col="11" text="descinptcnts"/>
  46. <Cell col="12" text="descinptaddcnts"/>
  47. <Cell col="13" text="qestrspsyn"/>
  48. <Cell col="14"/>
  49. <Cell col="15"/>
  50. <Cell col="16"/>
  51. </Band>
  52. <Band id="body">
  53. <Cell text="bind:qestitemgrupseqno"/>
  54. <Cell col="1" text="bind:qestseqno"/>
  55. <Cell col="2" text="bind:stintrgtflagcd"/>
  56. <Cell col="3" text="bind:pid"/>
  57. <Cell col="4" text="bind:homepgid"/>
  58. <Cell col="5" text="bind:userid"/>
  59. <Cell col="6" text="bind:emailaddr"/>
  60. <Cell col="7" text="bind:connipaddr"/>
  61. <Cell col="8" text="bind:qestanswno"/>
  62. <Cell col="9" text="bind:qestmltlanswno"/>
  63. <Cell col="10" text="bind:divpnt"/>
  64. <Cell col="11" text="bind:descinptcnts"/>
  65. <Cell col="12" text="bind:descinptaddcnts"/>
  66. <Cell col="13" text="bind:qestrspsyn"/>
  67. <Cell col="14" text="bind:stinseqno"/>
  68. <Cell col="15" text="bind:qpaprseqno"/>
  69. <Cell col="16" text="bind:answprsnseqno"/>
  70. </Band>
  71. </Format>
  72. </Formats>
  73. </Grid>
  74. <Static text="★ 설문조사기간 :" position="absolute 576 4 691 24" id="caption3" style="color:#339966ff;font:Dotum,9,bold;"/>
  75. <MaskEdit readonly="true" position="absolute 691 4 771 23" align="align:center middle;" id="opt_startdd" mask="####-##-##" maskchar=" " type="string" trimtype="both" style="color:#339966ff;align:center middle;font:Dotum,9,bold;" visible="false"/>
  76. <Static text="~" position="absolute 774 4 789 24" id="caption4"/>
  77. <MaskEdit readonly="true" position="absolute 790 4 870 23" align="align:center middle;" id="opt_enddd" mask="####-##-##" maskchar=" " type="string" trimtype="both" style="color:#339966ff;align:center middle;font:Dotum,9,bold;" visible="false"/>
  78. <Static id="caption6" text="근골격계질환 증상조사" class="tit_1" position="absolute 0 0 189 24"/>
  79. <Shape id="line2" class="line_10" position="absolute 0 26 870 32"/>
  80. <Shape id="line6" linetype="horizontal" class="line_3" position="absolute 0 52 870 58"/>
  81. <Static id="caption1" text="설 문 자" class="cell_1" position="absolute 0 31 70 53"/>
  82. <Combo id="cmb_stintrgtflagcd" taborder="1" innerdataset="ds_init_cmb_stintrgtflagcd" codecolumn="cdid" datacolumn="cdnm" visible="false" position="absolute 178 32 223 51"/>
  83. <Edit id="ipt_user" taborder="2" class="input_essential" enable="false" position="absolute 71 32 136 52"/>
  84. <Static id="caption2" text="설 문 지" class="cell_1" visible="false" position="absolute 230 31 304 53"/>
  85. <Button id="btn_save" taborder="3" text="저장" class="btn4" position="absolute 757 31 813 53" onclick="btn_save_onclick"/>
  86. <Button id="button1" taborder="4" text="설문조회" class="btn1" visible="false" position="absolute 502 31 582 53" onclick="button1_onclick"/>
  87. <Edit id="input2" taborder="6" class="input_essential" enable="false" position="absolute 138 32 228 52"/>
  88. <Button id="btn_lastsave" taborder="7" text="확정저장" class="btn4" visible="false" position="absolute 583 31 663 53" onclick="btn_lastsave_onclick"/>
  89. <Button id="button2" taborder="8" text="닫기" class="btn3" position="absolute 814 31 870 53" onclick="button2_onclick"/>
  90. <Static id="savetxt" visible="false" position="absolute 644 32 754 52" style="color:#0000ffff;align:right middle;font:Dotum,9,bold;"/>
  91. <Combo id="combo1" taborder="9" position="absolute 306 32 499 52" index="-1" innerdataset="@ds_init_combolist" datacolumn="cdnm" codecolumn="cdid" visible="false" onitemchanged="combo1_onitemchanged"/>
  92. </Layout>
  93. </Layouts>
  94. <Objects>
  95. <Dataset id="ds_main_stinuser" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  96. <ColumnInfo>
  97. <Column id="stintrgtflagcd" type="STRING" size="256"/>
  98. <Column id="pidanduserid" type="STRING" size="256"/>
  99. <Column id="pidandusernm" type="STRING" size="256"/>
  100. <Column id="stinseqno" type="STRING" size="256"/>
  101. </ColumnInfo>
  102. <Rows>
  103. <Row>
  104. <Col id="stintrgtflagcd"/>
  105. <Col id="pidanduserid"/>
  106. <Col id="pidandusernm"/>
  107. <Col id="stinseqno"/>
  108. </Row>
  109. </Rows>
  110. </Dataset>
  111. <Dataset id="ds_init_combolist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  112. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  113. <ColumnInfo>
  114. <Column id="qpaprseqno" type="STRING" size="256"/>
  115. <Column id="stinseqno" type="STRING" size="256"/>
  116. <Column id="qestitemgrupseqno" type="STRING" size="256"/>
  117. <Column id="stinexecstartdd" type="STRING" size="256"/>
  118. <Column id="stinexecenddd" type="STRING" size="256"/>
  119. </ColumnInfo>
  120. <Rows>
  121. <Row>
  122. <Col id="qpaprseqno"/>
  123. <Col id="stinseqno"/>
  124. <Col id="qestitemgrupseqno"/>
  125. <Col id="stinexecstartdd"/>
  126. <Col id="stinexecenddd"/>
  127. </Row>
  128. </Rows>
  129. </Dataset>
  130. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  131. <ColumnInfo>
  132. <Column id="itemcount" type="STRING" size="256"/>
  133. <Column id="qpaprseqno" type="STRING" size="256"/>
  134. <Column id="stinseqno" type="STRING" size="256"/>
  135. <Column id="answprsncnt" type="STRING" size="256"/>
  136. <Column id="stintrgtnopl" type="STRING" size="256"/>
  137. <Column id="mode" type="STRING" size="256"/>
  138. <Column id="userid" type="STRING" size="256"/>
  139. </ColumnInfo>
  140. <Rows>
  141. <Row>
  142. <Col id="itemcount"/>
  143. <Col id="qpaprseqno"/>
  144. <Col id="stinseqno"/>
  145. <Col id="answprsncnt"/>
  146. <Col id="stintrgtnopl"/>
  147. <Col id="mode">A</Col>
  148. <Col id="userid"/>
  149. </Row>
  150. </Rows>
  151. </Dataset>
  152. <Dataset id="ds_send_csearch" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  153. <Dataset id="ds_tmp_qpaprinfo_getqpaprlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  154. <ColumnInfo>
  155. <Column id="stinseqno" type="STRING" size="256" sumtext="설문문항그룹일련번호"/>
  156. <Column id="qpaprseqno" type="STRING" size="256" sumtext="설문문항그룹이름"/>
  157. <Column id="stintrgtflagcd" type="STRING" size="256" sumtext="설문문항그룹설명"/>
  158. <Column id="stintrgtnopl" type="STRING" size="256" sumtext="설문사용여부"/>
  159. <Column id="itemcount" type="STRING" size="256" sumtext="종합만족도설문여부"/>
  160. <Column id="answprsncnt" type="STRING" size="256" sumtext="종합만족도설문일련번호"/>
  161. <Column id="tabcount" type="STRING" size="256" sumtext="종합만족도설문일련번호"/>
  162. <Column id="stinexecstartdd" type="STRING" size="256" sumtext="종합만족도설문일련번호"/>
  163. <Column id="stinexecenddd" type="STRING" size="256" sumtext="종합만족도설문일련번호"/>
  164. </ColumnInfo>
  165. </Dataset>
  166. <Dataset id="ds_main_qestlistGrp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  167. <Dataset id="ds_send_savesrch" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  168. <Dataset id="ds_main_qestlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  169. <Dataset id="ds_tmp_save_saveinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  170. <Dataset id="ds_tmp_sort_sortinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  171. <Dataset id="ds_temp_sendgrd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  172. <ColumnInfo>
  173. <Column id="qestitemgrupseqno" type="STRING" size="256"/>
  174. <Column id="qestseqno" type="STRING" size="256"/>
  175. <Column id="stintrgtflagcd" type="STRING" size="256"/>
  176. <Column id="pid" type="STRING" size="256"/>
  177. <Column id="homepgid" type="STRING" size="256"/>
  178. <Column id="userid" type="STRING" size="256"/>
  179. <Column id="emailaddr" type="STRING" size="256"/>
  180. <Column id="connipaddr" type="STRING" size="256"/>
  181. <Column id="qestanswno" type="STRING" size="256"/>
  182. <Column id="qestmltlanswno" type="STRING" size="256"/>
  183. <Column id="divpnt" type="STRING" size="256"/>
  184. <Column id="descinptcnts" type="STRING" size="256"/>
  185. <Column id="descinptaddcnts" type="STRING" size="256"/>
  186. <Column id="qestrspsyn" type="STRING" size="256"/>
  187. </ColumnInfo>
  188. </Dataset>
  189. </Objects>
  190. <Bind>
  191. <BindItem id="item0" compid="ipt_user" propid="value" datasetid="ds_main_stinuser" columnid="pidanduserid"/>
  192. <BindItem id="item1" compid="input2" propid="value" datasetid="ds_main_stinuser" columnid="pidandusernm"/>
  193. <BindItem id="item3" compid="opt_startdd" propid="value" datasetid="ds_send" columnid="stinexecstartdd"/>
  194. <BindItem id="item4" compid="opt_enddd" propid="value" datasetid="ds_send" columnid="stinexecenddd"/>
  195. </Bind>
  196. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  197. * System Name :
  198. * Job Name :
  199. * Creator :
  200. * Make Date : 2016-05-24
  201. * Description :
  202. *---------------------------------------------------------------------------------------
  203. * Modify Date Modifier Modify Description
  204. *---------------------------------------------------------------------------------------
  205. * 2016-05-24 Live Converter TF->XP
  206. *
  207. *---------------------------------------------------------------------------------------
  208. ****************************************************************************************/
  209. include "com_commonxp::comm_main.xjs";
  210. include "crm_cssaxp::CSZ001.xjs"
  211. var arErrorCode = new HashArray();
  212. var columns = new Array("qestitemgrupseqno", "qestitemgrupnm", "qestitemgrupdesc", "qestuseyn", "colgstinqestyn", "colgstinqestseqno", "qestseqno" , "qpaprsortseq",
  213. "itemkindcd", "qestitemanswcnt" ,"qestitemanswchoicolcnt" , "qestcnts", "essnanswcnt",
  214. "answseqno", "qestitemanswcnts", "divpnt", "answaddcnts", "figrinptyn", "addinptyn", "addflgrinptyn", "essninptyn", "norpaddyn", "nextqestseqno", "descinptyn");
  215. var clickflag = new Array();
  216. var groupseq = "";
  217. var arGroupTop = new Array(); //각각의 그룹에 시작할 위치를 미리 전역 배열에 넣어 놓는다.
  218. var arIsGroupClick = new Array(); // 0: 이면 NonCheck 1이면 Check 해당 그룹을 클릭해서 불러왔는가는 체크
  219. var arIsGroupContainer = new Array(); // 그룹 컨테이너
  220. function SPCIT01301_oninit(obj:Form, e:InitEventInfo)
  221. {
  222. frmf_initForm(obj);
  223. }
  224. function SPCIT01301_onload(obj:Form, e:LoadEventInfo)
  225. {
  226. ds_main_stinuser.setColumn(0, "pidanduserid", sysf_getUserInfo("userid"));
  227. ds_main_stinuser.setColumn(0, "pidandusernm", sysf_getUserInfo("usernm"));
  228. ds_hidden.setColumn(0, "userid" , sysf_getUserInfo("userid"));
  229. var cdgrupid = frmf_getMenuParam();
  230. dsf_makeValue(ds_send_csearch, "cdgrupid", "string",cdgrupid) ;
  231. // var oParam = {};
  232. // oParam.id = "TRCIT00406";
  233. // oParam.service = "cssamngtapp.CssaMngt";
  234. // oParam.method = "reqGetSelCIEIList";
  235. // oParam.inds = "req=ds_send_csearch";
  236. // oParam.outds = "ds_init_combolist=combolist";
  237. // oParam.async = false;
  238. // //oParam.callback = "cf_TRCIT00406";
  239. //
  240. // tranf_submit(oParam);
  241. combo1.index = 0;
  242. fSearch();
  243. }
  244. function InStr(strSearch, charSearchFor)
  245. {
  246. for (var i=0; i < strSearch.length; i++)
  247. {
  248. if (charSearchFor == Mid(strSearch, i, 1))
  249. {
  250. return i;
  251. }
  252. }
  253. return -1;
  254. }
  255. function Mid(str, start, len)
  256. {
  257. // Make sure start and len are within proper bounds
  258. if (start < 0 || len < 0) return "";
  259. var iEnd, iLen = String(str).length;
  260. if (start + len > iLen)
  261. iEnd = iLen;
  262. else
  263. iEnd = start + len;
  264. return String(str).substring(start,iEnd);
  265. }
  266. function fSearch()
  267. {
  268. var stinseqno = combo1.value;
  269. var tmp = combo1.text;
  270. var qpaprseqno = String(tmp).substr(0,InStr(tmp,'.'));
  271. ds_send.setColumn(0, "qpaprseqno", qpaprseqno);
  272. ds_send.setColumn(0, "stinseqno", stinseqno);
  273. var oParam = {};
  274. oParam.id = "TRCIT00403";
  275. oParam.service = "cssamngtapp.CssaClsMngt";
  276. oParam.method = "reqGetQpaprList";
  277. oParam.inds = "req=ds_send";
  278. oParam.outds = "ds_tmp_qpaprinfo_getqpaprlist=getqpaprlist";
  279. oParam.async = false;
  280. //oParam.callback = "cf_TRCIT00403";
  281. tranf_submit(oParam);
  282. var stincnt = ds_tmp_qpaprinfo_getqpaprlist.rowcount;
  283. btn_save.enable = true;
  284. if( stincnt < 1 )
  285. {
  286. sysf_messageBox("해당 설문은 아직 실시되지 않았습니다.", "I999");
  287. btn_save.enable = false;
  288. btn_lastsave.enable = false;
  289. caption3.visible = false;
  290. caption4.visible = false;
  291. return ;
  292. }
  293. var startdd = ds_tmp_qpaprinfo_getqpaprlist.getColumn(0, "stinexecstartdd");
  294. var enddd = ds_tmp_qpaprinfo_getqpaprlist.getColumn(0, "stinexecenddd");
  295. if( utlf_getCurrentDate() < startdd || utlf_getCurrentDate() > enddd )
  296. {
  297. sysf_messageBox("해당 설문조사기간이 아닙니다.", "I999");
  298. btn_save.enable = false;
  299. btn_lastsave.enable = false;
  300. }
  301. ds_send.setColumn(0, "stinexecstartdd", startdd);
  302. ds_send.setColumn(0, "stinexecenddd", enddd);
  303. var itemcount = ds_tmp_qpaprinfo_getqpaprlist.getColumn(0, "itemcount");
  304. ds_hidden.setColumn(0, "itemcount", itemcount);
  305. var stintrgtflagcd = ds_tmp_qpaprinfo_getqpaprlist.getColumn(0, "stintrgtflagcd");
  306. ds_main_stinuser.setColumn(0, "stintrgtflagcd", stintrgtflagcd);
  307. var answprsncnt = ds_tmp_qpaprinfo_getqpaprlist.getColumn(0, "answprsncnt");
  308. ds_hidden.setColumn(0, "answprsncnt", answprsncnt);
  309. var stintrgtnopl = ds_tmp_qpaprinfo_getqpaprlist.getColumn(0, "stintrgtnopl");
  310. ds_hidden.setColumn(0, "stintrgtnopl", stintrgtnopl);
  311. var tempqestitemgrupseqno = 0;
  312. var selectIndex = 0;
  313. // 설문지 미리보기(먼저 그룹을 조회함)을 조회 한다.
  314. var oParam = {};
  315. oParam.id = "TRCIT00402";
  316. oParam.service = "cssamngtapp.CssaMngt";
  317. oParam.method = "reqGetCsiQstrAllData2";
  318. oParam.inds = "req=ds_send";
  319. oParam.outds = "ds_main_qestlistGrp=qestlistGrp";
  320. oParam.async = false;
  321. oParam.callback = "cf_TRCIT00402";
  322. tranf_submit(oParam);
  323. fnQestItemPrint(selectIndex, qpaprseqno, tempqestitemgrupseqno);
  324. }
  325. function cf_TRCIT00402(sSvcId, nErrorCode, sErrorMsg)
  326. {
  327. if(nErrorCode < 0) return;
  328. setTab();
  329. }
  330. function setTab()
  331. {
  332. var objTab = new Tab("tab_main", 0, 60, 850, 870);
  333. this.addChild("tab_main", objTab);
  334. objTab.style.border = "0 none #808080ff,1 solid #808080ff,1 solid #808080ff,1 solid #808080ff";
  335. objTab.multiline = true;
  336. objTab.onchanged.addHandler(tab_mainIndexChangeEventInfo);
  337. objTab.show();
  338. var groupIndex = 0;
  339. for (var i = ds_main_qestlistGrp.rowcount-1; i >= 0; i--)
  340. {
  341. var tabBtnText = ds_main_qestlistGrp.getColumn(i, "qestitemgrupnm");
  342. groupContainer = makeCase(objTab, "tabpage" + i, tabBtnText);
  343. var explOutput = makeOutput(groupContainer, ds_main_qestlistGrp.getColumn(i, "qestitemgrupdesc"), "stt_title", 10, 20, 800, 20);
  344. arGroupTop[i] = 10 + explOutput.position.bottom;
  345. arIsGroupClick[groupIndex] = "0";
  346. groupIndex ++;
  347. }
  348. }
  349. function tab_mainIndexChangeEventInfo(obj:Tab, e:TabIndexChangeEventInfo)
  350. {
  351. fnQestItemPrint(e.postindex, ds_main_qestlistGrp.getColumn(e.postindex, "qestitemgrupseqno"));
  352. }
  353. function fnQestItemPrint(pGroupIndex, pQpaprseqno, pQestitemgrupseqno)
  354. {
  355. if( clickflag[pQestitemgrupseqno] == "N" )
  356. {
  357. groupseq = groupseq + "'" + pQestitemgrupseqno + "',";
  358. clickflag[pQestitemgrupseqno] = "Y";
  359. dsf_makeValue(ds_send_savesrch, "groupseq", "String" , groupseq );
  360. }
  361. if (arIsGroupClick[pGroupIndex] == "0")
  362. {
  363. ds_send.setColumn(0, "qpaprseqno", pQpaprseqno);
  364. ds_send.setColumn(0, "qestitemgrupseqno", pQestitemgrupseqno);
  365. // 설문지 그룹별 미리보기
  366. var oParam = {};
  367. oParam.id = "TRCIT00401";
  368. oParam.service = "cssamngtapp.CssaMngt";
  369. oParam.method = "reqGetCsiQstrAllData";
  370. oParam.inds = "req=ds_send";
  371. oParam.outds = "ds_=qestgruplist ds_main_qestlist=qestlist ds_=qestitemgrupseqno";
  372. oParam.async = false;
  373. oParam.callback = "cf_TRCIT00401";
  374. tranf_submit(oParam);
  375. if(arErrorCode.pop("TRCIT00401") > -1)
  376. {
  377. var poll;
  378. var pre_qestseqno = -1;
  379. var arPreDatas = null;
  380. var arDatas = new Array();
  381. var rowIndex = 0;
  382. var left = 10;
  383. var top = arGroupTop[0];
  384. var isContinuous = false; // 이전 척도연속 여부
  385. var pollHeight; //맨마지막 Row를 찍을때 시작위치
  386. var grupHeight = tab_main.position.height; //그룹의 크기를 정한다.
  387. var totDataCnt = 0;
  388. var rowcount = ds_main_qestlist.rowcount;
  389. var tabPage = tab_main.components[tab_main.tabindex];
  390. for(var i = 0; i < rowcount; i++)
  391. {
  392. var qestseqno = ds_main_qestlist.getColumn(i, "qestseqno");
  393. // 설문 문항 출력
  394. if (qestseqno != pre_qestseqno)
  395. {
  396. if(i > 0)
  397. {
  398. isContinuous = isIdentical(arPreDatas, arDatas);
  399. if(!utlf_isNull(poll))
  400. {
  401. top += poll.position.height;
  402. if (!isContinuous)
  403. {
  404. top += 10;
  405. } // end if
  406. } // end if
  407. poll = createPoll(tabPage, arDatas, "ds_value", left, top, !isContinuous);
  408. // Container 크기를 자동으로 늘리기
  409. if (top > grupHeight)
  410. {
  411. grupHeight = top;
  412. }
  413. }
  414. arPreDatas = arDatas;
  415. pre_qestseqno = qestseqno;
  416. arDatas = new Array();
  417. rowIndex = 0;
  418. isContinuous = false;
  419. totDataCnt++;
  420. }
  421. if(!utlf_isNull(poll))
  422. {
  423. pollHeight = poll.position.height;
  424. }
  425. var obj = new Array();
  426. for(var j = 0; j < columns.length; j++)
  427. {
  428. obj[columns[j]] = ds_main_qestlist.getColumn(i, columns[j]);
  429. }
  430. arDatas[rowIndex] = obj;
  431. rowIndex++;
  432. }
  433. // 맨 마지막 설문문항 찍기
  434. if (totDataCnt == 1 && arDatas.length > 0 )
  435. {
  436. top += qeustGap;
  437. poll = createPoll(tabPage, arDatas, "ds_value", left, top, true);
  438. }
  439. else if (totDataCnt > 1 && arDatas.length > 0 )
  440. {
  441. top = top + pollHeight;
  442. poll = createPoll(tabPage, arDatas, "ds_value", left, top, false);
  443. if (top > grupHeight)
  444. {
  445. grupHeight = top;
  446. }
  447. }
  448. tabPage.resetScroll();
  449. arDatas = null;
  450. arPreDatas = null;
  451. arIsGroupClick[tab_main.tabindex] = 1;
  452. var cnt = ds_main_qestlist.rowcount;
  453. var sort = "";
  454. var dsRef = "ds_value_row";
  455. for( var i = 0; i < cnt ; i++ )
  456. {
  457. sort = ds_main_qestlist.getColumn(i, "qpaprsortseq");
  458. if( ds_main_qestlist.getColumn(i, "qestseqno") == eval(dsRef+sort).getColumn(0, "qestseqno") )
  459. {
  460. if(!utlf_isNull(ds_main_qestlist.getColumn(i, "qestanswno")) || !utlf_isNull(ds_main_qestlist.getColumn(i, "descinptaddcnts"))
  461. || !utlf_isNull(ds_main_qestlist.getColumn(i, "descinptcnts")) || !utlf_isNull(ds_main_qestlist.getColumn(i, "qestmltlanswno")))
  462. {
  463. if( i == 0 )
  464. {
  465. ds_send_savesrch.setColumn(0, "userid", ds_main_stinuser.getColumn(0, "pidanduserid"));
  466. ds_send_savesrch.setColumn(0, "qpaprseqno", ds_send.getColumn(0, "qpaprseqno"));
  467. ds_tmp_save_saveinfo.clearData();
  468. var oParam = {};
  469. oParam.id = "TRCIT00404";
  470. oParam.service = "cssamngtapp.CssaMngt";
  471. oParam.method = "reqGetLastSaveYn";
  472. oParam.inds = "req=ds_";
  473. oParam.outds = "ds_=saveinfo";
  474. oParam.async = false;
  475. oParam.callback = "cf_TRCIT00404";
  476. tranf_submit(oParam);
  477. if(arErrorCode.pop("TRCIT00404") > -1)
  478. {
  479. if( ds_tmp_save_saveinfo.getColumn(0, "lastsaveyn") == "Y" )
  480. {
  481. savetxt.text = "【 확정저장 】";
  482. savetxt.style.color = "red";
  483. btn_save.enable = false;
  484. btn_lastsave.enable = false;
  485. }
  486. else
  487. {
  488. savetxt.text = "【 임시저장 】";
  489. savetxt.style.color = "blue";
  490. }
  491. }
  492. }
  493. eval(dsRef+sort).setColumn(0, "qestanswno", ds_main_qestlist.getColumn(i, "qestanswno"));
  494. eval(dsRef+sort).setColumn(0, "qestmltlanswno", ds_main_qestlist.getColumn(i, "qestmltlanswno"));
  495. eval(dsRef+sort).setColumn(0, "descinptaddcnts", ds_main_qestlist.getColumn(i, "descinptaddcnts"));
  496. eval(dsRef+sort).setColumn(0, "descinptcnts", ds_main_qestlist.getColumn(i, "descinptcnts"));
  497. }
  498. }
  499. }
  500. arIsGroupClick[pGroupIndex] = "1"; // 한번 읽은 그룹은 다음에 읽지 않게 표시
  501. columns = null;
  502. }
  503. }
  504. }
  505. function cf_TRCIT00401(sSvcId, nErrorCode, sErrorMsg)
  506. {
  507. if(nErrorCode < 0) return;
  508. arErrorCode.push(sSvcId, nErrorCode);
  509. }
  510. function cf_TRCIT00404(sSvcId, nErrorCode, sErrorMsg)
  511. {
  512. if(nErrorCode < 0) return;
  513. arErrorCode.push(sSvcId, nErrorCode);
  514. }
  515. function combo1_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  516. {
  517. fSearch();
  518. }
  519. function button1_onclick(obj:Button, e:ClickEventInfo)
  520. {
  521. fSearch();
  522. }
  523. function btn_lastsave_onclick(obj:Button, e:ClickEventInfo)
  524. {
  525. if( sysf_messageBox("확정 저장하시겠습니까? (저장후에는 변경불가합니다.)", "Q999") == 6 )
  526. {
  527. ds_send_savesrch.setColumn(0, "userid", ds_main_stinuser.getColumn(0, "pidanduserid"));
  528. ds_send_savesrch.setColumn(0, "qpaprseqno", ds_send.getColumn(0, "qpaprseqno"));
  529. var oParam = {};
  530. oParam.id = "TXCIT01303";
  531. oParam.service = "cssamngtapp.CssaMngt";
  532. oParam.method = "reqSetLastSaveYn";
  533. oParam.inds = "req=ds_send_savesrch";
  534. oParam.outds = "";
  535. oParam.async = false;
  536. oParam.callback = "cf_TXCIT01303";
  537. tranf_submit(oParam);
  538. if(arErrorCode.pop("TXCIT01303") > -1)
  539. {
  540. ds_send_savesrch.setColumn(0, "userid" , ds_main_stinuser.getColumn(0, "pidanduserid"));
  541. ds_send_savesrch.setColumn(0, "qpaprseqno" , ds_send.getColumn(0, "qpaprseqno"));
  542. ds_tmp_save_saveinfo.clearData();
  543. var oParam = {};
  544. oParam.id = "TRCIT00404";
  545. oParam.service = "cssamngtapp.CssaMngt";
  546. oParam.method = "reqGetLastSaveYn";
  547. oParam.inds = "req=ds_send_savesrch";
  548. oParam.outds = "ds_tmp_save_saveinfo=saveinfo";
  549. oParam.async = false;
  550. oParam.callback = "cf_TRCIT00404";
  551. tranf_submit(oParam);
  552. if(arErrorCode.pop("TRCIT00404") > -1)
  553. {
  554. if( ds_tmp_save_saveinfo.getColumn(0, "lastsaveyn") == "Y" )
  555. {
  556. savetxt.text = "【 확정저장 】";
  557. savetxt.style.color = "red";
  558. btn_save.enable = false;
  559. btn_lastsave.enable = false;
  560. }
  561. else
  562. {
  563. savetxt.text = "【 임시저장 】";
  564. savetxt.style.color = "blue";
  565. }
  566. }
  567. }
  568. }
  569. }
  570. function cf_TXCIT01303(sSvcId, nErrorCode, sErrorMsg)
  571. {
  572. if(nErrorCode < 0) return;
  573. arErrorCode.push(sSvcId, nErrorCode);
  574. }
  575. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  576. {
  577. var pidanduserid = ds_main_stinuser.getColumn(0, "pidanduserid");
  578. if (!utlf_isNull(pidanduserid))
  579. {
  580. fSaveMode();
  581. }
  582. else
  583. {
  584. sysf_messageBox("설문지 일련번호를","C001");
  585. ipt_user.setFocus();
  586. }
  587. }
  588. function fSaveMode()
  589. {
  590. var stinseqno = combo1.value;
  591. var tmp = combo1.text;
  592. var qpaprseqno = String(tmp).substr(0,InStr(tmp,'.'));
  593. ds_send.setColumn(0, "qpaprseqno", qpaprseqno);
  594. ds_send.setColumn(0, "stinseqno", stinseqno);
  595. ds_hidden.setColumn(0, "qpaprseqno", qpaprseqno);
  596. ds_hidden.setColumn(0, "stinseqno", stinseqno);
  597. var answprsncnt = ds_hidden.getColumn(0, "answprsncnt");
  598. var stintrgtnopl = ds_hidden.getColumn(0, "stintrgtnopl");
  599. var itemcount = ds_hidden.getColumn(0, "itemcount");
  600. var stinseqno = ds_send.getColumn(0, "stinseqno");
  601. var qpaprseqno = ds_send.getColumn(0, "qpaprseqno");
  602. var answprsnseqno = "1";
  603. var cdid = ds_main_stinuser.getColumn(0, "stintrgtflagcd");
  604. var trgtid = ds_main_stinuser.getColumn(0, "pidanduserid");
  605. var stintrgtflagcd = ds_main_stinuser.getColumn(0, "stintrgtflagcd");
  606. var qestrspsyn = "";
  607. var savecount = 0;
  608. var itemsrch = 0;
  609. var srchcnt = 0;
  610. var rn = "";
  611. var nodecnt = ds_main_qestlist.rowcount;
  612. ds_send_savesrch.setColumn(0, "userid", ds_main_stinuser.getColumn(0, "pidanduserid"));
  613. ds_send_savesrch.setColumn(0, "qpaprseqno", ds_send.getColumn(0, "qpaprseqno"));
  614. var groupseq = ds_send_savesrch.getColumn(0, "groupseq");
  615. var num = String(groupseq).length;
  616. if(String(groupseq).substring(num-1, num) == ",")
  617. {
  618. groupseq = String(groupseq).substring(0, num-1);
  619. ds_send_savesrch.setColumn(0, "groupseq" , groupseq );
  620. }
  621. ds_tmp_sort_sortinfo.clearData();
  622. var oParam = {};
  623. oParam.id = "TRCIT00405";
  624. oParam.service = "cssamngtapp.CssaMngt";
  625. oParam.method = "reqGetQpaprsortseq";
  626. oParam.inds = "req=ds_send_savesrch";
  627. oParam.outds = "ds_tmp_sort_sortinfo=sortinfo";
  628. oParam.async = false;
  629. //oParam.callback = "cf_TRCIT00405";
  630. tranf_submit(oParam);
  631. var cnt = ds_tmp_save_saveinfo.rowcount;
  632. var dsRef = "ds_value_row";
  633. for (var i = 0; i < cnt; i++)
  634. {
  635. rn = ds_tmp_save_saveinfo.getColumn(i, "qpaprsortseq");
  636. var qestitemgrupseqno = eval(dsRef+rn).getColumn(0, "qestitemgrupseqno");
  637. var qestseqno = eval(dsRef+rn).getColumn(0, "qestseqno");
  638. var qestanswno = eval(dsRef+rn).getColumn(0, "qestanswno");
  639. var descinptcnts = eval(dsRef+rn).getColumn(0, "descinptcnts");
  640. var descinptaddcnts = eval(dsRef+rn).getColumn(0, "descinptaddcnts");
  641. var itemkindcd = eval(dsRef+rn).getColumn(0, "itemkindcd");
  642. var qestrspsyn = eval(dsRef+rn).getColumn(0, "qestrspsyn");
  643. var qestmltlanswno = eval(dsRef+rn).getColumn(0, "qestmltlanswno");
  644. var answno_count = eval(dsRef+rn).getColumn(0, "qestmltlanswno_count");
  645. if (itemkindcd == "2")
  646. {
  647. if (utlf_isNull(qestmltlanswno))
  648. {
  649. qestrspsyn = "N";
  650. }
  651. else
  652. {
  653. qestrspsyn = "Y";
  654. }
  655. }
  656. else if (itemkindcd == "4" || itemkindcd == "5")
  657. {
  658. if (utlf_isNull(descinptcnts))
  659. {
  660. qestrspsyn = "N";
  661. }
  662. else
  663. {
  664. qestrspsyn = "Y";
  665. }
  666. }
  667. else if (itemkindcd == "1" || itemkindcd == "6" || itemkindcd == "7" || itemkindcd == "8" || itemkindcd == "10")
  668. {
  669. if (utlf_isNull(qestanswno))
  670. {
  671. qestrspsyn = "N";
  672. }
  673. else
  674. {
  675. qestrspsyn = "Y";
  676. }
  677. }
  678. ds_temp_sendgrd.updatecontrol = false;
  679. ds_temp_sendgrd.setRowType(i, "i");
  680. ds_temp_sendgrd.updatecontrol = true;
  681. dsf_makeValue(ds_temp_sendgrd, "qestitemgrupseqno", "string", qestitemgrupseqno, i);
  682. dsf_makeValue(ds_temp_sendgrd, "qestseqno", "string", qestseqno, i);
  683. dsf_makeValue(ds_temp_sendgrd, "qestanswno", "string", qestanswno, i);
  684. dsf_makeValue(ds_temp_sendgrd, "qestmltlanswno", "string", qestmltlanswno, i);
  685. dsf_makeValue(ds_temp_sendgrd, "qestrspsyn", "string", qestrspsyn, i);
  686. dsf_makeValue(ds_temp_sendgrd, "descinptcnts", "string", descinptcnts, i);
  687. dsf_makeValue(ds_temp_sendgrd, "descinptaddcnts", "string", descinptaddcnts, i);
  688. dsf_makeValue(ds_temp_sendgrd, "qestrspsyn", "string", qestrspsyn, i);
  689. dsf_makeValue(ds_temp_sendgrd, "stinseqno", "string", stinseqno, i);
  690. dsf_makeValue(ds_temp_sendgrd, "qpaprseqno", "string", qpaprseqno, i);
  691. dsf_makeValue(ds_temp_sendgrd, "answprsnseqno", "string", answprsnseqno, i);
  692. dsf_makeValue(ds_temp_sendgrd, "stintrgtflagcd", "string", ds_main_stinuser.getColumn(0, "stintrgtflagcd"), i);
  693. if (stintrgtflagcd == "1" || stintrgtflagcd == "2" || stintrgtflagcd == "3")
  694. {
  695. dsf_makeValue(ds_temp_sendgrd, "pid", "string", ds_main_stinuser.getColumn(0, "pidanduserid"), i);
  696. }
  697. else
  698. {
  699. dsf_makeValue(ds_temp_sendgrd, "userid", "string", ds_main_stinuser.getColumn(0, "pidanduserid"), i);
  700. }
  701. savecount++;
  702. if (itemkindcd == "3")
  703. {
  704. for (var j=0; j<answno_count; j++)
  705. {
  706. var mltlanswno = eval(dsRef+i).getColumn(0, "qestmltlanswno"+j);
  707. if (!utlf_isNull(mltlanswno))
  708. {
  709. if (j == 0)
  710. {
  711. dsf_makeValue(ds_temp_sendgrd, "qestmltlanswno", "string", eval(dsRef+i).getColumn(0, "qestmltlanswno"+j), i);
  712. }
  713. else
  714. {
  715. dsf_makeValue(ds_temp_sendgrd, "qestmltlanswno", "string", ds_temp_sendgrd.getColumn(i, "qestmltlanswno")+","+eval(dsRef+i).getColumn(i, "qestmltlanswno"+j), i);
  716. }
  717. dsf_makeValue(ds_temp_sendgrd, "qestrspsyn", "string", "Y");
  718. }
  719. else
  720. {
  721. dsf_makeValue(ds_temp_sendgrd, "qestrspsyn", "string", "N");
  722. }
  723. }
  724. itemsrch = i;
  725. srchcnt = answno_count;
  726. }
  727. }
  728. // 실제 저장되는 부분
  729. if (savecount == cnt)
  730. {
  731. var rtn = sysf_messageBox("이대로 설문지 답변 입력을", "Q002");
  732. if (rtn == "6")
  733. {
  734. var oParam = {};
  735. oParam.id = "TXCIT01302";
  736. oParam.service = "cssamngtapp.CssaMngt";
  737. oParam.method = "reqInsCsiAnswDataPrivate";
  738. oParam.inds = "req=ds_hidden sendgrd=ds_temp_sendgrd:u";
  739. oParam.outds = "";
  740. oParam.async = false;
  741. oParam.callback = "cf_TXCIT01302";
  742. tranf_submit(oParam);
  743. if(arErrorCode.pop("TXCIT01302") > -1)
  744. {
  745. ds_tmp_save_saveinfo.clearData();
  746. var oParam = {};
  747. oParam.id = "TRCIT00404";
  748. oParam.service = "cssamngtapp.CssaMngt";
  749. oParam.method = "reqGetLastSaveYn";
  750. oParam.inds = "req=ds_send_savesrch";
  751. oParam.outds = "ds_tmp_save_saveinfo=saveinfo";
  752. oParam.async = false;
  753. oParam.callback = "cf_TRCIT00404";
  754. tranf_submit(oParam);
  755. if(arErrorCode.pop("TRCIT00404") > -1)
  756. {
  757. if( ds_tmp_save_saveinfo.getColumn(0, "lastsaveyn") == "Y" )
  758. {
  759. savetxt.text = "【 확정저장 】";
  760. savetxt.style.color = "red";
  761. btn_save.enable = false;
  762. btn_lastsave.enable = false;
  763. }
  764. else
  765. {
  766. savetxt.text = "【 임시저장 】";
  767. savetxt.style.color = "blue";
  768. }
  769. }
  770. }
  771. }
  772. }
  773. }
  774. function cf_TXCIT01302(sSvcId, nErrorCode, sErrorMsg)
  775. {
  776. if(nErrorCode < 0) return;
  777. arErrorCode.push(sSvcId, nErrorCode);
  778. }
  779. function button2_onclick(obj:Button, e:ClickEventInfo)
  780. {
  781. this.close();
  782. }
  783. ]]></Script>
  784. </Form>
  785. </FDL>