SPZSN00700_인증관련QnA.xfdl 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPZSN00700" classname="SPZSN00700_인증관련QnA" inheritanceid="" position="absolute 0 0 778 768" titletext="인증관련 Q&amp;A" oninit="SPZSN00700_oninit" onload="SPZSN00700_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="Static00" text="인증관련 Q&amp;A" position="absolute 0 0 116 25" class="tit_1"/>
  8. <Div id="div_search" taborder="1" position="absolute 0 24 778 60" class="div_SA">
  9. <Layouts>
  10. <Layout>
  11. <Static id="Static00" text="구분 :" position="absolute 16 9 68 29" class="search_name"/>
  12. <Radio id="rdo_reqtype" taborder="0" columncount="-1" rowcount="-1" position="absolute 65 9 301 29" codecolumn="codecolumn" datacolumn="datacolumn" style="textpadding:0 8 0 3;">
  13. <Dataset id="innerdataset">
  14. <ColumnInfo>
  15. <Column id="codecolumn" size="256"/>
  16. <Column id="datacolumn" size="256"/>
  17. </ColumnInfo>
  18. <Rows>
  19. <Row>
  20. <Col id="codecolumn">0</Col>
  21. <Col id="datacolumn">전체</Col>
  22. </Row>
  23. <Row>
  24. <Col id="codecolumn">1</Col>
  25. <Col id="datacolumn">지침</Col>
  26. </Row>
  27. <Row>
  28. <Col id="codecolumn">2</Col>
  29. <Col id="datacolumn">절차변경</Col>
  30. </Row>
  31. <Row>
  32. <Col id="codecolumn">3</Col>
  33. <Col id="datacolumn">기타</Col>
  34. </Row>
  35. </Rows>
  36. </Dataset>
  37. </Radio>
  38. <Static id="Static01" text="문의일자 :" class="search_name" position="absolute 311 9 387 29"/>
  39. <Calendar id="cal_fromdd" taborder="1" position="absolute 385 9 485 29" dateformat="yyyy-MM-dd ddd" value="null" autoselect="true"/>
  40. <Calendar id="cal_todd" taborder="2" position="absolute 501 9 601 29" value="null" dateformat="yyyy-MM-dd ddd" autoselect="true"/>
  41. <Static id="Static02" text="~" position="absolute 488 9 496 29"/>
  42. <Shape id="Shape00" position="absolute 679 9 691 29" linetype="vertical"/>
  43. <Button id="btn_print" taborder="5" text="출력" class="btn6" position="absolute 641 9 701 29" visible="false"/>
  44. <Button id="btn_excel" taborder="3" text="Excel" class="btn7" position="absolute 702 9 762 29" visible="false"/>
  45. <Button id="btn_search" taborder="7" text="조회" onclick="div_search_btn_search_onclick" class="btn1" position="absolute 702 9 762 29"/>
  46. </Layout>
  47. </Layouts>
  48. </Div>
  49. <Shape id="Shape00" position="absolute 0 62 778 66" class="line_10"/>
  50. <Grid id="grd_qnalist" taborder="2" useinputpanel="false" position="absolute 0 66 778 415" binddataset="ds_qnalist" oncelldblclick="grd_qnalist_oncelldblclick" autofittype="col">
  51. <Formats>
  52. <Format id="default">
  53. <Columns>
  54. <Column size="40"/>
  55. <Column size="40"/>
  56. <Column size="60"/>
  57. <Column size="437"/>
  58. <Column size="60"/>
  59. <Column size="60"/>
  60. <Column size="80"/>
  61. </Columns>
  62. <Rows>
  63. <Row size="24" band="head"/>
  64. <Row size="24"/>
  65. </Rows>
  66. <Band id="head">
  67. <Cell text="No."/>
  68. <Cell col="1" text="상태"/>
  69. <Cell col="2" text="구분"/>
  70. <Cell col="3" text="제목"/>
  71. <Cell col="4" text="게시자"/>
  72. <Cell col="5" text="조회"/>
  73. <Cell col="6" text="게시일"/>
  74. </Band>
  75. <Band id="body">
  76. <Cell celltype="head" text="bind:seqno"/>
  77. <Cell col="1" displaytype="combo" style="align:center middle;" text="bind:status" combodataset="ds_status" combocodecol="value" combodatacol="label"/>
  78. <Cell col="2" displaytype="combo" style="align:center middle;" text="bind:reqtype" combodataset="ds_reqtype" combocodecol="value" combodatacol="label"/>
  79. <Cell col="3" displaytype="text" text="bind:reqtitle"/>
  80. <Cell col="4" displaytype="normal" text="bind:requser"/>
  81. <Cell col="5" text="bind:hitcount"/>
  82. <Cell col="6" displaytype="date" text="bind:reqdate"/>
  83. </Band>
  84. </Format>
  85. </Formats>
  86. </Grid>
  87. <Static id="Static01" text="문의" position="absolute 0 422 76 442" class="tit_2"/>
  88. <Shape id="Shape01" class="line_10" position="absolute 0 439 778 443"/>
  89. <Button id="btn_new" taborder="3" text="신규문의" position="absolute 582 418 646 438" class="btn2" onclick="btn_new_onclick"/>
  90. <Button id="btn_save" taborder="5" text="문의저장" class="btn5" position="absolute 648 418 712 438" enable="false" onclick="btn_save_onclick"/>
  91. <Button id="btn_del" taborder="6" text="문의삭제" class="btn5" position="absolute 714 418 778 438" enable="false" onclick="btn_del_onclick"/>
  92. <Shape id="Shape06" position="absolute 0 607 778 619"/>
  93. <Div id="div_req" taborder="45" position="absolute -10 434 778 596" enable="false">
  94. <Layouts>
  95. <Layout>
  96. <MaskEdit id="medt_reqdate" taborder="3" displaynulltext=" " type="string" mask="####-##-## ##:##:##" trimtype="both" autoselect="true" class="text_essential" enable="false" position="absolute 664 32 788 52" style=":disabled {color:#262626ff;}" anchor="default"/>
  97. <Static id="Static15" text="게시일" class="cell_1" position="absolute 582 32 662 54" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  98. <Static id="Static07" text="문의&#13;&#10;내용" class="cell_1" position="absolute 10 78 90 156" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  99. <Shape id="Shape05" position="absolute 10 150 788 162" anchor="default"/>
  100. <TextArea id="ta_reqcontent" taborder="2" autoselect="true" class="text_essential" position="absolute 92 78 788 154" anchor="default" imemode="hangul" style=":disabled {color:#262626ff;}"/>
  101. <Edit id="edt_reqdeptnm" taborder="4" autoselect="true" class="text_essential" enable="false" position="absolute 523 55 788 75" style=":disabled {color:#262626ff;}" anchor="default"/>
  102. <Static id="Static06" text="부서" class="cell_1" position="absolute 441 55 521 77" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  103. <Edit id="edt_reqtel" taborder="1" autoselect="true" class="text_essential" position="absolute 308 55 439 75" anchor="default" inputtype="number,symbol" useime="none" style=":disabled {color:#262626ff;}"/>
  104. <Static id="Static05" text="연락처" class="cell_1" position="absolute 226 55 306 77" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  105. <Edit id="edit_requser" taborder="5" autoselect="true" class="text_essential" enable="false" position="absolute 92 55 224 75" style=":disabled {color:#262626ff;}" anchor="default"/>
  106. <Static id="Static04" text="게시자" class="cell_1" position="absolute 10 55 90 77" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  107. <Shape id="Shape04" position="absolute 10 71 788 83" anchor="default"/>
  108. <Static id="Static03" text="제목" class="cell_1" position="absolute 10 32 90 54" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  109. <Static id="Static02" text="구분" class="cell_1" position="absolute 10 9 90 31" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  110. <Shape id="Shape03" position="absolute 10 48 788 60" anchor="default"/>
  111. <Shape id="Shape02" position="absolute 10 29 788 33" anchor="default"/>
  112. <Edit id="edt_reqtitle" taborder="0" autoselect="true" class="text_essential" position="absolute 92 32 580 52" anchor="default" imemode="hangul" style=":disabled {color:#262626ff;}"/>
  113. <Radio id="rdo_reqtype" taborder="6" columncount="-1" rowcount="-1" codecolumn="value" datacolumn="label" position="absolute 92 10 272 30" style="textpadding:0 4 0 3;" anchor="default" innerdataset="@ds_reqtype"/>
  114. </Layout>
  115. </Layouts>
  116. </Div>
  117. <Static id="Static08" text="첨부" class="cell_1" position="absolute 0 591 80 613" style="padding:0 0 0 0;align:center middle;"/>
  118. <Edit id="edt_reqattfilenm" taborder="46" autoselect="true" position="absolute 82 591 536 611" enable="false" style=":disabled {color:#262626ff;}"/>
  119. <Button id="btn_reqfileadd" taborder="47" text="첨부" class="btn2" position="absolute 538 591 580 611" onclick="btn_reqfileadd_onclick" enable="false"/>
  120. <Button id="btn_reqpreview" taborder="48" text="미리보기" class="btn2" position="absolute 582 591 646 611" enable="false" onclick="btn_reqpreview_onclick"/>
  121. <Button id="btn_reqdownload" taborder="49" text="다운로드" class="btn2" position="absolute 648 591 712 611" enable="false" onclick="btn_reqdownload_onclick"/>
  122. <Button id="btn_reqfiledel" taborder="50" text="첨부삭제" class="btn5" position="absolute 714 591 778 611" enable="false" onclick="btn_reqfiledel_onclick"/>
  123. <Div id="div_ans" taborder="51" text="Div00" position="absolute 0 616 778 768" enable="false">
  124. <Layouts>
  125. <Layout>
  126. <Static id="Static09" text="응답" class="tit_2" position="absolute 0 4 76 24" anchor="default"/>
  127. <Shape id="Shape07" class="line_10" position="absolute 0 21 778 25" anchor="default"/>
  128. <Static id="Static11" text="응답자" class="cell_1" position="absolute 372 0 428 20" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  129. <Edit id="edt_ansuser" taborder="1" autoselect="true" position="absolute 430 0 530 20" anchor="default" style=":disabled {color:#262626ff;}" enable="false"/>
  130. <Static id="Static12" text="응답일" class="cell_1" position="absolute 532 0 588 20" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  131. <Button id="btn_answer" taborder="2" text="응답저장" class="btn5" position="absolute 714 0 778 20" anchor="default" onclick="div_ans_btn_answer_onclick"/>
  132. <TextArea id="ta_anscontent" taborder="3" autoselect="true" position="absolute 82 25 778 101" anchor="default" imemode="hangul" style=":disabled {color:#262626ff;}"/>
  133. <Static id="Static13" text="상태" class="cell_1" position="absolute 0 127 80 149" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  134. <Shape id="Shape08" position="absolute 0 97 778 109" anchor="default"/>
  135. <Radio id="rdo_status" taborder="4" columncount="5" rowcount="0" innerdataset="@ds_status" codecolumn="value" datacolumn="label" position="absolute 82 128 438 148" rdo_status="[object Radio]" anchor="default"/>
  136. <Shape id="Shape09" position="absolute 0 120 778 132" anchor="default"/>
  137. <Static id="Static10" text="응답&#13;&#10;내용" class="cell_1" position="absolute 0 25 80 103" style="padding:0 0 0 0;align:center middle;" anchor="default"/>
  138. <Shape id="Shape10" class="line_1" position="absolute 0 150 778 152" anchor="default"/>
  139. <MaskEdit id="medt_ansdate" taborder="10" displaynulltext=" " type="string" mask="####-##-## ##:##:##" trimtype="both" autoselect="true" position="absolute 590 0 712 20" anchor="default" style=":disabled {color:#262626ff;}" enable="false"/>
  140. </Layout>
  141. </Layouts>
  142. <InitValue>
  143. <Radio id="rdo_status" taborder="22" columncount="5" rowcount="0" position="absolute 82 744 438 764" codecolumn="codecolumn" datacolumn="datacolumn"/>
  144. </InitValue>
  145. </Div>
  146. <Button id="btn_ansfiledel" taborder="52" text="첨부삭제" class="btn5" position="absolute 714 720 778 740" enable="false" onclick="btn_ansfiledel_onclick"/>
  147. <Button id="btn_ansdownload" taborder="53" text="다운로드" class="btn2" position="absolute 648 720 712 740" enable="false" onclick="btn_ansdownload_onclick"/>
  148. <Button id="btn_anspreview" taborder="54" text="미리보기" class="btn2" position="absolute 582 720 646 740" enable="false" onclick="btn_anspreview_onclick"/>
  149. <Button id="btn_ansfileadd" taborder="55" text="첨부" class="btn2" position="absolute 538 720 580 740" enable="false" onclick="btn_ansfileadd_onclick"/>
  150. <Edit id="edt_ansattfilenm" taborder="56" autoselect="true" position="absolute 82 720 536 740" enable="false" style=":disabled {color:#262626ff;}"/>
  151. <Static id="Static14" text="첨부" class="cell_1" position="absolute 0 720 80 742" style="padding:0 0 0 0;align:center middle;"/>
  152. </Layout>
  153. </Layouts>
  154. <Objects>
  155. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  156. <ColumnInfo>
  157. <Column id="reqtype" type="STRING" size="256"/>
  158. <Column id="reqfromdd" type="STRING" size="256"/>
  159. <Column id="reqtodd" type="STRING" size="256"/>
  160. <Column id="editmode" type="STRING" size="256"/>
  161. </ColumnInfo>
  162. <Rows>
  163. <Row>
  164. <Col id="reqtype">0</Col>
  165. </Row>
  166. </Rows>
  167. </Dataset>
  168. <Dataset id="ds_qnalist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  169. <ColumnInfo>
  170. <Column id="seqno" type="STRING" size="256"/>
  171. <Column id="instcd" type="STRING" size="256"/>
  172. <Column id="reqtype" type="STRING" size="256"/>
  173. <Column id="reqdate" type="STRING" size="256"/>
  174. <Column id="reqid" type="STRING" size="256"/>
  175. <Column id="requser" type="STRING" size="256"/>
  176. <Column id="reqdeptcd" type="STRING" size="256"/>
  177. <Column id="reqdeptnm" type="STRING" size="256"/>
  178. <Column id="reqphone" type="STRING" size="256"/>
  179. <Column id="reqtitle" type="STRING" size="256"/>
  180. <Column id="reqcontent" type="STRING" size="256"/>
  181. <Column id="reqattfilenm" type="STRING" size="256"/>
  182. <Column id="reqattfilepath" type="STRING" size="256"/>
  183. <Column id="ansdate" type="STRING" size="256"/>
  184. <Column id="ansid" type="STRING" size="256"/>
  185. <Column id="ansuser" type="STRING" size="256"/>
  186. <Column id="anscontent" type="STRING" size="256"/>
  187. <Column id="ansattfilenm" type="STRING" size="256"/>
  188. <Column id="ansattfilepath" type="STRING" size="256"/>
  189. <Column id="status" type="STRING" size="256"/>
  190. <Column id="hitcount" type="STRING" size="256"/>
  191. </ColumnInfo>
  192. </Dataset>
  193. <Dataset id="ds_qnainfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  194. <ColumnInfo>
  195. <Column id="seqno" type="STRING" size="256"/>
  196. <Column id="instcd" type="STRING" size="256"/>
  197. <Column id="reqtype" type="STRING" size="256"/>
  198. <Column id="reqdate" type="STRING" size="256"/>
  199. <Column id="reqid" type="STRING" size="256"/>
  200. <Column id="requser" type="STRING" size="256"/>
  201. <Column id="reqdeptcd" type="STRING" size="256"/>
  202. <Column id="reqdeptnm" type="STRING" size="256"/>
  203. <Column id="reqphone" type="STRING" size="256"/>
  204. <Column id="reqtitle" type="STRING" size="256"/>
  205. <Column id="reqcontent" type="STRING" size="256"/>
  206. <Column id="reqattfilenm" type="STRING" size="256"/>
  207. <Column id="reqattfilepath" type="STRING" size="256"/>
  208. <Column id="ansdate" type="STRING" size="256"/>
  209. <Column id="ansid" type="STRING" size="256"/>
  210. <Column id="ansuser" type="STRING" size="256"/>
  211. <Column id="anscontent" type="STRING" size="256"/>
  212. <Column id="ansattfilenm" type="STRING" size="256"/>
  213. <Column id="ansattfilepath" type="STRING" size="256"/>
  214. <Column id="status" type="STRING" size="256"/>
  215. <Column id="hitcount" type="STRING" size="256"/>
  216. </ColumnInfo>
  217. </Dataset>
  218. <Dataset id="ds_status" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  219. <ColumnInfo>
  220. <Column id="label" type="STRING" size="256"/>
  221. <Column id="value" type="STRING" size="256"/>
  222. </ColumnInfo>
  223. <Rows>
  224. <Row>
  225. <Col id="label">대기</Col>
  226. <Col id="value">0</Col>
  227. </Row>
  228. <Row>
  229. <Col id="label">진행</Col>
  230. <Col id="value">1</Col>
  231. </Row>
  232. <Row>
  233. <Col id="label">보류</Col>
  234. <Col id="value">2</Col>
  235. </Row>
  236. <Row>
  237. <Col id="label">완료</Col>
  238. <Col id="value">3</Col>
  239. </Row>
  240. <Row>
  241. <Col id="label">반려</Col>
  242. <Col id="value">9</Col>
  243. </Row>
  244. </Rows>
  245. </Dataset>
  246. <Dataset id="ds_qnahitcount" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  247. <ColumnInfo>
  248. <Column id="hitcount" type="STRING" size="256"/>
  249. </ColumnInfo>
  250. </Dataset>
  251. <Dataset id="ds_reqtype" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  252. <ColumnInfo>
  253. <Column id="value" type="STRING" size="256"/>
  254. <Column id="label" type="STRING" size="256"/>
  255. </ColumnInfo>
  256. <Rows>
  257. <Row>
  258. <Col id="value">1</Col>
  259. <Col id="label">지침</Col>
  260. </Row>
  261. <Row>
  262. <Col id="value">2</Col>
  263. <Col id="label">절차변경</Col>
  264. </Row>
  265. <Row>
  266. <Col id="value">3</Col>
  267. <Col id="label">기타</Col>
  268. </Row>
  269. </Rows>
  270. </Dataset>
  271. <Dataset id="ds_ans_auth" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  272. <ColumnInfo>
  273. <Column id="instcd" type="STRING" size="256"/>
  274. <Column id="deptcd" type="STRING" size="256"/>
  275. <Column id="deptnm" type="STRING" size="256"/>
  276. </ColumnInfo>
  277. <Rows>
  278. <Row>
  279. <Col id="deptcd">4071100000</Col>
  280. <Col id="deptnm">의료질관리실</Col>
  281. <Col id="instcd">031</Col>
  282. </Row>
  283. <Row>
  284. <Col id="deptcd">4071200000</Col>
  285. <Col id="deptnm">의료질관리과</Col>
  286. <Col id="instcd">031</Col>
  287. </Row>
  288. <Row>
  289. <Col id="deptcd">4071201000</Col>
  290. <Col id="deptnm">의료질관리팀</Col>
  291. <Col id="instcd">031</Col>
  292. </Row>
  293. <Row>
  294. <Col id="deptcd">3320100000</Col>
  295. <Col id="deptnm">의료질관리팀</Col>
  296. <Col id="instcd">032</Col>
  297. </Row>
  298. <Row>
  299. <Col id="deptcd">3350000000</Col>
  300. <Col id="deptnm">의료질관리실</Col>
  301. <Col id="instcd">032</Col>
  302. </Row>
  303. <Row>
  304. <Col id="instcd">031</Col>
  305. <Col id="deptcd">4130100000</Col>
  306. <Col id="deptnm">의료정보센터</Col>
  307. </Row>
  308. </Rows>
  309. </Dataset>
  310. <Dataset id="ds_req_file" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  311. <ColumnInfo>
  312. <Column id="filedata" type="BLOB" size="0"/>
  313. <Column id="filenm" type="STRING" size="256"/>
  314. <Column id="filesize" type="STRING" size="256"/>
  315. <Column id="filetype" type="STRING" size="256"/>
  316. </ColumnInfo>
  317. </Dataset>
  318. <Dataset id="ds_ans_file" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  319. <ColumnInfo>
  320. <Column id="filedata" type="BLOB" size="0"/>
  321. <Column id="filenm" type="STRING" size="256"/>
  322. <Column id="filesize" type="STRING" size="256"/>
  323. <Column id="filetype" type="STRING" size="256"/>
  324. </ColumnInfo>
  325. </Dataset>
  326. <Dataset id="ds_qna_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  327. <ColumnInfo>
  328. <Column id="seqno" type="STRING" size="256"/>
  329. <Column id="instcd" type="STRING" size="256"/>
  330. <Column id="reqattfilepath" type="STRING" size="256"/>
  331. <Column id="ansattfilepath" type="STRING" size="256"/>
  332. </ColumnInfo>
  333. </Dataset>
  334. <Dataset id="ds_send_fileinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  335. <ColumnInfo>
  336. <Column id="seqno" type="STRING" size="256"/>
  337. <Column id="gubun" type="STRING" size="256"/>
  338. </ColumnInfo>
  339. <Rows>
  340. <Row/>
  341. </Rows>
  342. </Dataset>
  343. <Dataset id="ds_file" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  344. <ColumnInfo>
  345. <Column id="attfilecnts" type="STRING" size="256"/>
  346. </ColumnInfo>
  347. </Dataset>
  348. </Objects>
  349. <Bind>
  350. <BindItem id="item10" compid="edt_reqattfilenm" propid="value" datasetid="ds_qnainfo" columnid="reqattfilenm"/>
  351. <BindItem id="item0" compid="div_search.rdo_reqtype" propid="value" datasetid="ds_send" columnid="reqtype"/>
  352. <BindItem id="item1" compid="div_search.cal_fromdd" propid="value" datasetid="ds_send" columnid="reqfromdd"/>
  353. <BindItem id="item2" compid="div_search.cal_todd" propid="value" datasetid="ds_send" columnid="reqtodd"/>
  354. <BindItem id="item5" compid="div_req.medt_reqdate" propid="value" datasetid="ds_qnainfo" columnid="reqdate"/>
  355. <BindItem id="item9" compid="div_req.ta_reqcontent" propid="value" datasetid="ds_qnainfo" columnid="reqcontent"/>
  356. <BindItem id="item8" compid="div_req.edt_reqdeptnm" propid="value" datasetid="ds_qnainfo" columnid="reqdeptnm"/>
  357. <BindItem id="item7" compid="div_req.edt_reqtel" propid="value" datasetid="ds_qnainfo" columnid="reqphone"/>
  358. <BindItem id="item6" compid="div_req.edit_requser" propid="value" datasetid="ds_qnainfo" columnid="requser"/>
  359. <BindItem id="item4" compid="div_req.edt_reqtitle" propid="value" datasetid="ds_qnainfo" columnid="reqtitle"/>
  360. <BindItem id="item3" compid="div_req.rdo_reqtype" propid="value" datasetid="ds_qnainfo" columnid="reqtype"/>
  361. <BindItem id="item11" compid="div_ans.edt_ansuser" propid="value" datasetid="ds_qnainfo" columnid="ansuser"/>
  362. <BindItem id="item13" compid="div_ans.ta_anscontent" propid="value" datasetid="ds_qnainfo" columnid="anscontent"/>
  363. <BindItem id="item15" compid="div_ans.rdo_status" propid="value" datasetid="ds_qnainfo" columnid="status"/>
  364. <BindItem id="item12" compid="div_ans.medt_ansdate" propid="value" datasetid="ds_qnainfo" columnid="ansdate"/>
  365. <BindItem id="item14" compid="edt_ansattfilenm" propid="value" datasetid="ds_qnainfo" columnid="ansattfilenm"/>
  366. </Bind>
  367. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs";
  368. var gMaxSize = 10485760;
  369. var gFileInfo = new Object();
  370. function SPZSN00700_oninit(obj:Form, e:InitEventInfo)
  371. {
  372. frmf_initForm(obj);
  373. }
  374. function SPZSN00700_onload(obj:Form, e:LoadEventInfo)
  375. {
  376. var todd = utlf_getCurrentDate();
  377. var fromdd = todd.toDate().getAddDate(-6, "M").getDateFormat("YYYYMMDD");
  378. ds_send.setColumn(0, "reqfromdd", fromdd);
  379. ds_send.setColumn(0, "reqtodd", todd);
  380. div_search.btn_search.click();
  381. }
  382. function div_search_btn_search_onclick(obj:Button, e:ClickEventInfo)
  383. {
  384. var oParam = {};
  385. oParam.id = "TRZSN00700";
  386. oParam.service = "noticeinfoapp.noticeinfo";
  387. oParam.method = "reqGetCertQnAList";
  388. oParam.inds = "req=ds_send";
  389. oParam.outds = "ds_qnalist=qnalist";
  390. oParam.async = true;
  391. tranf_submit(oParam);
  392. }
  393. function btn_new_onclick(obj:Button, e:ClickEventInfo)
  394. {
  395. fNewReq();
  396. }
  397. function fNewReq() {
  398. btn_save.enable = true;
  399. div_req.enable = true;
  400. div_ans.enable = false;
  401. ds_send.setColumn(0, "editmode", "I");
  402. ds_qnainfo.clearData();
  403. ds_qnainfo.addRow();
  404. var userid = sysf_getUserInfo("userid");
  405. var usernm = sysf_getUserInfo("usernm");
  406. var reqdeptcd = sysf_getUserInfo("dutplcecd")
  407. var reqdeptnm = sysf_getUserInfo("dutplcenm")
  408. var reqdate = utlf_getCurrentDate() + utlf_getCurrentTime();
  409. ds_qnainfo.setColumn(0, "reqtype", "1");
  410. ds_qnainfo.setColumn(0, "reqdate", reqdate);
  411. ds_qnainfo.setColumn(0, "reqid", userid);
  412. ds_qnainfo.setColumn(0, "requser", usernm);
  413. ds_qnainfo.setColumn(0, "reqdeptcd", reqdeptcd);
  414. ds_qnainfo.setColumn(0, "reqdeptnm", reqdeptnm);
  415. div_req.edt_reqtitle.setFocus();
  416. fSetControlAuth();
  417. }
  418. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  419. {
  420. if(!fValidationCheck()) return;
  421. var rowposition = ds_qnalist.rowposition;
  422. var oParam = {};
  423. oParam.id = "TXZSN00701";
  424. oParam.service = "noticeinfoapp.noticeinfo";
  425. oParam.method = "reqSetCertQnA";
  426. oParam.inds = "req=ds_send reqqna=ds_qnainfo reqfile=ds_req_file ansfile=ds_ans_file";
  427. oParam.outds = "ds_qnalist=qnalist ds_qna_result=qna_result";
  428. oParam.async = false;
  429. oParam.callback = "cf_TXZSN00701";
  430. tranf_submit(oParam);
  431. ds_qnalist.rowposition = rowposition;
  432. }
  433. function cf_TXZSN00701(sSvcId, nErrorCode, sErrorMsg) {
  434. if(nErrorCode < 0) {
  435. sysf_messageBox("저장을", "E009");
  436. return;
  437. }
  438. var editmode = ds_send.getColumn(0, "editmode");
  439. switch(editmode) {
  440. case "I" :
  441. var instcd = ds_qna_result.getColumn(0, "instcd");
  442. if(!utlf_isNull(instcd)) {
  443. ds_qnainfo.setColumn(0, "seqno", ds_qna_result.getColumn(0, "seqno"));
  444. ds_qnainfo.setColumn(0, "instcd", instcd);
  445. }
  446. case "U" :
  447. var reqattfilepath = ds_qna_result.getColumn(0, "reqattfilepath");
  448. if(!utlf_isNull(reqattfilepath))
  449. ds_qnainfo.setColumn(0, "reqattfilepath", reqattfilepath);
  450. break;
  451. case "D" :
  452. fInit();
  453. break;
  454. case "A" :
  455. var ansattfilepath = ds_qna_result.getColumn(0, "ansattfilepath");
  456. if(!utlf_isNull(ansattfilepath))
  457. ds_qnainfo.setColumn(0, "ansattfilepath", ansattfilepath);
  458. break;
  459. }
  460. if(editmode != "D")
  461. fSetControlAuth();
  462. }
  463. function fValidationCheck() {
  464. var result = true;
  465. if(utlf_isNull(ds_qnainfo.getColumn(0, "reqtitle"))) {
  466. sysf_messageBox("제목을 입력하여 주세요", "E");
  467. div_req.edt_reqtitle.setFocus();
  468. return;
  469. }
  470. if(utlf_isNull(ds_qnainfo.getColumn(0, "reqphone"))) {
  471. sysf_messageBox("연락처를 입력하여 주세요", "E");
  472. div_req.edt_reqtel.setFocus();
  473. return;
  474. }
  475. if(utlf_isNull(ds_qnainfo.getColumn(0, "reqcontent"))) {
  476. sysf_messageBox("문의내용을 입력하여 주세요", "E");
  477. div_req.ta_reqcontent.setFocus();
  478. return;
  479. }
  480. return result;
  481. }
  482. function fInit() {
  483. ds_qnainfo.clearData();
  484. btn_save.enable = false;
  485. btn_del.enable = false;
  486. div_req.enable = false;
  487. }
  488. function grd_qnalist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  489. {
  490. if(e.row < 0 || e.col < 0) return;
  491. ds_qnainfo.clearData();
  492. ds_qnainfo.addRow();
  493. ds_qnainfo.copyRow(0, ds_qnalist, e.row);
  494. var oParam = {};
  495. oParam.id = "TRZSN00702";
  496. oParam.service = "noticeinfoapp.noticeinfo";
  497. oParam.method = "reqSetCertQnAHitCount";
  498. oParam.inds = "req=ds_qnainfo";
  499. oParam.outds = "ds_qnahitcount=qnahitcount";
  500. oParam.async = false;
  501. tranf_submit(oParam);
  502. ds_qnalist.setColumn(e.row, "hitcount", ds_qnahitcount.getColumn(0, "hitcount"));
  503. ds_send.setColumn(0, "editmode", "U");
  504. fSetControlAuth();
  505. }
  506. function fSetControlAuth() {
  507. var userid = sysf_getUserId();
  508. var reqid = ds_qnainfo.getColumn(0, "reqid");
  509. var ansid = ds_qnainfo.getColumn(0, "ansid");
  510. // 저장, 삭제 버튼 활성화 권한 및 문의 내용 수정 권한 설정
  511. if (userid == reqid) {
  512. btn_save.enable = true;
  513. btn_del.enable = true;
  514. div_req.enable = true;
  515. } else{
  516. btn_save.enable = false;
  517. btn_del.enable = false;
  518. div_req.enable = false;
  519. }
  520. // 응답 가능 부서인 경우 응답 내용 수정 권한 설정
  521. var dutplcecd = sysf_getUserInfo("dutplcecd");
  522. if(ds_ans_auth.findRow("deptcd", dutplcecd) > -1) {
  523. div_ans.enable = true;
  524. div_ans.btn_answer.enable = true;
  525. } else {
  526. div_ans.enable = false;
  527. div_ans.btn_answer.enable = false;
  528. }
  529. // 첨부파일 버튼 권한 설정
  530. if(!utlf_isNull(ds_qnainfo.getColumn(0, "reqattfilepath"))) {
  531. btn_reqpreview.enable = true;
  532. btn_reqdownload.enable = true;
  533. if (userid == reqid) { // 자신이 올린 첨부파일만 재첨부 및 삭제 가능
  534. btn_reqfileadd.enable = true;
  535. btn_reqfiledel.enable = true;
  536. } else {
  537. btn_reqfileadd.enable = false;
  538. btn_reqfiledel.enable = false;
  539. }
  540. } else {
  541. if (userid == reqid) // 자신이 올린 글이면 추후 첨부 가능
  542. btn_reqfileadd.enable = true;
  543. else
  544. btn_reqfileadd.enable = false;
  545. btn_reqpreview.enable = false;
  546. btn_reqdownload.enable = false;
  547. btn_reqfiledel.enable = false;
  548. }
  549. if(!utlf_isNull(ds_qnainfo.getColumn(0, "ansattfilepath"))) {
  550. btn_anspreview.enable = true;
  551. btn_ansdownload.enable = true;
  552. if (div_ans.enable) { // 응답권한이 있는 사람은 첨부파일 재첨부 및 삭제 가능
  553. btn_ansfileadd.enable = true;
  554. btn_ansfiledel.enable = true;
  555. } else { // 응답권한이 없는 사람은 첨부 파일이 있을 때 미리보기와 다운로드만 가능
  556. btn_ansfileadd.enable = false;
  557. btn_ansfiledel.enable = false;
  558. }
  559. } else {
  560. if (div_ans.enable) // 응답권한이 있는 사람은 추후 첨부 가능
  561. btn_ansfileadd.enable = true;
  562. else
  563. btn_ansfileadd.enable = false;
  564. btn_anspreview.enable = false;
  565. btn_ansdownload.enable = false;
  566. btn_ansfiledel.enable = false;
  567. }
  568. }
  569. function btn_del_onclick(obj:Button, e:ClickEventInfo)
  570. {
  571. ds_send.setColumn(0, "editmode", "D");
  572. btn_save.click();
  573. }
  574. function div_ans_btn_answer_onclick(obj:Button, e:ClickEventInfo)
  575. {
  576. var userid = sysf_getUserInfo("userid");
  577. var usernm = sysf_getUserInfo("usernm");
  578. var ansdate = utlf_getCurrentDate() + utlf_getCurrentTime();
  579. ds_qnainfo.setColumn(0, "ansid", userid);
  580. ds_qnainfo.setColumn(0, "ansuser", usernm);
  581. ds_qnainfo.setColumn(0, "ansdate", ansdate);
  582. ds_send.setColumn(0, "editmode", "A");
  583. btn_save.click();
  584. }
  585. function btn_reqfileadd_onclick(obj:Button, e:ClickEventInfo)
  586. {
  587. fFileAdd("req");
  588. }
  589. function btn_reqpreview_onclick(obj:Button, e:ClickEventInfo)
  590. {
  591. fFileDown("req", true);
  592. }
  593. function btn_reqdownload_onclick(obj:Button, e:ClickEventInfo)
  594. {
  595. fFileDown("req", false);
  596. }
  597. function btn_reqfiledel_onclick(obj:Button, e:ClickEventInfo)
  598. {
  599. fFileDel("req");
  600. }
  601. function btn_ansfileadd_onclick(obj:Button, e:ClickEventInfo)
  602. {
  603. fFileAdd("ans");
  604. }
  605. function btn_anspreview_onclick(obj:Button, e:ClickEventInfo)
  606. {
  607. fFileDown("ans", true);
  608. }
  609. function btn_ansdownload_onclick(obj:Button, e:ClickEventInfo)
  610. {
  611. fFileDown("ans", false);
  612. }
  613. function btn_ansfiledel_onclick(obj:Button, e:ClickEventInfo)
  614. {
  615. fFileDel("ans");
  616. }
  617. function fGetAttachFileInfo(gubun) {
  618. if(gubun == "ans") {
  619. gFileInfo.fileColNm = "ansattfilenm"
  620. gFileInfo.fileDs = ds_ans_file;
  621. } else {
  622. gFileInfo.fileColNm = "reqattfilenm"
  623. gFileInfo.fileDs = ds_req_file;
  624. }
  625. return gFileInfo;
  626. }
  627. function fFileAdd(gubun) {
  628. //******파일을 첨부하기 위해 파일열기가 open 되게 한다.
  629. //파일의 크기를 측정한다.
  630. var maxsize = gMaxSize;
  631. var fileInfo = fGetAttachFileInfo(gubun);
  632. var oDs_File = fileInfo.fileDs;
  633. //파일 저장
  634. //파일을 받아오기 위해 파일열기 팝업창을 띄운다.
  635. var fd = new FileDialog;
  636. var objVFile = fd.open("FileOpen", FileDialog.LOAD); // 단일 파일 선택
  637. if(!utlf_isNull(objVFile)) {
  638. //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  639. oDs_File.clearData();
  640. oDs_File.addRow();
  641. var file = dsf_writeFileToDs(objVFile, oDs_File, 0, "filedata");
  642. oDs_File.setColumn(0, "filenm", file.filename); // 파일이름
  643. oDs_File.setColumn(0, "filesize", file.filesize); // 파일사이즈
  644. oDs_File.setColumn(0, "filetype", file.filetype); // 파일mime타입
  645. //파일 경로가 아닌 이름만 input박스에 넣기 위한 처리
  646. var name = file.filename;
  647. ds_qnainfo.setColumn(0, fileInfo.fileColNm, name);
  648. //lastIndexOf함수는 \\이것을 뒤어세 검색하여 나오면 앞에 것은 지운다.
  649. var filename = name.lastIndexOf("\\");
  650. //open 파일명를 input박스에 넣는다.
  651. ds_qnainfo.setColumn(0, fileInfo.fileColNm, name.substring(filename + 1, name.length));
  652. //파일 크기가 너무 큰경우 메세지를 띄운다.
  653. if (!checkFileSize(file.filesize)){
  654. sysf_messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  655. ds_qnainfo.setColumn(0, fileInfo.fileColNm, "");
  656. oDs_File.clearData();
  657. }
  658. }
  659. }
  660. function checkFileSize(fileSize)
  661. {
  662. if (fileSize <= gMaxSize)
  663. return true;
  664. else
  665. return false;
  666. }
  667. function fFileDown(gubun, preview) {
  668. var fso, folder;
  669. var temp_path = "C:\\temp2";
  670. var objActiveX = new ActiveX();
  671. var FSO = inff_fileSystemObject();
  672. // 객체 생성 실패하면 리턴
  673. if (FSO == null){
  674. return;
  675. }
  676. // 시스템 드라이브가 없다면..
  677. if (FSO.DriveExists("C") == false){
  678. return;
  679. }
  680. // 임시디렉토리가 없으면 생성
  681. if (FSO.FolderExists(temp_path) == false){
  682. folder = FSO.CreateFolder(temp_path);
  683. }
  684. var fileInfo = fGetAttachFileInfo(gubun);
  685. //파일명를 받아옴
  686. var getfilenm = ds_qnainfo.getColumn(0, fileInfo.fileColNm);
  687. //파일명이 있는 경우 다운로드
  688. if(utlf_isNull(getfilenm)){
  689. return;
  690. }
  691. //키값을 받아옴
  692. var seqno = ds_qnainfo.getColumn(0, "seqno");
  693. ds_send_fileinfo.clearData();
  694. ds_send_fileinfo.addRow();
  695. ds_send_fileinfo.setColumn(0, "seqno", seqno);
  696. ds_send_fileinfo.setColumn(0, "gubun", gubun);
  697. var oParam = {};
  698. oParam.id = "TRZSN00703";
  699. oParam.service = "noticeinfoapp.noticeinfo";
  700. oParam.method = "reqGetCertQnAFile";
  701. oParam.inds = "req=ds_send_fileinfo";
  702. oParam.outds = "ds_file=filelist";
  703. oParam.async = false;
  704. tranf_submit(oParam);
  705. if(ds_file.rowcount > 0 && !utlf_isNull(ds_file.getColumn(0, "attfilecnts"))) {
  706. if(preview) {
  707. dsf_readFileFromDs(temp_path+"\\"+getfilenm, ds_file, 0, "attfilecnts"); // 파일저장
  708. var objExtCommon = new ExtCommon();
  709. objExtCommon.executeProcess(temp_path+"\\"+getfilenm,"","");
  710. } else {
  711. var fd = new FileDialog;
  712. var objVFile = fd.open("FileSave", FileDialog.SAVE, "%MYDOCUMENT%", getfilenm); // 단일 파일 선택
  713. if (objVFile != null) {
  714. dsf_readFileFromDs(objVFile.fullpath, ds_file, 0, "attfilecnts"); // 파일저장
  715. }
  716. }
  717. } else {
  718. sysf_messageBox("파일이", "E014");
  719. }
  720. }
  721. function fFileDel(gubun) {
  722. var fileInfo = fGetAttachFileInfo(gubun);
  723. //파일명를 받아옴
  724. var name = ds_qnainfo.getColumn(0, fileInfo.fileColNm);
  725. if(!utlf_isNull(name)){
  726. var fileupdata = sysf_messageBox(" " + name + "\n 예(Y)를 누르면 즉시 파일을 삭제합니다.\n\n" , "Q001");
  727. if(fileupdata == '6'){
  728. var seqno = ds_qnainfo.getColumn(0, "seqno");
  729. ds_send_fileinfo.clearData();
  730. ds_send_fileinfo.addRow();
  731. ds_send_fileinfo.setColumn(0, "seqno", seqno);
  732. ds_send_fileinfo.setColumn(0, "gubun", gubun);
  733. var rowposition = ds_qnalist.rowposition;
  734. var oParam = {};
  735. oParam.id = "TXZSN00704";
  736. oParam.service = "noticeinfoapp.noticeinfo";
  737. oParam.method = "reqDelCertQnAFile";
  738. oParam.inds = "req=ds_send reqfile=ds_send_fileinfo";
  739. oParam.outds = "ds_qnalist=qnalist";
  740. oParam.async = false;
  741. tranf_submit(oParam);
  742. ds_qnalist.rowposition = rowposition;
  743. if(gubun == "ans") {
  744. ds_qnainfo.setColumn(0, "ansattfilenm", "");
  745. ds_qnainfo.setColumn(0, "ansattfilepath", "");
  746. } else {
  747. ds_qnainfo.setColumn(0, "reqattfilenm", "");
  748. ds_qnainfo.setColumn(0, "reqattfilepath", "");
  749. }
  750. ds_send_fileinfo.clearData();
  751. fSetControlAuth();
  752. }
  753. }
  754. }]]></Script>
  755. </Form>
  756. </FDL>