RPT diseñado para Informix no funciona con PostgreSQL.
Detalle:
Estoy usando Crystal 2020 para diseñar archivos RPT. Inicialmente, los RPT fueron diseñados para la base de datos de Informix y se vinculó un procedimiento almacenado de Informix en el informe.
Luego escribimos una aplicación en C# para cargar archivos RPT y cargar dinámicamente el Origen de Datos ODBC de Informix para imprimir el informe. El informe se imprimió correctamente y no hubo ningún problema con Informix. De manera similar, diseñamos 500 informes y todos funcionaban perfectamente con el origen de datos del controlador ODBC de Informix.
Ahora el requisito ha cambiado y el cliente quiere usar la base de datos de PostgreSQL. Utilizamos los mismos RPT diseñados para Informix y proporcionamos el origen de datos ODBC de PostgreSQL en la aplicación C# y luego intentamos imprimir informes, pero todos los informes están vacíos. Mi comprensión es que el informe de Crystal es independiente de la base de datos y el mismo archivo RPT funcionará con todas las bases de datos si proporcionamos/cargamos dinámicamente el origen de datos ODBC (DSN).
Intenté identificar la causa raíz y abrí el RPT en Crystal 2020 y vinculé una función similar de PostgreSQL. Ahora noté que los nombres de los campos devueltos por el procedimiento almacenado no tienen ningún sufijo ":n" mientras que el sufijo ":n" se agrega a los nombres de los campos devueltos por los procedimientos almacenados de Informix. Y creo que el informe de Crystal espera el nombre exacto del campo con sufijo (:1,:2,:3..) en el informe para mostrar porque se utilizan los mismos campos en el informe para mostrar. Para hacer que el RPT de Informix funcione con PostgreSQL, tengo que reemplazar manualmente todos los nombres de campo en el RPT por uno nuevo (como
ddr_key1:1
a
ddr_key1
y
batch_key1:1
a
batch_key1)
Adjuntando Captura de pantalla:
Por favor, ayúdame a diseñar un RPT universal que pueda funcionar con todas las bases de datos o que pueda imprimir el informe de Crystal después de cargar dinámicamente cualquier Origen de Datos ODBC de una base de datos diferente. No estoy seguro de si eso es posible con Crystal Report.
Por lo tanto, el punto es que no quiero rediseñar los más de 500 informes nuevamente o reemplazar el nombre de campo en todas partes en cada archivo RPT que fueron diseñados para Informix y funcionaban perfectamente con Informix.
Quiero diseñar un solo archivo RPT que pueda funcionar con todas las bases de datos sin realizar cambios importantes o rediseñar los RPT.
image.png