¿Cómo convertir un montón de datos en un informe?
Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird son probablemente los más populares, pero no todos, de los muchos DBMS en los que se pueden crear, completar, modificar y administrar datos.
A menudo, están llenos de estos mismos datos durante bastante tiempo (por ejemplo, en sistemas de cronometraje, pedidos de bienes y la pregunta "¿cómo obtener información de ellos?" (Legible, comprensible para la vista y la mente humana, para un análisis más detallado). se pospone para más adelante. Consideremos qué hacer "entonces": cuando tengamos una "base de datos completa" y nosotros (o la administración de la empresa) nos hayamos preguntado "¿qué está sucediendo realmente? Hagamos un uso efectivo de los datos que recopilamos en el proceso , derivar información de esos datos y tomar decisiones basadas en esa información ". Básicamente, esta es la definición de Business Intelligence (BI) en lenguaje sencillo.
Hay muchas posibilidades para crearlos (informes), pero aquí veremos FastReport VCL. Hay un diseñador para generar plantillas, una vista previa y muchas otras funciones para realizar diferentes niveles de tareas; las hemos analizado en otros artículos, pero todavía no las hemos analizado todas.
FastReport puede trabajar con varias fuentes de datos (bases de datos) al mismo tiempo, o recuperarlas de las llamadas fuentes de usuario (no bases de datos): matrices o archivos normales.
¿Cómo obtener información de DB en Delphi?
Para conectar la fuente de datos, se debe aplicar un conector (TfrxDBDataSet) desde la paleta de componentes. Este es el vínculo entre los datos y FastReport.
Ahora te contaré brevemente sobre el rol de los componentes:
TfrxDBDataSet es un elemento que se usa para trabajar con la fuente de datos, también es compatible con TDataSet, pero TfrxIBODataSet se usa para IB Objects, también TfrxUserDataSet se usa para otros recursos - matrices, archivos, etc.
En primer lugar, utilizando la propiedad DataSet, conéctese a la consulta o tabla en sí, bien, o DataSource (se conecta al componente TDataSource).
Para que los datos ya estén en el informe, deberá especificar cuál de ellos se incluirá en nuestro informe. Esto también es fácil de hacer.
Seleccione en el diseñador FastReport VCL en el menú Informe -> Datos.
Seleccione los elementos necesarios y haga clic en "Aceptar".
Conecte esta fuente de datos a la banda. Seleccione DataSet (tabla) en sus propiedades. Ahora arrastre y suelte los campos de tabla / solicitud en las bandas correspondientes. Después de un solo arrastre tiene la peculiaridad de la vinculación automática en la banda - los campos de la base.
Si necesita ver el informe generado, ¡puede usar la vista previa! No olvide que puede agregar casi cualquier cosa, ya sean QR códigos, mapas y otros complementos, que son suficientes en FastReport VCL.
Vista previa:
En la esquina superior izquierda, seleccione "Archivo".
Aparecerá inmediatamente una lista de configuraciones. En esta, seleccione "Vista previa".
¡Eso es! Después de esta acción, podrá ver cómo será el informe terminado.
Si está satisfecho, puede guardar en diferentes formatos y exportar al almacenamiento en la nube o la memoria de la PC, así como imprimir.
Seleccione "Guardar" y el formato deseado.
El seleccionado se enviará a la ubicación especificada para guardar / exportar.
Se requieren los siguientes pasos para generar un informe a partir del código:
- borrar el informe.
- agregar fuente de datos.
- agregar la página "Datos"
- agregar página de informe.
- agregue bandas en la página.
- establecer las propiedades de la banda y conectarlas a los datos.
- agregue objetos en cada banda.
- establecer las propiedades del objeto y conectarlas a los datos.
¡Guarde la plantilla y presione "Vista previa"!
¡El informe está listo! ¡También podemos guardarlo en XML, PDF, incluso en CSV o DBF para un análisis más detallado!
Entiendo que tal abundancia de capturas de pantalla puede hacer que uno se deprima. Pero al escribir este artículo, hacer todas estas capturas de pantalla fue la tarea más larga y que consumió más tiempo. La preparación del informe en sí tomó alrededor de 5 minutos. ¿Y si es más rápido y sin capturas de pantalla?
Cree un informe de nuestra base de datos desde Delphi / Lazarus - ¡código!
Considere la posibilidad de crear un informe de tipo "lista" simple. Supongamos que tenemos los componentes frxReport1: TfrxReport y frxDBDataSet1: TfrxDBDataSet (este último está conectado a datos de DBDEMOS, tabla Customer.db). Nuestro informe contendrá una página con el título del informe y los bancos de datos maestros. La banda de título del informe tendrá un objeto con el texto "Hello FastReport!" y los datos maestros tendrán un objeto con una referencia al campo "CustNo".
Convierta los datos de la base de datos en un documento en Delphi / Lazarus / C ++ Builder | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView; { Clear the report } frxReport1.Clear; { add data source to the available list for the report } frxReport1.DataSets.Add(frxDBDataSet1); { add “data” page } DataPage := TfrxDataPage.Create(frxReport1); { add page } Page := TfrxReportPage.Create(frxReport1); { create unique name } Page.CreateUniqueName; { set page properties by default } Page.SetDefaults; { change page orientation } Page.Orientation := poLandscape; { add report title } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { it’e enough for a band to set coordinate Top and hight } { both coordinates are in pixels } Band.Top := 0; Band.Height := 20; { add object on report title } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; { this object will be aligned with the band width } Memo.Align := baWidth; { add master data } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { coordinate Top shouldn’t cross the previous band! } DataBand.Top := 100; DataBand.Height := 20; { add object on master data } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { connect to data } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { align text on the right side of the object } Memo.HAlign := haRight; { show the report } frxReport1.ShowReport; |
De esta manera, hemos aprendido cómo convertir datos invisibles pero recopilados en informes: documentos. ¡Ahora puede publicarlos o transmitirlos a los analistas!