// Los script de calendario generan automáticamente la estructura siguiente basado en las variables de calendario: // Campo Ejemplo // Fecha 41136 // Año, 2013 // Mes, Ene (tiene valor dual a 1) // Día, 23 // [Día Semana] mar (según la variable 'DayNames' se la pestaña Main) // Periodo (Abril 2013) // Q (Q1, Q4) "Trimestre" // S (S1, S2) "Semestres" // [Mes#] (34)Consecutivo para todos los meses desde el inicio del calendario; //------------------------- // El calendario fiscal, produce, adicionalmente, los siguientes campos // // Q_Fiscal (Q1, Q4) // S_Fiscal (S1, S2) // [Año Fiscal] (F13, F12) // [Mes Fiscal] 1 para abril (según la variable de incio 'vUltimoMesAñoFiscal') LET vFechaRecarga = Date(MakeDate(2012, 1, 1), 'YYYY-MM-DD'); SET vUltimoMesAñoFiscal = 3; // Mes en el que acaba el año fiscal //$(Include=$(vRutaIncludeGeneral)Calendario.txt); Calendario: LOAD 'F' & (Year(YearStart(Fecha, 0, $(vUltimoMesAñoFiscal) + 1)) - 2000 + 1) as [Año Fiscal], If(Mes > $(vUltimoMesAñoFiscal), Mes - $(vUltimoMesAñoFiscal), Mes + (12 - $(vUltimoMesAñoFiscal))) as [Mes Fiscal], Date(MakeDate(Año, Mes), 'YYYYMM') as [Año Mes], 'B' & Ceil(Mes/2) as Bimestre, 'Q' & Ceil(Mes/3) as Trimestre, 'S' & Ceil(Mes/6) as Semestre, // (Year(Fecha) - 1) * 12 + Num(Month(Fecha)) as [Mes Consecutivo], (Año - Year($(vFechaRecarga))) * 12 + Num(Mes) as [Mes Consecutivo], If(Mes > 3, -3, 9) + Mes as OrdenMes, *; LOAD Fecha, Year(Fecha) as Año, Month(Fecha) as Mes, Day(Fecha) as Día, WeekDay(Fecha) as [Día Semana], MonthName(Fecha) as [Mes Nombre]; LOAD Date('$(vFechaRecarga)' + (IterNo()-1)) as Fecha AutoGenerate 1 While Date('$(vFechaRecarga)' + (IterNo()-1)) <= Date(Today()); Calendario_Tmp: LOAD Num(Min(DayStart(Fecha))) as MinCreationDate, Num(Max(DayStart(Fecha))) as MaxCreationDate Resident Calendario; LET vStartDate = Date(Peek('MinCreationDate', 0, 'Calendario_Tmp')); LET vEndDate = Date(Peek('MaxCreationDate', 0, 'Calendario_Tmp')); DROP Table Calendario_Tmp; LET vMaxDate = '= If(Max(Fecha) > Num(Today()), Date(Today()), Max(Fecha))'; LET vMaxDay = '= Day(vMaxDate)'; LET vMaxMonth = '= Month(vMaxDate)'; LET vMaxYear = '= Year(vMaxDate)'; LET vPriorMonth = '= Month(AddMonths(vMaxDate,-1))'; LET vPriorMonthYear = '= Year(AddMonths(vMaxDate,-1))'; LET vPriorYear = '= vMaxYear-1'; LET vPriorYearDate = '= Date(AddYears(vMaxDate,-1),' & Chr(39) & 'DD MMM YYYY' & Chr(39) & ')'; Let vTwelveMonthsBack = '= Month(AddMonths(vMaxDate,-12))'; LET vSixMonthsBack = '= Month(AddMonths(vMaxDate,-6))'; LET vFiveMonthsBack = '= Month(AddMonths(vMaxDate,-5))'; LET vFourMonthsBack = '= Month(AddMonths(vMaxDate,-4))'; LET vThreeMonthsBack = '= Month(AddMonths(vMaxDate,-3))'; LET vTwoMonthsBack = '= Month(AddMonths(vMaxDate,-2))'; EXIT Script;