SPMQP04000_팝업관리.xfdl 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.4">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMQP04000" position="absolute 0 0 1256 805" titletext="Untitle" oninit="SPMQP04000_oninit" onload="SPMQP04000_onload">
  5. <Layouts>
  6. <Layout>
  7. <Shape position="absolute 0 226 725 232" linetype="horizontal" id="line1" class="line_2"/>
  8. <Shape position="absolute 0 176 725 182" linetype="horizontal" id="line2" class="line_2"/>
  9. <Shape position="absolute 0 201 725 207" linetype="horizontal" id="line5" class="line_2"/>
  10. <Button position="absolute 346 231 410 250" id="btn_addqest" class="btn2" text="질문추가" onclick="btn_addqest_onclick" style="color:#057777ff;"/>
  11. <Grid position="absolute 0 23 725 129" id="grd_poplist" binddataset="ds_main_inqrinfo_inqrlist" onrbuttondown="grd_poplist_onrbuttondown" selecttype="multirow" oncelldblclick="grd_poplist_oncelldblclick">
  12. <Formats>
  13. <Format id="default">
  14. <Columns>
  15. <Column size="296"/>
  16. <Column size="425"/>
  17. </Columns>
  18. <Rows>
  19. <Row size="24" band="head"/>
  20. <Row size="24"/>
  21. </Rows>
  22. <Band id="head">
  23. <Cell text="제목"/>
  24. <Cell col="1" text="Guideline"/>
  25. </Band>
  26. <Band id="body">
  27. <Cell text="bind:title"/>
  28. <Cell col="1" text="bind:guide"/>
  29. </Band>
  30. </Format>
  31. </Formats>
  32. </Grid>
  33. <Shape position="absolute 0 151 725 157" linetype="horizontal" id="line10" class="line_1" style="strokepen:3 solid #33bbbbff;"/>
  34. <Combo position="absolute 517 208 725 227" id="cmb_inqrstepno" taborder="1" innerdataset="@ds_init_stepinfo" datacolumn="stepnm" codecolumn="stepno"/>
  35. <Static text="제목" position="absolute 0 156 85 179" id="caption1" class="cell_1"/>
  36. <Button position="absolute 683 231 725 250" id="btn_delansw" class="btn2" text="삭제" onclick="btn_delansw_onclick"/>
  37. <Static text="선택 STEP" position="absolute 430 206 515 229" id="caption11" class="cell_1"/>
  38. <Static text="팝업리스트" position="absolute 2 5 144 21" id="caption2" class="tit_2"/>
  39. <Static text="팝업시점" position="absolute 0 206 85 229" id="caption3" class="cell_1"/>
  40. <Static text="팝업작성" position="absolute 0 134 142 150" id="caption13" class="tit_2"/>
  41. <Static text="용도" position="absolute 0 181 85 204" id="caption4" class="cell_1"/>
  42. <Radio position="absolute 87 208 425 228" id="rdo_popstart" taborder="4" columncount="3" innerdataset="ds_init_M0515" datacolumn="cdnm" codecolumn="cdid" onitemchanged="rdo_popstart_onitemchanged"/>
  43. <Button position="absolute 616 231 680 250" id="btn_addansw" class="btn2" text="답안추가" onclick="btn_addansw_onclick"/>
  44. <Grid position="absolute 0 252 455 460" id="grd_inqrlist" taborder="5" binddataset="ds_main_inqrdetlist_inqr" autofittype="col">
  45. <Formats>
  46. <Format id="default">
  47. <Columns>
  48. <Column size="25"/>
  49. <Column size="0"/>
  50. <Column size="0"/>
  51. <Column size="0"/>
  52. <Column size="40"/>
  53. <Column size="296"/>
  54. <Column size="80"/>
  55. <Column size="0"/>
  56. <Column size="0"/>
  57. <Column size="0"/>
  58. <Column size="0"/>
  59. <Column size="0"/>
  60. <Column size="0"/>
  61. </Columns>
  62. <Rows>
  63. <Row size="24" band="head"/>
  64. <Row size="24"/>
  65. </Rows>
  66. <Band id="head">
  67. <Cell/>
  68. <Cell col="1" text="status"/>
  69. <Cell col="2" text="inqrno"/>
  70. <Cell col="3" text="inqrhistno"/>
  71. <Cell col="4" text="번호"/>
  72. <Cell col="5" text="질문"/>
  73. <Cell col="6" text="답안속성"/>
  74. <Cell col="7" text="answessyn"/>
  75. <Cell col="8" text="limno"/>
  76. <Cell col="9" text="limhistno"/>
  77. <Cell col="10" text="limcdno"/>
  78. <Cell col="11" text="setattrno"/>
  79. <Cell col="12" text="setattrhistno"/>
  80. </Band>
  81. <Band id="body">
  82. <Cell style="background:URL('theme://images/bg_gridHead.png') stretch 3,3;background2:URL('theme://images/bg_gridHead.png') stretch 3,3;selectbackground:URL('theme://images/bg_gridHead.png') stretch 3,3;" text="expr:currow+1"/>
  83. <Cell col="1" text="bind:inqrstatus"/>
  84. <Cell col="2" text="bind:inqrinqrno"/>
  85. <Cell col="3" text="bind:inqrinqrhistno"/>
  86. <Cell col="4" displaytype="none" edittype="none" text="bind:inqrqestno"/>
  87. <Cell col="5" displaytype="text" edittype="text" text="bind:inqrqestcnts"/>
  88. <Cell col="6" displaytype="combo" edittype="combo" text="bind:inqranswflag" combodataset="ds_init_M0518" combocodecol="cdid" combodatacol="cdnm"/>
  89. <Cell col="7" text="bind:inqranswessyn"/>
  90. <Cell col="8" text="bind:inqrlimno"/>
  91. <Cell col="9" text="bind:inqrlimhistno"/>
  92. <Cell col="10" text="bind:inqrlimcdno"/>
  93. <Cell col="11" text="bind:inqrsetattrno"/>
  94. <Cell col="12" text="bind:inqrsetattrhistno"/>
  95. </Band>
  96. </Format>
  97. </Formats>
  98. </Grid>
  99. <Edit position="absolute 87 158 724 177" id="ipt_title" class="input_essential" taborder="2"/>
  100. <Grid position="absolute 460 252 725 460" id="grd_answlist" taborder="5" binddataset="ds_main_inqrdetlist_answ" autofittype="col" onrbuttondown="grd_answlist_onrbuttondown">
  101. <Formats>
  102. <Format id="default">
  103. <Columns>
  104. <Column size="25"/>
  105. <Column size="0"/>
  106. <Column size="0"/>
  107. <Column size="0"/>
  108. <Column size="0"/>
  109. <Column size="0"/>
  110. <Column size="226"/>
  111. </Columns>
  112. <Rows>
  113. <Row size="24" band="head"/>
  114. <Row size="24"/>
  115. </Rows>
  116. <Band id="head">
  117. <Cell/>
  118. <Cell col="1" text="status"/>
  119. <Cell col="2" text="inqrno"/>
  120. <Cell col="3" text="inqrhistno"/>
  121. <Cell col="4" text="질문번호"/>
  122. <Cell col="5" text="번호"/>
  123. <Cell col="6" text="답안"/>
  124. </Band>
  125. <Band id="body">
  126. <Cell style="background:URL('theme://images/bg_gridHead.png') stretch 3,3;background2:URL('theme://images/bg_gridHead.png') stretch 3,3;selectbackground:URL('theme://images/bg_gridHead.png') stretch 3,3;" text="expr:currow+1"/>
  127. <Cell col="1" text="bind:answstatus"/>
  128. <Cell col="2" text="bind:answinqrno"/>
  129. <Cell col="3" text="bind:answinqrhistno"/>
  130. <Cell col="4" displaytype="none" edittype="none" text="bind:answqestno"/>
  131. <Cell col="5" text="bind:answanswno"/>
  132. <Cell col="6" displaytype="text" edittype="text" style="color:EXPR(getColumn(currow,'answanswno') == '99999' ? &quot;#FF0000&quot; : &quot;&quot;);color2:EXPR(getColumn(currow,'answanswno') == '99999' ? &quot;#FF0000&quot; : &quot;&quot;);" text="bind:answanswcnts"/>
  133. </Band>
  134. </Format>
  135. </Formats>
  136. </Grid>
  137. <Button position="absolute 413 231 455 250" id="btn_delqest" class="btn2" text="삭제" onclick="btn_delqest_onclick"/>
  138. <Button position="absolute 683 132 725 151" id="button3" class="btn2" text="신규" onclick="button3_onclick"/>
  139. <Grid position="absolute 460 365 725 460" id="grd_allanswlist" visible="false" taborder="5" binddataset="ds_temp_answlist" autofittype="col">
  140. <Formats>
  141. <Format id="default">
  142. <Columns>
  143. <Column size="25"/>
  144. <Column size="0"/>
  145. <Column size="0"/>
  146. <Column size="0"/>
  147. <Column size="58"/>
  148. <Column size="0"/>
  149. <Column size="167"/>
  150. </Columns>
  151. <Rows>
  152. <Row size="24" band="head"/>
  153. <Row size="24"/>
  154. </Rows>
  155. <Band id="head">
  156. <Cell/>
  157. <Cell col="1" text="status"/>
  158. <Cell col="2" text="inqrno"/>
  159. <Cell col="3" text="inqrhistno"/>
  160. <Cell col="4" text="질문번호"/>
  161. <Cell col="5" text="번호"/>
  162. <Cell col="6" text="답안"/>
  163. </Band>
  164. <Band id="body">
  165. <Cell style="background:URL('theme://images/bg_gridHead.png') stretch 3,3;background2:URL('theme://images/bg_gridHead.png') stretch 3,3;selectbackground:URL('theme://images/bg_gridHead.png') stretch 3,3;" text="expr:currow+1"/>
  166. <Cell col="1" text="bind:answstatus"/>
  167. <Cell col="2" text="bind:answinqrno"/>
  168. <Cell col="3" text="bind:answinqrhistno"/>
  169. <Cell col="4" displaytype="none" edittype="none" text="bind:answqestno"/>
  170. <Cell col="5" text="bind:answanswno"/>
  171. <Cell col="6" displaytype="none" edittype="none" text="bind:answanswcnts"/>
  172. </Band>
  173. </Format>
  174. </Formats>
  175. </Grid>
  176. <Static text="일반" position="absolute 87 181 127 204" id="caption5" class="cell_1"/>
  177. <Static text="미발행 사유" position="absolute 349 181 426 204" id="caption6" class="cell_1" tooltiptext="평가용 CPG에서, 퇴원예고시 미발행 사유를 입력받아야 할 경우 제목과 용도를 등록하셔야 합니다." style="padding:0 0 0 5;"/>
  178. <Static text="평가용 CPG에서, 퇴원예고시 미발행 사유를 입력받아야 할 경우&#13;&#10;제목과 용도를 등록합니다.&#13;&#10;&#13;&#10;질문과 답은 따로 작성하지 않습니다.&#13;&#10;&#13;&#10;퇴원예고 시 문진 팝업에&#13;&#10;각 스텝의 프로토콜에 입력된 필수처방과, 구간에 등록된 선택필수 처방이&#13;&#10;자동으로 질문/답 형식으로 구성됩니다." position="absolute 0 435 445 460" id="cap_detl_inqrflag" visible="false" style="align:left top;"/>
  179. <cp_radioList id="rdo_mthd2" taborder="6" scrollbars="none" position="absolute 428 182 723 202" style="background:transparent; " col="1" row="1"/>
  180. <cp_radioList id="rdo_mthd" titletext="Radio List" taborder="7" scrollbars="none" position="absolute 128 182 346 202" style="background:transparent; " col="1" row="1"/>
  181. </Layout>
  182. </Layouts>
  183. <Objects>
  184. <Dataset id="ds_main_inqrinfo_inqrlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  185. <ColumnInfo>
  186. <Column id="title" type="STRING"/>
  187. <Column id="guide" type="STRING"/>
  188. </ColumnInfo>
  189. </Dataset>
  190. <Dataset id="ds_main_inqrdetlist_inqr" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" onrowposchanged="ds_main_inqrdetlist_inqr_onrowposchanged" oncolumnchanged="ds_main_inqrdetlist_inqr_oncolumnchanged">
  191. <ColumnInfo>
  192. <Column id="inqrstatus" type="STRING"/>
  193. <Column id="inqrinqrno" type="STRING"/>
  194. <Column id="inqrinqrhistno" type="STRING"/>
  195. <Column id="inqrqestno" type="STRING"/>
  196. <Column id="inqrqestcnts" type="STRING"/>
  197. <Column id="inqranswflag" type="STRING"/>
  198. <Column id="inqranswessyn" type="STRING"/>
  199. <Column id="inqrlimno" type="STRING"/>
  200. <Column id="inqrlimhistno" type="STRING"/>
  201. <Column id="inqrlimcdno" type="STRING"/>
  202. <Column id="inqrsetattrno" type="STRING"/>
  203. <Column id="inqrsetattrhistno" type="STRING"/>
  204. </ColumnInfo>
  205. </Dataset>
  206. <Dataset id="ds_main_inqrdetlist_answ" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_main_inqrdetlist_answ_oncolumnchanged">
  207. <ColumnInfo>
  208. <Column id="answstatus" type="STRING"/>
  209. <Column id="answinqrno" type="STRING"/>
  210. <Column id="answinqrhistno" type="STRING"/>
  211. <Column id="answqestno" type="STRING"/>
  212. <Column id="answanswno" type="STRING"/>
  213. <Column id="answanswcnts" type="STRING"/>
  214. </ColumnInfo>
  215. </Dataset>
  216. <Dataset id="ds_temp_answlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  217. <ColumnInfo>
  218. <Column id="answstatus" type="STRING"/>
  219. <Column id="answinqrno" type="STRING"/>
  220. <Column id="answinqrhistno" type="STRING"/>
  221. <Column id="answqestno" type="STRING"/>
  222. <Column id="answanswno" type="STRING"/>
  223. <Column id="answanswcnts" type="STRING"/>
  224. </ColumnInfo>
  225. </Dataset>
  226. <Dataset id="ds_main_inqrdetlist_inqrheader" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  227. <ColumnInfo>
  228. <Column id="inqrno" type="STRING" size="256"/>
  229. <Column id="inqrhistno" type="STRING" size="256"/>
  230. <Column id="cpgno" type="STRING" size="256"/>
  231. <Column id="cpghistseq" type="STRING" size="256"/>
  232. <Column id="inqrnm" type="STRING" size="256"/>
  233. <Column id="pntmflag" type="STRING" size="256"/>
  234. <Column id="inqrflag" type="STRING" size="256"/>
  235. <Column id="stepno" type="STRING" size="256"/>
  236. </ColumnInfo>
  237. <Rows>
  238. <Row/>
  239. </Rows>
  240. </Dataset>
  241. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  242. <Dataset id="ds_send_savedata_inqrlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  243. <Dataset id="ds_temp_inqrlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  244. <Dataset id="ds_main_inqrinfo_inqrheader" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  245. <Dataset id="ds_main_inqrform_inqrheader" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  246. <ColumnInfo>
  247. <Column id="inqrno" type="STRING" size="256"/>
  248. <Column id="inqrhistno" type="STRING" size="256"/>
  249. <Column id="cpgno" type="STRING" size="256"/>
  250. <Column id="cpghistseq" type="STRING" size="256"/>
  251. <Column id="inqrnm" type="STRING" size="256"/>
  252. <Column id="pntmflag" type="STRING" size="256"/>
  253. <Column id="inqrflag" type="STRING" size="256"/>
  254. <Column id="stepno" type="STRING" size="256"/>
  255. </ColumnInfo>
  256. <Rows>
  257. <Row>
  258. <Col id="inqrno"/>
  259. <Col id="inqrhistno"/>
  260. <Col id="cpgno"/>
  261. <Col id="cpghistseq"/>
  262. <Col id="inqrnm"/>
  263. <Col id="pntmflag"/>
  264. <Col id="inqrflag"/>
  265. <Col id="stepno"/>
  266. </Row>
  267. </Rows>
  268. </Dataset>
  269. <Dataset id="ds_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  270. <Dataset id="ds_main_inqrform_answlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  271. <ColumnInfo>
  272. <Column id="answstatus" type="STRING" size="256"/>
  273. <Column id="asnwinqrno" type="STRING" size="256"/>
  274. <Column id="answinqrhistno" type="STRING" size="256"/>
  275. <Column id="answqestno" type="STRING" size="256"/>
  276. <Column id="answanswno" type="STRING" size="256"/>
  277. <Column id="answanswcnts" type="STRING" size="256"/>
  278. </ColumnInfo>
  279. <Rows>
  280. <Row>
  281. <Col id="answstatus"/>
  282. <Col id="asnwinqrno"/>
  283. <Col id="answinqrhistno"/>
  284. <Col id="answqestno"/>
  285. <Col id="answanswno"/>
  286. <Col id="answanswcnts"/>
  287. </Row>
  288. </Rows>
  289. </Dataset>
  290. <Dataset id="ds_main_inqrform_inqrlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  291. <ColumnInfo>
  292. <Column id="inqrstatus" type="STRING" size="256"/>
  293. <Column id="inqrinqrno" type="STRING" size="256"/>
  294. <Column id="inqrinqrhistno" type="STRING" size="256"/>
  295. <Column id="inqrqestno" type="STRING" size="256"/>
  296. <Column id="inqrqestcnts" type="STRING" size="256"/>
  297. <Column id="inqranswflag" type="STRING" size="256"/>
  298. <Column id="inqranswessyn" type="STRING" size="256"/>
  299. <Column id="inqrlimno" type="STRING" size="256"/>
  300. <Column id="inqrlimhistno" type="STRING" size="256"/>
  301. <Column id="inqrlimcdno" type="STRING" size="256"/>
  302. <Column id="inqrsetattrno" type="STRING" size="256"/>
  303. <Column id="inqrsetattrhistno" type="STRING" size="256"/>
  304. </ColumnInfo>
  305. <Rows>
  306. <Row>
  307. <Col id="inqrstatus"/>
  308. <Col id="inqrinqrno"/>
  309. <Col id="inqrinqrhistno"/>
  310. <Col id="inqrqestno"/>
  311. <Col id="inqrqestcnts"/>
  312. <Col id="inqranswflag"/>
  313. <Col id="inqranswessyn"/>
  314. <Col id="inqrlimno"/>
  315. <Col id="inqrlimhistno"/>
  316. <Col id="inqrlimcdno"/>
  317. <Col id="inqrsetattrno"/>
  318. <Col id="inqrsetattrhistno"/>
  319. </Row>
  320. </Rows>
  321. </Dataset>
  322. </Objects>
  323. <Bind>
  324. <BindItem id="item0" compid="ipt_title" propid="value" datasetid="ds_main_inqrdetlist_inqrheader" columnid="inqrnm"/>
  325. <BindItem id="item3" compid="rdo_popstart" propid="value" datasetid="ds_main_inqrdetlist_inqrheader" columnid="pntmflag"/>
  326. <BindItem id="item4" compid="cmb_inqrstepno" propid="value" datasetid="ds_main_inqrdetlist_inqrheader" columnid="stepno"/>
  327. </Bind>
  328. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  329. * System Name :
  330. * Job Name :
  331. * Creator :
  332. * Make Date : 2015-03-19
  333. * Description :
  334. *---------------------------------------------------------------------------------------
  335. * Modify Date Modifier Modify Description
  336. *---------------------------------------------------------------------------------------
  337. * 2015-03-19 Live Converter TF->XP
  338. *
  339. *---------------------------------------------------------------------------------------
  340. ****************************************************************************************/
  341. //=======================================================================================
  342. // Lib Include
  343. //---------------------------------------------------------------------------------------
  344. include "com_commonxp::comm_main.xjs"
  345. //## 핸들링하고 있는 문진 리스트 번호 2010.04.20 KHJ
  346. var grdpoplistRow = 1;
  347. var Answ_Path = ds_main_inqrdetlist_answ; //"/root/main/inqrdetlist/answ";
  348. var Inqr_Path = ds_main_inqrdetlist_inqr; //"/root/main/inqrdetlist/inqr";
  349. var maxqestno = 0;
  350. var oldQestNo = 0;
  351. var arErrorCode = new HashArray();
  352. //=======================================================================================
  353. // Event
  354. //---------------------------------------------------------------------------------------
  355. /****************************************************************************************
  356. * Components : Form
  357. * Components ID : SPMQP04000
  358. * Event : oninit
  359. * Argument : 01.obj : Object Event has occurred
  360. * : 02.e : Event Object
  361. * Description : 화면 처음 초기화시 폼초기화
  362. ****************************************************************************************/
  363. function SPMQP04000_oninit(obj:Form, e:InitEventInfo)
  364. {
  365. frmf_initForm(obj); // 폼 초기화
  366. frmf_createPopupMenu("PopupMenu1"
  367. ,"fPopupMenu1"
  368. ,[{id: "D", level: "0", title: "삭제"}] //항목추가
  369. );
  370. frmf_createPopupMenu("PopupMenu2"
  371. ,"fPopupMenu2"
  372. ,[{id: "E", level: "0", title: "기타속성 지정"}
  373. ,{id: "A", level: "0", title: "답안추가"}] //항목추가
  374. );
  375. }
  376. /****************************************************************************************
  377. * Components : Form
  378. * Components ID : SPMQP04000
  379. * Event : onload
  380. * Argument : 01.obj : Object Event has occurred
  381. * : 02.e : Event Object
  382. * Description : 화면오픈시 폼load이후 실행
  383. ****************************************************************************************/
  384. function SPMQP04000_onload(obj:Form, e:LoadEventInfo)
  385. {
  386. fInqrInit();
  387. rdo_mthd.setInitComp("col=3,row=1,cellspacing=4", ds_init_M0516,"cdid","cdnm","fn_rdoEvent_mthd");
  388. rdo_mthd2.setInitComp("col=2,row=1,cellspacing=4", ds_init_M0516_2,"cdid","cdnm","fn_rdoEvent_mthd2");
  389. // rdo_mthd.setData("D");
  390. // rdo_mthd2.setData("D");
  391. }
  392. /****************************************************************************************
  393. * Components : Grid
  394. * Components ID : grd_poplist
  395. * Event : onrbuttondown
  396. * Argument : 01.obj : Object Event has occurred
  397. * : 02.e : Event Object
  398. * Description : 팝업리스트 마우스 우클릭으로 팝업메뉴 띄우기
  399. ****************************************************************************************/
  400. function grd_poplist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  401. {
  402. if(e.row > -1) PopupMenu1.trackPopup(e.screenX,e.screenY);
  403. }
  404. /****************************************************************************************
  405. * Components : Grid
  406. * Components ID : grd_poplist
  407. * Event : oncelldblclick
  408. * Argument : 01.obj : Object Event has occurred
  409. * : 02.e : Event Object
  410. * Description : 팝업리스트 더블클릭
  411. ****************************************************************************************/
  412. function grd_poplist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  413. {
  414. grdpoplistRow = e.row;
  415. if (grdpoplistRow > -1) {
  416. ds_main_inqrdetlist_inqrheader.clearData();
  417. ds_main_inqrdetlist_inqr.clearData();
  418. ds_main_inqrdetlist_answ.clearData();
  419. var iRow = e.row;
  420. var inqrno = ds_main_inqrinfo_inqrlist.getColumn(iRow,"inqrno");
  421. var inqrhistno = ds_main_inqrinfo_inqrlist.getColumn(iRow,"inqrhistno");
  422. ds_main_inqrdetlist_inqrheader.addRow();
  423. ds_main_inqrdetlist_inqrheader.copyRow(0,ds_main_inqrinfo_inqrlist,iRow);
  424. var oParam = {};
  425. oParam.id = "TRMQP04002";
  426. oParam.service = "prcpbaseapp.CpMngt";
  427. oParam.method = "reqGetInqrList";
  428. oParam.inds = "req=ds_main_inqrdetlist_inqrheader";
  429. oParam.outds = "ds_temp_inqrlist=inqrlist ds_temp_answlist=answlist";
  430. oParam.async = false;
  431. oParam.callback = "cf_TRMQP04002";
  432. tranf_submit(oParam);
  433. }
  434. }
  435. /****************************************************************************************
  436. * Components : Button
  437. * Components ID : btn_addqest
  438. * Event : onclick
  439. * Argument : 01.obj : Object Event has occurred
  440. * : 02.e : Event Object
  441. * Description : 질문추가 버튼 클릭
  442. ****************************************************************************************/
  443. function btn_addqest_onclick(obj:Button, e:ClickEventInfo)
  444. {
  445. var qestno = grd_inqrlist.rowcount-1;
  446. var inqrno = ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrno");
  447. var inqrhistno = ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrhistno");
  448. // model.makeNode("/root/main/inqrdetlist/inqr");
  449. ds_main_inqrdetlist_inqr.clearData();
  450. // copyNodeListType("/root/main/inqrdetlist/inqr", "/root/main/inqrform/inqrlist", "after");
  451. dsf_copyDs(ds_main_inqrdetlist_inqr,ds_main_inqrform_inqrlist,"after");
  452. qestno++;
  453. Inqr_Path.setColumn(qestno,"inqrstatus" , "I"); //입력시 상태값 추가(JJE)
  454. Inqr_Path.setColumn(qestno,"inqrqestno" , "0"); //화면단에서 키를 지정해주는것이 명확하지 않아 저장 전 순차적으로 생성해줌(2009.05.19 JJE)
  455. Inqr_Path.setColumn(qestno,"inqrinqrno" , inqrno);
  456. Inqr_Path.setColumn(qestno,"inqrinqrhistno" , inqrhistno);
  457. fSetQestNo(); //질문 상태 변경에 따른, 답안 상태 동시 변경 처리 (2010.04.12)
  458. fSetGrdRowStatus("grd_inqrlist");
  459. }
  460. /****************************************************************************************
  461. * Components : Button
  462. * Components ID : btn_delqest
  463. * Event : onclick
  464. * Argument : 01.obj : Object Event has occurred
  465. * : 02.e : Event Object
  466. * Description : (질문)삭제 버튼 클릭
  467. ****************************************************************************************/
  468. function btn_delqest_onclick(obj:Button, e:ClickEventInfo)
  469. {
  470. //선택여부 체크 추가(JJE)
  471. var dsObj = objects[grd_inqrlist.binddataset];
  472. var iRow = dsObj.rowposition;
  473. if ( iRow < 0 ) {
  474. sysf_messageBox("삭제할 항목을", "C002");
  475. return;
  476. }
  477. //저장하지 않은 항목까지 'D' 처리하므로 직접삭제하도록 변경(JJE)
  478. var selectedRows = grdf_getSelectedRows(grd_inqrlist);
  479. for (var i = selectedRows.length-1 ; i >= 0 ; i--) {
  480. var iStatus = Inqr_Path.getColumn(selectedRows[i],"inqrstatus");
  481. var iQestNo = Inqr_Path.getColumn(selectedRows[i],"inqrqestno");
  482. if( ds_main_inqrdetlist_inqr.getColumn(selectedRows[i],"inqrstatus") == "I" ){
  483. //답안도 함께 물리적 삭제
  484. // model.removeNodeset("/root/temp/answlist[answqestno='"+iQestNo+"']");
  485. for(var j = 0; j < ds_temp_answlist.rowcount; j++) {
  486. if(ds_temp_answlist.getColumn(j,"answqestno") == iQestNo) ds_temp_answlist.deleteRow(j);
  487. }
  488. for(var j = 0; j < ds_main_inqrdetlist_answ.rowcount; j++) {
  489. if(ds_main_inqrdetlist_answ.getColumn(j,"answqestno") == iQestNo) ds_main_inqrdetlist_answ.deleteRow(j);
  490. }
  491. //질문 삭제
  492. // model.removeNodeset("/root/main/iqrdetlist/inqr/inqrlist[" + grd_inqrlist.selectedRow(i) + "]");
  493. ds_main_inqrdetlist_inqr.deleteRow(selectedRows[i]);
  494. }else if( ds_main_inqrdetlist_inqr.getColumn(selectedRows[i],"inqrstatus") == "D" ){
  495. ds_main_inqrdetlist_inqr.setColumn(selectedRows[i],"inqrstatus","");
  496. }else{
  497. ds_main_inqrdetlist_inqr.setColumn(selectedRows[i],"inqrstatus","D");
  498. }
  499. }
  500. fSetQestNo(); //질문 상태 변경에 따른, 답안 상태 동시 변경 처리 (2010.04.12)
  501. fSetGrdRowStatus("grd_inqrlist");
  502. fSetGrdRowStatus("grd_answlist");
  503. }
  504. /****************************************************************************************
  505. * Components : Dataset
  506. * Components ID : ds_main_inqrdetlist_inqr
  507. * Event : onrowposchanged
  508. * Argument : 01.obj : Object Event has occurred
  509. * : 02.e : Event Object
  510. * Description :
  511. ****************************************************************************************/
  512. function ds_main_inqrdetlist_inqr_onrowposchanged(obj:Dataset, e:DSRowPosChangeEventInfo)
  513. {
  514. //선택 질문에 대한 답리스트만 가져오도록 추가(JJE)
  515. ds_main_inqrdetlist_answ.filter("answstatus!=''");
  516. if( oldQestNo > 0 && ds_main_inqrdetlist_answ.rowcount > 0 ){
  517. // model.removeNodeset("/root/temp/answlist[answqestno='"+oldQestNo+"']");
  518. for(var i = 0 ; i < ds_temp_answlist.rowcount ; i++) {
  519. if(ds_temp_answlist.getColumn(i,"answqestno") == oldQestNo) ds_temp_answlist.deleteRow(i);
  520. }
  521. var etcAnswCntsNode = ds_main_inqrdetlist_answ.getColumn(ds_main_inqrdetlist_answ.findRow("answanswno","99999"),"answanswcnts");
  522. if( !utlf_isNull(etcAnswCntsNode) ) ds_main_inqrdetlist_answ.setColumn(ds_main_inqrdetlist_answ.findRow("answanswno","99999"),"");
  523. copyNodeListType("/root/temp", "/root/main/inqrdetlist/answ/answlist[answqestno='"+oldQestNo+"']", "after");
  524. ds_main_inqrdetlist_answ.filter("answqestno=='"+oldQestNo+"'");
  525. dsf_createDs("ds_temp_main_inqrdetlist_answ");
  526. ds_temp_main_inqrdetlist_answ.copyData(ds_main_inqrdetlist_answ,true);
  527. dsf_copyDs(ds_temp,ds_temp_main_inqrdetlist_answ,"after");
  528. dsf_deleteDs("ds_temp_main_inqrdetlist_answ");
  529. }
  530. ds_main_inqrdetlist_answ.filter("");
  531. // model.removeNodeset("/root/main/inqrdetlist/answ/answlist");
  532. ds_main_inqrdetlist_answ.clearData();
  533. var dsObj = objects[grd_inqrlist.binddataset];
  534. if( dsObj.rowposition > -1 ){
  535. var qestNo = dsObj.getColumn(dsObj.rowposition,"inqrqestno");
  536. oldQestNo = qestNo;
  537. // copyNodeListType("/root/main/inqrdetlist/answ", "/root/temp/answlist[answqestno='"+qestNo+"']", "after");
  538. ds_temp_answlist.filter("answqestno=='"+qestNo+"'");
  539. dsf_createDs("ds_temp_temp_answlist");
  540. ds_temp_temp_answlist.copyData(ds_temp_answlist,true);
  541. dsf_copyDs(ds_main_inqrdetlist_answ,ds_temp_temp_answlist,"after");
  542. dsf_deleteDs("ds_temp_temp_answlist");
  543. ds_temp_answlist.filter("");
  544. fSetGrdRowStatus("grd_answlist");
  545. }
  546. }
  547. /****************************************************************************************
  548. * Components : Dataset
  549. * Components ID : ds_main_inqrdetlist_inqr
  550. * Event : oncolumnchanged
  551. * Argument : 01.obj : Object Event has occurred
  552. * : 02.e : Event Object
  553. * Description :
  554. ****************************************************************************************/
  555. function ds_main_inqrdetlist_inqr_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  556. {
  557. var iRow = e.row;
  558. if( e.columnid == "inqranswflag" ) {
  559. var answflag = obj.getColumn(iRow,"inqranswflag");
  560. var answNodes = ds_main_inqrdetlist_answ; // instance1.selectNodes("/root/main/inqrdetlist/answ/answlist");
  561. if(answflag == "3" ){
  562. if( answNodes.rowcount <= 0 ){
  563. // model.removeNodeset("/root/main/inqrdetlist/answ/answlist");
  564. answNodes.clearData();
  565. fAddAnswList("B");
  566. }
  567. }
  568. }
  569. }
  570. /****************************************************************************************
  571. * Components : Button
  572. * Components ID : btn_addansw
  573. * Event : onclick
  574. * Argument : 01.obj : Object Event has occurred
  575. * : 02.e : Event Object
  576. * Description : 답안추가 버튼클릭
  577. ****************************************************************************************/
  578. function btn_addansw_onclick(obj:Button, e:ClickEventInfo)
  579. {
  580. fAddAnswList("B");
  581. }
  582. /****************************************************************************************
  583. * Components : Button
  584. * Components ID : btn_delansw
  585. * Event : onclick
  586. * Argument : 01.obj : Object Event has occurred
  587. * : 02.e : Event Object
  588. * Description : (답안)삭제 버튼클릭
  589. ****************************************************************************************/
  590. function btn_delansw_onclick(obj:Button, e:ClickEventInfo)
  591. {
  592. //선택여부 체크 추가(JJE)
  593. var iRow = objects[grd_answlist.binddataset].rowposition;
  594. if ( iRow < 0 ) {
  595. sysf_messageBox("삭제할 항목을", "C002");
  596. return;
  597. }
  598. //저장하지 않은 항목까지 'D' 처리하므로 직접삭제하도록 변경(JJE)
  599. var selectedRows = grdf_getSelectedRows(grd_answlist);
  600. for (var i = selectedRows.length-1 ; i >= 0 ; i--) {
  601. if( ds_main_inqrdetlist_answ.getColumn(selectedRows[i],"answstatus") == "I" ){
  602. // model.removeNodeset("/root/main/inqrdetlist/answ/answlist[" + grd_answlist.selectedRow(i) + "]");
  603. ds_main_inqrdetlist_answ.deleteRow(selectedRows[i]);
  604. }else if( model.getValue("/root/main/inqrdetlist/answ/answlist[" + iRow + "]/answstatus") == "D" ){
  605. // model.setValue("/root/main/inqrdetlist/answ/answlist[" + grd_answlist.selectedRow(i) + "]/answstatus", "");
  606. ds_main_inqrdetlist_answ.setColumn(selectedRows[i],"answstatus", "");
  607. }else{
  608. // model.setValue("/root/main/inqrdetlist/answ/answlist[" + grd_answlist.selectedRow(i) + "]/answstatus", "D");
  609. ds_main_inqrdetlist_answ.setColumn(selectedRows[i],"answstatus", "D");
  610. }
  611. }
  612. fSetGrdRowStatus("grd_answlist");
  613. }
  614. /****************************************************************************************
  615. * Components : Dataset
  616. * Components ID : grd_answlist
  617. * Event : onrbuttondown
  618. * Argument : 01.obj : Object Event has occurred
  619. * : 02.e : Event Object
  620. * Description :
  621. ****************************************************************************************/
  622. function grd_answlist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  623. {
  624. if(e.row > -1) PopupMenu2.trackPopup(e.screenX,e.screenY);
  625. }
  626. /****************************************************************************************
  627. * Components : Dataset
  628. * Components ID : ds_main_inqrdetlist_answ
  629. * Event : oncolumnchanged
  630. * Argument : 01.obj : Object Event has occurred
  631. * : 02.e : Event Object
  632. * Description :
  633. ****************************************************************************************/
  634. function ds_main_inqrdetlist_answ_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  635. {
  636. var iRow = objects[grd_inqrlist.binddataset].rowposition;
  637. if( e.columnid == "inqranswflag" ){
  638. var answflag = ds_main_inqrdetlist_inqr.getColumn(iRow,"inqranswflag");
  639. var answNodes = ds_main_inqrdetlist_answ;
  640. if(answflag == "3" ){
  641. if( answNodes.rowcount == 0 ){
  642. ds_main_inqrdetlist_answ.clearData();
  643. fAddAnswList("B");
  644. }
  645. }
  646. }
  647. }
  648. //=======================================================================================
  649. // Function
  650. //---------------------------------------------------------------------------------------
  651. /****************************************************************************************
  652. * Function : fInqrInit
  653. * Description : 초기화
  654. * Argument :
  655. * return type :
  656. * Creator :
  657. ****************************************************************************************/
  658. function fInqrInit() {
  659. fStepSetup() ;
  660. var oParam = {};
  661. oParam.id = "TRMQP04001";
  662. oParam.service = "prcpbaseapp.CpMngt";
  663. oParam.method = "reqGetInqrHeaderList";
  664. oParam.inds = "req=ds_send_reqdata";
  665. oParam.outds = "ds_main_inqrinfo_inqrlist=inqrlist ds_main_inqrinfo_inqrheader=inqrheader";
  666. oParam.async = false;
  667. oParam.callback = "cf_TRMQP04001";
  668. tranf_submit(oParam);
  669. // submit("TRMQP04001");
  670. ds_main_inqrdetlist_inqr.clearData();
  671. ds_main_inqrdetlist_answ.clearData();
  672. }
  673. /****************************************************************************************
  674. * Function : cf_TRMQP04001
  675. * Description : TRMQP04001 콜백함수
  676. * Argument :
  677. * return type :
  678. * Creator :
  679. ****************************************************************************************/
  680. function cf_TRMQP04001(sSvcId, nErrorCode, sErrorMsg) {
  681. if(nErrorCode < 0) return;
  682. for(var i = 0 ; i < ds_main_inqrinfo_inqrlist.rowcount ; i++) {
  683. dsf_makeValue(ds_main_inqrinfo_inqrlist,"inqrnm","string",ds_main_inqrinfo_inqrlist.getColumn(i,"title"),i);
  684. }
  685. for(var i = 0 ; i < ds_main_inqrinfo_inqrheader.rowcount ; i++) {
  686. dsf_makeValue(ds_main_inqrinfo_inqrheader,"inqrnm","string",ds_main_inqrinfo_inqrheader.getColumn(i,"title"),i);
  687. }
  688. }
  689. /****************************************************************************************
  690. * Function : fStepSetup
  691. * Description : 팝업시점의 변화에 따른 step 활성화
  692. * Argument :
  693. * return type :
  694. * Creator :
  695. ****************************************************************************************/
  696. function fStepSetup() {
  697. var pntmflag = ds_main_inqrdetlist_inqrheader.getColumn(0,"pntmflag");
  698. if (pntmflag =="3") {
  699. cmb_inqrstepno.enable = true;
  700. cmb_inqrstepno.index = 0;
  701. } else {
  702. cmb_inqrstepno.enable = false;
  703. ds_main_inqrdetlist_inqrheader.setColumn(0,"stepno", "0");
  704. }
  705. }
  706. /****************************************************************************************
  707. * Function : fPopupMenu1
  708. * Description : 우클릭 메뉴 선택시 함수 실행
  709. * Argument :
  710. * return type :
  711. * Creator :
  712. ****************************************************************************************/
  713. function fPopupMenu1(obj:PopupMenu, e:MenuClickEventInfo) {
  714. if(e.id == "D") {
  715. fDelInqrList();
  716. }
  717. }
  718. /****************************************************************************************
  719. * Function : fPopupMenu2
  720. * Description : 우클릭 메뉴 선택시 함수 실행
  721. * Argument :
  722. * return type :
  723. * Creator :
  724. ****************************************************************************************/
  725. function fPopupMenu2(obj:PopupMenu, e:MenuClickEventInfo) {
  726. if(e.id == "E") {
  727. fInputFreetextAttr();
  728. } else if(e.id == "A") {
  729. fAddAnswList();
  730. }
  731. }
  732. /****************************************************************************************
  733. * Function : fDelInqrList
  734. * Description : 문진 삭제
  735. * Argument :
  736. * return type :
  737. * Creator :
  738. ****************************************************************************************/
  739. function fDelInqrList() {
  740. ds_send_savedata_inqrlist.clearData();
  741. var tmpstrTitle = "inqrno▦inqrhistno▦cpgno▦cpghistseq▩";
  742. var tmpstrCnts = "";
  743. // var rows = grd_poplist.rowcount;
  744. var selectedRows = grdf_getSelectedRows(grd_poplist);
  745. // for (var row = 0; row < rows; row++ ) {
  746. for (var i= 0; i < selectedRows.length; i++){
  747. // if(grd_poplist.isSelected(row)) {
  748. var inqrno = ds_main_inqrinfo_inqrlist.getColumn(selectedRows[i],"inqrno");
  749. var inqrhistno = ds_main_inqrinfo_inqrlist.getColumn(selectedRows[i],"inqrhistno");
  750. var cpgno = ds_main_inqrinfo_inqrlist.getColumn(selectedRows[i],"cpgno");
  751. var cpghistseq = ds_main_inqrinfo_inqrlist.getColumn(selectedRows[i],"cpghistseq");
  752. tmpstrCnts = tmpstrCnts + inqrno + "▦" + inqrhistno + "▦" + cpgno + "▦" + cpghistseq + "▩";
  753. // }
  754. }
  755. if( !utlf_isNull(tmpstrCnts) ){
  756. dsf_makeValue(ds_send_savedata_inqrlist,"dellist","string",tmpstrTitle + tmpstrCnts);
  757. var oParam = {};
  758. oParam.id = "TXMQP04001";
  759. oParam.service = "prcpbaseapp.CpMngt";
  760. oParam.method = "reqDelInqrList";
  761. oParam.inds = "req=ds_send_savedata_inqrlist";
  762. oParam.outds = "ds_main_inqrinfo_inqrlist=inqrlist";
  763. oParam.async = false;
  764. oParam.callback = "cf_TXMQP04001";
  765. tranf_submit(oParam);
  766. if(arErrorCode.pop("TXMQP04001") < 0) return false;
  767. this.getOwnerFrame().form.opener.fInitAttList();
  768. fInqrInit();
  769. fCheckStepAttr(); //저장 후 스텝의 속성 정보 변경 시 체크하여 변경사항을 outline에 반영한다 --JJE
  770. //fCheckStepAttr() - SPMQP00300
  771. }
  772. }
  773. /****************************************************************************************
  774. * Function : cf_TXMQP04001
  775. * Description : TXMQP04001 콜백함수
  776. * Argument :
  777. * return type :
  778. * Creator :
  779. ****************************************************************************************/
  780. function cf_TXMQP04001(sSvcId, nErrorCode, sErrorMsg) {
  781. arErrorCode.push(sSvcId, nErrorCode);
  782. }
  783. /****************************************************************************************
  784. * Function : cf_TRMQP04002
  785. * Description : TRMQP04002 콜백함수
  786. * Argument :
  787. * return type :
  788. * Creator :
  789. ****************************************************************************************/
  790. function cf_TRMQP04002(sSvcId, nErrorCode, sErrorMsg) {
  791. if(nErrorCode < 0) return;
  792. /* copyNodeListType("/root/main/inqrdetlist/inqr", "/root/temp/inqrlist", "after");*/
  793. ds_temp_inqrlist.updateColID("status" ,"inqrstatus" );
  794. ds_temp_inqrlist.updateColID("inqrno" ,"inqrinqrno" );
  795. ds_temp_inqrlist.updateColID("inqrhistno" ,"inqrinqrhistno" );
  796. ds_temp_inqrlist.updateColID("qestno" ,"inqrqestno" );
  797. ds_temp_inqrlist.updateColID("qestcnts" ,"inqrqestcnts" );
  798. ds_temp_inqrlist.updateColID("answflag" ,"inqranswflag" );
  799. ds_temp_inqrlist.updateColID("answessyn" ,"inqranswessyn" );
  800. ds_temp_inqrlist.updateColID("limno" ,"inqrlimno" );
  801. ds_temp_inqrlist.updateColID("limhistno" ,"inqrlimhistno" );
  802. ds_temp_inqrlist.updateColID("limcdno" ,"inqrlimcdno" );
  803. ds_temp_inqrlist.updateColID("setattrno" ,"inqrsetattrno" );
  804. ds_temp_inqrlist.updateColID("setattrhistno","inqrsetattrhistno");
  805. ds_temp_answlist.updateColID("status" ,"answstatus" );
  806. ds_temp_answlist.updateColID("inqrno" ,"answinqrno" );
  807. ds_temp_answlist.updateColID("inqrhistno","answinqrhistno");
  808. ds_temp_answlist.updateColID("qestno" ,"answqestno" );
  809. ds_temp_answlist.updateColID("answno" ,"answanswno" );
  810. ds_temp_answlist.updateColID("answcnts" ,"answanswcnts" );
  811. dsf_copyDs(ds_main_inqrdetlist_inqr,ds_temp_inqrlist,"after");
  812. }
  813. function button3_onclick(obj:Button, e:ClickEventInfo)
  814. {
  815. grdpoplistRow = objects[grd_poplist.binddataset].rowposition;
  816. // model.removenode("/root/main/inqrdetlist");
  817. // model.removenode("/root/temp");
  818. ds_main_inqrdetlist_inqrheader.clearData();
  819. ds_main_inqrdetlist_inqr.clearData();
  820. ds_main_inqrdetlist_answ.clearData();
  821. // model.copyNode("/root/main/inqrdetlist/inqrheader", "/root/main/inqrform/inqrheader");
  822. ds_main_inqrdetlist_inqrheader.copyData(ds_main_inqrform_inqrheader);
  823. // model.makeNode("/root/temp");
  824. ds_temp_inqrlist.clearData();
  825. ds_temp_answlist.clearData();
  826. rdo_popstart.enable = true;
  827. btn_addqest.enable = true;
  828. btn_delqest.enable = true;
  829. btn_addansw.enable = true;
  830. btn_delansw.enable = true;
  831. }
  832. function rdo_popstart_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  833. {
  834. fStepSetup() ;
  835. }
  836. /****************************************************************************************
  837. * Function : fStepSetup
  838. * Description : 팝업시점의 변화에 따른 step 활성화
  839. * Argument :
  840. * return type :
  841. * Creator :
  842. ****************************************************************************************/
  843. function fStepSetup() {
  844. var pntmflag = ds_main_inqrdetlist_inqrheader.getColumn(0,"pntmflag");
  845. if (pntmflag =="3") {
  846. cmb_inqrstepno.enable = true;
  847. cmb_inqrstepno.index = 0;
  848. } else {
  849. cmb_inqrstepno.enable = false;
  850. ds_main_inqrdetlist_inqrheader.setColumn(0,"stepno","0");
  851. }
  852. }
  853. /****************************************************************************************
  854. * Function : fSetQestNo
  855. * Description :
  856. * Argument :
  857. * return type :
  858. * Creator :
  859. ****************************************************************************************/
  860. function fSetQestNo(){
  861. var NodeList = Inqr_Path; // instance1.selectNodes(Inqr_Path + "/inqrlist");
  862. dsf_createDs("ds_AnswList");
  863. // var AnswList = null;
  864. if( NodeList.rowcount > 0 ){
  865. var qestCnt = 0;
  866. var iQestCnt = 0;
  867. for (var i = 0 ; i < NodeList.rowcount ; i++ ) {
  868. var iStatus = Inqr_Path.getColumn(i,"inqrstatus");
  869. var iQestNo = Inqr_Path.getColumn(i,"inqrqestno");
  870. if( iStatus == "D" ){
  871. iQestCnt = 0;
  872. //답안데이터의 질문번호 변경
  873. // AnswList = instance1.selectNodes("/root/temp/answlist[answqestno='" + iQestNo + "']");
  874. ds_temp_answlist.filter("answqestno == '"+iQestNo+"'");
  875. ds_AnswList.copyData(ds_temp_answlist,true);
  876. if( ds_AnswList.rowcount > 0 ){
  877. for (var j = 0 ; j < ds_AnswList.rowcount ; j++ ) {
  878. // var node = AnswList.item(j);
  879. ds_AnswList.setColumn(j,"answqestno", 0);
  880. ds_AnswList.setColumn(j,"answstatus", "D");
  881. }
  882. }
  883. }else{
  884. qestCnt++;
  885. iQestCnt = qestCnt;
  886. //답안데이터의 질문번호 변경
  887. // AnswList = instance1.selectNodes("/root/temp/answlist[answqestno='" + iQestNo + "']");
  888. ds_temp_answlist.filter("answqestno == '"+iQestNo+"'");
  889. ds_AnswList.copyData(ds_temp_answlist,true);
  890. if( ds_AnswList.rowcount > 0 ){
  891. for (var j = 0 ; j < ds_AnswList.rowcount ; j++ ) {
  892. // var node = AnswList.item(j);
  893. ds_AnswList.setColumn(j,"answqestno", iQestCnt);
  894. if( ds_AnswList.getColumn(j,"answstatus") != "I" )
  895. ds_AnswList.setColumn(j,"answstatus", "");
  896. }
  897. }
  898. }
  899. //질문데이터의 질문번호 변경
  900. Inqr_Path.setColumn(i,"inqrqestno", iQestCnt);
  901. } //end for
  902. } //end check
  903. dsf_deleteDs("ds_AnswList");
  904. }
  905. /****************************************************************************************
  906. * Function : fSetGrdRowStatus
  907. * Description : 그리드 refresh 후 rowstatus 초기화되는 현상에 대한 처리
  908. * Argument : grd - 목적그리드 name
  909. * return type :
  910. * Creator :
  911. ****************************************************************************************/
  912. function fSetGrdRowStatus(grd) {
  913. var grdCtrl = components[grd];
  914. var dsObj = objects[grdCtrl.binddataset];
  915. if( grd == "grd_inqrlist" ){
  916. var ref1 = ds_main_inqrdetlist_inqr; //"/root/main/inqrdetlist/inqr/inqrlist";
  917. var ref2 = "inqrstatus";
  918. }else if( grd == "grd_answlist" ){
  919. var ref1 = ds_main_inqrdetlist_answ; //"/root/main/inqrdetlist/answ/answlist";
  920. var ref2 = "answstatus";
  921. }
  922. for( var i=0 ; i < dsObj.rowcount; i++){
  923. if( ref1.getColumn(i,ref2) == "I" ){
  924. dsObj.setRowType(i,Dataset.ROWTYPE_INSERT);
  925. }else if( ref1.getColumn(i,ref2) == "U" ){
  926. dsObj.setRowType(i,Dataset.ROWTYPE_UPDATE);
  927. }else if( ref1.getColumn(i,ref2) == "D" ){
  928. dsObj.setRowType(i,Dataset.ROWTYPE_DELETE);
  929. }else{
  930. dsObj.setRowType(i,Dataset.ROWTYPE_NORMAL);
  931. }
  932. if( grd == "grd_answlist" ){
  933. if( ref1.getColumn(i,"answanswno") == "99999" ){
  934. ref1.setColumn(i,"answanswcnts", "(기타)");
  935. // grd_answlist.rowstyle(i, "data", "color") = "#FF0000"; //grd_answlist 그리드에 expr설정
  936. }
  937. }
  938. }
  939. }
  940. /****************************************************************************************
  941. * Function : fAddAnswList
  942. * Description : 그리드 refresh 후 rowstatus 초기화되는 현상에 대한 처리
  943. * Argument : pos - 구분값
  944. * return type :
  945. * Creator :
  946. ****************************************************************************************/
  947. function fAddAnswList(pos){
  948. if( utlf_isNull(pos) ) pos = "S"; //B:bottom에 추가, S:Select Line에 추가
  949. if ( ds_main_inqrdetlist_inqr.rowcount == 0 ) {
  950. sysf_messageBox("질문이", "I004");
  951. return;
  952. }
  953. if ( ds_main_inqrdetlist_inqr.rowposition < 0 ) {
  954. sysf_messageBox("질문을", "C002");
  955. return;
  956. }
  957. var qestno = Inqr_Path.getColumn(objects[grd_inqrlist.binddataset].rowposition,"inqrqestno");
  958. var answno = objects[grd_inqrlist.binddataset].rowcount-1;
  959. var answflag = ds_main_inqrdetlist_inqr.getColumn(objects[grd_inqrlist.binddataset].rowposition,"inqranswflag");
  960. if ( utlf_isNull(answflag) ) {
  961. sysf_messageBox("답안속성을", "C002");
  962. return;
  963. }else if( answflag == "3" ){
  964. if( objects[grd_inqrlist.binddataset].rowcount > 1 ){
  965. sysf_messageBox("입력답안의 수는 하나만", "I006");
  966. return;
  967. }
  968. }
  969. var inqrno = ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrno");
  970. var inqrhistno = ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrhistno");
  971. // model.makeNode("/root/main/inqrdetlist/answ");
  972. ds_main_inqrdetlist_answ.clearData();
  973. if( pos == "B" ){
  974. // copyNodeListType("/root/main/inqrdetlist/answ", "/root/main/inqrform/answlist", "after");
  975. dsf_copyDs(ds_main_inqrdetlist_answ,ds_main_inqrform_answlist,"after");
  976. answno++;
  977. Answ_Path.setColumn(answno,"answstatus" , "I"); //상태값 셋팅 추가(JJE)
  978. Answ_Path.setColumn(answno,"answqestno" , qestno);
  979. Answ_Path.setColumn(answno,"asnwinqrno" , inqrno);
  980. Answ_Path.setColumn(answno,"answinqrhistno" , inqrhistno);
  981. Answ_Path.setColumn(answno,"answanswno" , "0"); //화면단에서 키를 지정해주는것이 명확하지 않아 저장 전 순차적으로 생성해줌(2009.05.19 JJE)
  982. }else if( pos == "S" ){
  983. // /root/main/tempanswlist
  984. }
  985. // model.refresh();
  986. fSetGrdRowStatus("grd_answlist");
  987. }
  988. /****************************************************************************************
  989. * Function : fInputFreetextAttr
  990. * Description : 답안 중 기타속성으로 지정한다
  991. * Argument :
  992. * return type :
  993. * Creator :
  994. ****************************************************************************************/
  995. function fInputFreetextAttr(){
  996. var iRow = objects[grd_answlist.binddataset].rowposition;
  997. var answNo = Answ_Path.getColumn(iRow,"answanswno");
  998. if( answNo == "99999" )
  999. Answ_Path.setColumn(iRow, "answanswno", "0");
  1000. else{
  1001. // var ftNode = instance1.selectSingleNode("/root/main/inqrdetlist/answ/answlist[answanswno!='"+answNo.text+"' and answanswno=99999]");
  1002. ds_main_inqrdetlist_answ.filter("answanswno!='"+answNo+"' && answanswno==9999");
  1003. if( ds_main_inqrdetlist_answ.rowcount > 0 ){
  1004. sysf_messageBox("이미 기타 답안이 존재합니다.\n기타 답안은 1건만 입력", "I006");
  1005. return;
  1006. }
  1007. Answ_Path.setColumn(iRow, "answanswno", "99999");
  1008. }
  1009. if( Answ_Path.getColumn(iRow, "answstatus") != "I" ){
  1010. Answ_Path.setColumn(iRow, "answstatus", "U");
  1011. }
  1012. fSetGrdRowStatus("grd_answlist");
  1013. }
  1014. /***************************************************************************************************
  1015. * Function : fn_rdoEvent_mthd
  1016. * Description :
  1017. * Argument :
  1018. * return type :
  1019. * Creator :
  1020. ***************************************************************************************************/
  1021. function fn_rdoEvent_mthd() {
  1022. ds_main_inqrdetlist_inqrheader.setColumn(0,"inqrflag",rdo_mthd.getData());
  1023. }
  1024. /***************************************************************************************************
  1025. * Function : fn_rdoEvent_mthd2
  1026. * Description :
  1027. * Argument :
  1028. * return type :
  1029. * Creator :
  1030. ***************************************************************************************************/
  1031. function fn_rdoEvent_mthd2() {
  1032. ds_main_inqrdetlist_inqrheader.setColumn(0,"inqrflag",rdo_mthd2.getData());
  1033. }
  1034. /***************************************************************************************************
  1035. * Function : fAddInqrList
  1036. * Description : 속성리스트에서 항목 복사시 질문번호와 답안 번호를 순서에 맞게 재배열
  1037. * Argument :
  1038. * return type :
  1039. * Creator :
  1040. ***************************************************************************************************/
  1041. function fAddInqrList() {
  1042. var inqrnm = ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrnm");
  1043. if (utlf_isNull(inqrnm)) { // 문진을 새로 작성하는 경우
  1044. ds_main_inqrdetlist_inqrheader.copyData(ds_temp_inqrheader);
  1045. ds_main_inqrdetlist_inqrheader.setColumn(0,"inqrno" , ""); // 복사된 질문의 문진번호와 이력번호를 널값 처리 해준다.
  1046. ds_main_inqrdetlist_inqrheader.setColumn(0,"inqrhistno", "");
  1047. var stepno = ds_main_inqrdetlist_inqrheader.getColumn(0,"stepno");
  1048. fStepSetup();
  1049. ds_main_inqrdetlist_inqrheader.setColumn(0,"stepno", stepno);
  1050. }
  1051. ds_main_inqrdetlist_inqr.clearData();
  1052. ds_main_inqrdetlist_answ.clearData();
  1053. var inqrList = ds_temp_inqrlist;
  1054. if (inqrList.rowcount > 0) {
  1055. for(var i = 0; i < inqrList.rowcount ; i++ ) {
  1056. maxqestno = parseInt(maxqestno) + 1;
  1057. // inqrNode = inqrList.item(i);
  1058. var inqrqestno = inqrList.getColumn(i,"inqrqestno");
  1059. var qestno = inqrqestno;
  1060. for(var j = 0; j < objects[grd_inqrlist.binddataset].rowcount ; j++) {
  1061. inqrqestno = ds_main_inqrdetlist_inqr.getColumn(j,"inqrqestno");
  1062. if(maxqestno > inqrqestno) {
  1063. maxqestno = maxqestno;
  1064. } else {
  1065. maxqestno = parseInt(inqrqestno) + 1;
  1066. }
  1067. }
  1068. // model.setValue(inqrNode.selectSingleNode("inqrstatus"), "i");
  1069. inqrList.setColumn(i,"inqrstatus","i");
  1070. var inqrinqrqestno = ds_main_inqrdetlist_inqr.getColumn(ds_main_inqrdetlist_inqr.findRow("inqrqestno",inqrqestno),"inqrqestno");
  1071. if( !utlf_isNull(inqrinqrqestno) ) {
  1072. // model.setValue(inqrNode.selectSingleNode("inqrqestno"),maxqestno);
  1073. inqrList.setColumn(i,"inqrqestno",maxqestno);
  1074. var anwList = ds_temp_answlist;
  1075. for(var k = 0 ; k < anwList.rowcount; k++ ) {
  1076. // answNode = anwList.item(k);
  1077. var answqestno = anwList.getColumn(k,"answqestno");
  1078. var anqestno = answqestno;
  1079. var tempanswqestno = anwList.getColumn(k,"tempanswqestno");
  1080. var tempqestno = tempanswqestno;
  1081. if (anqestno == qestno) {
  1082. if (anqestno == tempqestno) {
  1083. // model.setValue(answNode.selectSingleNode("answqestno"), maxqestno);
  1084. anwList.setColumn(k,"answqestno",maxqestno);
  1085. }
  1086. }
  1087. }
  1088. }
  1089. }
  1090. }
  1091. var anwList = ds_temp_answlist;
  1092. for (k = 0 ; k < anwList.rowcount; k++ ) {
  1093. // answNode = anwList.item(k);
  1094. // model.setValue(answNode.selectSingleNode("answstatus"), "I");
  1095. anwList.setColumn(k,"answstatus","I");
  1096. }
  1097. dsf_copyDs(ds_main_inqrdetlist_inqr,ds_temp_inqrlist,"after");
  1098. dsf_copyDs(ds_main_inqrdetlist_answ,ds_temp_answlist,"after");
  1099. ds_main_inqrdetlist_inqrheader.setColumn(0,"cpgno" ,ds_main_cond.getColumn(0,"cpgno"));
  1100. ds_main_inqrdetlist_inqrheader.setColumn(0,"cpghistseq" ,ds_main_cond.getColumn(0,"cpghistseq"));
  1101. // 추가된 값들은 insert 상태로 보이도록 하고 질문호와 이력번호는 header값과 같도록 셋팅해준다.
  1102. for(var i = 0; i < objects[grd_inqrlist.binddataset].rowcount ; i++) {
  1103. var inqrstatus = ds_main_inqrdetlist_inqr.getColumn(i,"inqrstatus");
  1104. if (inqrstatus == "i") {
  1105. ds_main_inqrdetlist_inqr.setColumn(i,"inqrinqrno" ,ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrno"));
  1106. ds_main_inqrdetlist_inqr.setColumn(i,"inqrinqrhistno",ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrno"));
  1107. // grd_inqrlist.rowStatus(i) = 1;
  1108. objects[grd_inqrlist.binddataset].setRowType(i,Dataset.ROWTYPE_INSERT);
  1109. }
  1110. }
  1111. for(var i = 0; i < objects[grd_answlist.binddataset].rowcount ; i++) {
  1112. var answstatus = ds_main_inqrdetlist_answ.getColumn(i,"answstatus");
  1113. if (answstatus == "I") {
  1114. ds_main_inqrdetlist_answ.setColumn(i,"answinqrno" ,ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrno"));
  1115. ds_main_inqrdetlist_answ.setColumn(i,"answinqrhistno",ds_main_inqrdetlist_inqrheader.getColumn(0,"inqrno"));
  1116. // grd_answlist.rowStatus(i) = 1;
  1117. objects[grd_answlist.binddataset].setRowType(i,Dataset.ROWTYPE_INSERT);
  1118. }
  1119. }
  1120. //설정된 스텝번호를 파라메터로 셋팅해서 outline의 아이콘 불이 들어오도록 (2009.04.14)
  1121. frmf_setParameter("SPMQP00300_before_stepno", "0");
  1122. frmf_setParameter("SPMQP00300_after_stepno" , ds_main_inqrdetlist_inqrheader.getColumn(0,"stepno"));
  1123. }]]></Script>
  1124. </Form>
  1125. </FDL>