cp_monthCal.xfdl 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\default_typedef.xml"/>
  4. <Form id="cp_monthCal" classname="cp_monthCal" inheritanceid="" position="absolute 0 0 75 20" titletext="monthCalendar" onload="cp_monthCal_onload" scrollbars="none">
  5. <Layouts>
  6. <Layout>
  7. <Calendar id="cal_Month" taborder="0" autoselect="true" type="spin" dateformat="yyyy.MM" editformat="yyyy.MM" onchanged="cal_Month_onchanged" value="null" onkillfocus="cal_Month_onkillfocus" onkeydown="fn_onkeydown" anchor="left top right" position="absolute 0 0 75 20" positiontype="position"/>
  8. <Div id="div_Base" taborder="1" tabstop="false" style="background:white; " position2="absolute r:1 w:18 t:1 h:18" positiontype="position2"/>
  9. <Button id="btn_Cal" taborder="1" onclick="btn_Cal_onclick" class="btn_month" anchor="top right" position="absolute 55 0 75 20" positiontype="position"/>
  10. </Layout>
  11. </Layouts>
  12. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  13. * System Name : KMTC
  14. * Job Name : Composite
  15. * File Name : cp_monthCal.xfdl
  16. * Creator : TOBESOFT
  17. * Make Date : 2013.01.18
  18. *
  19. * Description : Calendar Month Select Composite
  20. *---------------------------------------------------------------------------------------
  21. * Modify Date Modifier Modify Description
  22. *---------------------------------------------------------------------------------------
  23. * 2013.01.18 TOBESOFT Initial Make Program
  24. *
  25. *---------------------------------------------------------------------------------------
  26. ****************************************************************************************/
  27. //=======================================================================================
  28. // Common Lib Include
  29. //---------------------------------------------------------------------------------------
  30. //include "Lib::xCommon.xjs";
  31. //=======================================================================================
  32. // Global Form Variable
  33. //---------------------------------------------------------------------------------------
  34. var iv_sMsRtn;
  35. var iv_event;
  36. var iv_sDate;
  37. var iv_bNotNull = true;
  38. /****************************************************************************************
  39. * Description : Form Initialization
  40. * Argument : obj : Object Event has occurred
  41. * : e : Event Object
  42. * return :
  43. ****************************************************************************************/
  44. function cp_monthCal_onload(obj:Form, e:LoadEventInfo)
  45. {
  46. var objDate = new Date();
  47. iv_sDate = objDate.toFormatString("%Y%m%d");
  48. cal_Month.value = iv_sDate.substring(0,6);
  49. }
  50. //=======================================================================================
  51. // Event
  52. //---------------------------------------------------------------------------------------
  53. function fn_onkeydown(obj, e)
  54. {
  55. if(e.keycode == 13)
  56. {
  57. var sCompNm = this.name;
  58. if(sCompNm.indexOf("_S") > -1)
  59. {
  60. ufn_compositeEvent("ufn_search","");
  61. }
  62. }
  63. }
  64. /****************************************************************************************
  65. * Components : Button
  66. * Event : onclick
  67. * Argument : 01.obj : Object Event has occurred
  68. * : 02.e : Event Object
  69. * Description : Selected month button
  70. ****************************************************************************************/
  71. function btn_Cal_onclick(obj:Button, e:ClickEventInfo)
  72. {
  73. if(cal_Month.text == undefined){
  74. if(!utlf_isNull(cal_Month.value)){
  75. cal_Month.value = iv_sDate.substring(0,6);
  76. }
  77. }
  78. var strDate = ufn_getDateToStr(cal_Month.value);
  79. if(utlf_isNull(strDate)) strDate = utlf_getCurrentDate();
  80. var aRtn = ufn_Calendar(obj, "M", strDate);
  81. //trace(strDate+"::"+aRtn);
  82. if(aRtn <> null)
  83. {
  84. cal_Month.value = aRtn[0];
  85. if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,this.name);
  86. }
  87. }
  88. /****************************************************************************************
  89. * Components : Calendar
  90. * Event : onchange
  91. * Argument : 01.obj : Object Event has occurred
  92. * : 02.e : Event Object
  93. * Description : When the month changes
  94. ****************************************************************************************/
  95. function cal_Month_onchanged(obj:Calendar, e:ChangeEventInfo)
  96. {
  97. if(!ufn_isNull(iv_event)) ufn_compositeEvent(iv_event,this.name);
  98. }
  99. //=======================================================================================
  100. // User Function
  101. //---------------------------------------------------------------------------------------
  102. /****************************************************************************************
  103. * Description : 컴포지트 이벤트 호출 함수
  104. * Argument : sEventId - 호출할 이벤트 ID
  105. * sCompNm - 컴포지트명
  106. * @return N / A
  107. ****************************************************************************************/
  108. function ufn_compositeEvent(sEventId,sCompNm)
  109. {
  110. var lv_oFrame = this.getOwnerFrame();
  111. var lv_bInhForm = ufn_isNull(lv_oFrame.bInhForm) ? false : lv_oFrame.bInhForm;
  112. var lv_bMdiForm = ufn_isNull(lv_oFrame.bMdiForm) ? false : lv_oFrame.bMdiForm;
  113. var lv_bMdiPopForm = ufn_isNull(lv_oFrame.bMdiPopForm) ? false : lv_oFrame.bMdiPopForm;
  114. try{
  115. if(lv_bInhForm)
  116. {
  117. if(lv_bMdiForm == true || lv_bMdiPopForm == true)
  118. {
  119. if(ufn_isNull(sCompNm))
  120. {
  121. eval("this.getOwnerFrame().form.div_Layout.div_Work."+sEventId+"()");
  122. }
  123. else
  124. {
  125. eval("this.getOwnerFrame().form.div_Layout.div_Work."+sEventId+"('"+sCompNm+"')");
  126. }
  127. }
  128. else
  129. {
  130. if(ufn_isNull(sCompNm))
  131. {
  132. eval("this.getOwnerFrame().form."+sEventId+"()");
  133. }
  134. else
  135. { ;
  136. eval("this.getOwnerFrame().form."+sEventId+"('"+sCompNm+"')");
  137. }
  138. }
  139. }
  140. else
  141. {
  142. if(ufn_isNull(sCompNm))
  143. {
  144. eval(sEventId+"()");
  145. }
  146. else
  147. {
  148. eval(sEventId+"('"+sCompNm+"')");
  149. }
  150. }
  151. }catch(err){}
  152. }
  153. /****************************************************************************************
  154. * Description : Converted to a String Date Type
  155. * Argument : date date Type
  156. * return : yyyyMMdd
  157. ****************************************************************************************/
  158. function ufn_getDateToStr(date)
  159. {
  160. if(ufn_isNull(date)) return;
  161. var strYear = date.getYear().toString();
  162. var sMonth = (date.getMonth()+1).toString();
  163. var sDate = date.getDate().toString();
  164. if(strYear.length==2)
  165. strYear = '19'+strYear;
  166. else if(strYear.length==1)
  167. strYear = '190'+strYear;
  168. if(sMonth.length==1)
  169. sMonth = '0'+sMonth;
  170. if(sDate.length==1)
  171. sDate = '0'+sDate;
  172. return strYear+sMonth+sDate;
  173. }
  174. /****************************************************************************************
  175. * Description : 입력값이 null 또는 wihte space로만 이루어져 있는지 확인 하는 함수
  176. * Argument : value 입력값
  177. * return : boolean. null(혹은 white space) 여부
  178. ****************************************************************************************/
  179. function ufn_isNull(sValue)
  180. {
  181. if (new String(sValue).valueOf() == "undefined") return true;
  182. if (sValue == null) return true;
  183. var lv_sChkStr = new String(sValue);
  184. if (lv_sChkStr == null) return true;
  185. if (lv_sChkStr.toString().length == 0 ) return true;
  186. return false;
  187. }
  188. /****************************************************************************************
  189. * Description : Check the validity date.
  190. * Argument : sDate yyyyMM or yyyyMMdd, ex) "201205" or "20120506"
  191. * return : boolean
  192. ****************************************************************************************/
  193. function ufn_isDate(sDate)
  194. {
  195. var retVal;
  196. switch(sDate.length)
  197. {
  198. case 6://yyyyMM
  199. retVal = ufn_isYM(sDate);
  200. break;
  201. case 8://yyyyMMdd
  202. retVal = ufn_isYMD(sDate);
  203. break;
  204. default:
  205. retVal = false;
  206. break;
  207. }
  208. return retVal;
  209. }
  210. /****************************************************************************************
  211. * Description : Check the date format
  212. * Argument : sDate yyyyMMdd, ex) "20120506"
  213. * return : boolean
  214. ****************************************************************************************/
  215. function ufn_isYMD(sDate)
  216. {
  217. if (sDate.length != 8 || !isNumeric(sDate)) {
  218. return false;
  219. }
  220. var strYM = String(sDate).substr(0,6); // yyyyMM
  221. if (!ufn_isYM(strYM)) {
  222. return false;
  223. }
  224. var nDay = toNumber(String(sDate).substr(6,2)); // dd
  225. var nLastDay = toNumber(ufn_getLastDay(strYM));
  226. if (nDay < 1 || nDay > nLastDay) {
  227. return false;
  228. }
  229. return true;
  230. }
  231. /****************************************************************************************
  232. * Description : Check the date format
  233. * Argument : sDate yyyyMM, ex) "201205"
  234. * return : boolean
  235. ****************************************************************************************/
  236. function ufn_isYM(sDate)
  237. {
  238. if (sDate.length != 6 || !isNumeric(sDate)) {
  239. return false;
  240. }
  241. var nYear = toNumber(String(sDate).substr(0,4));
  242. var nMonth = toNumber(String(sDate).substr(4,2));
  243. if((nMonth < 1) || (nMonth > 12)) {
  244. return false;
  245. }
  246. return true;
  247. }
  248. /****************************************************************************************
  249. * Description : Returns the last date
  250. * Argument : sDate yyyyMM, ex) "201205"
  251. * return : Last date(dd)
  252. ****************************************************************************************/
  253. function ufn_getLastDay(sDate)
  254. {
  255. var lv_sRetVal = "";
  256. if (sDate == null) {
  257. var date = (new Date()).addMonth(1);
  258. }
  259. else {
  260. var date = new Date(parseInt(String(sDate).substr(0,4)),parseInt(String(sDate).substr(4,2)),1);
  261. }
  262. date = (new Date(date)).addDate((new Date(date)).getDate()*-1);
  263. lv_sRetVal = (new Date(date)).getFullYear()
  264. + (((new Date(date)).getMonth() + 1) + "").padLeft(2, '0')
  265. + ((new Date(date)).getDate() + "").padLeft(2, '0');
  266. return (lv_sRetVal);
  267. }
  268. /****************************************************************************************
  269. * Description : User Composite Get Data Method
  270. * Argument : none
  271. * return : none
  272. ****************************************************************************************/
  273. function getData()
  274. {
  275. if(utlf_isNull(cal_Month.value)) return "";
  276. iv_sMsRtn = ufn_getDateToStr(cal_Month.value);
  277. iv_sMsRtn = iv_sMsRtn.substr(0,6);
  278. return iv_sMsRtn;
  279. }
  280. /****************************************************************************************
  281. * Description : User Composite Set Data Method
  282. * Argument : none
  283. * return : none
  284. ****************************************************************************************/
  285. function setData(sDay)
  286. {
  287. if(utlf_isNull(sDay)) cal_Month.value = "";
  288. if(!ufn_isDate(sDay)) return;
  289. cal_Month.value = sDay;
  290. }
  291. /****************************************************************************************
  292. * Description : User Composite Set Event Method
  293. * Argument : none
  294. * return : none
  295. ****************************************************************************************/
  296. function setCallEvent(sEvent)
  297. {
  298. iv_event = sEvent;
  299. }
  300. /****************************************************************************************
  301. * Description : User composite set required
  302. * Argument : none
  303. * return : none
  304. ****************************************************************************************/
  305. function setRequestment(bReq)
  306. {
  307. if(bReq)
  308. {
  309. cal_Month.class = "input_essential";
  310. }
  311. else
  312. {
  313. cal_Month.class = "";
  314. }
  315. }
  316. function setEnbale(bReq)
  317. {
  318. cal_Month.enable = bReq;
  319. btn_Cal.enable = bReq;
  320. }
  321. function setIsNull()
  322. {
  323. iv_bNotNull = false;
  324. }
  325. /****************************************************************************************
  326. * Description : Calendar option select
  327. * Argument : 1.oBtn : Button object
  328. * : 2.sGb : Date type
  329. * : 3.sDate : Selected date
  330. * : 4.sMenuId : Form ID
  331. * : 5.sType :
  332. * return : Selected date
  333. ****************************************************************************************/
  334. var iv_gsCalendarDateFg;
  335. var iv_gsCalendarValue;
  336. var iv_gsCalendarNaviFq = true;
  337. function ufn_Calendar(oBtn, sGb, vDate, sMenuId, sType)
  338. {
  339. if(sMenuId == null) sMenuId = "";
  340. if(sType == null) sType = "";
  341. var sUrl;
  342. var sName;
  343. var objPdvCal = new PopupDiv();
  344. if(sGb == "M")
  345. {
  346. sName = "PopDiv_CalendarM";
  347. sUrl = "COMPOSITE::Comm_monthCalendar.xfdl";
  348. objPdvCal.init(sName, 0, 0, 205, 191);
  349. objPdvCal.text = sName;
  350. }
  351. // Add Object to Parent Form
  352. this.addChild(sName, objPdvCal);
  353. objPdvCal.style.border = "none";
  354. objPdvCal.style.background = "transparent";
  355. objPdvCal.style.opacity = 100;
  356. objPdvCal.url = sUrl;
  357. // Show Object
  358. objPdvCal.show();
  359. if((sGb == "W") || (sGb == "D")) objPdvCal.msDataFg = sGb;
  360. objPdvCal.mvArgValue = vDate;
  361. objPdvCal.fn_CrCal(vDate);
  362. var nPosX = system.clientToScreenX(cal_Month, cal_Month.position.left);
  363. var nPosY = system.clientToScreenY(cal_Month, cal_Month.position.height);
  364. var rtn = objPdvCal.trackPopup(nPosX,nPosY);
  365. this.removeChild(sName);
  366. objPdvCal.destroy();
  367. return rtn;
  368. }
  369. function cal_Month_onkillfocus(obj:Calendar, e:KillFocusEventInfo)
  370. {
  371. if(iv_bNotNull)
  372. {
  373. if(ufn_isNull(obj.value)) obj.setFocus();
  374. }
  375. }
  376. ]]></Script>
  377. </Form>
  378. </FDL>