Los objetos más importantes en esa documentación son:
- Cimp, el controlador de impresor para salidas a pantalla (preliminar),
papel o archivo (una impresora PDF, por ejemplo)
- Cbas, el controlador de una base de datos, con un completísimo acceso
independiente del motor de BD
- Cdxi, controlador de información para dibujo vectorial, cartografía,
planos...
- Cgra, controlador de imágenes bitmap y vectoriales
En la guía paso a paso, hay un capítulo dedicado sólo a la creación y modificación de informes, ejemplos de las personalizaciones más comunes, así como multitud de informes de ejemplo impresos para que le sirvan como catálogo de muestra.
IMPORTANTE:
TODAS las explicaciones de la programación Javascript se refieren a las AMPLIACIONES mediante una extensión COM, que el programa hace sobre el lenguaje estándar JavaScript (nuevos objetos, métodos y propiedades).
La sintaxis, funciones, métodos y utilización del propio lenguaje está en un archivo independiente ayuda de Javascript 5.5 (está en formato de ayuda .CHM, comprimido en un ejecutable autodescomprimible .ZIP para poder ejecutarlo en red)
En primer lugar, vamos a ver un conjunto de variables globales definidas en la ventana Informes y procedimientos, que nos ofrecen el contenido de ciertos campos:
Código Raíz, se almacena en la variable conraiz. Cuando recorremos la estructura de la B.D., por defecto se hace completamente desde el concepto raíz (.) hacia abajo. Este campo permite comenzar el recorrido a un nivel inferior, para recorrer sólo una parte de la estructura. También admite máscaras de códigos (opción menos habitual), lo que permite hacer recorridos por estructura filtrando conceptos que no cumplan la máscara.
Periodo, es un campo interpretado que almacena internamente dos fechas: las variables fecini y fecfin. El campo es único porque admite una sintaxis compleja con ayudas para teclear lo menos posible especificando fechas. En primer lugar hay que considerar que admite 4 tipos de separadores:
Se admite una fecha final anterior a la inicial, sólo que en la mayor parte de los informes no saldrá ningún dato porque el resultado de días de diferencia será cero.
Campo Periodo | Fecha inicial | Fecha Final | Interpretación |
0(*) | 0 | ||
5 | 01/01/2005 | 31/12/2005 | año |
5-6 | 01/01/2005 | 31/12/2006 | rango de años |
3/4 | 01/03/2004 | 31/03/2004 | mes |
1-12/3/0 | 01/03/2000 | 12/03/2000 | rango de días |
2:3 | 06/01/2003 | 12/01/2003 | semana |
1/2/5 | 01/02/2005 | 01/02/2005 | día |
12/12/04 2/4/02 | 12/12/2004 | 02/04/2002 | rango concreto (ni días, ni meses, ni semanas...) |
(*) No hay fecha de defecto, cada informe utilizará la fecha de defecto que convenga
Recordemos que el formato interno de estas dos variables de tipo fecha, es un número entero en formato AAAAMMDD.
Número primera página, se almacena en la variable pagact y representa el número que llevará impreso (en caso de que se imprima) la primera página del informe, en vez de "1".
Páginas a imprimir (n-n), es un rango que se almacena en las variables pagpri y pagult, que indica las páginas que se van a imprimir, basados ambos en la numeración de pagact, por lo que normalmente, el primer número del rango (pagpri) siempre debería ser mayor o igual que pagact. Por ejemplo:
Nº primera página | Páginas a imprimir | Resultado, imprime: |
3- | de la página 3 a la última, comenzando en 1 | |
3-6 | de la página 3 a la 6 (incluidas), comenzando en 1 | |
-8 | hasta la página 8 (incluida), comenzando en 1 | |
4 | 1-2 | todas las páginas (ignora el rango), comenzando con el nº 4 |
4 | 1-4 | sólo la pág. 4, con el nº 4 |
10 | 15- | desde la quinta pág. del informe, comenzando con el nº 10 |
Otra variable relacionada con el número de páginas es pagtotal, que calcula una primera vez el informe entero, para obtener el número de páginas que tiene, y lo almacena en esta variable global. Cuando aparece en un informe (aunque sea dentro de un comentario), el informe se calcula dos veces: una para calcular el número de páginas, y otra para mostrarlas.
Para complementar la información de modificadores explicados en la documentación del objeto COM en la clase Cimp, veamos los siguientes diagramas que explican la posición de cada una de las variables:
Diversas medidas de la página del impresor:
Modificador 'a' de alineación:
Modificadores 'm' y 'e' de márgenes externo e interno de campos: