Intenté abrir el archivo o modificarlo a través de código Java, obtuve el siguiente error:-
-Intenté exportar los datos de RPT a un archivo PDF- Enfrentando "ReportSDKException: Error al encontrar el nombre JNDI (IW)" debido nuevamente al origen de datos.
-Intenté conectarme a la base de datos pero me encontré con "ReportSDKException:
Error al encontrar el nombre JNDI (IW)
" debido al origen de datos de informes de Crystal incorporado ya que no podemos abrir el informe de Crystal.
Intenté abrir el archivo a través del visualizador de SAP Crystal pero me encontré con el siguiente error en la herramienta: "para obtener datos en el informe, abra y vuelva a guardar en la aplicación de diseño de Crystal Reports con la opción 'Guardar informe de datos' seleccionada".
Luego intenté en Visual Studio, pude abrir el archivo pero no ver la información de la base de datos, obtuve el error: - "
error al cargar la información de la base de datos en los informes de Crystal, el conector de base de datos crd_ads.dll".
Nota* :- El informe de Crystal es un archivo de terceros y no tengo información de la base de datos. Tengo que convertir este archivo RPT a un archivo PDF, pero intenté en código Java, pero obtuve el error JNDI faltante mencionado anteriormente. Por lo tanto, para la conversión, necesito información del origen de datos que está en el informe de Crystal. Así que tengo que abrir el archivo para eso. Entonces, ¿cómo puedo abrir el archivo y verificar la información de la base de datos????????????????
Encuentre fragmentos de código Java para convertir el archivo, pero obtuve el error anterior:-
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("Archivo exportado exitosamente");
//Cerrar flujos. byteArrayInputStream.close();
byteArrayOutputStream.close(); fileOutputStream.close();
}