Sign in Join
Wiki copytemporary

LazReport Documentation/es: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# PRESENTACIÓN
22
33LazReport es un grupo de componentes que agregan a las aplicaciones la capacidad de generar reportes, usa un diseñador visual para crear reportes basados en bandas e incluye un mecanismo de reportes con previsualizador que ademas incluye un interprete para ejecutar guiones de usuario. El diseñador de reportes puede ser invocado en tiempo de ejecución
44
55# LINCENCIA
66
77LazReport se origina en FreeReport 2.32 y gracias a la compañía Fast Reports Inc. esta disponible bajo la licencia LGPL modificada, la misma licencia que usa la libreria LCL de Lazarus. Para mayor información, vea los archivos lazreport/ license.txt, license-rus.txt y licence-lazreport.txt
88
99# AUTORES
1010
1111FreeReport fué creado por la compañía Fast Reports Inc. La adaptación inicial del código a LazReport fue hecha por Olivier Guilbaud, para mayor infomación visite el sitio original de LazReport en SourceForge <http://lazreport.sourceforge.net/>. La integración en Lazarus y actual encargado del proyecto es Jesús Reyes Aguilar. LazReport no podría haber llegado a su estado actual sin la colaboración de muchos otros desarrolladores, vea el archivo lazreport/doc/contributors.txt
1212
1313# INSTALACIÓN
1414
1515Para Instalar LazReport en Lazarus:
1616
17171. Abrir el paquete LazReport Package. Menú: Componentes-\>Abrir archivo de paquete (.lpk)...
18182. Abrir archivo components/lazreport/source/lazreport.lpk
19193. Instalar
2020
2121La siguiente vez que Lazarus sea iniciado, debería mostrar una separador LazReport en la paleta de componentes.
2222
2323# DOCUMENTACIÓN
2424
2525El Manual del Desarrollador y La Guia del Usuario específicas para LazReport están aún por escribirse, mientras tanto, la mayoría de las funciones de LazReport están descritas en el Manual del Desarrollador de FreeReport (vea lazreport/doc/fr_eng.sxw en la instalción de Lazarus), Algunas cosas dependientes de la plataforma descritas allí, como objetos OLE, no están implementados en LazReport. También algunos ejemplos o imágenes hacen referencia a ejemplos que están disponibles solamente en Delphi.
2626
2727Hasta que la documentación especifica para LazReport sea elaborada, ésta página wiki será usada como repositorio de documentación, quizás en el futuro la documentación faltante pueda ser generada desde aquí. Se alienta a los usuarios a que agreguen temas que sientan haya necesidad de documentar, incluso si la descripción o contenido de dichos temas deba ser proporcionado por otros usuarios.
2828
2929## Operadores
3030
3131Los siguientes operadores están soportados:
3232
3333| Tipo Operador | Operador |
3434|---------------------------------|-------------------------------------------|
3535| Logicos | \>, \<, BUT, AND, NOT, =, \< \>, \>=, \<= |
3636| Aritméticos\|\|-, *, +, MOD, / | |
3737
3838## Funciones
3939
4040Las siguientes funciones están disponibles:
4141
4242### Funciones de agregación
4343
4444SUM(\<X\>)
4545Devuelve la suma de valores representados por \<X\>, que generalmente es un campo de datos.
4646
4747AVG(\<X\>)
4848Devuelve el promedio de los valore de \<X\>.
4949
5050COUNT
5151Cuenta la cantidad de ocurrencias o registros.
5252
5353MIN(\<X\>)
5454Devuelve le menor valor de todos los posibles valores de \<X\>.
5555
5656MAX(\<X\>)
5757Devuelve le mayor valor de todos los posibles valores de \<X\>.
5858
5959### Funciones de formateo
6060
6161FORMATDATETIME(\<X\>, \<Y\>)
6262Devuelve una cadena con el valor \<Y\> (de tipo TDateTime) en el formato \<X\>. \<X\> usa la sintaxis default de los [formatos de Lazarus](http://www.freepascal.org/docs-html/rtl/sysutils/formatdatetime.html).
6363
6464FORMATFLOAT(\<X\>, \<Y\>)
6565Devuelve una cadena con el valor numérico \<Y\> en el formato \<X\>. \<X\> usa la sintaxis default de los [formatos de Lazarus](http://www.freepascal.org/docs-html/rtl/sysutils/formatfloat.html).
6666
6767STRTODATE(\<X\>)
6868Devuelve la representación en fecha (tipo TDateTime) de la cadena \<X\>. \<X\> debe estar formateada correctamente.
6969
7070STRTOTIME(\<X\>)
7171Devuelve la representación en tiempo (tipo TDateTime) de la cadena \<X\>. \<X\> debe estar formateada correctamente.
7272
7373### Funciones de cadenas
7474
7575LOWERCASE(\<X\>)
7676Devuelve \<X\> pasada a minúsculas.
7777
7878UPPERCASE(\<X\>)
7979Devuelve \<X\> pasada a mayúsculas.
8080
8181NAMECASE(\<X\>)
8282Devuelve \<X\> con una mayúscula inicial en cada palabra.
8383
8484COPY(\<X\>, \<Y\>, \<Z\>)
8585Es similar a la función "copy" de Pascal: devuelve la porción de la cadena \<X\> desde la posición \<Y\> contando \<Z\> letras.
8686
8787### Funciones numéricas
8888
8989FRAC(\<X\>)
9090Devuelve la parte fraccionaria del número real \<X\>.
9191
9292INT(\<X\>)
9393Devuelve la parte entera del número real \<X\>.
9494
9595ROUND(\<X\>)
9696Devuelve el número real \<X\> redondeado al entero inmediato superior.
9797
9898STR(\<X\>)
9999Devuelve una cadena representando al número \<X\>.
100100
101101### Funciones lógicas
102102
103103IF(\<X\>, \<Y\>, \<Z\>)
104104Devuelve \<Y\> si la expresión \<X\> es verdadera. Si es falsa, devuelve \<Z\>.
105105
106106## Agregando tus propias funciones
107107
108108Aunque probablemente no se necesite demasiado, LazReport te permite definir tus propias funciones. Ver [[LazReport Documentation|LazReport Documentation#Documentation]] para las funciones ya existentes. Para agregar tus propias funciones:
109109
110110## Filtros de Exportación
111111
112112Los filtros de exportación de LazReport se invocan usando el siguiente código.
113113
114114```delphi
115115 if TheReport.PrepareReport then
116116 TheReport.ExportTo(TfrHTMExportFilter, 'exportedfile.html');
117117```
118118
119119Donde TheReport contiene una instancia del componente TfrReport. En este ejemplo se usa TfrHTMExportFilter para generar un archivo llamado 'exportedfile.html'. No es necesario preparar de nuevo el reporte si éste ha sido preparado con anterioridad. Para poder hacer uso de TfrHTMExportFilter el programador debe arrastrar y soltar un componente TfrHTMExportFilter desde el separador LazReport en la paleta de componentes, hacia el Diseñador de Formularios. Como una alternativa se puede añadir manualmente lr_e_htm a la clausula "uses" de la unidad.
120120
121121A partir de la versión 0.9.6 de LazReport el soporte de filtros de exportación ha sido mejorado, ahora los filtros de exportación pueden tomar parámetros que los usuarios pueden manipular ya sea cambiando los valores directamente o presentando al usuario final alguna interfaz de usuario. Para poder hacer cambios en los parametros, el programador debe crear un manipulador para el evento TfrReport.OnExportFilterSetup, disponible al seleccionar el componente TfrReport en el separador "Eventos" del Inspector de Objetos.
122122
123123El método manipulador del evento OnExportFilterSetup (de tipo TExportFilterSetup) toma un parámetro "sender" del tipo TfrExportFilter, para poder usar este tipo se debe añadir la unidad lr_class.pas a la clausula uses de la unidad. Todas la clases del tipo ExportFilter comparten este evento y el programador debe hacer un type-cast a la clase del filtro de exportación deseado, por ejemplo:
124124
125125```delphi
126126 if sender is TfrHTMExportFilter then
127127 begin
128128 TfrHTMExportFilter(sender).UseCSS := false;
129129 end;
130130```
131131
132132A continuación una descripción de los filtros de exportación disponibles.
133133
134134### TfrExportFilter
135135
136136    Esta es la clase báse de todos los filtros de exportación, y defines dos propiedades que pueden ser modificadas por el desarrollador en el evento ***OnExportFilterSetup***:
137137
138138- **BandTypes**: TfrBandTypes. Se trata de un conjunto de tipos de bandas, solo las bandas incluidas en este conjunto son efectivamente exportada, el resto de las bandas presentes en el informe se ignorarán. Usando esta propiedad un programador podría, por ejemplo, exportar sólo el contenido de la banda principal, dejando los títulos, encabezados y pies de página fuera de la salida exportada así:
139139
140140```delphi
141141 sender.BandTypes := [btMasterData];
142142```
143143
144144de forma predeterminada, todas las bandas son procesadas pero *TfrCSVExportFilter* cambia esta propiedad para procesar únicamente la cabecera principal, las cabeceras de columna y las bandas principales de datos.
145145
146146- **UseProgressbar**: boolean. Esta propiedad activa o desactiva la visualización de la barra de progreso del filtro de exportación. La propiedad tiene el valor predefinido como falso.
147147
148148### TfrTextExportFilter
149149
150150    Hereda de: TfrExportFilter \<- TfrTextExportFilter\
151151localizado en el archivo **lr_e_txt.pas** incluido en el paquete LazReport.
152152
153153   Es la clase base de los filtros de texto. Este filtro de exportación trata de hacer una representación en texto de un informe gráfico mediante el ajuste de las coordenadas gráficas originales en una rejilla más gruesa donde cada unidad es un punto de la fuente *UsedFont*, dependiendo del valor de *UsedFont*, la salida exportada será más o menos parecida al diseño de objetos en el informe gráfico.
154154
155155   Además de las propiedades heredadas de la clase TfrExportFilter, TfrTextExportFilter define dos propiedades más.
156156
157157- **UsedFont**: integer. Esta propiedad define las dimensiones en puntos de la rejilla de salida, los objetos en el informe se colocan en esta red recalculando las posiciones x e y. El valor predeterminado es 10, si el usuario cambia este valor a 0 o menos, LazReport mostrará automáticamente un cuadro de diálogo preguntando por el valor UsedFont, si el usuario introduce un valor no válido, se utilizará el valor 10. Ee utiliza el valor 10 porque es el valor que mejor se adapta a los informes habituales que se hacen con las fuentes de 10-13 puntos.
158158- **UseBOM**: boolean. Esta propiedad permitirá la inclusión de caracteres UTF-8 con *Byte Order Mark* al comienzo de la salida de texto (ver [BOM](http://en.wikipedia.org/wiki/Byte_order_mark)) que es requerido por algunos editores/visores, ya que BOM no se utiliza de forma predeterminada.
159159
160160### TfrCSVExportFilter
161161
162162inheritance: TfrExportFilter \<- TfrTextExportFilter \<- TfrCSVExportFilter\
163163located in: lr_e_csv.pas file included in LazReport package.
164164
165165This special text export filter produces Comma Separated Value output (actually any character can be used as separator), it differs from it's ancestor in that it doesn't try to create text layout representation of graphical report, instead, for each record output it tries to guess the fields order from the source report, it then produce a list of fields using a separator defined by the user. Beside the properties inherited from its ancestor classes it defines some properties to customize the generated output.
166166
167167- **QuoteType**:TfrQuoteType. This property controls whether the generated field value should be wrapped using specified quote char or not. Possible values are *qtNone*, *qtQuoteChar* and *qtAutoQuote*. With *qtNone* the field value is never wrapped, *qtQuoteChar* will use the character specified by property **QuoteChar**, any instance of **QuoteChar** already present in field value is duplicated. *qtAutoQuote* first try to find if any instance of **separator** or **QuoteChar** is already present in field value, if affirmative it behaves as if *qtQuoteChar* has been specified, on the contrary case, the field value is not wrapped just as if *qtNone* has been specified. **QuoteType** property is set to *qtQuoteChar* by default.
168168- **QuoteChar**:TUTF8Char. This holds the character to be used to wrap the field value in case of **QuoteType** of value *qtQuoteChar* has been specified or deduced if *qtAutoQuote* is set. Any instance of this character in the field value will be duplicated. by default **QuoteChar** is set to the " character.
169169- **Separator**:TUTF8Char. This is the character used to separate the fields in each record, by default is set to the ',' (COMMA) character but any UTF-8 valid character could be used. Some CSV files are actually TAB separated files, to get this, set Separator:=#9;
170170
171171The CSV exporter do not use the inherited UsedFont property value so any value set will be ignored. With default property values, TfrCSVExportFilter will produce Excel compatible files, the only caveat is that Excel will not recognize the file as UTF-8 encoded. To force Excel to recognize the encoding automatically, set the property **UseBOM** to true.
172172
173173### TfrHTMExportFilter
174174
175175inheritance: TfrExportFilter \<- TfrTextExportFilter \<- TfrHTMExportFilter.\
176176Located in: lr_e_htm.pas in LazReport package.
177177
178178This special text export filter produces valid "HTML 4.01 Transitional" output. Currently it defines only one additional property.
179179
180180- **UseCSS**:boolean. This property controls whether or not the produced output include CSS information, this property is set to true by default.
181181
182182# INICIO RÁPIDO
183183
184184## Reporte de Registros de un Dataset
185185
186186En este ejemplo diseñaremos un reporte para imprimir registros desde un componente derivado de TDataset (TDbf, TSQLQuery, TZTable, TZQuery, Etcetera.). Primero se supone que LazReport ya esta instalado y que el componente dataset, llamado "Dbf1" aquí, ya esta configurado y activo.
187187
1881881. Del separador LazReport en la paleta de componentes, seleccionamos el componente TfrReport y lo arrojamos en el Diseñador de Formularios, será nombrado automáticamente "frReport1".
1891892. Colocar también un componente TfrDbDataset, será nombrado "frDbDataset1"
1901903. Colocar un componente TButton, será nombrado "Button1", cambie su nombre a "btnShowReport"
1911914. Con el componente frDbDataset1 seleccionado, en el Inspector de Objectos seleccione "Dbf1" en la propiedad "Dataset"
1921925. Ahora seleccione frReport1 y usando el mismo procedimiento enlace su propiedad "Dataset" al componente "frDbDataset1":
193- <center>
194-
195- <figure>
196- <img src="lrformsetup.png" title="lrformsetup.png" />
197- <figcaption>lrformsetup.png</figcaption>
198- </figure>
199-
200- </center>
193+ ![](/wiki-images/4/46/Lrformsetup.png)
2011946. Haga clic con el botón derecho sobre frReport1 y del menú seleccione "Diseñar Reporte". Se mostrará El Diseñador de Reportes de LazReport.
2021957. En la ventana del Diseñador de LazReport, seleccione el menu Herramientas-\>Herramientas-\>Insertar Campos DB. El diálogo "Insertar Campos" aparecerá.
2031968. En la lista de campos seleccione los campos que desee que aparezcan en el reporte
2041979. Seleccione las opciones "Incluir Encabezados" y "Incluir Bandas", el resultado debería ser similar a esto:
205- <center>
206-
207- <figure>
208- <img src="lrinsertfieldsdialog.png" title="lrinsertfieldsdialog.png" />
209- <figcaption>lrinsertfieldsdialog.png</figcaption>
210- </figure>
211-
212- </center>
198+ ![](/wiki-images/7/7d/Lrinsertfieldsdialog.png)
21319910. Presione el botón "Aceptar", LazReport colocara bandas y campos en el reporte de una formasimilar a la siguiente:
214- <center>
215-
216- <figure>
217- <img src="lrreportwithfields.png" title="lrreportwithfields.png" />
218- <figcaption>lrreportwithfields.png</figcaption>
219- </figure>
220-
221- </center>
200+ ![](/wiki-images/4/43/Lrreportwithfields.png)
22220111. Presione el boton de Vista Previa ![](/wiki-images/b/bb/Lrprevieweye.png), LazReport mostrará entonces una vista previa del reporte:
223- <center>
224-
225- <figure>
226- <img src="lrpreviewreport.png" title="lrpreviewreport.png" />
227- <figcaption>lrpreviewreport.png</figcaption>
228- </figure>
229-
230- </center>
202+ ![](/wiki-images/4/43/Lrpreviewreport.png)
23120312. Guarde el reporte usando el menú Archivos-\>Guardar, seleccione el mismo directorio del proyecto actual y guardelo como listing1.lrf
23220413. Cierre el Diseñador de Reportes.
23320514. Haga doble clic sobre el botón btnShowReport y teclee el siguiente código:
234206
235207```delphi
236208 frReport1.LoadFromFile('listing1.lrf');
237209 frReport1.ShowReport;
238210```
239211
240212# Informar sobre errores
241213
242214   Por favor informa sobre los problemas utilizando el [seguimiento de errores (*bugtracker*) de lazarus/free pascal](http://www.freepascal.org/mantis/main_page.php), en el proyecto: "Lazarus Packages", Categoría "LazReport"; para remitir parches por favor, crea un informe de error y adjunta el parche al mismo.
243215
244216------------------------------------------------------------------------
245217
246218---
247219*From the Free Pascal wiki, page "LazReport Documentation/es", as it stood on 2020-01-29 after a change by Skalogryz, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
248220Category: Castellano
249221Category: Español

Back to history