lunes, 19 de noviembre de 2012

QlikView Power Tools

Parece interesante, es una serie de herramientas para un Administrador de Qlikview Server, tirando a avanzado.
Si bien, aún no me puse a jugar lo dejo publicado para el que no las conoce y le puedan servir y para recordarme de alguna forma que tengo que revisarlas :P

QlikCommunity: PowerTools

miércoles, 14 de noviembre de 2012

Dimensiones Dinamicas

Buscando otra cosa, me encontré con este que me pareció un ejemplo copado de lo util que puede ser el uso de variables: Dynamic Dimensions in QlikView Chart

Resumiendo un poco, el tipo crea una variable donde arma una lista de campos por los que quiere evaluar un gráfico de barras, y con un botón que aumenta el indice va "recorriendo" las diferentes dimensiones que enumero en la variable. 
Con mucha menos complicación esto lo hubiera logrado usando grupos jerárquicos o ciclicos (Grupo Jerárquico "Dinámico"), pero bueno, fue su primer post sobre Qlikview, una solución bastante buena encontró sin conocer los grupos de dimensiones.

Tamaño de fuente de una dimensión y/o expresión 1

Bueno, definitivamente esto es algo que Qlikview tiene para mejorar. 
Si bien uno tiene la opción para editar el Formato de Texto en dimensiones y expresiones, no es posible editar el formato desde acá pues no existe código script para hacerlo (al menos hasta la versión 10 que es en la que lo probé), lo cual imposibilita colocar condiciones para mostrar los datos de una u otra manera.

Mucha gente recomienda probar con tags como <B> y <H1>, tal y como se haría en un entrañable HTML, pero nadie publico resultados positivos al respecto y personalmente no observe cambio alguno donde lo apliqué.

En caso de las expresiones de una tabla simple o pivotante podemos colocar condiciones de formato directamente en las propiedades del gráfico, solapa Efectos Visuales.


Para los gráficos que no tienen esta solapa, la recomendación para mostrar dimensiones y/o expresiones en un formato u otro es crear 2 expresiones iguales, con distinto formato y mostrarla u ocultarla según corresponda. Una forma de "mostrar y ocultar" la expresión seria colocando en la expresión: if(condicion,calculo,0)De esta manera, cuando no se cumpla la condición, la expresión no se visualizará por ser 0 su valor.

Un ejemplo de esto mismo:
Por claridad defino 3 expresiones, una que será condición de cual "color" mostrar y a la vez el calculo a realizar.



Análogo a Bajo esta la expresión Alto donde la condición es cond>1500. Y el resultado que obtenemos es un una barra que varia de color según si tenemos mas de 1500 horas por mes.



Un detalle, llegan a ver que la separación de las columnas varia? eso se debe a que siempre deja el espacio para las 3 barras, la solución es apilar las columnas. Para esto tampoco podríamos tener la expresión auxiliar cond, pues las barras flotarían ejeje. 

Con cond y apilando (dicho sea de paso, usando esta característica es como se puede graficar un gantt en Qlikview).
 Sin expresión auxiliar cond:

viernes, 9 de noviembre de 2012

Definir variables desde un archivo plano - Parte 2

Ampliando mi excel de variables me encontré con el siguiente caso.
Si una variable contiene una expresion que utiliza otra variable aún no declarada, la variable queda definida con un error interno:


En la imagen, se puede apreciar como al leer de la tabla V, en la variable l_val la expresión utiliza  la variable vMesActAñoAnt, pero al crear la variable vBASE_VENTAS queda un internal_error. Esto se debe a que intenta evaluar la variable vMesActAñoAnt que aún no existe.

La solucion fue un ligero cambio en el codigo:

FOR i = 1 TO NOOFROWS('V')
     l_var = PEEK('V.NOMBRE', $(i)-1, 'V');
     $(l_var) = '='&PEEK('V.EXPRESION', $(i)-1, 'V');
NEXT i;

De paso, también le concatené el igual adelante (=), para no tener que poner $(=variable) cada vez que la quiero usar en una expresión, de ese modo solo tengo que poner el nombre de la variable. Por ej. SUM(vBASE_VENTAS)

jueves, 8 de noviembre de 2012

Definir variables desde un archivo plano - Parte 1

Una de las utilidades mas lindas que tienen las variables en QV es que podemos guardar en ellas código y luego reutilizarlo donde queramos.

En mi caso necesito aplicar el siguiente calculo a 8 graficos distintos: 
(if(PASOS <13, acumY/PASOS, acumY/12)-(if( PASOS<13, (acumXY - ((acumX * acumY)/PASOS)) / (acumX2 - (pow(acumX,2)/PASOS)),(acumXY - ((acumX * acumY)/12)) / (acumX2 - (pow(acumX,2)/12)))*if(PASOS <13, acumX/PASOS, acumX/12)))+(if( PASOS<13,(acumXY - ((acumX * acumY)/PASOS)) / (acumX2 - (pow(acumX,2)/PASOS)),(acumXY - ((acumX * acumY)/12)) / (acumX2 - (pow(acumX,2)/12))))*MESAÑO

Esta claro que el día que tenga que cambiar este calculo voy a preferir cambiarlo en una sola vez en lugar de hacerlo 8 veces, así que voy a guardar el calculo en un excel y con eso defino una variable que reutilizare en los 8 gráficos.

El Excel: variables.xlsx

El código para generar cada una de las variables declaradas en el excel:

QUALIFY *;
V:
LOAD NOMBRE,
EXPRESION
FROM ..\..\..\CFG\variables.xlsx (ooxml, embedded labels, table is Hoja1);

UNQUALIFY*;

FOR i = 1 TO NOOFROWS('V')
l_var = PEEK('V.NOMBRE', $(i)-1, 'V');
l_val = PEEK('V.EXPRESION', $(i)-1, 'V');
SET $(l_var) = $(l_val);
NEXT i;

DROP Table V;

Ejemplo de utilización de la variable en un gráfico:  SUM($(=v_estimaicon_lineal))