La Red de Conocimientos Pedagógicos - Currículum vitae - Cómo hacer referencia a CryStal Report en IFIX

Cómo hacer referencia a CryStal Report en IFIX

Aquí principalmente quiero discutir con ustedes el modelo de marco general de Crystal Report. La atención se centra en cómo utilizar VB para integrar informes y datos de manera efectiva y desarrollar informes rápidamente. Espero inspirar a otros y encontrar algunos de los mejores y más rápidos modelos de desarrollo.

Este artículo no entrará en detalles técnicos todavía, por lo que puede que te resulte demasiado sencillo. Pero este problema es de hecho el problema número uno en nuestro desarrollo. En discusiones futuras, podremos discutir detalles técnicos específicos para temas específicos.

Preparé un código fuente y lo envié a algunos internautas, pero no hice pruebas detalladas. Planeo terminar la prueba mañana y pasado mañana. Si la necesitas, debería poder enviártela alrededor del lunes (¡ay, tengo que trabajar horas extras el sábado y el domingo!).

Nota: Si lo necesita, deje un mensaje y no se limite a enviarme un mensaje corto.

Explicación de abreviaturas

Archivo de plantilla RPT Crystal Report. Archivos de plantilla y estilo de informe generados utilizando el diseñador Crystal Report, con el sufijo RPT

RDC Crystal Report Designer. Componente El modelo de objetos de Crystal Report, utilizado para operar Crystal Report en VB.

Control CRV Crystal Report Viewer, utilizado para proporcionar una interfaz de vista previa de informes en VB.

CRC Crystal Report Control. El control OCX, utilizado para proporcionar una interfaz de vista previa de informes en VB antes de Crystal Report 8.0, ahora ha sido reemplazado por CRV.

Objeto de fuente de datos CDO Crystal El objeto de fuente de datos proporcionado por Crystal Report se utiliza para crear fuentes de datos dinámicas que son independientes de la base de datos.

1. ¿Cómo obtener datos dinámicamente y generar informes?

Una de las principales características del informe es generar un documento que se puede ver e imprimir en función del estilo de la plantilla prediseñadas y los datos dinámicos en tiempo de ejecución.

En términos generales, la línea principal de todo el proceso de generación de informes en un programa VB se utiliza para emitir comandos a Crystal Report y otras herramientas para satisfacer las necesidades del usuario.

VB opera CrystalReport a través del modelo RDC. Generalmente hay dos modos para generar informes:

1. VB-RPT-DB

VB llama al archivo RPT y el archivo RPT consulta la base de datos para obtener datos y generar informes. El proceso detallado de este método es el siguiente:

1) Diseñe el archivo RPT en Crystal Report Al diseñar, puede conectarse a la base de datos en Crystal Report para obtener datos de consulta y obtener una vista previa del informe al instante.

2) En VB, abra el archivo RPT a través del modelo RDC y pase la información requerida para el tiempo de ejecución y la conexión de la base de datos, como el nombre de la base de datos, el usuario, la contraseña, etc., al archivo RPT, si existe. son Parámetros, también debe pasar parámetros.

3) Conecte el archivo RPT a la base de datos, ejecute la consulta para obtener los datos y genere un informe.

4) En VB, abra el informe a través del control CRV para obtener una vista previa o imprimir, exportar y otras operaciones a través del modelo RDC.

2. VB-DB-RPT

VB primero consulta la base de datos para obtener el conjunto de resultados, luego abre el archivo RPT y pasa el conjunto de resultados para generar un informe. El proceso detallado de este método es el siguiente:

1) Diseñar el archivo RPT en Crystal Report. Dado que el conjunto de resultados aún no se ha generado en este momento, el archivo TTX solo se puede utilizar como fuente de datos virtual para leer información de campo. Por lo tanto, antes de diseñar el archivo RPT, se debe generar un archivo TTX basado en la estructura del conjunto de resultados final.

2) En VB, conéctese a la base de datos, ejecute la consulta y obtenga el conjunto de resultados.

3) En VB, abra el archivo RPT a través del modelo RDC, pase el conjunto de resultados y los parámetros y genere el informe.

4) En VB, abra el informe a través del control CRV para obtener una vista previa o imprimir, exportar y otras operaciones a través del modelo RDC.

Obviamente el modo VB-RPT-DB es muy superior al modo VB-DB-RPT, lo que se refleja en los siguientes aspectos:

1. El modo DB-RPT generalmente requiere la generación de un archivo TTX con la misma estructura de campos que el resultado final establecido como una fuente de datos virtual, lo que aumenta la carga de trabajo de desarrollo y mantenimiento, y los informes generados no se pueden obtener una vista previa en tiempo real. El modo VB-RPT-DB está conectado directamente a la base de datos, no se necesita ningún archivo TTX y se pueden ver los datos finales.

2. Cuando se ejecuta, después de obtener el conjunto de resultados en el modo VB-DB-RPT, debe crear el objeto del conjunto de resultados correspondiente en VB y pasarlo al archivo RPT, que es consistente con el. Modo VB-RPT-DB En comparación con esto, hay un objeto más grande: el objeto del conjunto de resultados.

3. Cuando se ejecuta, el conjunto de resultados del modo VB-DB-RPT se transfiere de DB a VB y luego a RPT, mientras que el conjunto de resultados del modo VB-RPT-DB se transfiere directamente desde DB. a RPT, menos Una gran transferencia de datos.

4. Durante el desarrollo, en modo VB-DB-RPT, cada vez que se agrega un informe, se deben agregar dos fragmentos de código: consultar el conjunto de resultados y generar el informe. El modo VB-RPT-DB puede implementar fácilmente una interfaz para manejar todos los informes y casi no es necesario agregar código VB para agregar nuevos informes. La cantidad de código entre los dos no es la misma.

2. ¿Cómo generar un archivo de plantilla de informe?

Diseñar el formato del informe es el primer paso en todo trabajo de informe. En CrystalReport, hay dos lugares donde puede diseñar informes: el diseñador integrado de Crystal Report y el diseñador de informes integrado en VB. Personalmente creo que el diseñador de informes integrado hace más daño que bien y no se recomienda.

En tercer lugar, cómo consultar la base de datos y obtener datos en tiempo de ejecución.

Hay muchas formas de consultar DB para obtener el conjunto de resultados a través de VB, y todos están familiarizados con ellas. Las principales formas de consultar bases de datos a través de RPT son: procedimientos almacenados, vistas, tablas, Crystal Query y consultas SQL directas.

La más sencilla es conectarse directamente a la tabla y realizar consultas sobre la misma. Sin embargo, los informes generales no incluirán sólo una tabla. Aunque el método para realizar consultas de varias tablas y establecer condiciones de consulta en un archivo RPT es simple, distrae la atención de la lógica general de la consulta y es engorroso de operar, por lo que no es una buena idea. Las vistas y los procedimientos almacenados son las mejores opciones, pero las vistas no tienen tanto rendimiento como los procedimientos almacenados, por lo que recomiendo utilizar procedimientos almacenados.

Los procedimientos almacenados y las vistas se colocan en la base de datos. Si no está permitido o es imposible crear vistas y procedimientos almacenados en la base de datos, también puede utilizar la función de consulta SQL propia de Crystal Report para escribir la declaración de consulta SQL completa en el archivo RPT.

A juzgar por la propia descripción de Crystal Report, el archivo Crystal Query es como el procedimiento almacenado del propio Crystal Report. Sin embargo, esta herramienta no está incluida en Crystal Report 9. Una descarga gratuita por separado está disponible en el sitio web oficial de Crystal Report. Esta herramienta tiene dos limitaciones: para cada campo en Crystal Queryk, la longitud del valor del campo no puede exceder los 20 caracteres y los datos totales del campo no pueden exceder los 20 caracteres. Vi esta información en el archivo de ayuda de Crystal Report. Si esto es cierto, Crystal Query no tiene competitividad. Crystal Report también admite la escritura SQL directamente al diseñar archivos RPT y también puede traer parámetros. Esta es una buena característica. No sé si también existen las dos restricciones anteriores.

No he probado cuidadosamente la función de consulta SQL incorporada en Crystal Report, por lo que no es apropiado hacer más comentarios aquí. Pero recomiendo encarecidamente utilizar vistas y procedimientos almacenados en bases de datos. Separa efectivamente el trabajo de lógica y diseño en el trabajo de informes, lo que favorece la división del trabajo y la cooperación, así como la edición, el mantenimiento y las actualizaciones.

El uso de procedimientos almacenados de Oracle tiene las siguientes restricciones, que son similares a SQL Server.

> Para conectarse a Oracle mediante una conexión local u ODBC, no puede utilizar una conexión OLE DB. Se recomienda utilizar conexión local.

> Los procedimientos almacenados deben colocarse en un paquete. El cursor del conjunto de resultados debe declararse en el encabezado.

> Los procedimientos almacenados sólo pueden tener parámetros de entrada.

> El procedimiento almacenado solo puede devolver un conjunto de resultados, que se devuelve en forma de parámetro de cursor de entrada-salida (IN OUT).

> Los nombres y tipos de campos en el conjunto de resultados están determinados directamente por la instrucción SQL que abre el cursor. Por lo tanto, no se puede utilizar SQL dinámico ni se pueden cargar datos en el cursor mediante llamadas anidadas a procedimientos almacenados.

Cuarto, cómo pasar múltiples fuentes de datos y parámetros.

Si todas las fuentes de datos están en modo VB-RPT-DB, entonces el trabajo de conexión que debe realizar VB es muy simple, simplemente pase una conexión establecida dinámicamente a RDC. Luego, RDC pasa la conexión a cada fuente de datos presente en el RPT. Esto es fácil incluso cuando el informe contiene subinformes.

Si la fuente de datos es modo VB-DB-RPT, o es una mezcla de varios tipos. Es mejor establecer un nombre único para cada fuente de datos (incluida la fuente de datos del subinforme) al diseñar el informe, y RDC pasará la información de conexión o el conjunto de resultados a cada fuente de datos según el nombre.

De hecho, incluso si hay varias fuentes de datos en un informe, Crystal Report requiere una correspondencia de clave primaria entre sí y no se puede procesar una fuente de datos antes de procesar otra, por lo que estas múltiples fuentes de datos siguen siendo esencialmente. una fuente de datos. He realizado muchos informes complejos y rara vez encontré la necesidad de utilizar múltiples fuentes de datos. Los subinformes se utilizan en aproximadamente la mitad de los casos.

Todos los parámetros del informe se pueden pasar desde VB. Se recomienda establecer un nombre único para todos los parámetros (incluidos los parámetros del subinforme) y dejar que RDC pase el valor de acuerdo con el nombre. Así que no se preocupe por los subinformes que aparecen en el informe.

Al procesar una gran cantidad de informes, al almacenar la ruta del archivo RPT del informe y la información de sus parámetros en la base de datos, se pueden agregar nuevos informes sin modificar el programa VB. En términos generales, la mayoría de los informes de un sistema tienen parámetros similares y son fáciles de controlar.

2.1 Elaborar una plantilla general.

Todos los informes de un proyecto suelen tener un formato y estándar unificados. Es inteligente preparar un archivo RPT con el formato y los estándares más básicos como plantilla. Sin embargo, la función del asistente de plantillas en Crystal Report no es muy potente. Es más rápida que crear directamente un archivo RPT y luego copiarlo.

2.2 Establecer el modo predeterminado de campos y datos en el entorno de edición de Crystal Report.

Es muy importante configurar los formatos de visualización y fuentes para diferentes campos, diferentes tipos de datos en el menú de opciones de Crystal Report (Archivo -> Opciones). Puede garantizar que el diseño de la plantilla cumpla plenamente con los estándares en la mayor medida posible. Reducir la duplicación de trabajo.

También hay tres configuraciones muy importantes en Archivo->Opciones de informe:

1) Convierta el valor NULL de la base de datos al valor predeterminado, seleccione.

2) Convierta otros valores NULL a valores predeterminados y seleccione.

3) Si no hay ningún registro, cancelar la impresión y dejarlo sin marcar.

2.3 Elija una fuente que admita tanto chino como inglés.

La elección de la fuente afecta directamente al efecto de diseño. Algunas fuentes no admiten chino y aparecerán caracteres confusos al mostrar chino. Algunas fuentes chinas no se pueden utilizar en inglés puro. Algunas fuentes tienen diferentes tamaños en los entornos chino e inglés de Windows 2000/XP. Algunas fuentes no son nativas de Windows.

Lo mejor es decidir qué fuente usar después de probarla en varios entornos.

2.4 Utilice campos de fórmula, campos de resumen, campos de total de tiempo de ejecución y variables para implementar la lógica de la página de datos.

La fórmula en Crystal Report es en realidad una expresión que utiliza las funciones y operadores de Crystal Report para operar los datos en la fuente de datos para obtener los campos que finalmente se desean mostrar. También puedes utilizar variables en fórmulas.

Hay dos fórmulas especiales en Crystal Report: fórmula de resumen y fórmula total de tiempo de ejecución. Ambas fórmulas se pueden editar en el editor de fórmulas (CR lo llama Formula Studio), pero son más complicadas. CR proporciona un método más simple: seleccione el campo que se contará en el informe, haga clic en el menú contextual, seleccione el elemento "Insertar..." y aparecerán dos elementos del submenú: resumen y total acumulado.

Los campos de resumen se utilizan para realizar estadísticas de resumen grupales o globales en campos específicos.

El campo total en tiempo de ejecución añade control de barra al campo resumen, permitiendo obtener los datos totales de otro campo en función de los diferentes valores de un campo en el informe.

Se pueden utilizar variables en el editor de fórmulas. Según el alcance, existen variables locales, variables globales y variables compartidas. Las variables locales sólo son válidas dentro de una fórmula o función. Las variables globales son válidas en todo el informe (pero no en los subinformes) y las variables compartidas son válidas en un archivo de informe, incluidos los subinformes.

2.5 Utilizar subinformes.

Según experiencias pasadas en proyectos, aproximadamente la mitad de los informes utilizan subinformes. En Crystal Report, un informe en realidad sólo puede procesar un conjunto de resultados. Hay múltiples conjuntos de resultados, que requieren una correspondencia de clave primaria entre sí. Siguen siendo uno por naturaleza. Si un informe va a mostrar varias secciones, debe utilizar subinformes. Un subinforme tiene todas las características de un informe completo, excepto que no tiene encabezados y pies de página separados.

Cuando se muestra la página, el ancho del subinforme estará limitado por su ancho en el informe principal, por lo que al colocar el subinforme en el informe principal, debe darle suficiente ancho.

El informe principal y el subinforme se pueden vincular mediante la relación campo-parámetro. Es decir, los campos del informe principal se utilizan como parámetros del subinforme.

2.6 Utilizar tablas cruzadas.

Hay dos campos A y B. Se requiere que todos los valores de A se muestren en el encabezado de la primera columna y todos los valores de B se muestren al principio de cada fila en El cuerpo de la columna muestra los resultados calculados en función de los valores A y B correspondientes, como se muestra a continuación. Esta es una tabla cruzada.

Se puede crear fácilmente un objeto en Crystal Report en la tabla cruzada. Tenga en cuenta que la tabla cruzada debe colocarse en el pie de página del informe (Report Footer), no en los detalles o el encabezado. De lo contrario, se producirá una visualización duplicada y datos incompletos.

Crystal Report no admite bien la función de paginación de tablas cruzadas, así que trate de no permitir que los datos excedan una página.

2.7 Utilizar tablas de columnas.

La llamada tabla de columnas consiste en dividir la página en varias columnas para mostrar los resultados. Esto permite mostrar varios registros en la misma fila.

Seleccione la sección de detalles en el experto de la sección. Tenga en cuenta que solo puede seleccionar la sección general de la sección de detalles, no las subsecciones. Puede emitir opciones de formato de varias columnas. sección adicional en la pestaña Diseño. En esta pestaña puede configurar columnas.

2.8 Es mejor no mostrar el número total de páginas en cada página.

Mostrar el número total de páginas hará que el informe se calcule completamente una vez más, lo que reducirá seriamente el rendimiento. Es mejor no mostrar el número total de páginas en cada página.

2.9 Imprimir el informe para comprobar el formato y los datos.

Esta es la clave. Si no lo imprimes y lo revisas, será difícil garantizar que el formato y los datos estén libres de errores.

2.10 Establecer condiciones de visualización condicionales para campos o secciones

Todos los objetos en Crystal Report, desde tan grandes como una sección hasta tan pequeños como un campo, pueden limitar el formato de visualización. En el editor de formato de estos objetos, hay una opción para suprimir la visualización y hay un botón de edición de fórmulas a la derecha. Haga clic en este botón para ingresar al editor de fórmulas y editar una expresión lógica para controlar las condiciones para suprimir la visualización. Tenga en cuenta que la fórmula condicional solo funcionará si la opción para suprimir la visualización está marcada.

2.11 Formatear los campos condicionalmente

Si encuentra requisitos similares, debe formatear los campos condicionalmente: agregue todos los campos A con valores mayores a 1000 subrayados.

El formato condicional de los campos solo se puede lograr en el Editor de fórmulas (Formula Studio).

2.12 Preste atención a la alineación de los campos al exportar a RTF.

Si los campos del informe se colocan al azar, habrá una gran confusión en la posición al exportar el archivo RTF.