Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Calendario

Buen Día  Compañeros

Con el fina de apoyar a  los aspirantes a usar Qlikview hago esta publicación rápida para dejar un pequeño ejemplo de como realizar un calendario partiendo de un campo tipo Fecha que tengamos en alguna de nuestras tablas.

Primero que nada tendremos que definir nuestro rango de fechas Inicial y Final para esto tomaremos nuestro campo tipo fecha de alguna tabla que ya tengamos previamente cargada en este caso mi tabla sera TablaDummy y el campo fecha sera FechaDummy.

Crearemos tres variables  las cuales corresponderán al primer día  del campo FechaDummy , al ultimo día del campo FechaDummy y una variable designada para la fecha actual.


LET varMinDate = NUM(Peek('FechaDummy ',0,'TablaDummy')); //Fecha Inical

LET varMaxDate = NUM(Peek('FechaDummy ',-1,'TablaDummy')); //FechaFinal

LET varToday = Num(today()); //Fecha Actual

LET : Permite evaluar funciones de lado derecho al signo de "=".

SET : Asigna el numero o texto que tenga de lado derecho al signo "=".

Una vez creadas la variables pasaremos a darles uso en una tabla temporal que nos dará pie a la creación de los diferentes componentes básicos para un calendario.

DateField:

LOAD

  $(varMinDate) + RowNo()-1 AS Num,

  date($(varMinDate) + rowno() -1) AS TempDate,

  rowno()

  AUTOGENERATE

  $(varMaxDate) - $(varMinDate) +1;

Con esta sentencia anterior nosotros obtenemos el Inicio y Fin de nuestro campo FechaDummy. Ahora con esta información podemos empezar a crear las diferentes variantes básicas que usaremos en nuestros documentos QVW.

Crearemos una nueva tabla con el nombre de CalendarioMaestro.

CalendarioMaestro:

LOAD

  TempDate AS FechaDummy ,

  Week(TempDate) AS Week,

  Day(TempDate) AS Day,

  Year(TempDate) AS Year,

  Month(TempDate) AS Month,

  WeekDay(TempDate) AS WeekDay,

  'Q' & Ceil(Month(TempDate)/3) AS Quarter,

  date(monthstart(TempDate),'MMM-YYYY') AS WeekYeark

Resident DateField

Order By TempDate ASC;

DROP TABLE DateField;

En la sentencia anterior nota que se borro la tabla temporal esto con el fin de no tener información de mas en nuestro modelo de datos.

Nota:El campo de TempDate en el CalendarioMaestro debe tener el mismo nombre que el campo FechaDummy para poder hacer join con tu tabla.

Espero esta pequeña reseña sea de ayuda, cualquier duda comentario y/o corrección o mejora no dudes en hacérmelo saber.

-Ramz

3 Replies
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Raúl:

Buen trabajo.

Hace unos días sorrakis01 publicó otra entrada como la tuya.

Saludos

Joaquín

Not applicable
Author

Hola buenas tardes.

Y como sería el master calendario para 2 tablas.

Por ejemplo fecha_vencimiento clientes y fecha vencimiento proveedores?.

Saludos

_k0zm0_2
Contributor III
Contributor III

Ahí tendrías 2 opciones:

- Crear un calendario para cada campo fecha, no muy práctico.

- Usar el Canonical Calendar.

Personalmente he usado el Canonical y sin problemas