SPMMO10600_달력.xfdl 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO10600" position="absolute 0 0 375 305" titletext="달력" oninit="SPMMO10600_oninit" onload="SPMMO10600_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="달력" position="absolute 0 3 50 23" align="align:center middle;" id="captio11" class="tit_2"/>
  8. <Static text="년" position="absolute 172 0 192 20" align="align:center middle;" id="caption1"/>
  9. <Static text="월" position="absolute 242 0 257 20" align="align:center middle;" id="caption2"/>
  10. <Grid position="absolute 0 22 273 282" align="align:center middle;" id="grd_calendar" binddataset="ds_grd_calendar">
  11. <Formats>
  12. <Format id="default">
  13. <Columns>
  14. <Column size="0"/>
  15. <Column size="39"/>
  16. <Column size="39"/>
  17. <Column size="39"/>
  18. <Column size="39"/>
  19. <Column size="39"/>
  20. <Column size="39"/>
  21. <Column size="39"/>
  22. </Columns>
  23. <Rows>
  24. <Row size="24" band="head"/>
  25. <Row size="24"/>
  26. </Rows>
  27. <Band id="head">
  28. <Cell text="/"/>
  29. <Cell col="1" text="일"/>
  30. <Cell col="2" text="월"/>
  31. <Cell col="3" text="화"/>
  32. <Cell col="4" text="수"/>
  33. <Cell col="5" text="목"/>
  34. <Cell col="6" text="금"/>
  35. <Cell col="7" text="토"/>
  36. </Band>
  37. <Band id="body">
  38. <Cell text="bind:sun"/>
  39. <Cell col="1" text="bind:sun"/>
  40. <Cell col="2" text="bind:mon"/>
  41. <Cell col="3" text="bind:tue"/>
  42. <Cell col="4" text="bind:wed"/>
  43. <Cell col="5" text="bind:thu"/>
  44. <Cell col="6" text="bind:fri"/>
  45. <Cell col="7" text="bind:sat"/>
  46. </Band>
  47. </Format>
  48. </Formats>
  49. </Grid>
  50. <Button position="absolute 56 2 72 18" id="btn_bfyear" class="icon_pre_year" text="" onclick="btn_bfyear_onclick"/>
  51. <Button position="absolute 281 2 297 18" id="btn_afyear" class="icon_next_year" text="" onclick="btn_afyear_onclick"/>
  52. <Button position="absolute 262 2 278 18" id="btn_afmonth" class="icon_next_month" text="" onclick="btn_afmonth_onclick"/>
  53. <Button position="absolute 75 2 91 18" id="btn_bfmonth" class="icon_pre_month" text="" onclick="btn_bfmonth_onclick"/>
  54. <Combo position="absolute 99 0 169 20" align="align:center middle;" id="cmb_year" codecolumn="codecolumn" datacolumn="datacolumn" style="align:center middle;" onitemchanged="cmb_year_onitemchanged">
  55. <Dataset id="innerdataset">
  56. <ColumnInfo>
  57. <Column id="codecolumn" size="256"/>
  58. <Column id="datacolumn" size="256"/>
  59. </ColumnInfo>
  60. <Rows>
  61. <Row>
  62. <Col id="codecolumn">2010</Col>
  63. <Col id="datacolumn">2010</Col>
  64. </Row>
  65. <Row>
  66. <Col id="codecolumn">2011</Col>
  67. <Col id="datacolumn">2011</Col>
  68. </Row>
  69. <Row>
  70. <Col id="codecolumn">2012</Col>
  71. <Col id="datacolumn">2012</Col>
  72. </Row>
  73. <Row>
  74. <Col id="codecolumn">2013</Col>
  75. <Col id="datacolumn">2013</Col>
  76. </Row>
  77. <Row>
  78. <Col id="codecolumn">2014</Col>
  79. <Col id="datacolumn">2014</Col>
  80. </Row>
  81. <Row>
  82. <Col id="codecolumn">2015</Col>
  83. <Col id="datacolumn">2015</Col>
  84. </Row>
  85. <Row>
  86. <Col id="codecolumn">2016</Col>
  87. <Col id="datacolumn">2016</Col>
  88. </Row>
  89. <Row>
  90. <Col id="codecolumn">2017</Col>
  91. <Col id="datacolumn">2017</Col>
  92. </Row>
  93. <Row>
  94. <Col id="codecolumn">2018</Col>
  95. <Col id="datacolumn">2018</Col>
  96. </Row>
  97. <Row>
  98. <Col id="codecolumn">2019</Col>
  99. <Col id="datacolumn">2019</Col>
  100. </Row>
  101. <Row>
  102. <Col id="codecolumn">2020</Col>
  103. <Col id="datacolumn">2020</Col>
  104. </Row>
  105. <Row>
  106. <Col id="codecolumn">2021</Col>
  107. <Col id="datacolumn">2021</Col>
  108. </Row>
  109. <Row>
  110. <Col id="codecolumn">2022</Col>
  111. <Col id="datacolumn">2022</Col>
  112. </Row>
  113. <Row>
  114. <Col id="codecolumn">2023</Col>
  115. <Col id="datacolumn">2023</Col>
  116. </Row>
  117. <Row>
  118. <Col id="codecolumn">2024</Col>
  119. <Col id="datacolumn">2024</Col>
  120. </Row>
  121. <Row>
  122. <Col id="codecolumn">2025</Col>
  123. <Col id="datacolumn">2025</Col>
  124. </Row>
  125. </Rows>
  126. </Dataset>
  127. </Combo>
  128. <Combo position="absolute 196 0 240 20" align="align:center middle;" id="cmb_month" codecolumn="codecolumn" datacolumn="datacolumn" style="align:center middle;" onitemchanged="cmb_month_onitemchanged">
  129. <Dataset id="innerdataset">
  130. <ColumnInfo>
  131. <Column id="codecolumn"/>
  132. <Column id="datacolumn"/>
  133. </ColumnInfo>
  134. <Rows>
  135. <Row>
  136. <Col id="codecolumn">01</Col>
  137. <Col id="datacolumn">1</Col>
  138. </Row>
  139. <Row>
  140. <Col id="codecolumn">02</Col>
  141. <Col id="datacolumn">2</Col>
  142. </Row>
  143. <Row>
  144. <Col id="codecolumn">03</Col>
  145. <Col id="datacolumn">3</Col>
  146. </Row>
  147. <Row>
  148. <Col id="codecolumn">04</Col>
  149. <Col id="datacolumn">4</Col>
  150. </Row>
  151. <Row>
  152. <Col id="codecolumn">05</Col>
  153. <Col id="datacolumn">5</Col>
  154. </Row>
  155. <Row>
  156. <Col id="codecolumn">06</Col>
  157. <Col id="datacolumn">6</Col>
  158. </Row>
  159. <Row>
  160. <Col id="codecolumn">07</Col>
  161. <Col id="datacolumn">7</Col>
  162. </Row>
  163. <Row>
  164. <Col id="codecolumn">08</Col>
  165. <Col id="datacolumn">8</Col>
  166. </Row>
  167. <Row>
  168. <Col id="codecolumn">09</Col>
  169. <Col id="datacolumn">9</Col>
  170. </Row>
  171. <Row>
  172. <Col id="codecolumn">10</Col>
  173. <Col id="datacolumn">10</Col>
  174. </Row>
  175. <Row>
  176. <Col id="codecolumn">11</Col>
  177. <Col id="datacolumn">11</Col>
  178. </Row>
  179. <Row>
  180. <Col id="codecolumn">12</Col>
  181. <Col id="datacolumn">12</Col>
  182. </Row>
  183. </Rows>
  184. </Dataset>
  185. </Combo>
  186. <Div position="absolute 0 46 277 282" id="group1" style="border:0 none #c0c0c0ff ;font:Dotum,9;">
  187. <Layouts>
  188. <Layout>
  189. <Static position="absolute 0 1 39 41" align="align:center middle;" id="caption11" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  190. <Static position="absolute 38 1 78 41" align="align:center middle;" id="caption12" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  191. <Static position="absolute 77 1 117 41" align="align:center middle;" id="caption13" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  192. <Static position="absolute 116 1 156 41" align="align:center middle;" id="caption14" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  193. <Static position="absolute 194 79 234 119" align="align:center middle;" id="caption36" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  194. <Static position="absolute 233 79 273 119" align="align:center middle;" id="caption37" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  195. <Static position="absolute 0 118 39 158" align="align:center middle;" id="caption41" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  196. <Static position="absolute 38 118 78 158" align="align:center middle;" id="caption42" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  197. <Static position="absolute 77 118 117 158" align="align:center middle;" id="caption43" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  198. <Static position="absolute 116 118 156 158" align="align:center middle;" id="caption44" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  199. <Static position="absolute 155 118 195 158" align="align:center middle;" id="caption45" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  200. <Static position="absolute 194 118 234 158" align="align:center middle;" id="caption46" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  201. <Static position="absolute 233 118 273 158" align="align:center middle;" id="caption47" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  202. <Static position="absolute 0 157 39 197" align="align:center middle;" id="caption51" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  203. <Static position="absolute 38 157 78 197" align="align:center middle;" id="caption52" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  204. <Static position="absolute 77 157 117 197" align="align:center middle;" id="caption53" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  205. <Static position="absolute 116 157 156 197" align="align:center middle;" id="caption54" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  206. <Static position="absolute 155 157 195 197" align="align:center middle;" id="caption55" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  207. <Static position="absolute 194 157 234 197" align="align:center middle;" id="caption56" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  208. <Static position="absolute 233 157 273 197" align="align:center middle;" id="caption57" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  209. <Static position="absolute 0 196 39 236" align="align:center middle;" id="caption61" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  210. <Static position="absolute 38 196 78 236" align="align:center middle;" id="caption62" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  211. <Static position="absolute 77 196 117 236" align="align:center middle;" id="caption63" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  212. <Static position="absolute 116 196 156 236" align="align:center middle;" id="caption64" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  213. <Static position="absolute 155 196 195 236" align="align:center middle;" id="caption65" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  214. <Static position="absolute 194 196 234 236" align="align:center middle;" id="caption66" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  215. <Static position="absolute 233 196 273 236" align="align:center middle;" id="caption67" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  216. <Static position="absolute 155 1 195 41" align="align:center middle;" id="caption15" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  217. <Static position="absolute 194 1 234 41" align="align:center middle;" id="caption16" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  218. <Static position="absolute 233 1 273 41" align="align:center middle;" id="caption17" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  219. <Static position="absolute 0 40 39 80" align="align:center middle;" id="caption21" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  220. <Static position="absolute 38 40 78 80" align="align:center middle;" id="caption22" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  221. <Static position="absolute 77 40 117 80" align="align:center middle;" id="caption23" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  222. <Static position="absolute 116 40 156 80" align="align:center middle;" id="caption24" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  223. <Static position="absolute 155 40 195 80" align="align:center middle;" id="caption25" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  224. <Static position="absolute 194 40 234 80" align="align:center middle;" id="caption26" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  225. <Static position="absolute 233 40 273 80" align="align:center middle;" id="caption27" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  226. <Static position="absolute 0 79 39 119" align="align:center middle;" id="caption31" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  227. <Static position="absolute 38 79 78 119" align="align:center middle;" id="caption32" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  228. <Static position="absolute 77 79 117 119" align="align:center middle;" id="caption33" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  229. <Static position="absolute 116 79 156 119" align="align:center middle;" id="caption34" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  230. <Static position="absolute 155 79 195 119" align="align:center middle;" id="caption35" style="border:1 solid #c0c0c0ff ;align:center middle;font:Dotum,9,bold;" anchor="default" onclick="group1_caption_onclick"/>
  231. </Layout>
  232. </Layouts>
  233. </Div>
  234. <Button position="absolute 261 285 317 305" id="btn_cnfm" class="btn4" text="확인" onclick="btn_cnfm_onclick"/>
  235. <Button position="absolute 319 285 375 305" id="button1" class="btn3" text="취소" onclick="button1_onclick"/>
  236. <Grid position="absolute 280 22 375 282" id="grd_choilist" binddataset="ds_choidd" onrbuttondown="grd_choilist_onrbuttondown" selecttype="multirow" autofittype="col" scrollbars="autovert">
  237. <Formats>
  238. <Format id="default">
  239. <Columns>
  240. <Column size="95"/>
  241. </Columns>
  242. <Rows>
  243. <Row size="24" band="head"/>
  244. <Row size="24"/>
  245. </Rows>
  246. <Band id="head">
  247. <Cell text="선택일"/>
  248. </Band>
  249. <Band id="body">
  250. <Cell text="bind:dd" mask="####-##-##"/>
  251. </Band>
  252. </Format>
  253. </Formats>
  254. </Grid>
  255. <CheckBox position="absolute 0 284 70 305" id="bool1" text="휴일포함" falsevalue="N" truevalue="Y" value="N"/>
  256. <Static text="간격" position="absolute 79 285 104 305" id="caption4"/>
  257. <Static text="일수" position="absolute 149 285 175 305" id="caption5"/>
  258. <MaskEdit position="absolute 109 285 144 305" id="input1" mask="nn" onkeydown="input1_onkeydown"/>
  259. <MaskEdit position="absolute 176 285 211 305" id="input2" mask="nn" onkeydown="input2_onkeydown"/>
  260. <Button position="absolute 213 285 255 305" id="btn_app" class="btn2" text="적용" onclick="btn_app_onclick"/>
  261. <PopupMenu id="pmn_menu" innerdataset="@ds_menu" idcolumn="func" captioncolumn="name" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 384 50 457 72"/>
  262. </Layout>
  263. </Layouts>
  264. <Objects>
  265. <Dataset id="ds_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  266. <ColumnInfo>
  267. <Column id="year" type="STRING" size="256"/>
  268. <Column id="month" type="STRING" size="256"/>
  269. </ColumnInfo>
  270. <Rows>
  271. <Row/>
  272. </Rows>
  273. </Dataset>
  274. <Dataset id="ds_day" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  275. <ColumnInfo>
  276. <Column id="holiflag" type="STRING" size="256"/>
  277. <Column id="daycnt" type="STRING" size="256"/>
  278. <Column id="interval" type="STRING" size="256"/>
  279. </ColumnInfo>
  280. <Rows>
  281. <Row>
  282. <Col id="holiflag">N</Col>
  283. <Col id="daycnt">1</Col>
  284. <Col id="interval">1</Col>
  285. </Row>
  286. </Rows>
  287. </Dataset>
  288. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  289. <ColumnInfo>
  290. <Column id="today" type="STRING" size="256"/>
  291. </ColumnInfo>
  292. <Rows>
  293. <Row/>
  294. </Rows>
  295. </Dataset>
  296. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  297. <ColumnInfo>
  298. <Column id="basedd" type="STRING" size="256" sumtext="기준일자"/>
  299. </ColumnInfo>
  300. <Rows>
  301. <Row/>
  302. </Rows>
  303. </Dataset>
  304. <Dataset id="ds_calendar" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  305. <ColumnInfo>
  306. <Column id="basedd" type="STRING" size="256" sumtext="일자"/>
  307. <Column id="dutflag" type="STRING" size="256" sumtext="휴일구분"/>
  308. <Column id="ordyn" type="STRING" size="256" sumtext="진료구분"/>
  309. <Column id="days" type="STRING" size="256" sumtext="날짜"/>
  310. <Column id="weekday" type="STRING" size="256" sumtext="주차"/>
  311. </ColumnInfo>
  312. </Dataset>
  313. <Dataset id="ds_choidd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  314. <ColumnInfo>
  315. <Column id="dd" type="STRING" size="256"/>
  316. </ColumnInfo>
  317. </Dataset>
  318. <Dataset id="ds_menu" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  319. <ColumnInfo>
  320. <Column id="func" type="STRING" size="256"/>
  321. <Column id="name" type="STRING" size="256"/>
  322. <Column id="level" type="STRING" size="256"/>
  323. </ColumnInfo>
  324. <Rows>
  325. <Row>
  326. <Col id="func">fDelChoiDD</Col>
  327. <Col id="name">삭제</Col>
  328. <Col id="level">0</Col>
  329. </Row>
  330. </Rows>
  331. </Dataset>
  332. </Objects>
  333. <Bind>
  334. <BindItem id="item0" compid="cmb_year" propid="value" datasetid="ds_cond" columnid="year"/>
  335. <BindItem id="item1" compid="cmb_month" propid="value" datasetid="ds_cond" columnid="month"/>
  336. <BindItem id="item2" compid="bool1" propid="value" datasetid="ds_day" columnid="holiflag"/>
  337. <BindItem id="item3" compid="input1" propid="value" datasetid="ds_day" columnid="interval"/>
  338. <BindItem id="item4" compid="input2" propid="value" datasetid="ds_day" columnid="daycnt"/>
  339. </Bind>
  340. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  341. * System Name :
  342. * Job Name :
  343. * Creator :
  344. * Make Date : 2014-12-10
  345. * Description :
  346. *---------------------------------------------------------------------------------------
  347. * Modify Date Modifier Modify Description
  348. *---------------------------------------------------------------------------------------
  349. * 2014-12-10 Live Converter TF->XP
  350. *
  351. *---------------------------------------------------------------------------------------
  352. ****************************************************************************************/
  353. include "com_commonxp::comm_main.xjs";
  354. var sOPENER_COND = ""; // opener의 parameter string(sgnl:단일, multi:멀티)
  355. var sDEFAULT_DAY = ""; // 기본일자(기본일 이전의 날짜는 선택불가함)
  356. var sRTN_PARAM = ""; // return될 날짜 string
  357. var sREQ_PARAM = ""; // request된 날짜 string
  358. var sLIMIT_DAY = ""; // 제한일자 string
  359. function SPMMO10600_oninit(obj:Form, e:InitEventInfo)
  360. {
  361. frmf_initForm(obj);
  362. grdf_initGrid(grd_choilist);
  363. }
  364. function SPMMO10600_onload(obj:Form, e:LoadEventInfo)
  365. {
  366. /**
  367. * 메인화면에서 open시점의 처리 :
  368. * 단일일 경우 : setParameter("paramcalflag", "sngl");
  369. * 복수일 경우 : setParameter("paramcalflag", "multi");
  370. * 기준일 설정 : setParameter("defaultday", "20070505"); - 2007년 5월 5일 이후의 날짜가 선택되지 않는다.
  371. * 조회일자 설정 : setParameter("reqparam", "2007508▩20070511▩20070515"); 복수의 일자가 입력되면 최종일자의 년월을 기준으로 초기화됨.
  372. **/
  373. fInitialize();
  374. }
  375. function btn_bfyear_onclick(obj:Button, e:ClickEventInfo)
  376. {
  377. fClkBfYear();
  378. }
  379. function btn_afyear_onclick(obj:Button, e:ClickEventInfo)
  380. {
  381. fClkAfYear();
  382. }
  383. function btn_bfmonth_onclick(obj:Button, e:ClickEventInfo)
  384. {
  385. fClkBfMonth();
  386. }
  387. function btn_afmonth_onclick(obj:Button, e:ClickEventInfo)
  388. {
  389. fClkAfMonth();
  390. }
  391. function cmb_year_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  392. {
  393. fReqCalendar();
  394. fSetSelectedDay();
  395. }
  396. function cmb_month_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  397. {
  398. fReqCalendar();
  399. fSetSelectedDay();
  400. }
  401. function group1_caption_onclick(obj:Static, e:ClickEventInfo)
  402. {
  403. if(fChkInvaild(obj)){
  404. if(sOPENER_COND == "sngl"){
  405. fClkSnglCalendar(obj);
  406. }else if(sOPENER_COND == "multi"){
  407. fClkMultiCalendar(obj);
  408. }
  409. }
  410. }
  411. function btn_cnfm_onclick(obj:Button, e:ClickEventInfo)
  412. {
  413. fClkCnfm();
  414. }
  415. function button1_onclick(obj:Button, e:ClickEventInfo)
  416. {
  417. fClkCncl();
  418. }
  419. function grd_choilist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  420. {
  421. if(e.row < 0) return;
  422. grdf_setSelectedCell(obj, e);
  423. pmn_menu.trackPopup(e.screenX,e.screenY);
  424. }
  425. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  426. {
  427. eval(e.id + "()");
  428. }
  429. function input1_onkeydown(obj:MaskEdit, e:KeyEventInfo)
  430. {
  431. if(e.keycode == 13)
  432. input2.setFocus();
  433. }
  434. function input2_onkeydown(obj:MaskEdit, e:KeyEventInfo)
  435. {
  436. if(e.keycode == 13)
  437. btn_app.onclick.fireEvent(btn_app, new ClickEventInfo());
  438. }
  439. function btn_app_onclick(obj:Button, e:ClickEventInfo)
  440. {
  441. var daycnt = ds_day.getColumn(0, "daycnt");
  442. if(sOPENER_COND == "sngl" && daycnt > 1){
  443. sysf_messageBox("일수를 변경 할 수 없습니다.", "E999");
  444. ds_day.setColumn(0, "daycnt", "1");
  445. return;
  446. }
  447. fInitCalendar();
  448. fSetCalendar();
  449. var startdd = ds_init.getColumn(0, "today");
  450. var month = (startdd.toDate()).getMonth() + 1;
  451. if(cmb_month.text != month){
  452. if(month < 10){
  453. month = "0".concat(month);
  454. }
  455. ds_cond.setColumn(0, "month", month);
  456. fReqCalendar();
  457. }
  458. fCalcIntervalDay();
  459. }
  460. function fDelChoiDD(){
  461. if(ds_choidd.rowposition >= 0){
  462. var selectedRows = grdf_getSelectedRows(grd_choilist);
  463. for(var i = selectedRows.length - 1; i >= 0; i--){
  464. var currow = selectedRows[i];
  465. var sDate = ds_choidd.getColumn(currow, "dd");
  466. ds_choidd.deleteRow(currow);
  467. sRTN_PARAM = sRTN_PARAM.setReplaceWord(sDate + "▩", "");
  468. }
  469. ds_choidd.applyChange();
  470. }
  471. fReqCalendar();
  472. fSetSelectedDay();
  473. }
  474. /**
  475. * @desc : 화면 초기화
  476. * @
  477. * @param :
  478. * @return :
  479. * @author : 오지훈
  480. * @---------------------------------------------------
  481. */
  482. function fInitialize(){
  483. ds_choidd.clearData();
  484. if(frmf_checkOpener()){
  485. sOPENER_COND = opener.frmf_getParameter("paramcalflag");
  486. sDEFAULT_DAY = opener.frmf_getParameter("defaultday");
  487. sLIMIT_DAY = opener.frmf_getParameter("limitday");
  488. sREQ_PARAM = opener.frmf_getParameter("reqparam");
  489. sPRCPDAYNO = opener.frmf_getParameter("prcpdayno");
  490. sLIMIT_FROM_DAY = opener.frmf_getParameter("limitfromday");
  491. opener.frmf_clearParameter("paramcalflag");
  492. opener.frmf_clearParameter("defaultday");
  493. opener.frmf_clearParameter("limitday");
  494. opener.frmf_clearParameter("reqparam");
  495. opener.frmf_clearParameter("prcpdayno");
  496. opener.frmf_clearParameter("limitfromday");
  497. }else{
  498. sysf_messageBox("메인 화면을 찾는데", "E009");
  499. close();
  500. }
  501. if(!utlf_isNull(sDEFAULT_DAY)){ //기본일자가 넘겨온 경우, 최초일자를 설정한다.
  502. ds_init.setColumn(0, "today", fGetInitDay());
  503. }else{
  504. ds_init.setColumn(0, "today", utlf_getCurrentDate()); //기본일자가 안 넘겨져 온 경우, 최초 일자를 오늘로 설정
  505. sDEFAULT_DAY = "10000000"; //이전일자를 선택하지 않게 한다.
  506. }
  507. if(utlf_isNull(sLIMIT_DAY)){ //제한일자가 안 넘어온 경우, 최대일자를 설정한다.
  508. sLIMIT_DAY = "99991231";
  509. }
  510. if(utlf_isNull(sLIMIT_FROM_DAY)){
  511. sLIMIT_FROM_DAY = "19990101";
  512. }
  513. var dd = ds_init.getColumn(0, "today");
  514. var sYear = dd.substr(0, 4);
  515. var sMonth = dd.substr(4, 2);
  516. ds_cond.setColumn(0, "year", sYear);
  517. ds_cond.setColumn(0, "month", sMonth);
  518. fReqCalendar();
  519. //처방일수를 파라미터로 넘기고, 기본일자가 하루로 들어간 경우에는 휴일포함으로 달력에 표시
  520. if(!utlf_isNull(sPRCPDAYNO) && sDEFAULT_DAY.length < 10){
  521. ds_day.setColumn(0, "daycnt", sPRCPDAYNO);
  522. btn_app.onclick.fireEvent(btn_app, new ClickEventInfo());
  523. //기본일자만 넘어온 경우에는 기본일자를 기준으로 달력에 표시
  524. }else{
  525. sRTN_PARAM = sREQ_PARAM;
  526. fSetSelectedDay();
  527. }
  528. /*
  529. if(sDEFAULT_DAY != ""){
  530. sRTN_PARAM = sREQ_PARAM;
  531. fSetSelectedDay();
  532. }*/
  533. }
  534. /**
  535. * @desc : 달력조회
  536. * @
  537. * @param :
  538. * @return :
  539. * @author : 오지훈
  540. * @---------------------------------------------------
  541. */
  542. function fReqCalendar(){
  543. fInitCalendar(); //caption화면을 초기화 한다.
  544. var sYear = ds_cond.getColumn(0, "year");
  545. var sMonth = ds_cond.getColumn(0, "month");
  546. ds_send_reqdata.setColumn(0, "basedd", sYear.concat(sMonth));
  547. var oParam = {};
  548. oParam.id = "TRMMO10601";
  549. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  550. oParam.method = "reqGetPrcpCalendar";
  551. oParam.inds = "req=ds_send_reqdata";
  552. oParam.outds = "ds_calendar=calendar";
  553. oParam.async = false;
  554. oParam.callback = "cf_TRMMO10601";
  555. tranf_submit(oParam);
  556. }
  557. function cf_TRMMO10601(sSvcId, nErrorCode, sErrorMsg) {
  558. if(nErrorCode < 0) return;
  559. fSetCalendar();
  560. }
  561. /**
  562. * @desc : 달력초기화
  563. * @
  564. * @param :
  565. * @return :
  566. * @author : 오지훈
  567. * @---------------------------------------------------
  568. */
  569. function fInitCalendar(){
  570. for(var iRow = 1; iRow < 7; iRow++){
  571. for(var iCol = 1; iCol < 8; iCol++){
  572. var capObj = group1.components["caption"+ iRow + "" + iCol];
  573. capObj.text = "";
  574. capObj.style.background = "transparent";
  575. }
  576. }
  577. }
  578. /**
  579. * @desc : 달력날짜 및 휴일 색깔 설정
  580. * @
  581. * @param :
  582. * @return :
  583. * @author : 오지훈
  584. * @---------------------------------------------------
  585. */
  586. function fSetCalendar(){
  587. var iTotRow = ds_calendar.rowcount;
  588. var sDay = "";
  589. for(var iRow = 0; iRow < iTotRow; iRow++){
  590. var sBasedd = ds_calendar.getColumn(iRow, "basedd");
  591. if(sBasedd.substr(6, 1) > 0){
  592. sDay = sBasedd.substr(6, 2);
  593. }else{
  594. sDay = sBasedd.substr(7, 1);
  595. }
  596. var row = ds_calendar.getColumn(iRow, "weekday"); //row(주차)
  597. var col = ds_calendar.getColumn(iRow, "days"); //col(요일)
  598. var dutflag = ds_calendar.getColumn(iRow, "dutflag"); //휴일구분
  599. var capObj = group1.components["caption"+ row + "" + col];
  600. capObj.text = sDay;
  601. if(dutflag == 4){ //토요일인 경우, 파란색 설정
  602. capObj.style.color = "#0000ff";
  603. }else if(dutflag == 8){//일요일인 경우, 빨간색 설정
  604. capObj.style.color = "#ff0000";
  605. }else{ //그 이외는 검정색
  606. capObj.style.color = "#000000";
  607. }
  608. }
  609. }
  610. /**
  611. * @desc : 이전 달버튼 클릭시 - 월 변경 및 달력 조회처리
  612. * @
  613. * @param :
  614. * @return :
  615. * @author : 오지훈
  616. * @---------------------------------------------------
  617. */
  618. function fClkBfMonth(){
  619. var sMonth = ds_cond.getColumn(0, "month");
  620. var sYear = ds_cond.getColumn(0, "year");
  621. var iBfmonth;
  622. if(sMonth.substr(0, 1) == "0"){ //10월 이전인 경우, 앞자리 0을 제거
  623. iBfmonth = sMonth.substr(1,1);
  624. }else{ //10월 이후인 경우
  625. iBfmonth = eval(sMonth);
  626. }
  627. iBfmonth--;
  628. if(iBfmonth < 1){ // 1월 이전을 선택한 경우, 년도를 바꿈
  629. sMonth = 12;
  630. sYear--;
  631. }else if(iBfmonth < 10){ // 10월 이전을 선택한 경우, 월 앞에 0을 붙인다.
  632. sMonth = "0".concat(iBfmonth);
  633. }else{
  634. sMonth = iBfmonth;
  635. }
  636. ds_cond.setColumn(0, "year", sYear);
  637. ds_cond.setColumn(0, "month", sMonth);
  638. fReqCalendar();
  639. fSetSelectedDay();
  640. }
  641. /**
  642. * @desc : 다음 달버튼 클릭시 - 월 변경 및 달력 조회처리
  643. * @
  644. * @param :
  645. * @return :
  646. * @author : 오지훈
  647. * @---------------------------------------------------
  648. */
  649. function fClkAfMonth(){
  650. var mmonth = ds_cond.getColumn(0, "month");
  651. var yyear = ds_cond.getColumn(0, "year");
  652. var bfmonth;
  653. if(mmonth.substr(0,1) == "0"){ //10월 이전인 경우, 앞자리 0을 제거
  654. bfmonth = mmonth.substr(1,1);
  655. bfmonth++;
  656. }else{ //10월 이후인 경우
  657. bfmonth = mmonth;
  658. bfmonth++;
  659. }
  660. if(bfmonth > 12){ // 1월 이전을 선택한 경우, 년도를 바꿈
  661. bfmonth = "01";
  662. yyear++;
  663. }else if(bfmonth < 10){ //10월 이후인 경우에는 앞자리에 0을 붙임.
  664. bfmonth = "0".concat(bfmonth);
  665. }
  666. ds_cond.setColumn(0, "year", yyear);
  667. ds_cond.setColumn(0, "month", bfmonth);
  668. fReqCalendar();
  669. fSetSelectedDay();
  670. }
  671. /**
  672. * @desc : 이전 년버튼 클릭시 - 월 변경 및 달력 조회처리
  673. * @
  674. * @param :
  675. * @return :
  676. * @author : 오지훈 2007. 4. 25
  677. * @---------------------------------------------------
  678. */
  679. function fClkBfYear(){
  680. var sYear = ds_cond.getColumn(0, "year");
  681. sYear--;
  682. ds_cond.setColumn(0, "year", sYear);
  683. fReqCalendar();
  684. fSetSelectedDay();
  685. }
  686. /**
  687. * @desc : 다음 년버튼 클릭시 - 월 변경 및 달력 조회처리
  688. * @
  689. * @param :
  690. * @return :
  691. * @author : 오지훈 2007. 4. 25
  692. * @---------------------------------------------------
  693. */
  694. function fClkAfYear(){
  695. var yyear = ds_cond.getColumn(0, "year");
  696. yyear++;
  697. ds_cond.setColumn(0, "year", yyear);
  698. fReqCalendar();
  699. fSetSelectedDay();
  700. }
  701. /**
  702. * @desc : 달력 클릭시 해당 년월일 추출 및 제거(멀티용)
  703. * @
  704. * @param :
  705. * @return :
  706. * @author : 오지훈 2007. 4. 25
  707. * @---------------------------------------------------
  708. */
  709. function fClkMultiCalendar(objCap){
  710. var sTmp = "";
  711. var sYear = ds_cond.getColumn(0, "year");
  712. var sMonth = ds_cond.getColumn(0, "month");
  713. var sDay = objCap.text;
  714. var sColor = objCap.style.background;
  715. if(utlf_isNull(sDay)){
  716. return;
  717. }
  718. if(sColor == "transparent"){
  719. objCap.style.background = "#ece1ec";
  720. if(sDay.length == 1){
  721. sDay = "0".concat(sDay);
  722. }
  723. sDate = sYear + sMonth + sDay + "▩";
  724. sRTN_PARAM += sDate;
  725. }else{
  726. objCap.style.background = "transparent";
  727. if(sDay.length == 1){
  728. sDay = "0".concat(sDay);
  729. }
  730. sDate = sYear + sMonth + sDay + "▩";
  731. sRTN_PARAM = sRTN_PARAM.setReplaceWord(sDate, "");
  732. }
  733. //alert(sRTN_PARAM);
  734. fAddGrdChoiDD(sRTN_PARAM);
  735. }
  736. /**
  737. * @desc : 기존에 셋팅한 날짜를 보여준다.
  738. * @
  739. * @param :
  740. * @return :
  741. * @author : 오지훈
  742. * @---------------------------------------------------
  743. */
  744. function fSetSelectedDay(){
  745. var sYear = "";
  746. var sMonth = "";
  747. var sDay = "";
  748. var objCap;
  749. var sCurYear = ds_cond.getColumn(0, "year");
  750. var sCurMonth = ds_cond.getColumn(0, "month");
  751. var sDays = sRTN_PARAM.split("▩");
  752. // 끝자리에 구분자""가 들어가 있는지 확인하구 split한다.
  753. // 날짜가 없는 배열 생성을 막기 위해
  754. if(sDays.length > 0){
  755. //alert(sRTN_PARAM.substr(sRTN_PARAM.length-1, 1));
  756. if(sRTN_PARAM.substr(sRTN_PARAM.length - 1, 1) == "▩"){
  757. sRTN_PARAM = sRTN_PARAM.substr(0, sRTN_PARAM.length - 1);
  758. }
  759. }
  760. for(var i = 0; i < sDays.length ; i++){
  761. sYear = sDays[i].substr(0,4);
  762. sMonth = sDays[i].substr(4,2);
  763. sDay = sDays[i].substr(6,2);
  764. if(sDay.substr(0, 1) == "0"){
  765. sDay = (sDay.substr(1, 1)).getTrim();
  766. }
  767. if(sCurYear == sYear && sCurMonth == sMonth){
  768. for(var iRow = 1; iRow < 7; iRow++){
  769. for(var iCol = 1; iCol < 8; iCol++){
  770. objCap = group1.components["caption"+ iRow + "" + iCol];
  771. //alert(objCap.attribute("text"));
  772. if(objCap.text == sDay){
  773. objCap.style.background = "#ece1ec";
  774. break;
  775. }
  776. }
  777. }
  778. }
  779. }
  780. if(!utlf_isNull(sRTN_PARAM)){
  781. sRTN_PARAM = sRTN_PARAM + "▩";
  782. //alert(sRTN_PARAM);
  783. fAddGrdChoiDD(sRTN_PARAM);
  784. }
  785. }
  786. /**
  787. * @desc : 달력 클릭시 해당 년월일 추출 및 제거(싱글용)
  788. * @
  789. * @param :
  790. * @return :
  791. * @author : 오지훈
  792. * @---------------------------------------------------
  793. */
  794. function fClkSnglCalendar(objSelectCap){
  795. var sTmp = "";
  796. var sYear = ds_cond.getColumn(0, "year");
  797. var sMonth = ds_cond.getColumn(0, "month");
  798. var sDay = "";
  799. var objCap;
  800. sDay = objSelectCap.text;
  801. if(utlf_isNull(sDay)){
  802. return;
  803. }
  804. for(var iRow = 1; iRow < 7; iRow++){
  805. for(var iCol = 1; iCol < 8; iCol++){
  806. objCap = group1.components["caption"+ iRow + "" + iCol];
  807. objCap.style.background = "#ffffff";
  808. }
  809. }
  810. objSelectCap.style.background = "#ece1ec";
  811. if(sDay.length == 1){
  812. sDay = "0".concat(sDay);
  813. }
  814. sDate = sYear + sMonth + sDay + "▩";
  815. sRTN_PARAM = sDate;
  816. fAddGrdChoiDD(sRTN_PARAM);
  817. }
  818. /**
  819. * @desc : 이전날짜가 설정된 경우, 무결성 검사를 한다.
  820. * @
  821. * @param :
  822. * @return :
  823. * @author : 오지훈
  824. * @---------------------------------------------------
  825. */
  826. function fChkInvaild(objSelectCap){
  827. var sDate = "";
  828. var sYear = ds_cond.getColumn(0, "year");
  829. var sMonth = ds_cond.getColumn(0, "month");
  830. sDay = objSelectCap.text;
  831. if(sDay.length == 1){
  832. sDay = "0".concat(sDay);
  833. }
  834. sDate = sYear + sMonth + sDay;
  835. if(sDate < sDEFAULT_DAY){
  836. return false;
  837. }else if(sDate > sLIMIT_DAY){
  838. return false;
  839. }else if(sDate < sLIMIT_FROM_DAY){
  840. return false;
  841. }else{
  842. return true;
  843. }
  844. }
  845. /**
  846. * @desc : 확인버튼 클릭시, rtnParam을 opener에 설정함.
  847. * @
  848. * @param :
  849. * @return :
  850. * @author : 오지훈
  851. * @---------------------------------------------------
  852. */
  853. function fClkCnfm(){
  854. sRTN_PARAM = sRTN_PARAM.substr(0, sRTN_PARAM.length-1);
  855. if(frmf_checkOpener()){
  856. opener.frmf_setParameter("rtn" , sRTN_PARAM);
  857. }else{
  858. sysf_messageBox("메인 화면을 찾는데", "E009");
  859. }
  860. close();
  861. }
  862. /**
  863. * @desc : Request된 날짜 중에 최종일자를 default로 화면에 뿌려준다.
  864. * @
  865. * @param :
  866. * @return :
  867. * @author : 오지훈
  868. * @---------------------------------------------------
  869. */
  870. function fGetInitDay(){
  871. var sDays = sREQ_PARAM.split("▩");
  872. return sDays[0];
  873. }
  874. /**
  875. * @desc : 취소버튼 클릭시, rtnParam clean
  876. * @
  877. * @param :
  878. * @return :
  879. * @author : 오지훈
  880. * @---------------------------------------------------
  881. */
  882. function fClkCncl(){
  883. if(frmf_checkOpener()){
  884. opener.frmf_setParameter("rtn" , "");
  885. }else{
  886. sysf_messageBox("메인 화면을 찾는데", "E009");
  887. }
  888. close();
  889. }
  890. /**
  891. * @desc : 그리드에 선택일 출력
  892. * @
  893. * @param : sRTN_PARAM - 출력될 날짜 string
  894. * @return :
  895. * @author : 오지훈
  896. * @---------------------------------------------------
  897. */
  898. function fAddGrdChoiDD(param){
  899. ds_choidd.clearData();
  900. if(param == "▩"){ //일자값이 없는 경우 return;
  901. return;
  902. }
  903. var sDD = param.split("▩");
  904. for(var i = 0; i < sDD.length-1; i++){
  905. if(!utlf_isNull(sDD[i])){
  906. var row = ds_choidd.addRow();
  907. ds_choidd.setColumn(row, "dd", sDD[i]);
  908. }
  909. }
  910. //ds_choidd.applyChange();
  911. ds_choidd.keystring = "S:-" + "dd"; // 같은 상태 일때는 바뀌지 않아 잠시 desc로 정렬후 asc로 다시 바꿈
  912. ds_choidd.keystring = "S:+" + "dd";
  913. var strHeadText = grd_choilist.getCellText(-1, 0);
  914. var strHeadTextEnd = strHeadText.substr(strHeadText.length - 1);
  915. if (strHeadTextEnd == "▲" || strHeadTextEnd == "▼") {
  916. grd_choilist.setCellProperty( "head", 0, "text", strHeadText.substr(0, strHeadText.length - 2) + " " + "▲");
  917. } else {
  918. grd_choilist.setCellProperty( "head", 0, "text", strHeadText + " " + "▲");
  919. }
  920. //grdf_sortNodeList(ds_choidd, "dd", "asc");
  921. //ds_choidd.applyChange();
  922. //grd_choilist.redraw();
  923. // grd_choilist.sort(1, 0, grd_choilist.rows - 1, 0) = "asc";
  924. // grd_choilist.refresh();
  925. }
  926. /**
  927. * @desc : 간격, 일자로 데이터를 생성한다.
  928. * @
  929. * @param :
  930. * @return :
  931. * @author : 오지훈
  932. * @---------------------------------------------------
  933. */
  934. function fCalcIntervalDay(){
  935. ds_choidd.clearData();
  936. var holiflag = ds_day.getColumn(0, "holiflag"); //휴일구분
  937. var rtnday = "";
  938. var startdd = ds_init.getColumn(0, "today");
  939. var daycnt = ds_day.getColumn(0, "daycnt");
  940. var interval = ds_day.getColumn(0, "interval");
  941. var inc = eval(interval);
  942. if(holiflag == "Y"){ //휴일포함 한 경우
  943. rtnday = startdd + "▩";
  944. for(var i = 1; i < daycnt; i++){
  945. var dd = (startdd.toDate()).getAddDate(inc).getDateFormat();
  946. rtnday += dd + "▩";
  947. inc += eval(interval);
  948. }
  949. }else if(holiflag == "N"){ //휴일포함 하지 않는 경우
  950. rtnday = startdd + "▩";
  951. var bfmonth = (startdd.toDate()).getMonth();
  952. var dd = startdd;
  953. for(var i = 1; i < daycnt; i++){
  954. dd = (dd.toDate()).getAddDate(inc).getDateFormat();
  955. curmonth = (dd.toDate()).getMonth();
  956. if(curmonth != bfmonth){ //달이 변경된 경우
  957. btn_afmonth.onclick.fireEvent(btn_afmonth, new ClickEventInfo()); //달이 증가되어 해가 변경되는 경우도 처리한다.
  958. bfmonth = curmonth;
  959. }
  960. var findRow = ds_calendar.findRowExpr("dutflag == '8' && basedd == '" + dd + "'");
  961. var holidd = (findRow < 0) ? "" : ds_calendar.getColumn(findRow, "basedd");
  962. //var holidd = model.getValue("/root/main/calendar/calendar[basedd='" + dd + "']/basedd");
  963. if(holidd.length > 0){
  964. //함수로 처리하면, 다음 휴일이 아닌 일자를 찾는 중 달이나 해가 변경된 경우에는 문제발생
  965. //휴일인 경우, 휴일이 아닌 다음일자를 찾는다.
  966. while(true){
  967. dd = (dd.toDate()).getAddDate(1).getDateFormat();
  968. curmonth = (dd.toDate()).getMonth();
  969. if(curmonth != bfmonth){
  970. btn_afmonth.onclick.fireEvent(btn_afmonth, new ClickEventInfo()); //달이 증가되어 해가 변경되는 경우도 처리한다.
  971. bfmonth = curmonth
  972. }
  973. findRow = ds_calendar.findRowExpr("dutflag != '8' && basedd == '" + dd + "'");
  974. var selctdd = (findRow < 0) ? "" : ds_calendar.getColumn(findRow, "basedd");
  975. if(selctdd.length != 0){
  976. break;
  977. }
  978. }
  979. dd = selctdd;
  980. //dd = fFndNextDay(curmonth, dd); //휴일인 다음일자를 찾는다.
  981. }
  982. rtnday += dd + "▩";
  983. }
  984. }
  985. fAddGrdChoiDD(rtnday);
  986. sRTN_PARAM = rtnday;
  987. fSetSelectedDay();
  988. }]]></Script>
  989. </Form>
  990. </FDL>