GrialPrint
De GrialWIKI
(→Wt) |
(→OpenBox) |
||
Línea 170: | Línea 170: | ||
</code> | </code> | ||
- | === OpenBox === | + | ==Recuadros== |
+ | === Abrir un cuadro - Método OpenBox === | ||
Este método permite abrir un cuadro que podrá contener o no según se requiera, filas y columnas de la siguiente manera: | Este método permite abrir un cuadro que podrá contener o no según se requiera, filas y columnas de la siguiente manera: | ||
Línea 180: | Línea 181: | ||
X y W son opcionales y permiten definir la Posición del cuadro dentro de la hoja. En caso de omitirse estos valores, se asume por default un valor aproximado al ancho de la hoja. | X y W son opcionales y permiten definir la Posición del cuadro dentro de la hoja. En caso de omitirse estos valores, se asume por default un valor aproximado al ancho de la hoja. | ||
- | |||
=== Boxsepar === | === Boxsepar === |
Revisión de 04:15 28 may 2010
Introducción al Framework Grial |
|
Contenido |
GrialPrint
Controles con sufijo: _gpr
Descripción General
El control GrialPrint se utiliza para la impresión de documentos permitiendo modificar propiedades que describen cómo se va a visualizar el mismo.
Descripción de los métodos que interactuan al imprimir o visualizar un documento.
- ButtonClicked: Se dispara cuando el usuario pulsa un botón en el control. Este evento por lo general es utilizado para establecer las cabeceras y pie de páginas de una impresión, para establecer la posición de la hoja, entre otras cosas.
- PreDocumentPrint: Se dispara una única vez luego de seleccionar la impresora, determinar el tipo de papel (PrintPos_PageWidth, y calcular el ancho de la hoja y las posiciones de los márgenes(PrintPos_LeftMargin). Utilizar para cargar queries y datos necesarios para la impresión.
- PrintHeader Se dispara automáticamente antes de comenzar cada hoja
- PrintDocument: Este es el evento principal de impresión. Se dispara una vez por cada copia solicitada.
- PrintFooter Se dispara automáticamente al alcanzar la posición “PrintPos_Footer”
- PostDocumentPrint
Ejemplo
En el siguiente ejemplo se supone que se ha agregado un control GrialPrint_qpr en un Formulario. Un control grialprint presenta la particularidad de tener incluidos encabezados y pié de páginas definidos de manera predeterminada para todas las impresiones en el sistema.
Por ejemplo al realizar una impresión se visualizará en la parte superior de la hoja un escudo, marca de agua, fecha y hora de impresión, nombre de la institución.
Al pie de página se podrá visualizar el usuario que lleva a cabo la impresión como así también el cargo asignado dentro del sistema, como por ejemplo operador, jefe, director, etc.
Cabe aclarar que mediante las propiedades relacionadas, es posible indicar que dichos encabezados y pie de página no sean impresos.
A continuación pasaremos a visualizar wn ejemplo de código:
Private Type persona nombre As String apellido As String End Type 'Cargamos datos Dim personas(1 To 3) As persona personas(1).nombre = "Federico" personas(1).apellido = "Guillen" personas(2).nombre = "Pedro" personas(2).apellido = "Ramirez" personas(3).nombre = "Laura" personas(3).apellido = "Milciades"
En el evento ButtonClicked
Private Sub GrialPrint_gpr_ButtonClicked(ButtonCode As GrialPrint.GPR_BUTTON_CODE, Cancel As Boolean) 'Evito que use los encabezados default With GrialPrint _gpr .PageHeader_Right = "" .UseFooters = False .PageHeader_Left = "" .UseHeaders = False End With
PageHeader_Rigth hace referencia a la parte izquierda del encabezado de la hoja. Teniendo como valor predeterminado una marca de agua y fecha de impresión por ejemplo, los cuales serán visualizados automáticamente al momento de obtener la impresión. En el ejemplo anterior se indico de manera manual que contenga un valor = “” lo cual indica que no deberá visualizarse ningún encabezado izquierdo dentro de la hoja.
De la misma manera explicada anteriormente actúa PageHeader_Left con la diferencia de que generalmente el encabezado derecho está compuesto de un escudo de la provincia, el nombre de la misma y de la institución. Para el ejemplo también se solicita que eso no figure.
En el evento PrintDocument.
Private Sub GrialPrint_gpr_PrintDocument(Cancel As Boolean) On Error GoTo ErrH Dim i as integer On Error GoTo ErrH With GrialPrint_gpr .ReportTitle = "Título del Informe" .ReportSubTitle = "Subtítulo del Informe" .ReportSecondaryTitle = "Título Secundario" .ClearCols .DefineCol "NOMBRE", "Nombre<vl>", 2000, AlignLeft .DefineCol "APELLIDO", "Apellido", 2200, AlignLeft .OpenBox "Detalle" .FontBold = True .WtColTitles .FontBold = False .BoxSepar ("Detalle") For i = 1 to 3 .WtCol "NOMBRE", personas(i).nombre .WtCol "APELLIDO", personas(i).apellido, AlignLeft .Printer_Advance .BoxSepar ("Detalle") Next .CloseBox "Detalle" .WtColVLines .Printer_Advance .Wt 200, "Fin ejemplo.", 9000, AlignLeft End With Exit Sub ErrH: MsgError GrialCont Cancel = True Exit Sub End Sub
Resultado
Métodos
Wt
(Write)
Para realizar la impresión de un texto sencillo. Suponiendo que nuestro control se denomina GrialPrint_gpr tendríamos que escribir el siguiente código:
GrialPrint_gpr.Wt ( X As Single, Text As String, [Coldwith as Single], [Alignmode As Gpr_Alignmode_Enum = Align Default])
X: número que indica la posición dentro de la hoja en donde se imprime el texto.
Text: texto a imprimir.
Coldwith: (opcional) permite establecer el ancho de la línea.
Alignmode: (opcional) indica la alineación que deberá tener el texto.
En este ejemplo se solicita imprimir el texto a partir de la coordenada x = 200, en un ancho de 9000 y con alineación derecha.
.Wt ( 200, FormatCurrecy(Total), 9000, Align_Right)
Printer_Advance
Este método es utilizado para avanzar a la siguiente linea.
Public Sub Printer_Advance(Optional ByVal CantLines As Single = 1)
Cantlines: cantidad de líneas a avanzar, es opcional, asumiendo el valor 1 en caso de no encontrarse especificado.
Por Ejemplo:
With GrialPrint_gpr .Printer_Advance ... .Printer_Advance 2 ... .Printer_Advance 1.5 End With
Recuadros
Abrir un cuadro - Método OpenBox
Este método permite abrir un cuadro que podrá contener o no según se requiera, filas y columnas de la siguiente manera:
GrialPrint_Gpr.Openbox (Key as String, [x], [w])
Donde Key deberá contener el nombre del cuadro que se está iniciando.
X y W son opcionales y permiten definir la Posición del cuadro dentro de la hoja. En caso de omitirse estos valores, se asume por default un valor aproximado al ancho de la hoja.
Boxsepar
Este método permite realizar la impresión de una línea horizontal dentro de un cuadro utilizando la siguiente sintaxis:
GrialPrint_Gpr.BoxSepar (Key as String)
Donde Key deberá contener el mismo nombre utilizado en la propiedad Openbox que inicializa al cuadro
CloseBox
Este método permite cerrar un cuadro inicializado previamente cuando se requiera terminar de imprimir dentro del mismo, de la siguiente manera:
GrialPrint_Gpr.CloseBox (Key as String)
Donde Key deberá contener el mismo nombre especificado en OpenBox.
Propiedades
FontBold
Esta propiedad puede asumir los valores True o False.
En el caso de que el texto que se desea imprimir deba estar en negrita esta propiedad deberá tener valor true, caso contrario False. Cabe aclarar que si no se ha especificado desde un comienzo esta propiedad en true, no será necesario ponerla en false, ya que por default asumirá este valor en la impresión.
GrialPrint_Gpr.FontBold=True
FontBold
Esta propiedad puede asumir los valores True o False.
En el caso de que el texto que se desea imprimir deba estar en negrita esta propiedad deberá tener valor true, caso contrario False. Cabe aclarar que si no se ha especificado desde un comienzo esta propiedad en true, no será necesario ponerla en false, ya que por default asumirá este valor en la impresión.
GrialPrint_Gpr.FontBold=True
Printer_DetailFontSize
Esta propiedad permite modificar el tamaño de la fuente de un texto.
Por default el tamaño de la fuente tiene un valor 8. En caso de que se necesite imprimir un tamaño de letras más grande se lo deberá especificar dentro de esta propiedad de la siguiente forma:
GrialPrint_Gpr.Printer_DetailFontSize = 11
Cabe aclarar que todo lo que se imprima luego de haber puesto ese tamaño de fuente, asumirá el mismo valor a no ser que se indique luego del ejemplo anterior el tamaño de fuente original nuevamente.
Problemas Comunes
- No se imprime el escudo
Causa: Verificar que el control esté incializado. Esto se realiza automáticamente si el control tiene la extensión "_gpr".
Solucion: Renombrar el control con la extensión "_gpr"
GrialWorkflow <<< >>> GrialFileStorage
<>