Formularios de impresión

Los formularios y sus tipos se explican en la sección Componente de formulario. La página actual describe cómo deben presentarse los formularios de impresión.

Proceso de impresión

La impresión es un proceso que consta de dos pasos:
  • En primer lugar, codifique las sentencias print, cada una de las cuales añade un formulario a un almacenamiento intermedio de tiempo de ejecución
  • A continuación, el entorno de ejecución EGL añade los símbolos necesarios para iniciar una página nueva, envía todos los formularios colocados en el almacenamiento intermedio a un dispositivo de impresión y borra el contenido del almacenamiento intermedio. Estos servicios se proporcionan como respuesta a alguna de las siguientes circunstancias:
    • El programa ejecuta una sentencia close en un formulario de impresión que tiene como destino el mismo dispositivo de impresión; o bien
    • El programa está en modalidad segmentada (como se describe en la sección Segmentación) y ejecuta una sentencia converse; o bien
    • El programa se ha llamado utilizando un programa no EGL (y no VisualAge Generator) y el programa llamado finaliza; o bien
    • El programa principal de la unidad de ejecución finaliza.
En el caso de una salida de varios formularios, las sentencias print deben invocarse en el orden en que se desean presentar los formularios. Considere el siguiente ejemplo:
  • Al principio de la salida, un formulario fijo identifica una empresa que realiza una compra y un número de pedido
  • En un área flotante subsiguiente, una serie de formularios flotantes formateados de forma idéntica identifican cada elemento del pedido de la empresa
  • Al final de la salida, un formulario fijo indica el número de pantallas o páginas necesarias para desplazarse por la lista de elementos
Puede conseguir esta salida enviando una serie de sentencias print, cada una de las cuales actúa sobre un formulario de impresión. Estas sentencias hacen referencia a los formularios en el siguiente orden:
  1. Formulario superior
  2. Formulario flotante, presentado mediante una sentencia print que se invoca repetidamente en un bucle
  3. Formulario inferior

Los símbolos necesarios para iniciar una página nueva se insertan en diversas circunstancias, pero puede hacer que se inserten invocando la función de sistema ConverseLib.pageEject antes de emitir una sentencia print.

Consideraciones acerca de los formularios fijos

Hay que tener en cuenta lo siguiente respecto a los formularios fijos:
  • Si emite una sentencia print para un formulario fijo que tiene una línea inicial mayor que la línea actual, EGL inserta los símbolos necesarios para avanzar el dispositivo de impresión hasta la línea especificada. De forma similar, si emite una sentencia print para un formulario fijo que tiene una línea inicial menor que la línea actual, EGL inserta los símbolos necesarios para iniciar una página nueva.
  • Si un formulario fijo recubre algunas pero no todas las líneas de otro formulario fijo, EGL inserta automáticamente los símbolos necesarios para iniciar una página nueva y coloca el segundo formulario fijo en la página nueva.
  • Si un formulario fijo recubre todas las líneas de otro formulario fijo, EGL sustituye el formulario existente sin borrar el resto de la salida del almacenamiento intermedio. Para mantener la salida existente y colocar el nuevo formulario en la página siguiente, invoque la función de sistema ConverseLib.pageEject antes de emitir la sentencia print para el nuevo formulario.

Consideraciones acerca de los formularios flotantes

Se pueden producir las siguientes equivocaciones al utilizar formularios flotantes:
  • Se emite una sentencia print para colocar un formulario flotante más allá del final del área flotante; o bien
  • Se emite una sentencia print que recubre al menos parcialmente un área flotante con un formulario fijo y luego se emite una sentencia print para añadir un formulario flotante al área flotante.

En cualquiera de los dos casos, el resultado es que EGL inserta los símbolos necesarios para iniciar una página nueva, y el formulario flotante se coloca en la primera línea del área flotante de la página nueva. Si, por ejemplo, la página es similar a la salida de pedido y elemento descrita anteriormente, la página nueva no incluye el formulario fijo superior.

Destino de impresión

Cuando EGL procesa una sentencia close para presentar un archivo de impresión, la salida se envía a una impresora o conjunto de datos. Puede especificar el destino en cualquiera de los tres momentos siguientes:
  • Durante la prueba (como se describe en Depurador EGL)
  • Durante la generación (como se describe en Asociaciones de recursos y tipos de archivo)
  • Durante la ejecución (como se describe en relación con la variable de sistema ConverseVar.printerAssociation)

Consulta relacionada
pageEject()
printerAssociation

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.