Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
omarlq20
Contributor II
Contributor II

diseño de tabla

Hola,

Espero que me puedan ayudar ha realizar el siguiente diseño o me puedas guiar para realizarlo, el diseño que tengo que realizar es importante porque es solicitado por una entidad publica y debe tener el mismo formato que ellos solicitan.

Espero su apoyo, gracias de ante mano

5 Replies
soniacoprosa
Creator
Creator

Hola Omar, tengo una tabla de aspecto similar en un proyecto. Intentaré explicarte cómo hice para darle ese aspecto pero aplicándolo a tus tablas. Tus tablas son muy similares entre sí. Si te fijas en ellas  hay 3 grupos de columnas iguales con distinta cabecera (entradas, salidas y saldo final) pero con las mismas columnas y una serie de columnas antes.

Vas a necesitar cargar una tabla en el script con la estructura de las cabeceras de las columnas que se repiten:

Qualify *;
EpigrafesSupInformes:
LOAD * INLINE [
    CODIGO, DESCRIPCION
    1, ENTRADAS
    2, SALIDAS
    3, SALDO FINAL
];

Unqualify *;

Yo utilizaría una tabla pivotante. Como dimensiones pondría las columnas que no se repiten, es decir
(para la tabla "F 13.1 Det.Inv.Per.Val. (2)", la otra sería similar) sería algo así:

- Fecha
- Tipo Tabla
- Serie
- Número
- Tipo operación
- EpigrafesSupInformes.DESCRIPCION


y como expresiones pondrías las columnas que se repiten:

- Cantidad
- Costo Unitario
- Costo Total

, de forma que en cada una de éstas expresiones, mediante un "if" tendrás que ir dándole a cada columna el valor que le corresponda en función de si es una "entrada", una "salida" o el "saldo final". Es decir, por ej. para "Cantidad" sería algo así como:

if (EpigrafesSupInformes.CODIGO = 1
//Cantidad de Entradas
, rangesum(
//nota: aquí pondrías de donde sacas el valor correspondiente
   )
 
, if (EpigrafesSupInformes.CODIGO = 2
//Cantidad de Salidas
, rangesum(
//nota: aquí pondrías de donde sacas el valor correspondiente
   )
//Cantidad de Saldo Final  
, rangesum(
//nota: aquí pondrías de donde sacas el valor correspondiente
   )
)
)


Y lo mismo con el resto de expresiones.
Espero no haberte liado demasiado y que te sirva.

Un saludo,

omarlq20
Contributor II
Contributor II
Author

El codigo que me has dado lo he probado se asemeja mucho a lo que quiero logar, lo unico que si podria decir es que no ordena correctamente los campos, porque yo quiero que salga en orden es decir: Entrada, Salida, Saldo Final, pero segun el diseño sale Entrada, Saldo Final, y Salida, como podria ordenarlo, agradeceria mucho si me puedes ayudar con esa parte.

soniacoprosa
Creator
Creator

Hola Omar,

En la pestaña “Ordenar” del gráfico te aparecerán las dimensiones. En mi tabla me fue suficiente con ordenar la dimensión EpigrafesSupInformes.DESCRIPCION por orden alfabético (A-Z). Prueba a jugar con tus datos a poner lo mismo o sino por orden de carga. Otra opción sería marcar que te ordene por “Expresión” y poner el otro campo de la tabla Inline (CODIGO).

Espero que te sirva.

omarlq20
Contributor II
Contributor II
Author

Sonia,

Me ha ayudado mucho lo que me has enviado, en cuanto al formato, pero ahora quisiera que me ayudes una vez más, lo que quiero es poder sumar el valor de la fila 1 con el valor que me sale en la fila 2, y asi sucesivamente siempre para tener un acumulado.

soniacoprosa
Creator
Creator

Me alegro de que te haya servido.

Para totalizar por filas tienes que ir a la pestaña “Presentación” en las Propiedades del gráfico, ahí verás las dimensiones y expresiones. Hay una casilla “Mostrar sumas parciales” que deberás marcar para que totalice por una o varias de las dimensiones (según lo que quieras que te salga). Las expresiones tienen que tener sum( ) para que totalice el valor por columnas. Te pongo un ejemplo de una de mis expresiones:

sum({$< LineaProyecto.AÑOMESCIERRE = {$(#=((Max(Total LineaProyecto.AÑOMESCIERRE))))}>} ObraInformeP.EjecucionMaterialACTUAL)

Un saludo,