Unidad 54. Impresión (I)





54.1. Objetivos del tema.

Realizar la tarea de imprimir sobre los objetos de impresora y de vista previa, sin utilizar la utilidad Crystal Report.

54.2. Introducción.

La tarea de impresión puede ser abordada de muchas formas, vamos a ver una de tantas, ni mejor ni peor, la comprensión de la misma, permitirá abordar tareas de impresión más complejas.

Actualmente se imprime desde el evento, PrintPage, que se desencadena al asignar el objeto de impresión, un Objeto del tipo PrintDocument, sobre uno de sus posibles destinatarios, PrintPreviewDialog o una impresora de las del sistema.

La secuencia de impresión se basa en tres pasos básicos,  a los que le corresponden otros tantos eventos.

 

Inicialización                    BeginPrint

Parte cíclica del listado    PrintPage

Fin del proceso               EndPrint

 

En esta secuencia se ha de desarrollar todo el proceso.

Hay que advertir de una situación que si se desconoce o se olvida, nos puede llevar de cabeza.

El salto de página se produce dentro del evento PrintPage, y la forma de provocarlo es activando una propiedad denominado HasMorePages, a cierto, y ejecutando a continuación una salida de procedimiento.

El activar a cierto dicha propiedad provoca un retorno al evento, procedimiento al fin y al cabo, pero este retorno se produce desde el principio, con todas sus consecuencias, no retorna al punto donde se realiza la acción.

Si no se tiene presente dicha situación, la perdida de datos incomprensible puede llevarnos de cabeza.

Por otro lado la acción de asignar el objeto de impresión, PrintDocument a su destino, impresora o vista previa, no hace que se ejecute todo el proceso y después se siga con la siguiente línea de código, sino que provoca la ejecución de un hilo distinto de programa, lo que lleva a que el programa haya finalizado, aunque se esté ejecutando todavía todo el proceso de impresión.

 

54.3. Secuencia de funcionamiento.

La secuencia de un listado en VB es la siguiente:

 

Introducción de los parámetros del listado por teclado.

Indicación de conformidad.

Inicio del proceso de listado.

 

La introducción de los parámetros del listado, no deja de ser una interface gráfica, la cual desarrollaremos como cualquier otra.

La indicación de conformidad es la pulsación de un button, con el texto Aceptar o similar, y si procede porque el proceso lo requiere una segunda conformidad para evitar un inicio accidental.

El inicio del listado implica la asignación de un objeto PrintDocument al destino del listado que será una impresora o un objeto de vista previa.

 

DialogoImpresora.AllowSelection = False

DialogoImpresora.AllowSomePages = False

DialogoImpresora.PrintToFile = False

DialogoImpresora.PrinterSettings.Copies = 1

DialogoImpresora.Document = Hoja

If DialogoImpresora.ShowDialog() = DialogResult.OK Then Hoja.Print

 

Esto podría ser el código a ejecutar para un destino en una impresora.

Esta fase es de definición.

 

DialogoImpresora.AllowSelection = False

DialogoImpresora.AllowSomePages = False

DialogoImpresora.PrintToFile = False

DialogoImpresora.PrinterSettings.Copies = 1

DialogoImpresora.Document = Hoja

La línea que realmente lanza el listado es esta:

 

If DialogoImpresora.ShowDialog() = DialogResult.OK Then Hoja.Print

 

Hemos visto como lanzar el listado a partir de la selección que realiza el usuario en la ventana de impresión.

Ahora se trata de comprender el proceso en sí.

 

Hay que recordar que cuando se ejecuta esa línea, el programa no se para ahí, si no que sigue por un lado la impresión y por otro lado el programa, lo mejor para entenderlo, es colocar un punto de ruptura con F9, en la línea siguiente a la de inicio de listado.

 

54.4. Fases de un listado.

Un listado tiene distintas fases.

 

–Inicio de proceso.

–Línea de identificación.

–Título

–Cabecera

–Detalle

–Pie de página

–Final de proceso

 

La parte repetitiva del mismo es esta:

 

–Línea de identificación.

–Título

–Cabecera

–Detalle

–Pie de página

 

Y la parte donde realmente se desarrolla todo el listado es

–Detalle

 

Aquí es donde se van lanzando cada una de las líneas que componen el listado.

 

Los pasos que se han nombrado no tienen nada que ver con un lenguaje de programación.

Son el orden natural de un proceso de impresión.

Por lo que aunque cambie el lenguaje de programación, los pasos serán iguales.

Todos no intervienen siempre, pero son esos, por lo tanto lo lógico es crear un procedimiento para cada una de las distintas fases.

 

Asignemos ahora los eventos anteriormente expuestos a las fases del listado.

 

Inicialización                                      BeginPrint     

 

–Inicio de proceso.

 

Parte cíclica del listado                      PrintPage     

 

–Línea de identificación.

–Título

–Cabecera

–Detalle

–Pie de página

 

Fin del proceso                                  EndPrint

 

–Final de proceso

 

 

Veamos primero los distintos procedimientos, para así ya después solo  nombrarlos por su nombre.

Octubre-2010
Pág. 54.1

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies