How to run BIRT reports using Java swing? [message #363069] |
Mon, 09 June 2008 09:46 |
Eclipse User |
|
|
|
Originally posted by: yazdani.mojtaba.yahoo.com
I want to generate a PDF file to produce a report of my data within
database. Home of my Birt runtime is C:\birt-runtime-2_2_2.
I have a report at this path: C:\BIRT\MyReport.rptdesign So how to run and
show this report when I click on myButton in my swing JFrame? I want to
show the report within my Frame and also out of my Frame, what are my
options to show my report? Could any one please provide me a sample code
to do this?
Help me please because I'm so very confused with BIRT.
|
|
|
Re: How to run BIRT reports using Java swing? [message #363072 is a reply to message #363069] |
Mon, 09 June 2008 15:32 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Mojtaba,
From an earlier post:
Attached is an example of calling BIRT through SWING. It uses a
JEditorPane, which is probably not the best for displaying HTML. To
create this class add the libs in the ReportEngine/lib jars to your
classpath and in the code set your birt home property to the location of
your report engine.
Jason
package birt.swing.example;
import java.io.ByteArrayOutputStream;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.HTMLRenderOption;
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;
public class HtmlReport
extends JFrame
{
JEditorPane myEditorPane = null;
IReportEngine engine=null;
EngineConfig config = null;
HtmlReport ()
{
myEditorPane = new JEditorPane ();
myEditorPane.setEditable(false);
JScrollPane scrollPane = new JScrollPane(myEditorPane);
JFrame myframe = new JFrame("BIRT Report");
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myframe.getContentPane().add(scrollPane);
myframe.setSize(600, 600);
myframe.setVisible(true);
}
public void runReport()
{
try{
IReportRunnable design = null;
//Open the report design
design = engine.openReportDesign("c:/xfer/TopNPercent.rptdesign");
//Create task to run and render the report,
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
HTMLRenderOption options = new HTMLRenderOption();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
options.setOutputStream(bos);
options.setOutputFormat("html");
options.setEmbeddable(true);
task.setRenderOption(options);
task.run();
task.close();
myEditorPane.setContentType("text/html");
myEditorPane.setText(bos.toString());
System.out.println("Finished Gen");
}catch( Exception ex){
ex.printStackTrace();
}
}
public void startPlatform(){
try{
config = new EngineConfig( );
config.setBIRTHome("C:\\birt\\birt-runtime-2_2_1\\ReportEngine ");
Platform.startup( config );
IReportEngineFactory factory = (IReportEngineFactory) Platform
..createFactoryObject(
IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
engine = factory.createReportEngine( config );
}catch( Exception e){
e.printStackTrace();
}
}
public void stopPlatform(){
engine.destroy();
Platform.shutdown();
}
public static void main (String[] args)
{
HtmlReport html = new HtmlReport ();
html.startPlatform();
System.out.println("Started");
html.runReport();
html.stopPlatform();
System.out.println("Finished");
}
}
Mojtaba Yazdani wrote:
> I want to generate a PDF file to produce a report of my data within
> database. Home of my Birt runtime is C:\birt-runtime-2_2_2.
> I have a report at this path: C:\BIRT\MyReport.rptdesign So how to run
> and show this report when I click on myButton in my swing JFrame? I want
> to show the report within my Frame and also out of my Frame, what are my
> options to show my report? Could any one please provide me a sample code
> to do this?
> Help me please because I'm so very confused with BIRT.
>
|
|
|
Thanks but there is an error [message #363102 is a reply to message #363072] |
Tue, 10 June 2008 05:42 |
Eclipse User |
|
|
|
Originally posted by: yazdani.mojtaba.yahoo.com
Thanks, I add mysql-connector-java-5.1.5-bin.jar lib to my project and run
your code but I see this error message:
SEVERE: DriverClassLoader failed to load class: com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
|
|
|
Re: Thanks but there is an error [message #363117 is a reply to message #363102] |
Tue, 10 June 2008 16:13 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Mojtaba,
Either put the mysql jar in the the jdbc plugin drivers directory
underneath the birt runtime or add similar code to your program:
config = new EngineConfig( );
config.setBIRTHome("C:\\birt\\birt-runtime-2_2_1\\ReportEngine ");
HashMap context = new HashMap( );
context.put("OdaJDBCDriverClassPath",
"C:/test/mysql-connector-java-5.0.4-bin.jar");
config.setAppContext(context);
Jason
Mojtaba Yazdani wrote:
> Thanks, I add mysql-connector-java-5.1.5-bin.jar lib to my project and
> run your code but I see this error message:
>
> SEVERE: DriverClassLoader failed to load class: com.mysql.jdbc.Driver
> java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
>
|
|
|
Question [message #363143 is a reply to message #363117] |
Wed, 11 June 2008 04:43 |
Eclipse User |
|
|
|
Originally posted by: yazdani.mojtaba.yahoo.com
Thanks so very much dear Jason, you said that JEditorPane is not the best
for displaying HTML. What's the standard and popular way for display
reports to the end user? When produce reports as PDF format how I can
display them? How to deploy reports with my application?
kind Regards
Mojtaba
|
|
|
Re: Question [message #363161 is a reply to message #363143] |
Wed, 11 June 2008 15:43 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Mojtaba,
I said this because the JEditorPane is not the best browser :>
If you are using Java 1.6 you may want to look at the java.awt.Desktop
class, which offers some solutions for opening existing apps including
the browser. If you are using an earlier version there are alot of libs
available (google) that help.
Jason
Mojtaba Yazdani wrote:
> Thanks so very much dear Jason, you said that JEditorPane is not the
> best for displaying HTML. What's the standard and popular way for
> display reports to the end user? When produce reports as PDF format how
> I can display them? How to deploy reports with my application?
>
> kind Regards Mojtaba
>
|
|
|
Re: Question [message #363173 is a reply to message #363161] |
Thu, 12 June 2008 00:34 |
Eclipse User |
|
|
|
Originally posted by: m.n.com
There is a new open source Swing Browser component - (can't find it now)
Also -http://lobobrowser.org/index.jsp
If you are using Eclipse RCP, someone created a plugin for Mozilla -
http://www.eclipsemozilla.org/
I typically display BIRT reports as PDFS. I use a PDF viewer. Unless
your product is GPL then there is not an opensource one. I use
JPDFViewer - it's worth the money.
Jason Weathersby wrote:
> Mojtaba,
>
> I said this because the JEditorPane is not the best browser :>
> If you are using Java 1.6 you may want to look at the java.awt.Desktop
> class, which offers some solutions for opening existing apps including
> the browser. If you are using an earlier version there are alot of libs
> available (google) that help.
>
> Jason
>
> Mojtaba Yazdani wrote:
>> Thanks so very much dear Jason, you said that JEditorPane is not the
>> best for displaying HTML. What's the standard and popular way for
>> display reports to the end user? When produce reports as PDF format
>> how I can display them? How to deploy reports with my application?
>>
>> kind Regards Mojtaba
>>
|
|
|
|
(no subject) [message #716549 is a reply to message #716487] |
Wed, 17 August 2011 16:36 |
|
Change the chart type from SVG to PNG. This can be done on the first
tab of the chart wizard.
I do not think a JEditorPane supports PDF.
You could render pdf to the Byte Array output stream and use something
like the following to display it.
http://today.java.net/article/2005/10/18/accessing-pdf-document-acrobat-viewer-javabean
Jason
On 8/17/2011 10:35 AM, Alessio Pollero wrote:
> I've tried to preview the report in the JEditorPane with the class
> posted in the previous post, the only thing that doesn't work is the
> chart in the report that doesn't appear in the JEditorPane even if it is
> present in the report, Why ?
> I'm also interested in the generation of the pdf to display in the
> JEditorPane control, someone have sample code to post ?
>
> Thanks.
>
>
|
|
|
|
Re: (no subject) [message #721117 is a reply to message #721021] |
Wed, 31 August 2011 22:40 |
|
This may be an issue with the JeditorPane or some of the styles we use.
You may want to try some of the other render options like:
options.setEmbeddable(false);
and
options.setEnableInlineStyle(true);
Jason
On 8/31/2011 1:50 PM, Alessio Pollero wrote:
> I have another problem, when preview the HTML of the report in the
> JeditorPane using the code posted above : the page generated if
> displayed in a browser is showed correctly and the size of the component
> of the page is exactly the same as the original, when i show the HTML
> code on the JeditoPane a get a page with different size ( seems that is
> shrunk horizontally and also the text is wrapped, i wanna to have the
> page shown as it is, without page shrink and wrapping of the text,
> Is it Possible ?
>
|
|
|
|
Re: How to run BIRT reports using Java swing? [message #834071 is a reply to message #363069] |
Sun, 01 April 2012 10:57 |
swathi puttaraj Messages: 2 Registered: April 2012 |
Junior Member |
|
|
Hi,
I av this foll code.. bt m nt able to get the pdf.. in the log it says.. running the report wit parameters..
i av js created one simple report with 2parameters.. setting it in java..
package com.swat;
import java.io.ByteArrayOutputStream;
import java.util.Collection;
import java.util.Iterator;
import java.util.logging.Level;
import org.eclipse.birt.core.exception.BirtException;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineConstants;
import org.eclipse.birt.report.engine.api.HTMLRenderOption;
import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTask;
import org.eclipse.birt.report.engine.api.IParameterDefnBase;
import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
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.IRunTask;
import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
import org.eclipse.birt.report.engine.api.PDFRenderOption;
import org.eclipse.birt.report.engine.api.RenderOption;
import org.eclipse.birt.report.engine.api.impl.RunAndRenderTask;
import org.eclipse.birt.report.engine.api.impl.RunTask;
import org.eclipse.datatools.connectivity.oda.IParameterRowSet;
public class CODE {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
EngineConfig config=new EngineConfig();
config.setEngineHome("C:\\birt-runtime-3_7_2\\ReportEngine");
config.setLogConfig("c:/temp", Level.FINE);
Platform.startup( config );
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
IReportEngine engine = factory.createReportEngine( config );
System.out.println("HELLO");
IReportRunnable design=engine.openReportDesign("C:/Users/Raj/workspace/Report/new_report1.rptdesign");
IGetParameterDefinitionTask task=engine.createGetParameterDefinitionTask(design);
Collection params=task.getParameterDefns(true);
Iterator iter=params.iterator();
while(iter.hasNext())
{
IParameterDefnBase param=(IParameterDefnBase)iter.next();
if(param instanceof IParameterGroupDefn)
{
//get the group name
IParameterGroupDefn group=(IParameterGroupDefn)param;
System.out.println("parameter group name:"+group.getName());
//parameters inside the group
Iterator i2=group.getContents().iterator();
while(i2.hasNext())
{
IScalarParameterDefn scalar=(IScalarParameterDefn)i2.next();
System.out.println("parameters inside group:"+scalar.getName());
}
}
else
{
IScalarParameterDefn scalar1=(IScalarParameterDefn)param;
System.out.println("normal parameters:"+scalar1.getName());
}
}
IRunAndRenderTask task1=engine.createRunAndRenderTask(design);
task1.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY,RunAndRenderTask.class.getClassLoader());
String number="123";
String studentId="1AT07I";
task1.setParameterValue("SID",number );
task1.setParameterValue("Student ID",studentId);
task1.validateParameters();
PDFRenderOption options=new PDFRenderOption();
options.setOutputFormat("pdf");
options.setOutputFileName("output/sample/GettingPDF.pdf");
task1.setRenderOption(options);
task1.run();
task1.close();
System.out.println(studentId);
}
catch (BirtException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
wn i print the studentid at the end.. its printin.. it means.. it is gettin set.. bt hw do i open it in pdf
[Updated on: Sun, 01 April 2012 11:02] Report message to a moderator
|
|
|
Re: How to run BIRT reports using Java swing? [message #835711 is a reply to message #834071] |
Tue, 03 April 2012 15:23 |
|
If you have added all the pojo jars to your projects classpath you do
not need to set:
config.setEngineHome("C:\\birt-runtime-3_7_2\\ReportEngine");
Jason
On 4/1/2012 6:57 AM, swathi puttaraj wrote:
> Hi,
> I av this foll code.. bt m nt able to get the pdf.. in the log it says..
> running the report wit parameters.. i av js created one simple report
> with 2parameters.. setting it in java..
> package com.swat;
>
> import java.io.ByteArrayOutputStream;
> import java.util.Collection;
> import java.util.Iterator;
> import java.util.logging.Level;
>
> import org.eclipse.birt.core.exception.BirtException;
> import org.eclipse.birt.core.framework.Platform;
> import org.eclipse.birt.report.engine.api.EngineConfig;
> import org.eclipse.birt.report.engine.api.EngineConstants;
> import org.eclipse.birt.report.engine.api.HTMLRenderOption;
> import org.eclipse.birt.report.engine.api.IGetParameterDefinitionTask;
> import org.eclipse.birt.report.engine.api.IParameterDefnBase;
> import org.eclipse.birt.report.engine.api.IParameterGroupDefn;
> 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.IRunTask;
> import org.eclipse.birt.report.engine.api.IScalarParameterDefn;
> import org.eclipse.birt.report.engine.api.PDFRenderOption;
> import org.eclipse.birt.report.engine.api.RenderOption;
> import org.eclipse.birt.report.engine.api.impl.RunAndRenderTask;
> import org.eclipse.birt.report.engine.api.impl.RunTask;
> import org.eclipse.datatools.connectivity.oda.IParameterRowSet;
>
> public class CODE {
>
> /**
> * @param args
> */
> public static void main(String[] args) {
> // TODO Auto-generated method stub
> try {
> EngineConfig config=new EngineConfig();
> config.setEngineHome("C:\\birt-runtime-3_7_2\\ReportEngine");
> config.setLogConfig("c:/temp", Level.FINE);
> Platform.startup( config );
> IReportEngineFactory factory = (IReportEngineFactory) Platform
> .createFactoryObject(
> IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
> IReportEngine engine = factory.createReportEngine( config );
>
>
> System.out.println("HELLO");
> IReportRunnable
> design=engine.openReportDesign("C:/Users/Raj/workspace/Report/new_report1.rptdesign");
>
> IGetParameterDefinitionTask
> task=engine.createGetParameterDefinitionTask(design);
> Collection params=task.getParameterDefns(true);
> Iterator iter=params.iterator();
> while(iter.hasNext())
> {
> IParameterDefnBase param=(IParameterDefnBase)iter.next();
>
> if(param instanceof IParameterGroupDefn)
> {
> //get the group name
> IParameterGroupDefn group=(IParameterGroupDefn)param;
> System.out.println("parameter group name:"+group.getName());
>
> //parameters inside the group
> Iterator i2=group.getContents().iterator();
> while(i2.hasNext())
> {
> IScalarParameterDefn scalar=(IScalarParameterDefn)i2.next();
> System.out.println("parameters inside group:"+scalar.getName());
> }
> }
> else
> {
> IScalarParameterDefn scalar1=(IScalarParameterDefn)param;
> System.out.println("normal parameters:"+scalar1.getName());
> }
>
> }
> IRunAndRenderTask task1=engine.createRunAndRenderTask(design);
> task1.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY,RunAndRenderTask.class.getClassLoader());
>
> String number="123";
> String studentId="1AT07I";
> task1.setParameterValue("SID",number );
> task1.setParameterValue("Student ID",studentId);
> task1.validateParameters();
> PDFRenderOption options=new PDFRenderOption();
> options.setOutputFormat("pdf");
> options.setOutputFileName("output/sample/GettingPDF.pdf");
> task1.setRenderOption(options);
> task1.run();
> task1.close();
> System.out.println(studentId);
> }
> catch (BirtException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> }
>
> }
>
>
|
|
|
|
Powered by
FUDForum. Page generated in 0.05593 seconds