RPT projetado para Informix não funciona com PostgreSQL.
Detalhe:
Estou usando o Crystal 2020 para projetar arquivos RPT. Inicialmente, os RPT foram projetados para o banco de dados Informix e um procedimento armazenado do Informix foi vinculado ao relatório.
Em seguida, desenvolvemos uma aplicação em C# para carregar arquivos RPT e carregar dinamicamente a Origem de Dados ODBC do Informix para imprimir o relatório. O relatório foi impresso corretamente e não houve problemas com o Informix. Da mesma forma, projetamos 500 relatórios e todos funcionaram perfeitamente com a origem de dados do driver ODBC do Informix.
Agora, o requisito mudou e o cliente deseja usar o banco de dados PostgreSQL. Utilizamos os mesmos RPT projetados para o Informix e fornecemos a origem de dados ODBC do PostgreSQL na aplicação C# e tentamos imprimir os relatórios, mas todos os relatórios estão vazios. Minha compreensão é que o relatório do Crystal é independente do banco de dados e o mesmo arquivo RPT funcionará com todos os bancos de dados se fornecermos/carregarmos dinamicamente a origem de dados ODBC (DSN).
Tentei identificar a causa raiz e abri o RPT no Crystal 2020 e vinculei uma função semelhante do PostgreSQL. Agora percebi que os nomes dos campos retornados pelo procedimento armazenado não têm nenhum sufixo ":n", enquanto o sufixo ":n" é adicionado aos nomes dos campos retornados pelos procedimentos armazenados do Informix. E acredito que o relatório do Crystal espera o nome exato do campo com sufixo (:1,:2,:3..) no relatório para exibir, porque os mesmos campos são usados no relatório para mostrar. Para fazer com que o RPT do Informix funcione com o PostgreSQL, tenho que substituir manualmente todos os nomes de campo no RPT por um novo (como
ddr_key1:1
para
ddr_key1
e
batch_key1:1
para
batch_key1)
Anexando Captura de tela:
Por favor, ajude-me a projetar um RPT universal que possa funcionar com todos os bancos de dados ou que possa imprimir o relatório do Crystal após carregar dinamicamente qualquer Origem de Dados ODBC de um banco de dados diferente. Não tenho certeza se isso é possível com o Crystal Report.
Portanto, o ponto é que não quero redesenhar os mais de 500 relatórios novamente ou substituir o nome do campo em todos os lugares em cada arquivo RPT que foram projetados para o Informix e funcionavam perfeitamente com o Informix.
Quero projetar um único arquivo RPT que possa funcionar com todos os bancos de dados sem fazer alterações significativas ou redesenhar os RPT.
image.png