|
<< Haga clic para mostrar la tabla de contenido >> Navegación: Listados > Informes > Informes Directos > Toma de datos |
Es muy habitual que necesitemos indicar un rango de datos para aplicar a la información que queremos mostrar, para este caso disponemos de los diálogos. Para crear un diálogo nos dirigimos al menú File->New dialog. Se nos creará una nueva pestaña en el informe con un diálogo en blanco. Disponemos de toda una serie de controles para poder configurar y diseñar el diálogo según nuestras necesidades. El objetivo de esta documentación no es profundizar en el diseño del mismo pero sí en como poder introducir los valores para indicar el rango.
Disponemos de varios tipos de datos en la barra de iconos izquierda. Los más importantes son:

EditControl: Se utiliza para introducir cualquier valor de texto o númérico
DateEditControl: Permite introducir fechas
DBLockUpComboBox: Permite seleccionar datos a partir de una consulta configurada anteriormente en el apartado Data.
•AutoOpenDataSet activarlo a true para que acceda a los datos cuando se ejecute el informe
•DataSet indica sobre qué consulta de la pestaña Data tomará los datos para mostrar en la selección del diálogo
•KeyField campo que se devolverá como seleccionado en el control, cuando se acceda a este control desde la ejecución de la consulta
•ListField campo que se mostrará cuando se ejecute el diálogo para seleccionar el valor de la consulta.
Ejemplo: Teniendo la siguiente consulta creada para el DBLockUpComboBox: SELECT F.CODIGO, F.NOMBRE FROM FAMILIA F , el KeyField sería CODIGO y el ListField NOMBRE
Nota: Es importante configurar la propiedad Name de los controles, ya que será la utilizada para posteriormente aplicar el valor del dato introducido como condición en la consulta.
También se pueden Añadir CheckBox y RadioButtons aunque no son tan utilizados. Como se puede apreciar, existen muchos controles para dar un aspecto visual mejorado al diálogo con textos, cuadros, imágenes, etc...
Botones:
Todo diálogo es aconsejable que disponga de 2 botones, Aceptar i Cancelar
Dichos botones los introduciremos mediante el control ButtonControl.
•Modal Result: le indicaremos si es un botón de aceptar o cancelar, de este modo controlamos el comportamiento del diálogo en su salida al pulsar el botón
•Caption: permite cambiar el texto que aparecerá en el botón
Una vez tengamos todos los controles y diseño del diálogo, hay que configurar las consultas sobre las que se aplicarán dichos valores. En este caso, nos dirigimos a la pestaña Data del informe, seleccionamos la consulta a aplicar los valores y pulsamos sobre la propiedad SQL. Normalmente los valores se aplicarán como rangos de la consulta, en este caso vamos a poner como ejemplo un rango de códigos de artículo y familia para el listado de artículos:
SELECT A.CODIGO, A.NOMBRE, A.FAMILIA, F.NOMBRE
FROM
ARTICULO A
INNER JOIN FAMILIA F ON (A.FAMILIA=F.CODIGO)
WHERE A.CODIGO >= :condicion_desde AND A.CODIGO <= :condicion_hasta AND
A.FAMILIA = :condicion_familia
ORDER BY A.NOMBRE
podemos observar que hemos añadido campos con los dos puntos delante, estos campos son los que enlazaremos a los valores introducidos en los controles del diálogo, para realizar la relación campo<->control, entramos en la propiedad params de la consulta, nos aparecerá una ventana donde podremos indicar el tipo de valor y el valor del control que deseemos. Para averiguar como obtenemos el valor del control, tenemos que ir a la referencia de los datos que nos ofrece la clase del control. Podemos ver el tipo de clase cuando estamos editando el control:

y en la pestaña de Classes veremos los datos que disponemos y en cuál de ellos se almacena el valor introducido por el usuario:

con esta información, le podemos indicar la relación campo<->control necesaria pulsando en la propiedad params de la consulta, configurando el tipo de dato que se introduce y el valor del objeto del diálogo:

Con estos pasos, ya le hemos asignado los valores del diálogo a la consulta para filtrar el resultado según las necesidades.
Con los artículos por defecto que instala el programa y los siguientes parámetros en el diálogo:

El resultado es el siguiente:
