5. Overall satisfaction with IiP
5.5 New Choices
Esta funcionalidad sólo funcionará cuando el programa se ejecute en Forms 12c.
En el programa que utilice esta funcionalidad hay que incluir la librería: pklibgraf.pll, y en los bloques hay que añadir campos con la clase de propiedad CLASE_GRAFICO
Para representar el gráfico es necesario partir de una SQL que obtenga los datos a mostrar. La sql deberá de devolver los registros lo más agrupados posibles, es decir, si queremos las ventas por clientes, será: SELECT cliente, SUM(importe) importe FROM tabla GROUP BY cliente. En vez de SELECT cliente, importe FROM tabla.
Inicializar Gráfico.
El primer paso para utilizar un campo de gráfico es inicializarlo. Esta inicialización se hará llamando a la función: pkgraficos.inicializar('BLOQUE.CAMPO_GRAFICO'). Esta función devolverá un identificador numérico que deberá ser almacenado en una variable, ya que ese valor identificará el gráfico para poder aplicarle propiedades. Ejemplo: :parameter.id_grafico := pkgraficos.inicializar('B1.GRAFICO');
Propiedades a nivel Gráfico.
Para modificar propiedades a nivel de gráfico se utilizará el procedimiento pkgraficos.set_propiedad(<id_grafico>, <propiedad>, <valor>).
• <id_grafico>: Identificador del gráfico obtenido por pkgraficos.inicializar. • <propiedad>: Código de la propiedad a modificar del gráfico.
• DEVOLVER_VALOR_SELECCIONADO: Cuando el usuario hace click sobre algún elemento del gráfico, podemos indicar que es lo que queremos que nos devuelva (Valores posibles para <valor>):
o 'ALL': Todo
o 'ROWLABEL': Etiqueta de fila.
o 'COLUMNLABEL': Etiqueta de columna. o 'CELLVALUE': Valor representado. o 'PRIMARY_KEY': Código asignado.
REGISTRAR_TRIGGER: Cuando interesa recoger el valor seleccionado por el usuario hay que registrar un TRIGGER que deberá existir en el programa (trigger de usuario), cuando el usuario pulsa sobre algún componente del gráfico se disparará ese trigger, en el cual se deberá recoger el valor con la función pkgraficos.get_valor_devuelto(). En <valor> de la propiedad se indicará el nombre del trigger. El valor devuelve depende de lo que se indique en DEVOLVER_VALOR_SELECCIONADO. Si no se ha indicado la propiedad DEVOLVER_VALOR_SELECCIONADO el registro del trigger será ignorado. También hay que añadir en el programa en el disparador WHEN-CUSTOM-ITEM-EVENT la siguiente línea: PKGRAFICOS.WHEN_CUSTOM_ITEM_EVENT;
• TIPO_GRAFICO: Tipo de gráfico a representar, en <valor> se puede indicar uno de los siguientes tipos: HORIZONTAL_BAR, HORIZONTAL_BAR_2Y, VERTICAL_BAR, VERTICAL_BAR_2Y, VERTICAL_STACKED_BAR, HORIZONTAL_STACKED_BAR, VERTICAL_PERCENT_BAR, HORIZONTAL_PERCENT_BAR, VERTICAL_LINE_GRAPH, HORIZONTAL_LINE_GRAPH, RING_BAR, VERTICAL_STACKED_LINE_GRAPH, HORIZONTAL_STACKED_LINE_GRAPH, VERTICAL_AREA_GRAPH, VERTICAL_PERCENT_AREA_GRAPH, VERTICAL_STACKED_AREA_GRAPH, PIE_GRAPH, PIE_BAR_GRAPH, MULTI_PIE_GRAPH' COMBINATION_GRAPH, 3D_BAR_GRAPH, 3D_AREA_GRAPH
• TEXTO_TITULO: Título que se mostrará en la cabecera del gráfico. En <valor> se indicará el texto.
• TOOLTIPS: Se indicará el comportamiento deseado cuando el usuario pase con el ratón sobre alguna parte del gráfico. En <valor> se pueden indicar los siguientes valores:
o 'NONE': No se muestra nada.
o 'ALL': Mostrará toda la información disponible. o 'LABELS': Muestra las etiquetas de la columna. o 'VALUES': Se muestra el valor del dato representado.
137
• SHOW_GRID: Permite activar o desactivar la rejilla de fondo del gráfico. Valores posibles: TRUE, FALSE
• MOSTRAR_COLUMNAS_EN_FILAS: Permite permutar las filas por columnas. Valores posibles: TRUE, FALSE
• TRAZA: Activa la salida de información de traza para el gráfico. Valores posibles: TRUE, FALSE
Añadir SQL a Gráficos
Un gráfico por lo general contendrá una única SQL. La SQL será la que determine los valores a representar y debe tener las siguientes características:
• Tantos campos numéricos como valores a representar en el gráfico. • Un campo para obtener el valor del título de la serie a representar.
Para añadir una SQL al gráfico se utilizará la función: pkgraficos.add_sql(<id_grafico>, <sql>'); Esta función devolverá un identificador numérico que será necesario guardar en una variable para luego asignar propiedades a la SQL.
Propiedades de SQL.
Para modificar propiedades a nivel de SQL se utilizará el procedimiento pkgraficos.set_propiedad_sql(<id_grafico>, <id_sql>, <propiedad>, <valor>).
• <id_grafico>: Identificador del gráfico obtenido al ser inicializado por pkgraficos.inicializar. • <id_sql>: Identificador de la sql, obtenido en pkgraficos.add_sql.
• <propiedad>: Código de la propiedad a modificar de la sql.
o COLUMNA_TITULO: Identifica la columna que contendrá el título de las series a representar. En <valor> se indicará el número de columna de la SQL que contiene este dato.
o COLUMNA_PRIMARY_KEY: Esta propiedad es opcional, y se utiliza cuando se registra un trigger en el gráfico y se indica que se debe de devolver la clave primaria del valor seleccionado por el usuario. En <valor> se indicará el número de columna de la SQL que contiene la clave primaria.
o MASCARA_FORMATO_COLUMNA_TITULO: Si en COLUMNA_TITULO se indicó una columna de tipo DATE, se puede modificar la máscara de formato. En <valor> se indicará una máscara de formato válida.
Mostrar el gráfico
Una vez asignadas las propiedades necesarias para representar el gráfico, hay que invocar al procedimiento: pkgraficos.mostrar_grafico(<id_grafico>);