escritorio crear aplicacion java report birt

java - crear - BIRT en una aplicación de escritorio



aplicacion de escritorio java netbeans (6)

Es posible y puedes crear fácilmente una vista previa del informe en un JeditorPane, tienes que descargar BIRT Runtime y luego puedes probar con el código de ejemplo publicado en esta publicación en el foro de Eclipse.

¿Alguna vez alguien usó un informe BIRT en una aplicación de escritorio? Vengo del entorno .NET y allí puede usar Crystal Reports para mostrar informes en aplicaciones de escritorio. ¿Esto también es posible con BIRT, sin tener que configurar un entorno de servidor?

¿Me puede dar algunos consejos sobre cómo alcanzar este objetivo?

Gracias por adelantado.


Sí, es posible. Aquí hay una descripción general. Aunque he usado Birt en el entorno del servidor, hasta donde sé, hay una interfaz RenderContext a través de la cual puede presentar sus informes de la manera que desee.


Sí, es posible. Lo usé en un proyecto que hice hace unos 1-2 años, así que tendré que volver a contactarlo con los detalles. (Aunque las cosas podrían haber cambiado desde entonces)

Aquí están los complementos que necesitaba:

<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="JUNIT_SRC_HOME/junitsrc.zip"/> <classpathentry kind="lib" path="lib/log4j-1.2.14.jar"/> <classpathentry kind="lib" path="lib/swt.jar"/> <classpathentry kind="con" path="SWT_CONTAINER"/> <classpathentry kind="lib" path="org.eclipse.birt.chart_2.1.2.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.device.extension_2.1.2.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.device.swt_2.1.1.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.engine_2.1.2.v20070205-1728.jar" sourcepath="C:/Programme/eclipse/plugins/org.eclipse.birt.chart.source_2.2.0.v20070209/src"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.engine.extension_2.1.2.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.runtime_2.1.2.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.core_2.1.2.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.emf.common_2.2.1.v200609210005.jar"/> <classpathentry kind="lib" path="org.eclipse.emf.ecore_2.2.1.v200609210005.jar"/> <classpathentry kind="lib" path="org.eclipse.emf.ecore.xmi_2.2.1.v200609210005.jar"/> <classpathentry kind="lib" path="js.jar"/> <classpathentry kind="lib" path="com.ibm.icu_3.4.5.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.ui_2.1.1.v20070205-1728.jar"/> <classpathentry kind="lib" path="org.eclipse.birt.chart.ui.extension_2.1.2.v20070205-1728.jar"/> <classpathentry kind="lib" path="lib/hsqldb.jar"/> <classpathentry kind="output" path="bin"/> </classpath>



package com.passport; import java.io.FileOutputStream; import java.util.Collection; import java.util.Iterator; import org.eclipse.birt.core.framework.Platform; import org.eclipse.birt.report.engine.api.EngineConfig; import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTask; import org.eclipse.birt.report.engine.api.IParameterDefnBase; import org.eclipse.birt.report.engine.api.IRenderOption; import org.eclipse.birt.report.engine.api.IReportEngine; import org.eclipse.birt.report.engine.api.IReportEngineFactory; import org.eclipse.birt.report.engine.api.IReportRunnable; import org.eclipse.birt.report.engine.api.IRunAndRenderTask; import org.eclipse.birt.report.engine.api.RenderOption; public class EngineReport { private static final long serialVersionUID = 1L; private IReportEngine engine=null; private EngineConfig engineconfig = null; private IReportEngineFactory factory = null; private String sourceReport; private String locationReport; private String reportRealPath = ""; public static void main(String[] args){ EngineReport engineReport = new EngineReport(); engineReport.save("src/com/passport/report.rptdesign","c:/tmp/rep.doc"); } private void save(String sourceReport, String locationReport) { this.sourceReport = sourceReport; this.locationReport = locationReport; IReportRunnable design = null; IRenderOption options = null; try { String reportFormat = locationReport.substring(locationReport.lastIndexOf(''.'')+1); sourceReport = "src/com/passport/report.rptdesign"; if ((sourceReport != null && (sourceReport.length() > 0)) ) { engineconfig = new EngineConfig(); reportRealPath = ""; Platform.startup(engineconfig); factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); engine = factory.createReportEngine(engineconfig); design = engine.openReportDesign(reportRealPath+sourceReport); IRunAndRenderTask task = engine.createRunAndRenderTask(design); IGetParameterDefinitionTask taskParam = engine.createGetParameterDefinitionTask( design ); Collection<?> params = taskParam.getParameterDefns( false ); String paramName = null; Iterator<?> iterOuter = params.iterator( ); while ( iterOuter.hasNext( ) ) { IParameterDefnBase param = (IParameterDefnBase) iterOuter.next( ); paramName = param.getName( ); if (paramName.equalsIgnoreCase("PR_SOME_PARAM")) { task.setParameterValue(paramName,"someparam"); } else if (paramName.equalsIgnoreCase("PR_SOME_PARAM_2")) { task.setParameterValue(paramName,"someparam2"); } } options = new RenderOption(); options.setOutputFormat(reportFormat); FileOutputStream fos = new FileOutputStream(locationReport); options.setOutputStream(fos); task.setRenderOption(options); task.run(); task.close(); engine.destroy(); fos.close(); } } catch(Exception e) { System.out.println(e.toString()); } }

}