Personalizar y programar informes

Inicio  Anterior  Siguiente

Crear un informe nuevo

Para mejorar el informe: cabeceras y pies de página

Cambiar cabeceras de informes

Para personalizar las cabeceras

Parámetros de los informes

********************************************

La definición de cada informe o herramienta programada, se guarda en un archivo de texto plano (ASCII) mediante un programa en lenguaje JavaScript, que la aplicación interpretará en el momento de imprimir o ejecutar la herramienta.

Si quiere hacer un cambio permanente en un informe, tendrá que modificar el programa correspondiente (las modificaciones se guardan automáticamente en disco al abandonar la ventana). Pero si lo que quiere es hacer una modificación temporal, puede variar las variables de la ventana Parámetros.

Con un archivo de ejemplo abierto en la ventana principal haga doble clic en la línea o clic en Preliminar.

Suponga que imprimiendo este informe en papel, y al comenzar con el capítulo 5, el papel se atascó en la impresora, o sufrió un corte de electricidad. Podemos lanzar cualquier informe de nuevo, desde una página seleccionada:

Teclee '5' en el campo Páginas a imprimir, después haga clic de nuevo en Preliminar y verá que la primera página que aparece es esa, con su número de página correcto.

Crear un informe nuevo

Lo habitual es que no necesite definir nuevos informes, ya que con los informes distribuidos con la aplicación y utilizando los  parámetros que veremos más adelante, obtendrá la información que necesita en la mayoría de los casos.

Como ejercicio, trabajaremos con el archivo de proyecto ejemplo.men. En la ventana informes y procedimientos, haga doble clic en la zona de la columna Código en la línea de cualquiera de los informes que se esté mostrando. Con esto abrimos la ventana de Programa del informe.

IMPORTANTE: El primer paso es hacer clic en el botón Copia, y teclear "prueba" como nombre de archivo (no es necesario poner la extensión .xjs). Si no lo hiciera así, todos los cambios los haría sobre el informe original y perdería el mismo.

Si volvemos a la ventana informes y procedimientos, observamos que hay dos informes con el mismo título, pero el nombre de archivo del segundo es el nuevo.

Ahora reemplace todo el programa que aparece en pantalla por las siguientes líneas (puede seleccionarlo todo poniendo el cursor en la primera línea y pulsando las teclas CONTROL+MAYÚSCULAS+FIN, y copiarlo desde esta misma página para no tener que teclearlo):

//// Informe de prueba

incluir ("cab")

incluir ("libcap")

capitulo_recorre (concepto);

 

function concepto (que, ci,ri,niv,pos)

{

imp.tabla ("20 10 . 20")

if (que==1) {

imp (bas.con.cod(ci));

imp (); imp (bas.con.res(ci));

imp () ;imp.linea ("l2");

return

}

if (!que) {

imp (bas.con.cod(ci));

imp (bas.con._uni(ci));

imp (bas.con.tex(ci));

imp (bas.rcc.pref(ri)),"a5");

imp.linea

imp.linea("v2",1)

}

}

La sintaxis es de JavaScript, aunque si tiene soltura programando en este lenguaje, se dará cuenta de que hay varias partes desconocidas. Esto es porque se utilizan métodos y objetos implementados en el programa mediante una ampliación COM del lenguaje y además se utilizan dos archivos de librería que ya tienen implementadas funciones y declarados objetos de propósito general para cualquier informe.

Pasamos a la ventana informes y procedimientos y hacemos doble clic sobre el informe titulado "Informe de prueba".

Haga doble clic en la línea del informe para ver su vista preliminar. No tiene un formato muy profesional, pero tampoco lo hemos programado con muchas líneas... y muestra el Número y Resumen de cada capítulo y debajo, cada partida con su Código, unidad, Texto descriptivo extenso y Precio.

Para mejorar el informe: cabeceras y pies de página

Volvamos al programa y modifíquelo como sigue:

//// Informe de prueba

incluir ("cab")

incluir ("libcap")

var conlineas=1 ////B Imprime líneas verticales [[0]]

capitulo_recorre (concepto);

 

function paginicia2()

{

imp.tabla ("20 10 . 20")

imp ("Orden"); imp("Uds."); imp("Descripción"); imp("Precio");

imp.linea ("a4 l0 b")

if (conlineas) imp.ver (imp.y2, 0,20,10,-20,-1)

imp.linea ("v3");

}

function concepto (que, ci,ri,niv,pos)

{

imp.tabla ("20 10 . 20")

if (que==1) {

imp (bas.con.cod(ci));

imp (); imp (bas.con.res(ci));

imp () ;imp.linea ("l2");

return

}

if (!que) {

imp (bas.con.cod(ci));

imp (bas.con._uni(ci));

imp (bas.con.tex(ci));

imp (bas.rcc.pref(ri)),"a5");

imp.linea

imp.linea("v2",1)

}

}

Pulsamos el botón Preliminar para ver el nuevo resultado, y obtenemos rótulos de encabezado de las columnas, y hasta un parámetro (haga clic en el botón Parámetros), que permite definir si queremos que salgan líneas verticales separando las columnas o no, haciendo un simple clic de ratón sobre la línea del parámetro.

Cambiar cabeceras de informes

En general, casi todos los informes utilizan el mismo formato de cabeceras, pies, márgenes, etc. por legibilidad y presentación. Todos comparten uno o varios programas de informe que no se han hecho para imprimirlos, sino para introducir los mismos datos en todos lo demás informes. Haciendo cambios en un programa de cabecera, las modificaciones afectarán a todos los informes que lo usen.

En la lista de informes predefinidos se incluye: "CABECERAS Y LIBRERÍAS\Cabecera general"; cuya definición se encuentra en el archivo cab.xjs. Hay series de informes que utilizan su propia cabecera por tener un formato especial, y ésta se encuentra dentro de la carpeta correspondiente.

La función incluir( ) permite introducir el código de un archivo de programa dentro de otro, en el punto en que se llama a esa función. En la definición de cualquier informe se puede incluir cualquiera de las cabeceras, librerías con funciones de propósito general, otros programas para que se ejecuten secuencialmente, etc..

La cabecera estándar imprime por defecto, el título del informe y el número de página al comienzo de cada página. Las cabeceras con gráficos contienen información de la empresa y el logotipo de la misma. Si quiere utilizar las cabeceras completas en los informes, tendrá que personalizarlas para que incluyan los datos de su empresa, los datos que hay son sólo de ejemplo.

Para personalizar las cabeceras

Se hace incluyendo un estilo nuevo dentro de la definición de encabezados de las funciones especiales paginicia() y pagtermina(), que definen las cabeceras y pies de todas las páginas de cada informe. Estas funciones son especiales y se ejecutan SIEMPRE al principio y al final, respectivamente, de la impresión de cada hoja. Es decir, son zonas especiales para definir cabeceras y pies de página que se repiten en todas las páginas con el mismo formato (claro que datos como variables, números de página u otros pueden cambiar, como es habitual).

Haga clic sobre el nombre de archivo "cab" para abrir la ventana de Programa con el del informe "CABECERAS Y LIBRERÍAS\Cabecera general"

Tal como están diseñadas las cabeceras y pies del archivo cab.xjs, puede ver que admiten otras definiciones paginicia2() y pagtermina2() de modo que se puedan añadir datos en cabeceras y pies, en cada informe. Tenga en cuenta que cada vez que se hace una llamada a las funciones principales (paginicia), se anula la definición de las añadidas (paginicia2).

Vaya a la definición de la función paginicia( ) e incluya al final una condición del tipo:

else if (estilo==30) {

...

}

Dentro puede poner el formato de tabla, las líneas, espacios y definiciones y datos que quiera en su nuevo formato. Si utilizamos en cualquier informe que incluya esta cabecera la definición: var estilo=30, se tomará este formato.

Parámetros de los informes

Seleccione uno de los informes de la primera carpeta (en las primeras están los utilizados más comúnmente).

Abra la ventana del Programa de informe (haciendo doble clic sobre el nombre del archivo, a la derecha del todo), y en las primeras líneas verá una lista de variables definidas con la declaración var y a continuación un doble comentario de color verde, con cuatro barras inclinadas "////"

Pinchando en el botón Parámetros de la ventana informes y procedimientos o haciendo doble clic en la columna gris (.) a la izquierda de la lista de informes, se nos muestra la ventana con la lista de parámetros definidos en el informe actual.

Esta ventana es sólo una forma cómoda de modificar las variables y rótulos de los programas de informes, ya que también se podrían modificar directamente.

Lo primero que se observa es que todas las variables definidas EN ESTE PROGRAMA con sus rótulos y valores, son de color negro en la lista de parámetros, y que están en la parte superior de la lista. En cambio los que hay a continuación son del color morado de "datos en estructura" y pertenecen a otros archivos .XJS pero están incluidos en el programa actual.

Si mostramos la columna Programa (que por defecto no se muestra), podemos ver en qué informe está definido cada uno de los parámetros. Por ejemplo, vemos "preres1" en las primeras líneas. La diferencia de colores que mencionábamos, sirve para destacar que primero se muestran las variables definidas o redefinidas en el informe actual, y después todas las que se incluyan al incluir OTROS programas de informes con la función incluir( )

IMPORTANTE: Ahora podemos modificar parámetros de este informe, como pueden ser: acumular o no auxiliares en partidas, o saltar de página en cada capítulo, y por otra parte podemos hacer cambios en otros informes (en este caso en la cabecera cab.xjs y la librería libcap.xjs, que incluye éste), teniendo en cuenta que los cambios que hagamos también se manifestarán en los demás informes que incluyan la cabecera o la librería.