Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a todos. Estoy haciendo un informe acerca del stock de los productos.
En una tabla muestro el listado de los productos y su respectivo stock actual con la siguiente expresión:
sum( { <fecha={"<=$(=max(date(fecha)))"}> } stock)
De ésta manera, el usuario debe seleccionar una fecha para saber qué stock tenía cada producto hasta la fecha seleccionada (fecha de corte). Ésto funciona bien.
Ahora lo que quiero armar es un resumen del stock por fecha. Es decir, en una tabla mostrar la fecha (del 1 al 31, o 30) y el total del stock a esa fecha. Ésto con la posibilidad de que el usuario pueda seleccionar el año y la fecha que quiere ver.
Con la misma expresión me devuelve el movimiento de stock de esas fechas aisladas no más, sin acumularse.
Hola,
Esta función muestra el Stock independientemente de la fecha que selecciones o el orden de la tabla:
sum({<fecha=>} Aggr({<fecha=>} rangeSum(above(total sum({<fecha=>}valor), 0, RowNo(total))), (fecha, (numeric, ascending))))
Faltaría hacerla independiente del mes y el año. Para eso en el scrip de carga añade
month(fecha) as mes,
year(fecha) as año,
Luego sustituye en la formula donde pone {<fecha=>} por {<fecha=, mes=, año=>}
Creo que así funcionará, yo no puedo cambiar el scrip porque luego no cargo los datos.
Hola, el problema puede ser que en la nueva tabla has añadido la dimensión fecha entonces te calcula cada fila solo para esa fecha.
Hola Julio. Si, eso es lo que está haciendo. Lo que necesito es que me muestre el stock acumulado a la fecha de esa dimensión. Por ejemplo, el stock al 05/09 en una fila, el stock al 07/09 en otra, etc. ¿Cómo lo puedo lograr?
¿No sería una suma acumulada lo que buscas? Sin un ejemplo es deficil pensar una fórmula.
Julio disculpa por no ser claro. Voy a tratar de explicarlo mejor con un ejemplo con un .qvf que adjunto. Gracias.
Hola,
Esta función muestra el Stock independientemente de la fecha que selecciones o el orden de la tabla:
sum({<fecha=>} Aggr({<fecha=>} rangeSum(above(total sum({<fecha=>}valor), 0, RowNo(total))), (fecha, (numeric, ascending))))
Faltaría hacerla independiente del mes y el año. Para eso en el scrip de carga añade
month(fecha) as mes,
year(fecha) as año,
Luego sustituye en la formula donde pone {<fecha=>} por {<fecha=, mes=, año=>}
Creo que así funcionará, yo no puedo cambiar el scrip porque luego no cargo los datos.
Hola de nuevo Julio. Muchas gracias! El cálculo es el que buscaba!. Ahora solo tengo un pequeño inconveniente. La tabla simple muestra siempre todos los registros, todas las fechas. Lo que necesito es mostrar un solo mes, es decir, que cuando el usuario elija por ejemplo el mes sep-2018 la tabla simple muestre el stock acumulado del 01/09, 02/09, 03/09...30/09 y no todas las fechas como muestra ahora. Eso se puede hacer?
¿Has probado la segunda parte del mensaje que te pongo? Si te fijas cuando seleccionas por fecha si funciona. Deja de funcionar si seleccionas por año o mes. Prueba a poner en la selección de Fecha >31/08/2018<01/10/2018 y darle enter. Así tienes el reultado que quieres.
Para hacerlo funcionar más facil creo que tienes que crear las dimensiones mes y año el el scrip de carga de datos. He simplificado un poco la fórmula:
sum(Aggr(rangeSum(above(sum({<fecha=>}valor), 0, RowNo())), (fecha, (numeric, ascending))))
Si creas año y mes en el scrip:
sum(Aggr(rangeSum(above(sum({<fecha=, año=, mes=>}valor), 0, RowNo())), (fecha, (numeric, ascending))))
Probé de las dos maneras, pero me sigue mostrando todas las fechas. Incluso si cambio la dimensión fecha por mes también me trae todos los meses aunque seleccione solo uno, o el rango de fechas >31/08/2018<01/10/2018
Si puedes sube el ejemplo con la dimensión mes y año creados en el scrip y hago yo unas pruebas a ver si puedo ayudarte. Yo no lo puedo hacer porque borraría los datos.