Tentei abrir o arquivo ou modificá-lo através de código Java e recebi o seguinte erro:-
-Tentei exportar os dados do RPT para um arquivo PDF- Enfrentando "ReportSDKException: Erro ao encontrar o nome JNDI (IW)" devido novamente à fonte de dados.
-Tentei me conectar ao banco de dados mas me deparei com "ReportSDKException:
Erro ao encontrar o nome JNDI (IW)
" devido à fonte de dados de relatórios Crystal incorporada, pois não conseguimos abrir o relatório Crystal.
Tentei abrir o arquivo através do visualizador SAP Crystal mas encontrei o seguinte erro na ferramenta: "para obter dados no relatório, abra e salve novamente na aplicação de design de Crystal Reports com a opção 'Salvar relatório de dados' selecionada".
Em seguida, tentei no Visual Studio, consegui abrir o arquivo mas não visualizar as informações do banco de dados, recebi o erro: - "
erro ao carregar informações do banco de dados nos relatórios Crystal, o conector de banco de dados crd_ads.dll".
Nota* :- O relatório Crystal é um arquivo de terceiros e não tenho informações do banco de dados. Preciso converter este arquivo RPT para um arquivo PDF, mas ao tentar em código Java, recebi o erro JNDI mencionado anteriormente. Portanto, para a conversão, preciso das informações da fonte de dados contidas no relatório Crystal. Então, preciso abrir o arquivo para isso. Assim, como posso abrir o arquivo e verificar as informações do banco de dados????????????????
Encontre trechos de código Java para converter o arquivo, mas recebi o erro acima:-
ReportClientDocument rcd = new ReportClientDocument(); //File thefile=new File("D://sample1.rpt"); rcd.open("E:\\crystal-reports\\agelst02.rpt",0);
ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) rcd.getPrintOutputController().export(ReportExportFormat.PDF);
rcd.close(); File file = new File("E:\\crystal-reports\\myreport.pdf");
FileOutputStream fileOutputStream = new FileOutputStream(file);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(byteArrayInputStream.available());
byte[] byteArray=new byte[byteArrayInputStream.available()];
int x = byteArrayInputStream.read(byteArray, 0, byteArrayInputStream.available());
byteArrayOutputStream.write(byteArray, 0, x);
byteArrayOutputStream.writeTo(fileOutputStream);
System.out.println("Arquivo exportado com sucesso");
//Fechar fluxos. byteArrayInputStream.close();
byteArrayOutputStream.close(); fileOutputStream.close();
}