Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
igutierrezp
Contributor II
Contributor II

Calcular dias ingresados por usuario en recuadro para mostrar clientes vencidos

Estimados necesito de vuestros conocimientos.

Estoy en el desarrollo de un modelo el cual muestra los clientes que tienen deudas vencidas con la fecha desde que debían pagar.

Lo que necesito es crear un cuadro de entrada que permita ingresar una cantidad X de días y el gráfico muestre todos los clientes con deudas vencidas desde esa cantidad de días hacia adelante.

Lo que entiendo es que debo crear una variable (en el panel de variables) que rescate el numero que se ingresará y en el script debo crear un campo que calcule las deudas vencidas que seria today()+variable as ClientesVencidosDesdeDiasIngresados

 

Favor ayudenme si estoy en lo correcto y sugerencias serán bien recibidas.

Desde ya, muchas gracias.

4 Replies
jmmayoral3
Creator
Creator

Hola.

Yo lo enfocaría de esta manera. 

1.- Cargaría todas las deudas sin importar la fecha de vencimiento

2.- Crearía 2 variables. vL.Dias para los días que quiera meter el usuario y vL.FechaDesde que calcularía la fecha desde la que tengo que ver las deudas vencidas. Esta tendría la fórmula Today()-vL.Dias

3.- Un cuadro de entrada para capturar el valor de vL.Dias

3.- A la hora de hacer los gráficos , en las expresiones metería un set analysis del tipo {<FechaVencimiento={"<$(vL.FechaDesde)"}>} (ver manual de set analysis en español porque no recuerdo exactamente la sintaxis. puedes encontrarlo en la community)

 

Con eso, el usuario podría ver las facturas vencidas dinámicamente sólo con cambiar el nº de días en el campo de entrada y sin tener que volver a recargar.

igutierrezp
Contributor II
Contributor II
Author

Hola, muchas gracias por tu ayuda.

Te quería comentar lo siguiente; el modelo fue solicitado con rangos de meses que ya esta todo hecho. por lo que pienso que si le doy en el set analysis podría entorpecer los calculo o como lo intenté recién, no me muestre datos.

Entonces lo que necesitaria es un cuadro de entrada y esa variable calcularla, pero nose como. y un boton que al darle clic calcule y muestre los clientes con deudas desde today()+vVariableDiasIngresadosPorUsuario algo asi creo que me serviria mucho. si me puedes ayudar. muchas gracias.

Captura.PNG

jmmayoral3
Creator
Creator

Hola.
no termino de entender bien el problema.
A la vista de la imagen que has enviado no sería necesario calcular nada en Set Analysis ni poner un campo de entrada para que el usuario introduzca el nº de días.
Entiendo que basta con que el usuario seleccione a la izquierda un rango de deuda para que se filtren las facturas vencidas ¿no?

 Si es así, lo mejor es que crees un nuevo campo en cada registro que contenga el rango a seleccionar. Luego basta con que uses ese campo en un cuadro de lista para que todo funcione perfectamente.

Esto debes hacerlo en el script y debería ser algo parecido a esto:

LEFT JOIN(FACTURAS)  //FACTURAS es tu tabla donde tienes el Nº de factura y la fecha de vencimiento
LOAD *,
             Pick(ALT(
                               IF(Interval(today()-FechaVencimiento,'D') <30, 1),
                               IF(Interval(today()-FechaVencimiento,'D') <60, 2),
                               IF(Interval(today()-FechaVencimiento,'D') <90, 3),
                               IF(Interval(today()-FechaVencimiento,'D') <180, 4),
                               IF(Interval(today()-FechaVencimiento,'D') <365, 5),
                               IF(Interval(today()-FechaVencimiento,'D') <730, 6),
                               IF(Interval(today()-FechaVencimiento,'D') <1095, 7),
                               8),
             '0 a 1', '1 a 2', '2 a 3', '3 a 6', '8 a 12', '12 a 24', '24 a 36',' más 36 meses')&' meses' AS RangoDeuda
RESIDENT FACTURAS;

Utilizo ALT() por evitarme los IF anidados, que siempre son más engorrosos, pero como ALT() sólo devuelve valores numéricos y no puede devolver directamente el nombre del rango, tengo que recoger su valor en un PICK() .

igutierrezp
Contributor II
Contributor II
Author

Hola muchas gracias por responder.

Al final por temas de tiempo lo hice un poco mas arcaico pero funciona

calculo de dias1.PNG

calculo de dias2.PNG

Ésto me funciona perfecto.

 

Muchas gracias por tu ayuda.

Saludos.