cp_multiCal.xfdl 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\default_typedef.xml"/>
  4. <Form id="cp_multiCal" classname="cp_multiCal" inheritanceid="" position="absolute 0 0 312 20" titletext="Multi Calendar" onload="cp_multiCal_onload" scrollbars="none" style="background:transparent;">
  5. <Layouts>
  6. <Layout>
  7. <Calendar id="cal_to" taborder="1" autoselect="true" type="spin" dateformat="yyyy.MM.dd" position="absolute 130 0 222 20" value="null" editformat="yyyy.MM.dd" onkillfocus="cal_onkillfocus" onkeydown="fn_onkeydown" ontextchanged="calendar_ontextchanged"/>
  8. <Static id="Static00" style="align:center middle; " class="icon_today"/>
  9. <Calendar id="cal_from" taborder="0" autoselect="true" type="spin" dateformat="yyyy.MM.dd" position="absolute 18 0 110 20" value="null" editformat="yyyy.MM.dd" onkillfocus="cal_from_onkillfocus" onkeyup="cal_from_onkeyup" ontextchanged="calendar_ontextchanged" oneditclick="cal_from_oneditclick"/>
  10. <Div id="div_Base2" taborder="4" tabstop="false" style="background:white; " position="absolute 202 1 218 19"/>
  11. <Button id="btn_Cal" taborder="2" onclick="btn_Cal_to_onclick" class="btn_month" position="absolute 204 3 218 18"/>
  12. <Div id="div_Base1" taborder="3" tabstop="false" style="background:white;" position="absolute 89 1 107 19"/>
  13. <Button id="btn_Cal00" taborder="5" onclick="btn_Cal_from_onclick" class="btn_month" position="absolute 92 3 106 18"/>
  14. <Button id="btn_today" taborder="6" position="absolute 112 0 128 20" style="image:URL('theme://images/icon_n.png');background:transparent;border:0 solid #038cb5ff ;" onclick="btn_today_onclick"/>
  15. <Button id="btn_PreYear" taborder="7" onclick="btn_PreYear_onclick" class="icon_pre_year" position="absolute 1 2 17 18"/>
  16. <Button id="btn_NextYear" taborder="8" onclick="btn_NextYear_onclick" class="icon_next_year" position="absolute 224 2 240 18"/>
  17. <Combo id="cbo_Diff_Mon" taborder="9" codecolumn="codecolumn" datacolumn="datacolumn" onitemchanged="cbo_Mon_onitemchanged" class="calendar_output" position="absolute 246 0 311 20">
  18. <Dataset id="innerdataset">
  19. <ColumnInfo>
  20. <Column id="codecolumn" size="256"/>
  21. <Column id="datacolumn" size="256"/>
  22. </ColumnInfo>
  23. <Rows>
  24. <Row>
  25. <Col id="codecolumn">1</Col>
  26. <Col id="datacolumn">1개월</Col>
  27. </Row>
  28. <Row>
  29. <Col id="codecolumn">3</Col>
  30. <Col id="datacolumn">3개월</Col>
  31. </Row>
  32. <Row>
  33. <Col id="codecolumn">6</Col>
  34. <Col id="datacolumn">6개월</Col>
  35. </Row>
  36. <Row>
  37. <Col id="codecolumn">12</Col>
  38. <Col id="datacolumn">1년</Col>
  39. </Row>
  40. </Rows>
  41. </Dataset>
  42. </Combo>
  43. <PopupDiv id="pd_calendar" text="PopupDiv01" visible="false" position="absolute 116 43 315 263">
  44. <Layouts>
  45. <Layout>
  46. <Grid id="gd_calendar" class="grd_schdule_termFr" taborder="4" binddataset="ds_calendar" scrollbars="none" useinputpanel="false" selecttype="cell" autofittype="col" position="absolute 0 27 199 192" useselcolor="false" oncellclick="pd_calendar_gd_calendar_oncellclick" style="border:0 none #808080ff,0 none #808080ff,1 solid #8cc4d6ff,0 none #808080ff;" onmousemove="pd_calendar_gd_calendar_onmousemove" onmouseleave="pd_calendar_gd_calendar_onmouseleave">
  47. <Formats>
  48. <Format id="default">
  49. <Columns>
  50. <Column size="80"/>
  51. <Column size="80"/>
  52. <Column size="80"/>
  53. <Column size="80"/>
  54. <Column size="80"/>
  55. <Column size="80"/>
  56. <Column size="80"/>
  57. </Columns>
  58. <Rows>
  59. <Row size="24" band="head"/>
  60. <Row size="23"/>
  61. </Rows>
  62. <Band id="head">
  63. <Cell class="sun" text="expr:gridHeaderDay(&quot;일&quot;)"/>
  64. <Cell col="1" text="expr:gridHeaderDay(&quot;월&quot;)"/>
  65. <Cell col="2" text="expr:gridHeaderDay(&quot;화&quot;)"/>
  66. <Cell col="3" text="expr:gridHeaderDay(&quot;수&quot;)"/>
  67. <Cell col="4" text="expr:gridHeaderDay(&quot;목&quot;)"/>
  68. <Cell col="5" text="expr:gridHeaderDay(&quot;금&quot;)"/>
  69. <Cell col="6" class="sat" text="expr:gridHeaderDay(&quot;토&quot;)"/>
  70. </Band>
  71. <Band id="body">
  72. <Cell displaytype="normal" style="background:EXPR(gridTodayExpr(date0));background2:EXPR(gridTodayExpr(date0));color:EXPR(gridTodayFontColor(date0,&quot;col0&quot;));color2:EXPR(gridTodayFontColor(date0,&quot;col0&quot;));font:EXPR(gridTodayFontStyle(date0));" text="bind:day0"/>
  73. <Cell col="1" style="background:EXPR(gridTodayExpr(date1));background2:EXPR(gridTodayExpr(date1));color:EXPR(gridTodayFontColor(date1));color2:EXPR(gridTodayFontColor(date1));font:EXPR(gridTodayFontStyle(date1));" text="bind:day1"/>
  74. <Cell col="2" style="background:EXPR(gridTodayExpr(date2));background2:EXPR(gridTodayExpr(date2));color:EXPR(gridTodayFontColor(date2));color2:EXPR(gridTodayFontColor(date2));font:EXPR(gridTodayFontStyle(date2));" text="bind:day2"/>
  75. <Cell col="3" style="background:EXPR(gridTodayExpr(date3));background2:EXPR(gridTodayExpr(date3));color:EXPR(gridTodayFontColor(date3));color2:EXPR(gridTodayFontColor(date3));font:EXPR(gridTodayFontStyle(date3));" text="bind:day3"/>
  76. <Cell col="4" style="background:EXPR(gridTodayExpr(date4));background2:EXPR(gridTodayExpr(date4));color:EXPR(gridTodayFontColor(date4));color2:EXPR(gridTodayFontColor(date4));font:EXPR(gridTodayFontStyle(date4));" text="bind:day4"/>
  77. <Cell col="5" style="background:EXPR(gridTodayExpr(date5));background2:EXPR(gridTodayExpr(date5));color:EXPR(gridTodayFontColor(date5));color2:EXPR(gridTodayFontColor(date5));font:EXPR(gridTodayFontStyle(date5));" text="bind:day5"/>
  78. <Cell col="6" style="background:EXPR(gridTodayExpr(date6));background2:EXPR(gridTodayExpr(date6));color:EXPR(gridTodayFontColor(date6));color2:EXPR(gridTodayFontColor(date6));font:EXPR(gridTodayFontStyle(date6));" text="bind:day6"/>
  79. </Band>
  80. </Format>
  81. </Formats>
  82. </Grid>
  83. <Div id="dv_header" taborder="5" scrollbars="none" position="absolute 0 0 199 28" style="background:#45a0e1ff;border:2 double #3376b5ff #6bb9e9ff;" class="dv_calMonth">
  84. <Layouts>
  85. <Layout>
  86. <Static id="st_year" text="2012." class="st_calYear" position="absolute 40 2 106 22" style="background:transparent;border:1 none #808080ff ;color:#ffffffff;align:right middle;font:Dotum,9,bold;" _term="" onclick="pd_calendar_dv_header_st_year_onclick"/>
  87. <Button id="bt_previousMonth" taborder="16" class="icon_pre_month" position="absolute 22 3 40 21" _term="" _auth="" onclick="pd_calendar_dv_header_bt_previousMonth_onclick"/>
  88. <Button id="bt_nextMonth" taborder="17" class="icon_next_month" position="absolute 155 3 173 21" _term="" _auth="" onclick="pd_calendar_dv_header_bt_nextMonth_onclick"/>
  89. <Button id="bt_previousYear" taborder="18" class="icon_pre_year" position="absolute 2 3 20 21" _term="" _auth="" onclick="pd_calendar_dv_header_bt_previousYear_onclick"/>
  90. <Button id="bt_nextYear" taborder="19" class="icon_next_year" position="absolute 175 3 193 21" _term="" _auth="" onclick="pd_calendar_dv_header_bt_nextYear_onclick"/>
  91. <Static id="st_month" text="01" class="st_calMonth" position="absolute 106 2 154 22" style="background:transparent;border:1 none #808080ff ;color:#ffffffff;font:Dotum,9,bold;cursor:hand;" _term="" onclick="pd_calendar_dv_header_st_month_onclick"/>
  92. </Layout>
  93. </Layouts>
  94. </Div>
  95. <Combo id="cb_year" taborder="8" position="absolute 0 192 99 220" innerdataset="@ds_year" codecolumn="code" datacolumn="value" visible="false" onitemchanged="pd_calendar_cb_year_onitemchanged"/>
  96. <Combo id="cb_month" taborder="9" position="absolute 99 192 198 220" innerdataset="@ds_month" codecolumn="code" datacolumn="value" visible="false" onitemchanged="pd_calendar_cb_month_onitemchanged"/>
  97. </Layout>
  98. </Layouts>
  99. </PopupDiv>
  100. </Layout>
  101. </Layouts>
  102. <Objects>
  103. <Dataset id="ds_calendar" preload="true" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true">
  104. <ColumnInfo>
  105. <Column type="STRING" size="256" id="day0"/>
  106. <Column type="STRING" size="256" id="day1"/>
  107. <Column type="STRING" size="256" id="day2"/>
  108. <Column type="STRING" size="256" id="day3"/>
  109. <Column type="STRING" size="256" id="day4"/>
  110. <Column type="STRING" size="256" id="day5"/>
  111. <Column type="STRING" size="256" id="day6"/>
  112. <Column id="date0" type="STRING" size="256"/>
  113. <Column id="date1" type="STRING" size="256"/>
  114. <Column id="date2" type="STRING" size="256"/>
  115. <Column id="date3" type="STRING" size="256"/>
  116. <Column id="date4" type="STRING" size="256"/>
  117. <Column id="date5" type="STRING" size="256"/>
  118. <Column id="date6" type="STRING" size="256"/>
  119. </ColumnInfo>
  120. <Rows/>
  121. </Dataset>
  122. <Dataset id="ds_month" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  123. <ColumnInfo>
  124. <Column id="code" type="STRING" size="256"/>
  125. <Column id="value" type="STRING" size="256"/>
  126. </ColumnInfo>
  127. <Rows>
  128. <Row>
  129. <Col id="code">0</Col>
  130. <Col id="value">01</Col>
  131. </Row>
  132. <Row>
  133. <Col id="code">1</Col>
  134. <Col id="value">02</Col>
  135. </Row>
  136. <Row>
  137. <Col id="code">2</Col>
  138. <Col id="value">03</Col>
  139. </Row>
  140. <Row>
  141. <Col id="code">3</Col>
  142. <Col id="value">04</Col>
  143. </Row>
  144. <Row>
  145. <Col id="code">4</Col>
  146. <Col id="value">05</Col>
  147. </Row>
  148. <Row>
  149. <Col id="code">5</Col>
  150. <Col id="value">06</Col>
  151. </Row>
  152. <Row>
  153. <Col id="code">6</Col>
  154. <Col id="value">07</Col>
  155. </Row>
  156. <Row>
  157. <Col id="code">7</Col>
  158. <Col id="value">08</Col>
  159. </Row>
  160. <Row>
  161. <Col id="code">8</Col>
  162. <Col id="value">09</Col>
  163. </Row>
  164. <Row>
  165. <Col id="code">9</Col>
  166. <Col id="value">10</Col>
  167. </Row>
  168. <Row>
  169. <Col id="code">10</Col>
  170. <Col id="value">11</Col>
  171. </Row>
  172. <Row>
  173. <Col id="code">11</Col>
  174. <Col id="value">12</Col>
  175. </Row>
  176. </Rows>
  177. </Dataset>
  178. <Dataset id="ds_year" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  179. <ColumnInfo>
  180. <Column id="code" type="STRING" size="256"/>
  181. <Column id="value" type="STRING" size="256"/>
  182. </ColumnInfo>
  183. </Dataset>
  184. <Dataset id="ds_holiday" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  185. <ColumnInfo>
  186. <Column id="date" type="DATE" size="256"/>
  187. <Column id="name" type="STRING" size="256"/>
  188. </ColumnInfo>
  189. <Rows>
  190. <Row>
  191. <Col id="date">20120122</Col>
  192. <Col id="name">구정</Col>
  193. </Row>
  194. <Row>
  195. <Col id="date">20120123</Col>
  196. <Col id="name">구정</Col>
  197. </Row>
  198. <Row>
  199. <Col id="date">20120124</Col>
  200. <Col id="name">구정</Col>
  201. </Row>
  202. <Row>
  203. <Col id="date">20120528</Col>
  204. <Col id="name">석가탄신일</Col>
  205. </Row>
  206. <Row>
  207. <Col id="date">20120929</Col>
  208. <Col id="name">추석</Col>
  209. </Row>
  210. <Row>
  211. <Col id="date">20120930</Col>
  212. <Col id="name">추석</Col>
  213. </Row>
  214. <Row>
  215. <Col id="date">20121001</Col>
  216. <Col id="name">추석</Col>
  217. </Row>
  218. </Rows>
  219. </Dataset>
  220. </Objects>
  221. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  222. * System Name : KMTC
  223. * Job Name : Composite
  224. * File Name : cp_multiCal.xfdl
  225. * Creator :
  226. * Make Date :
  227. *
  228. * Description : Calendar Day Period Select Composite
  229. *---------------------------------------------------------------------------------------
  230. * Modify Date Modifier Modify Description
  231. *---------------------------------------------------------------------------------------
  232. * 2013.01.18 TOBESOFT Initial Make Program
  233. *
  234. *---------------------------------------------------------------------------------------
  235. ****************************************************************************************/
  236. //=======================================================================================
  237. // Common Lib Include
  238. //---------------------------------------------------------------------------------------
  239. include "com_commonxp::comm_utl.xjs"
  240. include "com_commonxp::comm_sys.xjs"
  241. //=======================================================================================
  242. // Global Form Variable
  243. //---------------------------------------------------------------------------------------
  244. var iv_aRtn = new Array(2);
  245. var iv_event;
  246. var iv_sDate;
  247. var iv_nLimit = 0;
  248. var iv_sTitle = "";
  249. var iv_Curr = "";
  250. var iv_bNotNull = true;
  251. var isChanged = false;
  252. var _isDisableValid = true; //날짜 길이 체크를 한것인지 여부
  253. var gLocale = "ko_KR";
  254. var gFunctionName; //값이 변경될때 호출할 함수명
  255. var yyyymm;
  256. var _diff_day;
  257. var _me_date;
  258. var _move_date;
  259. var arrHolList = new Array("0101","0301","0505","0606","0815","1003","1225");
  260. /****************************************************************************************
  261. * Description : Form Initialization
  262. * Argument : obj : Object Event has occurred
  263. * : e : Event Object
  264. * return :
  265. ****************************************************************************************/
  266. function cp_multiCal_onload(obj:Form, e:LoadEventInfo)
  267. {
  268. var nYear, nMonth;
  269. var startYear = 10;
  270. var midYear = 1;
  271. var objDate = new Date();
  272. iv_sDate = objDate.toFormatString("%Y%m%d");
  273. // cal_from.value = iv_sDate;
  274. // cal_to.value = iv_sDate;
  275. cbo_Diff_Mon.value = 12;
  276. ufn_addDateReq("today");
  277. _me_date = cal_from;
  278. yyyymm = iv_sDate.substr(0, 6);
  279. _diff_day = 31;
  280. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  281. //년도 콤보박스 작성
  282. nYear = parseInt(iv_sDate.substr(0,4));
  283. nMonth = pd_calendar.dv_header.st_month.text.substr(0, 2);
  284. for(i=0; i<=10; i++)
  285. {
  286. ds_year.addRow();
  287. ds_year.setColumn(i, "code", i);
  288. ds_year.setColumn(i, "value", nYear-startYear);
  289. startYear = startYear - 1;
  290. }
  291. for(i=11; i<=20; i++)
  292. {
  293. ds_year.addRow();
  294. ds_year.setColumn(i, "code", i);
  295. ds_year.setColumn(i, "value", nYear+midYear);
  296. midYear = midYear + 1;
  297. }
  298. //Combo로 해당년도 초기설정
  299. pd_calendar.cb_year.text = nYear;
  300. //Combo로 해당월 초기설정
  301. pd_calendar.cb_month.text = nMonth;
  302. }
  303. //=======================================================================================
  304. // Event
  305. //---------------------------------------------------------------------------------------
  306. function fn_onkeydown(obj, e)
  307. {
  308. if(e.keycode == 13)
  309. {
  310. var sCompNm = this.name;
  311. if(sCompNm.indexOf("_S") > -1)
  312. {
  313. trace("ufn_compositeEvent");
  314. ufn_compositeEvent("ufn_search","");
  315. }
  316. }
  317. }
  318. /****************************************************************************************
  319. * Components : Button
  320. * Event : onclick
  321. * Argument : 01.obj : Object Event has occurred
  322. * : 02.e : Event Object
  323. * Description : Selected popup button
  324. ****************************************************************************************/
  325. function btn_Cal_onclick(obj:Button, e:ClickEventInfo)
  326. {
  327. if(cal_from.text == undefined){
  328. cal_from.value = iv_sDate;
  329. }
  330. if(cal_to.text == undefined){
  331. cal_to.value = iv_sDate;
  332. }
  333. var aArg = new Array(2);
  334. if(iv_bNotNull){
  335. aArg[0] = ufn_getDateToStr(cal_from.value);
  336. aArg[1] = ufn_getDateToStr(cal_to.value);
  337. }else{
  338. aArg[0] = cal_from.value;
  339. aArg[1] = cal_to.value;
  340. }
  341. var aRtn = ufn_Calendar(obj, "F", aArg);
  342. if(aRtn <> null)
  343. {
  344. cal_from.value = aRtn[0];
  345. cal_to.value = aRtn[1];
  346. if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,this.name);
  347. }
  348. }
  349. /****************************************************************************************
  350. * Components : Calendar
  351. * Event : onchange
  352. * Argument : 01.obj : Object Event has occurred
  353. * : 02.e : Event Object
  354. * Description : When the date changes
  355. ****************************************************************************************/
  356. // function cal_from_onchanged(obj:Calendar, e:ChangeEventInfo)
  357. // {
  358. // if(ufn_isEmpty(cal_from.value) == true || ufn_isEmpty(cal_to.value) == true){
  359. // return false;
  360. // }
  361. //
  362. // if(obj.name == "cal_from"){
  363. // var sFromDate = ufn_getDateToStr(cal_from.value);
  364. // var sToDate = ufn_getDateToStr(cal_to.value);
  365. //
  366. // if(ufn_isDate(sToDate) == true && ufn_isDate(sToDate) == true){
  367. // var retVal = ufn_compareDate(sFromDate, sToDate);
  368. // if(retVal > 0){
  369. // alert("Select period incorrect.");
  370. // cal_from.value = "";
  371. // return false;
  372. // }
  373. // }else{
  374. // alert("The month format is not.");
  375. // cal_from.value = "";
  376. // return false;
  377. // }
  378. // }
  379. //
  380. // if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,this.name);
  381. // }
  382. /****************************************************************************************
  383. * Components : Calendar
  384. * Event : onchange
  385. * Argument : 01.obj : Object Event has occurred
  386. * : 02.e : Event Object
  387. * Description : When the date changes
  388. ****************************************************************************************/
  389. // function cal_to_onchanged(obj:Calendar, e:ChangeEventInfo)
  390. // {
  391. // if(ufn_isEmpty(cal_from.value) == true || ufn_isEmpty(cal_to.value) == true){
  392. // return false;
  393. // }
  394. //
  395. // if(obj.name == "cal_to"){
  396. // var sFromDate = ufn_getDateToStr(cal_from.value);
  397. // var sToDate = ufn_getDateToStr(cal_to.value);
  398. //
  399. // if(ufn_isDate(sToDate) == true && ufn_isDate(sToDate) == true){
  400. // var retVal = ufn_compareDate(sFromDate, sToDate);
  401. // if(retVal > 0){
  402. // alert("Select period incorrect.");
  403. // cal_to.value = "";
  404. // return false;
  405. // }
  406. // }else{
  407. // alert("The month format is not.");
  408. // cal_to.value = "";
  409. // return false;
  410. // }
  411. // }
  412. //
  413. // if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,this.name);
  414. // }
  415. //=======================================================================================
  416. // User Function
  417. //---------------------------------------------------------------------------------------
  418. /****************************************************************************************
  419. * Description : 컴포지트 이벤트 호출 함수
  420. * Argument : sEventId - 호출할 이벤트 ID
  421. * sCompNm - 컴포지트명
  422. * @return N / A
  423. ****************************************************************************************/
  424. function ufn_compositeEvent(sEventId,sCompNm)
  425. {
  426. var lv_oFrame = this.getOwnerFrame();
  427. var lv_bInhForm = ufn_isNull(lv_oFrame.bInhForm) ? false : lv_oFrame.bInhForm;
  428. var lv_bMdiForm = ufn_isNull(lv_oFrame.bMdiForm) ? false : lv_oFrame.bMdiForm;
  429. var lv_bMdiPopForm = ufn_isNull(lv_oFrame.bMdiPopForm) ? false : lv_oFrame.bMdiPopForm;
  430. try{
  431. if(lv_bInhForm)
  432. {
  433. if(lv_bMdiForm == true || lv_bMdiPopForm == true)
  434. {
  435. if(ufn_isNull(sCompNm))
  436. {
  437. eval("this.getOwnerFrame().form.div_Layout.div_Work."+sEventId+"()");
  438. }
  439. else
  440. {
  441. eval("this.getOwnerFrame().form.div_Layout.div_Work."+sEventId+"('"+sCompNm+"')");
  442. }
  443. }
  444. else
  445. {
  446. if(ufn_isNull(sCompNm))
  447. {
  448. eval("this.getOwnerFrame().form."+sEventId+"()");
  449. }
  450. else
  451. { ;
  452. eval("this.getOwnerFrame().form."+sEventId+"('"+sCompNm+"')");
  453. }
  454. }
  455. }
  456. else
  457. {
  458. if(ufn_isNull(sCompNm))
  459. {
  460. eval(sEventId+"()");
  461. }
  462. else
  463. {
  464. eval(sEventId+"('"+sCompNm+"')");
  465. }
  466. }
  467. }catch(err){}
  468. }
  469. /****************************************************************************************
  470. * Description : Converted to a String Date Type
  471. * Argument : date date Type
  472. * return : yyyyMMdd
  473. ****************************************************************************************/
  474. function ufn_getDateToStr(date)
  475. {
  476. if(ufn_isNull(date)) return;
  477. var strYear = date.getYear().toString();
  478. var sMonth = (date.getMonth()+1).toString();
  479. var sDate = date.getDate().toString();
  480. if(strYear.length==2)
  481. strYear = '19'+strYear;
  482. else if(strYear.length==1)
  483. strYear = '190'+strYear;
  484. if(sMonth.length==1)
  485. sMonth = '0'+sMonth;
  486. if(sDate.length==1)
  487. sDate = '0'+sDate;
  488. return strYear+sMonth+sDate;
  489. }
  490. /****************************************************************************************
  491. * Description : 입력값이 null 또는 wihte space로만 이루어져 있으면 빈문자를 리턴하는 함수
  492. * Argument : sValue String
  493. * return : String
  494. ****************************************************************************************/
  495. function ufn_isEmpty(sValue)
  496. {
  497. if (new String(sValue).valueOf() == "undefined") return "";
  498. if (sValue == null) return "";
  499. var lv_sChkStr = new String(sValue);
  500. if (lv_sChkStr == null) return "";
  501. if (lv_sChkStr.toString().length == 0 ) return "";
  502. return sValue;
  503. }
  504. /****************************************************************************************
  505. * Description : 입력값이 null 또는 wihte space로만 이루어져 있는지 확인 하는 함수
  506. * Argument : value 입력값
  507. * return : boolean. null(혹은 white space) 여부
  508. ****************************************************************************************/
  509. function ufn_isNull(sValue)
  510. {
  511. if (new String(sValue).valueOf() == "undefined") return true;
  512. if (sValue == null) return true;
  513. var lv_sChkStr = new String(sValue);
  514. if (lv_sChkStr == null) return true;
  515. if (lv_sChkStr.toString().length == 0 ) return true;
  516. return false;
  517. }
  518. /****************************************************************************************
  519. * Description : Check the validity date.
  520. * Argument : sDate yyyyMM or yyyyMMdd, ex) "201205" or "20120506"
  521. * return : boolean
  522. ****************************************************************************************/
  523. function ufn_isDate(sDate)
  524. {
  525. var retVal;
  526. switch(sDate.length)
  527. {
  528. case 6://yyyyMM
  529. retVal = ufn_isYM(sDate);
  530. break;
  531. case 8://yyyyMMdd
  532. retVal = ufn_isYMD(sDate);
  533. break;
  534. default:
  535. retVal = false;
  536. break;
  537. }
  538. return retVal;
  539. }
  540. /****************************************************************************************
  541. * Description : Check the date format
  542. * Argument : sDate yyyyMMdd, ex) "20120506"
  543. * return : boolean
  544. ****************************************************************************************/
  545. function ufn_isYMD(sDate)
  546. {
  547. if (sDate.length != 8 || !isNumeric(sDate)) {
  548. return false;
  549. }
  550. var strYM = String(sDate).substr(0,6); // yyyyMM
  551. if (!ufn_isYM(strYM)) {
  552. return false;
  553. }
  554. var nDay = toNumber(String(sDate).substr(6,2)); // dd
  555. var nLastDay = toNumber(ufn_getLastDay(strYM));
  556. if (nDay < 1 || nDay > nLastDay) {
  557. return false;
  558. }
  559. return true;
  560. }
  561. /****************************************************************************************
  562. * Description : Check the date format
  563. * Argument : sDate yyyyMM, ex) "201205"
  564. * return : boolean
  565. ****************************************************************************************/
  566. function ufn_isYM(sDate)
  567. {
  568. if (sDate.length != 6 || !isNumeric(sDate)) {
  569. return false;
  570. }
  571. var nYear = toNumber(String(sDate).substr(0,4));
  572. var nMonth = toNumber(String(sDate).substr(4,2));
  573. if((nMonth < 1) || (nMonth > 12)) {
  574. return false;
  575. }
  576. return true;
  577. }
  578. /****************************************************************************************
  579. * Description : Compare the two dates.
  580. * Argument : sFormDate yyyyMMdd ex) "20120501"
  581. sToDate yyyyMMdd ex) "20120530"
  582. * @return
  583. * <p>1. The date is equal to two : return 0</p>
  584. * <p>2. sFormDate < sToDate : return -1</p>
  585. * <p>3. strFromDate > sToDate : return 1</p>
  586. * <p>4. Unless the date format : return null</p>
  587. ****************************************************************************************/
  588. function ufn_compareDate(sFormDate, sToDate)
  589. {
  590. var retVal;
  591. if (ufn_isDate(sFormDate) && ufn_isDate(sToDate)) {
  592. if (sFormDate == sToDate) {
  593. retVal = 0;
  594. } else if (sFormDate < sToDate) {
  595. retVal = -1;
  596. } else if (sFormDate > sToDate) {
  597. retVal = 1;
  598. }
  599. }
  600. return retVal;
  601. }
  602. /****************************************************************************************
  603. * Description : User Composite Get Data Method
  604. * Argument : none
  605. * return : none
  606. ****************************************************************************************/
  607. function getData()
  608. {
  609. iv_aRtn = new Array(2);
  610. if(iv_bNotNull){
  611. iv_aRtn[0] = ufn_getDateToStr(cal_from.value);
  612. iv_aRtn[1] = ufn_getDateToStr(cal_to.value);
  613. }else{
  614. iv_aRtn[0] = cal_from.value;
  615. iv_aRtn[1] = cal_to.value;
  616. }
  617. return iv_aRtn;
  618. }
  619. /****************************************************************************************
  620. * Description : User Composite Set Data Method
  621. * Argument : none
  622. * return : none
  623. ****************************************************************************************/
  624. function setData(aData)
  625. {
  626. if((!ufn_isDate(aData[0])) || (!ufn_isDate(aData[1]))) return;
  627. ////trace(aData[0]+" "+aData[1]);
  628. cal_from.value = aData[0];
  629. cal_to.value = aData[1];
  630. }
  631. function setEmpty()
  632. {
  633. cal_from.value = "";
  634. cal_to.value = "";
  635. }
  636. function setIsNull()
  637. {
  638. iv_bNotNull = false;
  639. }
  640. /****************************************************************************************
  641. * Description : User Composite Set Blank Method
  642. * Argument : none
  643. * return : none
  644. ****************************************************************************************/
  645. function setBlank()
  646. {
  647. cal_from.value = "";
  648. cal_to.value = "";
  649. }
  650. /****************************************************************************************
  651. * Description : User Composite Set cbo_Diff_Mon
  652. * Argument : none
  653. * return : none
  654. ****************************************************************************************/
  655. function setDiffdt(aData)
  656. {
  657. if(ufn_isNull(aData)) return;
  658. cbo_Diff_Mon.value = aData;
  659. ufn_addDateReq("");
  660. }
  661. /****************************************************************************************
  662. * Description : When the user select a date set limits
  663. * Argument : 1. sTitle : Title
  664. * : 2. nLimit : number
  665. * : 3. sFlag :
  666. * return : none
  667. ****************************************************************************************/
  668. function setLimit(sTitle, nLimit, sFlag)
  669. {
  670. iv_sTitle = sTitle
  671. iv_nLimit = nLimit;
  672. if(ufn_isEmpty(sFlag)){
  673. iv_Curr = sFlag;
  674. }
  675. }
  676. /****************************************************************************************
  677. * Description : User composite set required
  678. * Argument : none
  679. * return : none
  680. ****************************************************************************************/
  681. function setRequestment(bReq)
  682. {
  683. if(bReq)
  684. {
  685. cal_from.class = "input_essential";
  686. cal_to.class = "input_essential";
  687. }
  688. else
  689. {
  690. cal_from.class = "";
  691. cal_to.class = "";
  692. }
  693. }
  694. function setEnbale(bReq)
  695. {
  696. cal_from.enable = bReq;
  697. cal_to.enable = bReq;
  698. btn_Cal.enable = bReq;
  699. if(bReq)
  700. {
  701. div_Base1.style.background = "white";
  702. div_Base2.style.background = "white";
  703. }
  704. else
  705. {
  706. div_Base1.style.background = "#eeeeee";
  707. div_Base2.style.background = "#eeeeee";
  708. }
  709. }
  710. /****************************************************************************************
  711. * Description : User Composite Set Event Method
  712. * Argument : none
  713. * return : none
  714. ****************************************************************************************/
  715. function setCallEvent(sEvent)
  716. {
  717. iv_event = sEvent;
  718. }
  719. /****************************************************************************************
  720. * Description : User Composite Set NullValue Method
  721. * Argument : none
  722. * return : none
  723. ****************************************************************************************/
  724. function setNullValue(sGbn)
  725. {
  726. if(sGbn == "F")
  727. {
  728. cal_from.value = null;
  729. }
  730. else if(sGbn == "T")
  731. {
  732. cal_to.value = null;
  733. }
  734. else if(sGbn == "A")
  735. {
  736. cal_from.value = null;
  737. cal_to.value = null;
  738. }
  739. }
  740. /****************************************************************************************
  741. * Description : Calendar option select
  742. * Argument : 1.oBtn : Button object
  743. * : 2.sGb : Date type
  744. * : 3.sDate : Selected date
  745. * : 4.sMenuId : Form ID
  746. * : 5.sType :
  747. * return : Selected date
  748. ****************************************************************************************/
  749. var iv_CalendarDateFg;
  750. var iv_CalendarValue;
  751. var iv_bCalendarNaviFq = true;
  752. function ufn_Calendar(oBtn,sGb,vDate,sMenuId,sType)
  753. {
  754. if(sMenuId == null) sMenuId = "";
  755. if(sType == null) sType = "";
  756. var sUrl;
  757. var sName;
  758. var objPdvCal = new PopupDiv();
  759. if(sGb == "F")
  760. {
  761. sName = "PopDiv_CalendarF";
  762. sUrl = "COMPOSITE::Comm_periodDayCalendar.xfdl";
  763. objPdvCal.init(sName, 0, 0, 410, 255);
  764. objPdvCal.text = sName;
  765. }
  766. // Add Object to Parent Form
  767. this.addChild(sName, objPdvCal);
  768. objPdvCal.style.border = "none";
  769. objPdvCal.style.background = "transparent";
  770. objPdvCal.style.opacity = 100;
  771. objPdvCal.url = sUrl;
  772. // Show Object
  773. objPdvCal.show();
  774. if((sGb == "W") || (sGb == "D")) objPdvCal.msDataFg = sGb;
  775. objPdvCal.iv_mvArgValue = vDate;
  776. objPdvCal.fn_CrCal();
  777. var nPosX = system.clientToScreenX(cal_from, cal_from.position.left);
  778. var nPosY = system.clientToScreenY(cal_from, cal_from.position.height);
  779. var rtn = objPdvCal.trackPopup(nPosX,nPosY);
  780. this.removeChild(sName);
  781. objPdvCal.destroy();
  782. return rtn;
  783. }
  784. function cal_onkillfocus(obj:Calendar, e:KillFocusEventInfo)
  785. {
  786. if(iv_bNotNull)
  787. {
  788. if(ufn_isNull(obj.value)) obj.setFocus();
  789. }
  790. }
  791. /****************************************************************************************
  792. * Description : Returns the last date
  793. * Argument : sDate yyyyMM, ex) "201205"
  794. * return : Last date(dd)
  795. ****************************************************************************************/
  796. function ufn_getLastDay(sDate)
  797. {
  798. var lv_sRetVal = "";
  799. if (sDate == null) {
  800. var date = (new Date()).addMonth(1);
  801. }
  802. else {
  803. var date = new Date(parseInt(String(sDate).substr(0,4)),parseInt(String(sDate).substr(4,2)),1);
  804. }
  805. date = (new Date(date)).addDate((new Date(date)).getDate()*-1);
  806. lv_sRetVal = (new Date(date)).getFullYear()
  807. + (((new Date(date)).getMonth() + 1) + "").padLeft(2, '0')
  808. + ((new Date(date)).getDate() + "").padLeft(2, '0');
  809. return (lv_sRetVal);
  810. }
  811. /********************************************************************************************************************
  812. *********************************************************************************************************************
  813. ********************************************************************************************************************/
  814. /****************************************************************************************
  815. * Description : Carlendar Popup on/off
  816. * Argument : oDate : object target
  817. sDateVal : object target value
  818. * return :
  819. ****************************************************************************************/
  820. function showCalendar( oDate, sDateVal ) {
  821. //trace(" showCalendar sDate : " + oDate + " sDateVal : " + sDateVal);
  822. // Close Popup
  823. pd_calendar.cb_year.visible = false;
  824. pd_calendar.cb_month.visible = false;
  825. pd_calendar.closePopup();
  826. // init value
  827. _me_date = oDate;
  828. _move_date = "";
  829. var sYYYYMM = "";
  830. if( !ufn_isNull(sDateVal) && sDateVal.length == 8 ) {
  831. //trace("1. sDateVal->" + sDateVal);
  832. sYYYYMM = sDateVal.substr(0, 6);
  833. } else if( !ufn_isNull(sDateVal) && sDateVal.length == 4 ) {
  834. //trace("2. sDateVal->" + sDateVal + " " + utlf_getCurrentDate());
  835. sYYYYMM = utlf_getCurrentDate().substr(0,4) + sDateVal.substr(0, 2)
  836. } else {
  837. //trace("3. utlf_getCurrentDate->" + utlf_getCurrentDate());
  838. sYYYYMM = utlf_getCurrentDate().substr(0,6);
  839. }
  840. //trace( "sYYYYMM->" + sYYYYMM );
  841. drawCalendar(ds_calendar, pd_calendar.gd_calendar, sYYYYMM);
  842. // Calendar Popup view
  843. var nX = system.clientToScreenX(_me_date,0);
  844. var nY = system.clientToScreenY(_me_date,_me_date.position.height);
  845. pd_calendar.trackPopup(nX,nY);
  846. }
  847. /****************************************************************************************
  848. * Description : Calendar drow
  849. * Argument : ds_calendar_obj : dataset
  850. grid_obj : grid object
  851. yyyymm : yyyymm
  852. * return :
  853. ****************************************************************************************/
  854. function drawCalendar(ds_calendar_obj, grid_obj, yyyymm)
  855. {
  856. var day, row, iStartWeekNum, iLastDay;
  857. var yyyymm = yyyymm.substr(0 ,6);
  858. setCalendarHeaderPosition();
  859. grid_obj._yyyymm = yyyymm;
  860. // set year value
  861. if (gLocale == "ko_KR")
  862. pd_calendar.dv_header.st_year.text = yyyymm.substr(0, 4) + ".";
  863. else
  864. pd_calendar.dv_header.st_year.text = yyyymm.substr(0, 4);
  865. pd_calendar.cb_year.text = yyyymm.substr(0, 4);
  866. // set month value
  867. if (gLocale == "ko_KR")
  868. pd_calendar.dv_header.st_month.text = yyyymm.substr(4, 2);
  869. else if (gLocale == "en_US")
  870. pd_calendar.dv_header.st_month.text = yyyymm.substr(4, 2) + ".";
  871. else if (gLocale == "zh_CN")
  872. pd_calendar.dv_header.st_month.text = yyyymm.substr(4, 2) + "月";
  873. pd_calendar.cb_month.text = yyyymm.substr(4, 2);
  874. // Dataset create
  875. ds_calendar_obj.clearData();
  876. iStartWeekNum = getDayLocal(yyyymm+"01");
  877. iLastDay = lastDateNum(yyyymm+"01");
  878. iLastWeekNum = getDayLocal(yyyymm+iLastDay) + 1;
  879. //trace( "iStartWeekNum->" + iStartWeekNum + " iLastDay->" + iLastDay + " iLastWeekNum->" + iLastWeekNum );
  880. row = ds_calendar_obj.addRow();
  881. for( var i = 1, day = iStartWeekNum ; i <= iLastDay ; i++ )
  882. {
  883. // Calendar dats set
  884. ds_calendar_obj.setColumn(row, "day" +day , i);
  885. ds_calendar_obj.setColumn(row, "date"+day , yyyymm + String(i).padLeft(2, '0'));
  886. // Calendar Data Row Add
  887. day = (day+1)%7;
  888. if( day == 0 && i != iLastDay )
  889. row = ds_calendar_obj.addRow();
  890. }
  891. /****************************************************************************/
  892. //0.Fill the empty values
  893. if( ds_calendar_obj.rowcount > 0 ) {
  894. //1. Fill in pre month info an empty value in the first
  895. var sPrev_yyyymm = addMonth(yyyymm + "01", 0, -1).substr(0, 6);
  896. var iPrevDay = lastDateNum(sPrev_yyyymm + "01");
  897. for( var i=iStartWeekNum-1; i>=0; i-- ) {
  898. ds_calendar_obj.setColumn(0, "day" +i, iPrevDay);
  899. ds_calendar_obj.setColumn(0, "date"+i, sPrev_yyyymm + String( iPrevDay ).padLeft(2, '0'));
  900. iPrevDay--;
  901. }
  902. //2. Fill in next month info an empty value in the last
  903. var sNext_yyyymm = addMonth(yyyymm + "01", 0, 1).substr(0, 6);
  904. var iNextDay = 1;
  905. if( ds_calendar_obj.rowcount == 5 ) {
  906. for( var i=iLastWeekNum; i<=6; i++ ){
  907. ds_calendar_obj.setColumn(row, "day" +i, iNextDay);
  908. ds_calendar_obj.setColumn(row, "date"+i, sNext_yyyymm + String( iNextDay ).padLeft(2, '0'));
  909. iNextDay++;
  910. }
  911. //Make the sixth line
  912. row = ds_calendar_obj.addRow();
  913. iLastWeekNum = 0; //Fill the sixth line from the beginning.
  914. }
  915. //3. Fill in next month info an empty value in the last
  916. if( ds_calendar_obj.rowcount == 6 ) {
  917. for( var i=iLastWeekNum; i<=6; i++ ){
  918. ds_calendar_obj.setColumn(row, "day" +i, iNextDay);
  919. ds_calendar_obj.setColumn(row, "date"+i, sNext_yyyymm + String( iNextDay ).padLeft(2, '0'));
  920. iNextDay++;
  921. }
  922. }
  923. }
  924. }
  925. /****************************************************************************************
  926. * Description : Calender Header Posigion Set
  927. * Argument :
  928. * return :
  929. ****************************************************************************************/
  930. function setCalendarHeaderPosition() {
  931. // year
  932. var strYearLeft = 40;
  933. var strYearRight = 106;
  934. var strYearTop = 2;
  935. var strYearBottom = 22;
  936. // month
  937. var strMonthLeft = 106;
  938. var strMonthRight = 154;
  939. var strMonthTop = 2;
  940. var strMonthBottom = 22;
  941. if (gLocale != "ko_KR")
  942. {
  943. // year
  944. pd_calendar.dv_header.st_year.position.left = strMonthLeft - 9;
  945. pd_calendar.dv_header.st_year.position.right = strMonthRight;
  946. pd_calendar.dv_header.st_year.position.top = strMonthTop;
  947. pd_calendar.dv_header.st_year.position.bottom = strMonthBottom;
  948. pd_calendar.dv_header.st_year.style.align.halign = "left";
  949. // month
  950. pd_calendar.dv_header.st_month.position.left = strYearLeft;
  951. pd_calendar.dv_header.st_month.position.right = strYearRight - 9;
  952. pd_calendar.dv_header.st_month.position.top = strYearTop;
  953. pd_calendar.dv_header.st_month.position.bottom = strYearBottom;
  954. pd_calendar.dv_header.st_month.style.align.halign = "right";
  955. }
  956. }
  957. /****************************************************************************************
  958. * Components : btn_Cal_from
  959. * Event : onclick
  960. * Argument : 01.obj : Object Event has occurred
  961. * : 02.e : Event Object
  962. * Description : Call function( showCalendar() )
  963. ****************************************************************************************/
  964. function btn_Cal_from_onclick(obj:Button, e:ClickEventInfo)
  965. {
  966. var sDateVal = ufn_getDateToStr(cal_from.value);
  967. sDateVal = ufn_isNull(sDateVal) ? "" : sDateVal.replace("-", "");
  968. showCalendar( cal_from, sDateVal );
  969. }
  970. /****************************************************************************************
  971. * Components : btn_Cal_to
  972. * Event : onclick
  973. * Argument : 01.obj : Object Event has occurred
  974. * : 02.e : Event Object
  975. * Description : Call function( showCalendar() )
  976. ****************************************************************************************/
  977. function btn_Cal_to_onclick(obj:Button, e:ClickEventInfo)
  978. {
  979. var sFromVal = ufn_getDateToStr(cal_from.value);
  980. var sToVal = ufn_getDateToStr(cal_to.value);
  981. sFromVal = ufn_isNull(sFromVal) ? "" : sFromVal.replace("-", "");
  982. sToVal = ufn_isNull(sToVal) ? "" : sToVal.replace("-", "");
  983. //trace( sFromVal + ":" + sToVal );
  984. // check start date
  985. var sDateVal = "";
  986. if( sFromVal > sToVal )
  987. sDateVal = sFromVal;
  988. else if( !ufn_isNull(sFromVal) && ufn_isNull(sToVal) )
  989. sDateVal = sFromVal;
  990. else
  991. sDateVal = sToVal;
  992. //trace( "btn_Cal_to_onclick sDateVal -> " + sDateVal );
  993. showCalendar( cal_to, sDateVal );
  994. }
  995. /****************************************************************************************
  996. * Description : Local time, use the value returned by the code form the day of a Date object
  997. * Argument : sDate : date
  998. * return : 0(Sun) ~ 6(Sat)
  999. ****************************************************************************************/
  1000. function getDayLocal(sDate)
  1001. {
  1002. if( ufn_isNull(sDate) ) return -1;
  1003. var oDate = new Date(date2XP(sDate));
  1004. return oDate.getDay();
  1005. }
  1006. /****************************************************************************************
  1007. * Description : date set
  1008. * Argument : sDate : date
  1009. * return : yyyy-mm-dd hh:mm:ss
  1010. ****************************************************************************************/
  1011. function date2XP(sDate)
  1012. {
  1013. var ret;
  1014. if( ufn_isNull(sDate) ) return "";
  1015. if( sDate.length != 8 && sDate.length != 14 )
  1016. return "";
  1017. ret = sDate.substr(0, 4) + "-" + sDate.substr(4, 2)+ "-" + sDate.substr(6, 2);
  1018. if( sDate.length > 8 )
  1019. ret += " " + sDate.substr(8,2) + ":" + sDate.substr(10,2) + ":" + sDate.substr(12,2);
  1020. return ret;
  1021. }
  1022. /****************************************************************************************
  1023. * Description : month last day
  1024. * Argument : sDate : date
  1025. * return : last day
  1026. ****************************************************************************************/
  1027. function lastDateNum(sDate)
  1028. {
  1029. var nMonth, nLastDate;
  1030. if( ufn_isNull(sDate) ) return -1;
  1031. nMonth = parseInt(sDate.substr(4,2), 10);
  1032. if( nMonth == 1 || nMonth == 3 || nMonth == 5 || nMonth == 7 || nMonth == 8 || nMonth == 10 || nMonth == 12 )
  1033. nLastDate = 31;
  1034. else if( nMonth == 2 )
  1035. {
  1036. if( isLeapYear(sDate) == true )
  1037. nLastDate = 29;
  1038. else
  1039. nLastDate = 28;
  1040. }
  1041. else
  1042. nLastDate = 30;
  1043. return nLastDate;
  1044. }
  1045. /****************************************************************************************
  1046. * Description : Leap check
  1047. * Argument : sDate : date
  1048. * return : true / false
  1049. ****************************************************************************************/
  1050. function isLeapYear(sDate)
  1051. {
  1052. var ret;
  1053. var nY;
  1054. if( ufn_isNull(sDate) ) return false;
  1055. nY = parseInt(sDate.substring(0,4), 10);
  1056. if ((nY % 4) == 0)
  1057. {
  1058. if ((nY % 100) != 0 || (nY % 400) == 0)
  1059. ret = true;
  1060. else
  1061. ret = false;
  1062. }
  1063. else
  1064. ret = false;
  1065. return ret;
  1066. }
  1067. /****************************************************************************************
  1068. * Description : month add
  1069. * Argument : sDate : date
  1070. mOffsetYear :
  1071. nOffsetMonth :
  1072. * return :
  1073. ****************************************************************************************/
  1074. function addMonth(sDate, nOffsetYear, nOffsetMonth)
  1075. {
  1076. if( ufn_isNull(sDate) || ufn_isNull(nOffsetYear) || ufn_isNull(nOffsetMonth)) return "";
  1077. var nYear = parseInt(sDate.substr(0, 4))+nOffsetYear;
  1078. var nMonth = parseInt(sDate.substr(4, 2))+nOffsetMonth;
  1079. var nDate = parseInt(sDate.substr(6, 2));
  1080. var nLastDate, sRet;
  1081. sRet = makeDate(nYear, nMonth, 1);
  1082. nLastDate = lastDateNum(sRet);
  1083. sRet = sRet.substr(0,6);
  1084. if( nDate > nLastDate )
  1085. sRet += nLastDate.toString();
  1086. else
  1087. sRet += nDate.toString();
  1088. return sRet;
  1089. }
  1090. /****************************************************************************************
  1091. * Description : Date Set(YYYYMMDD)
  1092. * Argument : nYear : year
  1093. nMonth : month
  1094. nDate : day
  1095. * return : Date(YYYYMMDD)
  1096. ****************************************************************************************/
  1097. function makeDate(nYear, nMonth, nDate)
  1098. {
  1099. if( ufn_isNull(nYear) || ufn_isNull(nMonth) || ufn_isNull(nDate) ) return "";
  1100. var objDate = new Date(nYear, nMonth-1, nDate);
  1101. var sYear = objDate.getFullYear().toString();
  1102. var sMonth = getStringRight("0" + (objDate.getMonth() + 1), 2);
  1103. var sDate = getStringRight("0" + objDate.getDate(), 2);
  1104. return sYear + sMonth + sDate;
  1105. }
  1106. /****************************************************************************************
  1107. * Description : As specified on the right part of the string length return
  1108. * Argument : strString : String
  1109. nSize : substring index
  1110. * return : String
  1111. ****************************************************************************************/
  1112. function getStringRight(strString, nSize)
  1113. {
  1114. var nStart = String(strString).length;
  1115. var nEnd = Number(nStart) - Number(nSize);
  1116. var rtnVal = strString.substring(nStart, nEnd);
  1117. return rtnVal;
  1118. }
  1119. /****************************************************************************************
  1120. * Description : Multilanguage Processing
  1121. * Argument : sDate : date
  1122. * return : language
  1123. ****************************************************************************************/
  1124. function gridHeaderDay(sDate)
  1125. {
  1126. switch (sDate) {
  1127. case "일":
  1128. if (gLocale == "zh_CN")
  1129. sDate = "天";
  1130. else if (gLocale == "en_US")
  1131. sDate = "sun";
  1132. break;
  1133. case "월":
  1134. if (gLocale == "zh_CN")
  1135. sDate = "一";
  1136. else if (gLocale == "en_US")
  1137. sDate = "mon";
  1138. break;
  1139. case "화":
  1140. if (gLocale == "zh_CN")
  1141. sDate = "二";
  1142. else if (gLocale == "en_US")
  1143. sDate = "tue";
  1144. break;
  1145. case "수":
  1146. if (gLocale == "zh_CN")
  1147. sDate = "三";
  1148. else if (gLocale == "en_US")
  1149. sDate = "wed";
  1150. break;
  1151. case "목":
  1152. if (gLocale == "zh_CN")
  1153. sDate = "四";
  1154. else if (gLocale == "en_US")
  1155. sDate = "thu";
  1156. break;
  1157. case "금":
  1158. if (gLocale == "zh_CN")
  1159. sDate = "五";
  1160. else if (gLocale == "en_US")
  1161. sDate = "fri";
  1162. break;
  1163. case "토":
  1164. if (gLocale == "zh_CN")
  1165. sDate = "六";
  1166. else if (gLocale == "en_US")
  1167. sDate = "sat";
  1168. break;
  1169. }
  1170. return sDate;
  1171. }
  1172. /****************************************************************************************
  1173. * Description : Grid Calendar Cell Click
  1174. * Argument : obj : Object Event has occurred
  1175. * : e : Event Object
  1176. * return :
  1177. ****************************************************************************************/
  1178. function pd_calendar_gd_calendar_oncellclick(obj:Grid, e:GridClickEventInfo)
  1179. {
  1180. var sSelectedDate = ds_calendar.getColumn( e.row, "date" + e.cell );
  1181. //trace("************** sSelectedDate : "+sSelectedDate);
  1182. //trace("************** isChanged : "+isChanged);
  1183. _move_date = "";
  1184. if (!ufn_isNull(sSelectedDate))
  1185. {
  1186. if (_me_date.mask == "####-##-##"){
  1187. //trace(" _me_date mask == ####-##-## ");
  1188. } else if (_me_date.mask == "##-##"){
  1189. //trace(" _me_date mask == ##-## ");
  1190. sSelectedDate = sSelectedDate.substr(4, 4);
  1191. }
  1192. if( _me_date.value.toFormatString("%Y%m%d") != sSelectedDate ) isChanged = true;
  1193. //Paste the selected value
  1194. _me_date.value = sSelectedDate;
  1195. pd_calendar.gd_calendar._selecteddate = sSelectedDate;
  1196. //trace("pd_calendar.gd_calendar._selecteddate : " + pd_calendar.gd_calendar._selecteddate);
  1197. //trace(" _me_date : " + _me_date);
  1198. checkFromToDate( _me_date );
  1199. }
  1200. //end process...close popup
  1201. pd_calendar.cb_year.visible = false;
  1202. pd_calendar.cb_month.visible = false;
  1203. pd_calendar.closePopup();
  1204. }
  1205. /****************************************************************************************
  1206. * Description : Check From - To Date
  1207. * Argument : oDate : Date
  1208. * : isShow : Show true/false
  1209. * return :
  1210. ****************************************************************************************/
  1211. function checkFromToDate( oDate, isShow ) {
  1212. var isCheck = true;
  1213. if( ufn_isNull(isShow) ) {
  1214. isShow = true;
  1215. }
  1216. //trace( "target_name:" + oDate.name );
  1217. var sFromVal = replaceDate( ufn_getDateToStr(cal_from.value) );
  1218. var sToVal = replaceDate( ufn_getDateToStr(cal_to.value) );
  1219. //trace( "from to:" + sFromVal + ":" + sToVal );
  1220. // Check the start and end date
  1221. if( oDate.name == "cal_from" ) {
  1222. if( sFromVal > sToVal ) {
  1223. cal_to.value = sFromVal;
  1224. if( isShow ) showCalendar( cal_to, sFromVal );
  1225. isCheck= false;
  1226. }
  1227. if( _isDisableValid != true ) {
  1228. var iDiff = utlf_diffDate( sFromVal, sToVal);
  1229. //trace( "from to diff:" + sFromVal + ":" + sToVal + ":" + iDiff + " " + _diff_day );
  1230. if( iDiff > _diff_day ) {
  1231. var curDate = new Date();
  1232. curDate.setYear ( sFromVal.substr(0, 4) );
  1233. curDate.setMonth ( sFromVal.substr(4, 2)-1, sFromVal.substr(6, 2) );
  1234. curDate.getAddDate ( _diff_day, "D" );
  1235. cal_to.value = curDate.toFormatString("%Y-%m-%d");
  1236. alert("기간은 " +_diff_day+ "일을 넘을 수 없습니다.");
  1237. //cal_to.setFocus();
  1238. isCheck= false;
  1239. }
  1240. }
  1241. }
  1242. else if( oDate.name == "cal_to" ) {
  1243. if( sToVal < sFromVal ) {
  1244. cal_from.value = sToVal;
  1245. if( isShow ) showCalendar( cal_from, sToVal );
  1246. //else oDate.setFocus();
  1247. isCheck= false;
  1248. }
  1249. if( _isDisableValid != true ) {
  1250. var iDiff = utlf_diffDate( sFromVal, sToVal );
  1251. //trace( "from to diff:" + sFromVal + ":" + sToVal + ":" + iDiff + " " + _diff_day );
  1252. if( iDiff > _diff_day ) {
  1253. var curDate = new Date();
  1254. //var sDateVal = sToVal;
  1255. curDate.setYear ( sToVal.substr(0, 4) );
  1256. curDate.setMonth ( sToVal.substr(4, 2)-1, sToVal.substr(6, 2) );
  1257. curDate.getAddDate ( -1 * _diff_day, "D" );
  1258. //curDate = new Date( curDate.addDate( -1 * _diff_day ) );
  1259. //trace( sToVal.substr(0, 4) + " " + sToVal.substr(4, 2) + " " + sToVal.substr(6, 2) + " " + (-1 * _diff_day) + " " + curDate.toFormatString("%Y-%m-%d"));
  1260. cal_from.value = curDate.toFormatString("%Y-%m-%d");
  1261. alert("기간은 " +_diff_day+ "일을 넘을 수 없습니다.");
  1262. //cal_from.setFocus();
  1263. isCheck= false;
  1264. }
  1265. }
  1266. }
  1267. callBindFunction( gFunctionName ); // call function
  1268. return isCheck;
  1269. }
  1270. /****************************************************************************************
  1271. * Description : String Replace
  1272. * Argument : sVal : string data
  1273. * return : replace data
  1274. ****************************************************************************************/
  1275. function replaceDate( sVal ) {
  1276. if( ufn_isNull(sVal) ) sVal = "";
  1277. sVal = sVal.replace("-", "");
  1278. return sVal;
  1279. }
  1280. /****************************************************************************************
  1281. * Description : Call the function whenever the value changes
  1282. * Argument : sFunctionName :
  1283. * return :
  1284. ****************************************************************************************/
  1285. function callBindFunction( sFunctionName ) {
  1286. //trace("sFunctionName:" + sFunctionName + ":" + isChanged);
  1287. sFromVal = replaceDate( ufn_getDateToStr(cal_from.value) );
  1288. sToVal = replaceDate( ufn_getDateToStr(cal_to.value) );
  1289. if( !ufn_isNull(sFunctionName) && isChanged ) {
  1290. isChanged = false;
  1291. try {
  1292. eval(sFunctionName + "(" +sFromVal+ ", " +sToVal+ ");");
  1293. } catch(e) {
  1294. }
  1295. }
  1296. }
  1297. /****************************************************************************************
  1298. * Description : Specifies the name of the function to be called when the value is changed
  1299. * Argument : sFunctionName :
  1300. * return :
  1301. ****************************************************************************************/
  1302. function setFunctionName( sFunctionName ) {
  1303. gFunctionName = sFunctionName;
  1304. }
  1305. /****************************************************************************************
  1306. * Components : pd_calendar_cb_year
  1307. * Event : onitemchanged
  1308. * Argument : 01.obj : Object Event has occurred
  1309. * : 02.e : Event Object
  1310. * Description : Call function( drawClendar() )
  1311. ****************************************************************************************/
  1312. function pd_calendar_cb_year_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  1313. {
  1314. yyyymm = e.posttext + pd_calendar.dv_header.st_month.text;
  1315. //trace("yyyymm");
  1316. yyyymm = yyyymm.substr(0, 6);
  1317. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  1318. pd_calendar.cb_year.visible = false;
  1319. }
  1320. /****************************************************************************************
  1321. * Components : pd_calendar_cb_month
  1322. * Event : onitemchanged
  1323. * Argument : 01.obj : Object Event has occurred
  1324. * : 02.e : Event Object
  1325. * Description : Call function( drawClendar() )
  1326. ****************************************************************************************/
  1327. function pd_calendar_cb_month_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  1328. {
  1329. yyyymm = pd_calendar.dv_header.st_year.text.substr(0, 4) + e.posttext;
  1330. yyyymm = yyyymm.substr(0, 6);
  1331. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  1332. pd_calendar.cb_month.visible = false;
  1333. }
  1334. /****************************************************************************************
  1335. * Components : pd_calendar_dv_header_st_month
  1336. * Event : onclick
  1337. * Argument : 01.obj : Object Event has occurred
  1338. * : 02.e : Event Object
  1339. * Description : dv_header st_month posision setting
  1340. ****************************************************************************************/
  1341. function pd_calendar_dv_header_st_month_onclick(obj:Static, e:ClickEventInfo)
  1342. {
  1343. //position setting
  1344. pd_calendar.cb_month.position.left = obj.position.left;
  1345. pd_calendar.cb_month.position.top = obj.position.top +3;
  1346. pd_calendar.cb_month.position.width = obj.position.width -8;
  1347. pd_calendar.cb_month.position.height = obj.position.height -2;
  1348. //set focus combo, change visible
  1349. pd_calendar.cb_month.moveToPrev(pd_calendar.dv_header);
  1350. pd_calendar.cb_month.visible = true;
  1351. pd_calendar.cb_month.setFocus();
  1352. pd_calendar.cb_month.setCaretPos(0);
  1353. }
  1354. /****************************************************************************************
  1355. * Components : pd_calendar_dv_header_st_year
  1356. * Event : onclick
  1357. * Argument : 01.obj : Object Event has occurred
  1358. * : 02.e : Event Object
  1359. * Description : dv_header st_year posision setting
  1360. ****************************************************************************************/
  1361. function pd_calendar_dv_header_st_year_onclick(obj:Static, e:ClickEventInfo)
  1362. {
  1363. // position setting
  1364. pd_calendar.cb_year.position.left = obj.position.left +11;
  1365. pd_calendar.cb_year.position.top = obj.position.top +3;
  1366. pd_calendar.cb_year.position.width = obj.position.width -13;
  1367. pd_calendar.cb_year.position.height = obj.position.height -2;
  1368. //set focus combo, change visible
  1369. pd_calendar.cb_year.moveToPrev(pd_calendar.dv_header);
  1370. pd_calendar.cb_year.visible = true;
  1371. pd_calendar.cb_year.setFocus();
  1372. pd_calendar.cb_year.setCaretPos(0);
  1373. }
  1374. /****************************************************************************************
  1375. * Components : pd_calendar_gd_calendar
  1376. * Event : onmousemove
  1377. * Argument : 01.obj : Object Event has occurred
  1378. * : 02.e : Event Object
  1379. * Description : Set the value of the variable
  1380. ****************************************************************************************/
  1381. function pd_calendar_gd_calendar_onmousemove(obj:Grid, e:GridMouseEventInfo)
  1382. {
  1383. var sSelectedDate = ds_calendar.getColumn( e.row, "date" + e.cell );
  1384. _move_date = sSelectedDate;
  1385. }
  1386. /****************************************************************************************
  1387. * Components : pd_calendar_gd_calendar
  1388. * Event : onmouseleave
  1389. * Argument : 01.obj : Object Event has occurred
  1390. * : 02.e : Event Object
  1391. * Description : Set the value of the variable
  1392. ****************************************************************************************/
  1393. function pd_calendar_gd_calendar_onmouseleave(obj:Grid, e:MouseEventInfo)
  1394. {
  1395. _move_date = "";
  1396. }
  1397. /****************************************************************************************
  1398. * Description : grid background setting
  1399. * Argument : sDate : day
  1400. * return : return color
  1401. ****************************************************************************************/
  1402. function gridTodayExpr(sDate)
  1403. {
  1404. var yyyymmdd = String(sDate);
  1405. //Selected cell displays
  1406. if ( !ufn_isNull(ufn_getDateToStr(_me_date.value)) && ufn_getDateToStr(_me_date.value).replace("-","") == yyyymmdd )
  1407. return "#41aec4";
  1408. //Today the date set
  1409. if( yyyymmdd == iv_sDate )
  1410. return "";
  1411. }
  1412. /****************************************************************************************
  1413. * Description : grid background2 setting
  1414. * Argument : sDate : day
  1415. colId :
  1416. * return : return background2 color, color2
  1417. ****************************************************************************************/
  1418. function gridTodayFontColor(sDate,colId)
  1419. {
  1420. var yyyymmdd = String(sDate);
  1421. var flgHoliday = false;
  1422. //trace( sDate + " " + colId );
  1423. //check Holidays
  1424. for (i=0; i<arrHolList.length; i++)
  1425. {
  1426. ////trace(arrHolList[i]);
  1427. if (yyyymmdd.substr(4,4) == arrHolList[i])
  1428. flgHoliday = true;
  1429. }
  1430. //Check dynamic Holidays
  1431. for (j=0; j<ds_holiday.rowcount; j++)
  1432. {
  1433. //trace(ds_holiday.getColumn(j, "date"));
  1434. if ( yyyymmdd == ds_holiday.getColumn(j, "date") )
  1435. flgHoliday = true;
  1436. }
  1437. //trace( yyyymmdd + " " + pd_calendar.gd_calendar._yyyymm + " " + iv_sDate + " " + _me_date.value.replace("-","") );
  1438. // When it is not part of the current month
  1439. if( yyyymmdd.substr(0, 6) != pd_calendar.gd_calendar._yyyymm )
  1440. return "#b0b0b0";
  1441. // Sunday or public holiday
  1442. else if( (colId == "col0") || (flgHoliday == true) )
  1443. return "red";
  1444. // Today
  1445. else if( yyyymmdd == iv_sDate )
  1446. return "#003399";
  1447. else if( yyyymmdd == _move_date )
  1448. return "#ffffff";
  1449. //Selected cell displays
  1450. else if( !ufn_isNull(ufn_getDateToStr(_me_date.value)) && yyyymmdd == ufn_getDateToStr(_me_date.value).replace("-","") )
  1451. return "#ffffff";
  1452. else
  1453. return "#616161";
  1454. }
  1455. /****************************************************************************************
  1456. * Description : grid font setting
  1457. * Argument : sDate : day
  1458. * return : return background2 font
  1459. ****************************************************************************************/
  1460. function gridTodayFontStyle(sDate)
  1461. {
  1462. var yyyymmdd = String(sDate);
  1463. if(yyyymmdd == iv_sDate)
  1464. return "Tahoma,8,bold";
  1465. //Selected cell displays
  1466. if ( !ufn_isNull(ufn_getDateToStr(_me_date.value)) && ufn_getDateToStr(_me_date.value).replace("-","") == yyyymmdd )
  1467. return "Tahoma,8,bold";
  1468. }
  1469. /****************************************************************************************
  1470. * Components : pd_calendar_dv_header_bt_nextMonth
  1471. * Event : onclick
  1472. * Argument : 01.obj : Object Event has occurred
  1473. * : 02.e : Event Object
  1474. * Description : Call function (drowCalendar())
  1475. ****************************************************************************************/
  1476. function pd_calendar_dv_header_bt_nextMonth_onclick(obj:Button, e:ClickEventInfo)
  1477. {
  1478. yyyymm = pd_calendar.gd_calendar._yyyymm;
  1479. var add_date = addMonth(yyyymm+"01", 0, 1);
  1480. yyyymm = add_date.substr(0, 6);
  1481. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  1482. }
  1483. /****************************************************************************************
  1484. * Components : pd_calendar_dv_header_bt_nextYear
  1485. * Event : onclick
  1486. * Argument : 01.obj : Object Event has occurred
  1487. * : 02.e : Event Object
  1488. * Description : Call function (drowCalendar())
  1489. ****************************************************************************************/
  1490. function pd_calendar_dv_header_bt_nextYear_onclick(obj:Button, e:ClickEventInfo)
  1491. {
  1492. yyyymm = pd_calendar.gd_calendar._yyyymm;
  1493. var add_date = addMonth(yyyymm+"01", 1, 0);
  1494. yyyymm = add_date.substr(0, 6);
  1495. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  1496. }
  1497. /****************************************************************************************
  1498. * Components : pd_calendar_dv_header_bt_previousMonth
  1499. * Event : onclick
  1500. * Argument : 01.obj : Object Event has occurred
  1501. * : 02.e : Event Object
  1502. * Description : Call function (drowCalendar())
  1503. ****************************************************************************************/
  1504. function pd_calendar_dv_header_bt_previousMonth_onclick(obj:Button, e:ClickEventInfo)
  1505. {
  1506. yyyymm = pd_calendar.gd_calendar._yyyymm;
  1507. var add_date = addMonth(yyyymm+"01", 1, 0);
  1508. yyyymm = add_date.substr(0, 6);
  1509. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  1510. }
  1511. /****************************************************************************************
  1512. * Components : pd_calendar_dv_header_bt_nextYear
  1513. * Event : onclick
  1514. * Argument : 01.obj : Object Event has occurred
  1515. * : 02.e : Event Object
  1516. * Description : Call function (drowCalendar())
  1517. ****************************************************************************************/
  1518. function pd_calendar_dv_header_bt_previousYear_onclick(obj:Button, e:ClickEventInfo)
  1519. {
  1520. yyyymm = pd_calendar.gd_calendar._yyyymm;
  1521. var add_date = addMonth(yyyymm+"01", 1, 0);
  1522. yyyymm = add_date.substr(0, 6);
  1523. drawCalendar(ds_calendar, pd_calendar.gd_calendar, yyyymm);
  1524. }
  1525. /****************************************************************************************
  1526. * Components : btn_PreYear
  1527. * Event : onclick
  1528. * Argument : 01.obj : Object Event has occurred
  1529. * : 02.e : Event Object
  1530. * Description : Call function (ufn_addDateReq())
  1531. ****************************************************************************************/
  1532. function btn_PreYear_onclick(obj:Button, e:ClickEventInfo)
  1533. {
  1534. ufn_addDateReq("back");
  1535. }
  1536. /****************************************************************************************
  1537. * Components : btn_PreYear
  1538. * Event : onclick
  1539. * Argument : 01.obj : Object Event has occurred
  1540. * : 02.e : Event Object
  1541. * Description : Call function (ufn_addDateReq())
  1542. ****************************************************************************************/
  1543. function btn_today_onclick(obj:Button, e:ClickEventInfo)
  1544. {
  1545. ufn_addDateReq("today");
  1546. }
  1547. /****************************************************************************************
  1548. * Components : btn_NextYear
  1549. * Event : onclick
  1550. * Argument : 01.obj : Object Event has occurred
  1551. * : 02.e : Event Object
  1552. * Description : Call function (ufn_addDateReq())
  1553. ****************************************************************************************/
  1554. function btn_NextYear_onclick(obj:Button, e:ClickEventInfo)
  1555. {
  1556. ufn_addDateReq("next");
  1557. }
  1558. /****************************************************************************************
  1559. * Components : cboMon
  1560. * Event : onitemchanged
  1561. * Argument : 01.obj : Object Event has occurred
  1562. * : 02.e : Event Object
  1563. * Description : Call function (ufn_addDateReq())
  1564. ****************************************************************************************/
  1565. function cbo_Mon_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  1566. {
  1567. ufn_addDateReq("");
  1568. }
  1569. /****************************************************************************************
  1570. * Description : date setting
  1571. * Argument : diffFlag: difference month
  1572. * return :
  1573. ****************************************************************************************/
  1574. function ufn_addDateReq(diffFlag)
  1575. {
  1576. var frdd = ufn_getDateToStr(cal_from.value);
  1577. var todd = ufn_getDateToStr(cal_to.value);
  1578. var srcdd = new Date();
  1579. var destdd = new Date();
  1580. var diffdt;
  1581. if (diffFlag == "next")
  1582. {
  1583. srcdd = cal_to.value;
  1584. srcdd = srcdd.getAddDate(1, "D");
  1585. frdd = srcdd.toFormatString("%Y%m%d");
  1586. diffdt = parseInt(cbo_Diff_Mon.value) * 1;
  1587. destdd = srcdd.getAddDate(diffdt, "M");
  1588. todd = destdd.toFormatString("%Y%m%d");
  1589. }
  1590. else if (diffFlag == "back")
  1591. {
  1592. srcdd = cal_from.value;
  1593. srcdd = srcdd.getAddDate(-1, "D");
  1594. todd = srcdd.toFormatString("%Y%m%d");
  1595. diffdt = parseInt(cbo_Diff_Mon.value) * -1;
  1596. destdd = srcdd.getAddDate(diffdt, "M");
  1597. frdd = destdd.toFormatString("%Y%m%d");
  1598. }
  1599. else if (diffFlag == "today")
  1600. {
  1601. var objDate = new Date();
  1602. iv_sDate = objDate.toFormatString("%Y%m%d");
  1603. todd = iv_sDate;
  1604. var today = new Date();
  1605. var frday = new Date();
  1606. diffdt = parseInt(cbo_Diff_Mon.value) * -1;
  1607. frday = today.getAddDate(diffdt , "M");
  1608. frdd = frday.toFormatString("%Y%m%d");
  1609. }
  1610. else
  1611. {
  1612. var today = cal_to.value;
  1613. var frday = new Date();
  1614. var diffdt = parseInt(cbo_Diff_Mon.value) * -1;
  1615. frday = today.getAddDate(diffdt , "M");
  1616. frdd = frday.toFormatString("%Y%m%d");
  1617. }
  1618. cal_from.value = frdd;
  1619. cal_to.value = todd;
  1620. }
  1621. /****************************************************************************************
  1622. * Components : cal_from
  1623. * Event : onkeyup
  1624. * Argument : 01.obj : Object Event has occurred
  1625. * : 02.e : Event Object
  1626. * Description : Focus change to cal_to
  1627. ****************************************************************************************/
  1628. function cal_from_onkeyup(obj:Calendar, e:KeyEventInfo)
  1629. {
  1630. //trace("keyup setfocus()::"+e.eventid);
  1631. /*
  1632. var dt = obj.text.toDate("YYYYMMDD").getDateFormat("YYYYMMDD");
  1633. if ((e.keycode > 47 && e.keycode < 58) || (e.keycode > 95 && e.keycode < 106)) {
  1634. if ( obj.value.toFormatString("%Y%m%d") == dt && ufn_getDateToStr(obj.value).length == 8 ) {
  1635. cal_to.setFocus();
  1636. }
  1637. }
  1638. */
  1639. }
  1640. /****************************************************************************************
  1641. * Components : cal_from
  1642. * Event : onkillfocus
  1643. * Argument : 01.obj : Object Event has occurred
  1644. * : 02.e : Event Object
  1645. * Description : Validation check
  1646. ****************************************************************************************/
  1647. function cal_from_onkillfocus(obj:Calendar, e:KillFocusEventInfo)
  1648. {
  1649. checkFromToDate( obj, false );
  1650. }
  1651. /****************************************************************************************
  1652. * Components : cal_from, cal_to
  1653. * Event : ontextchanged
  1654. * Argument : 01.obj : Object Event has occurred
  1655. * : 02.e : Event Object
  1656. * Description :
  1657. ****************************************************************************************/
  1658. function calendar_ontextchanged(obj:Calendar, e:TextChangedEventInfo)
  1659. {
  1660. isChanged = true;
  1661. }
  1662. ]]></Script>
  1663. </Form>
  1664. </FDL>