Tuesday, May 30, 2006

Callisto Webinar

The Eclipse team will be starting a series or Webinars in June focused on the Callisto release. The BIRT and DTP teams have the pleasure of doing the first on June 5. We will be focusing on DTP, BIRT, and RCP integration.

If you haven't already signed up, check out Ian's Blog or go to the Eclipse site and register.

20 comments:

  1. Anonymous2:48 AM

    Hello

    Sorry for the question, but :

    With the Engine, is it possible to create a .pdf with a .rptDocument ?

    ------
    EngineConfig config = new EngineConfig(); config.setEngineHome("C:/birt-runtime-2_0_1/Report Engine");
    ReportEngine engine = new ReportEngine(config);
    IReportRunnable design = engine.openReportDesign("test.rptdesign");
    IRunAndRenderTask task = engine.createRunAndRenderTask(design);
    FORenderOption option = new FORenderOption(); option.setOutputFileName("test.pdf"); option.setOutputFormat("pdf"); task.setRenderOption(option);
    task.run();
    engine.destroy();
    ---------

    I would build a pdf with a rptDocument.

    I writed that :
    --------------
    IReportDocument document = engine.openReportDocument("test.rptdocument");
    IDataExtractionTask task = engine.createDataExtractionTask(document);
    ------------

    But after ? Is it possible ?

    Thank you very much :)

    Good Bye

    ReplyDelete
  2. Anonymous7:38 AM

    I have a couple of questions :

    1. Is it possible to i18n the display name of parameter in the parameter dialog ? We can i18n the text fields, ... but the parameters ? :)

    2. I saw in the source code several comments on "print report" and "export pdf or excel" report. (All code is Ok except the end. For example : "Print" display a javascript popup with the URL of Google lol) Will you implement this functionnality in the next version of BIRT ?

    Thanks :)

    Nico

    ReplyDelete
  3. Here is a quick example of generating the rpt document and then using it to render to pdf.


    import java.util.HashMap;
    import org.eclipse.birt.report.engine.api.EngineConfig;
    import org.eclipse.birt.report.engine.api.EngineConstants;
    import org.eclipse.birt.report.engine.api.EngineException;
    import org.eclipse.birt.report.engine.api.HTMLRenderContext;
    import org.eclipse.birt.report.engine.api.HTMLRenderOption;
    import org.eclipse.birt.report.engine.api.IRenderTask;
    import org.eclipse.birt.report.engine.api.IReportDocument;
    import org.eclipse.birt.report.engine.api.IReportRunnable;
    import org.eclipse.birt.report.engine.api.IRunTask;
    import org.eclipse.birt.report.engine.api.ReportEngine;
    public class RenderReport {
    static void renderReport() throws EngineException
    {
    //Engine Configuration - set and get temp dir, BIRT home, Servlet context
    EngineConfig config = new EngineConfig();
    config.setEngineHome( "C:/birt-runtime-2_0_1/birt-runtime-2_0_1/Report Engine" );

    //Create the report engine
    ReportEngine engine = new ReportEngine( config );



    //Open a report design - use design to modify design, retrieve embedded images etc.
    IReportRunnable design = engine.openReportDesign("C:/test/Render/Pages.rptdesign");

    //Create task to run the report - use the task to execute and run the report,
    IRunTask rtask = engine.createRunTask(design);


    //run the report and destroy the engine
    rtask.run("c:/test/Render/Pages.rptdocument");


    //Open a report document
    IReportDocument iReportDocument = engine.openReportDocument("c:/test/Render/Pages.rptdocument");

    IRenderTask task = engine.createRenderTask(iReportDocument);
    System.out.println("============================== " + iReportDocument.getPageCount());


    //Set Render context to handle url and image locataions
    HTMLRenderContext renderContext = new HTMLRenderContext();
    renderContext.setImageDirectory("image");
    HashMap contextMap = new HashMap();
    contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext );
    task.setAppContext( contextMap );

    //Set Render Options
    HTMLRenderOption options = new HTMLRenderOption();

    //options.setOutputStream(System.out);
    options.setOutputFileName("c:/test/Render/pages.pdf");
    options.setOutputFormat("pdf");
    task.setRenderOption(options);


    //Render Pages 1-2,7
    task.render("1");

    task.close();

    engine.destroy();
    }
    public static void main(String[] args) {
    try
    {
    renderReport( );
    }
    catch ( Exception e )
    {
    e.printStackTrace();
    }
    }
    }

    ReplyDelete
  4. In previous code I believe you can just use a RenderOptionsBase class instead of the HTMLRenderOption.

    1 - If you select the parameter and then look at the property editor, you will see an entry for localization. You should be able to put your key there.

    2 - I believe the Print icon will be added back in BIRT 2.1.

    ReplyDelete
  5. Anonymous11:39 PM

    Thank you very much for your answer :)
    All is ok except the localization of the parameter :( In the properties, I see only a key for the tool tip :(
    But it is not very important, I will apply another solution for my integration of BIRT in my application :)

    Thanks again :)

    Nico

    ReplyDelete
  6. These are now posted on the DTP site.

    Jason

    ReplyDelete
  7. Anonymous1:46 AM

    hi...
    i want to know how the birt report objects are internally represented in the java code....as in if i want to read the data form the BIRT report and display it on the console...
    i would be grateful if u can help with some code snippets or methods..
    --
    Thanx and Regards,
    Priyanka.

    ReplyDelete
  8. hi...
    i want to know how the birt report objects are internally represented in the java code....as in if i want to read the data form the BIRT report and display it on the console...
    i would be grateful if u can help with some code snippets or methods..
    --
    Thanx and Regards,
    Priyanka.

    ReplyDelete
  9. Take a look at the org.eclipse.birt.report.model project. This project contains the element types. You should be able to add to your project for debugging purposes.

    ReplyDelete
  10. Anonymous7:26 AM

    Hi
    I've a problem when I want to display my *.rptdesign with de preview Eclipse option.
    I've made a design with a table and a bar chart. When I try to display it I only see the table.
    I've tried with several examples and the result is the same. I can't preview the design avec the preview Eclipse option.
    I don't have any Exception and the data source and data set has no problem (because I can see the table), so I've thought the error can be at the Java Build Path configuration.

    Can you tell me which .*jar I must put there to display my design??

    Please I need to sort out this problem as soon as posible.
    Or if you have other idea that can help me....

    THANKS.

    ReplyDelete
  11. If you are just using the designer, you should not have to do anything special for previewing a chart. Is your chart output type set to SVG? If so try BMP/PNG/JPG.

    Jason

    ReplyDelete
  12. Anonymous1:45 AM

    Thank you
    I've added org.eclipse.birt.chart.engine to my project and now I can see the designs at the web page, but only if they are made with the interface. If I try to see my own design (made with java) at the web page I can't see it.
    I enabled the "Enable SVG chart" option (Window/Preferences/Report Desing/Prewiew), but it isn't the solution...
    Can you tell me how to change the image output format? I can't find the function I must use...
    Can you help me?
    Thanks!

    ReplyDelete
  13. Anonymous2:06 AM

    Hi, I've tried changing the output format, but it isn't the solution...
    I've read that org.eclipse.birt.core is used, but if I add it at the Java Build Path I've a NullPointerException at the line 'engine = factory.createDesignEngine( config );' because factory is null. If org.eclipse.birt.core isn't at the Java Build Path factory isn't null...
    How I can do?
    Other ideas???
    Thanks

    ReplyDelete
  14. The only libs you need in the build path are the ones in the Runtime download. Specifically the ReportEngine/lib directory. You need to set BIRT_HOME to locate the rest of the BIRT plugins. Send me an email with you code if you would like me to look into it.

    Jason

    ReplyDelete
  15. Anonymous8:55 AM

    Ok, Jason
    I've sent an email with my code.
    That's what I've done. I've put in the build path the packages at the ReportEngine/lib folder and reportItem jar.
    I've installed:
    birt-report-designer-all-in-one-2.1.2
    birt-runtime-2.1.2
    birt-charts-2.1.2
    birt-sample-plugins-2.1.2

    My Java Build Path is like this (without ".jar" et the version number):

    chartengineapi
    com.ibm.icu
    commons-cli
    commons-codec
    coreapi
    dataadapterapi
    dteapi
    engineapi
    flute
    iText1.3
    iTextAsian
    js
    modelapi
    org.eclipse.birt.chart.device.extension
    org.eclipse.birt.chart.device.pdf
    org.eclipse.birt.chart.device.svg
    org.eclipse.birt.chart.device.swt
    org.eclipse.birt.chart.engine
    org.eclipse.birt.chart.engine.extension
    org.eclipse.birt.chart.reportitem
    org.eclipse.emf.common
    org.eclipse.emf.ecore
    org.eclipse.emf.ecore.xmi
    sac
    scriptapi
    servlet

    That's right?
    Thanks

    ReplyDelete
  16. Anonymous6:32 AM

    Hi,
    I've tried with the code que you've said and it works.
    Now I would like to make the design and generate the HTML page within the same project, but I get the Exception below:
    Plug-in org.eclipse.birt.chart.reportitem was unable to load class org.eclipse.birt.chart.reportitem.ChartReportItemGenerationImpl.

    How can I solve it??
    Thanks

    ReplyDelete
  17. Send me the code you are using to run the report.

    Jason

    ReplyDelete
  18. Anonymous7:49 AM

    Hi,
    I have a chart whith department's number on the X axes and sales on the Y axes. The problem comes when I display the report because the department's numbers has decimals

    I tried with:
    NumberFormatSpecifier nfs = NumberFormatSpecifierImpl.create( );
    nfs.setFractionDigits( 0 );
    ...
    xAxisPrimary.setFormatSpecifier( nfs );

    And I after that I tried whith:
    xAxisPrimary.setType(AxisType.LINEAR_LITERAL);
    but this line returns an exception when I display the report:
    The following items have errors:

    Chart (id = 25):
    + Bars may not be rendered on a value scale

    exception.xvalue.scale.bars ( 1 time(s) )
    detail : org.eclipse.birt.chart.exception.ChartException: Bars may not be rendered on a value scale
    at org.eclipse.birt.chart.render.Bar.renderSeries(Bar.java:159)
    at org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2256)
    at org.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:303)
    at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1231)
    at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java:471)
    at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.processExtendedContent(LocalizedContentVisitor.java:653)
    at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.visitForeign(LocalizedContentVisitor.java:359)
    at org.eclipse.birt.report.engine.content.impl.ForeignContent.accept(ForeignContent.java:58)
    at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.localize(LocalizedContentVisitor.java:111)
    at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:38)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:63)
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:159)
    at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:94)
    at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutChildren(HTMLInlineStackingLM.java:138)
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:159)
    at org.eclipse.birt.report.engine.layout.html.HTMLRowLM.layout(HTMLRowLM.java:30)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutChildren(HTMLBlockStackingLM.java:68)
    at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:74)
    at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:159)
    at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layoutChildren(HTMLPageLM.java:139)
    at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:81)
    at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:85)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:205)
    at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:142)
    at CreateReport.runDesign(CreateReport.java:78)
    at ReportGenerator.doGet(ReportGenerator.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:619)

    Please, how should I configure X Axis???

    ReplyDelete
  19. Have you tried setting the x axis to TEXT_LITERAL?

    Jason

    ReplyDelete
  20. Anonymous9:46 AM

    Can BIRT output a file with PCL code?

    ReplyDelete