Difference between revisions of "Java - Simple Design Engine API (BIRT)"

From Eclipsepedia

Jump to: navigation, search
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Backlink|Integration Examples (BIRT)}}
 +
 
== Java - Simple Design Engine API ==
 
== Java - Simple Design Engine API ==
  
Line 33: Line 35:
 
   * Simple BIRT Design Engine API (DEAPI) demo.
 
   * Simple BIRT Design Engine API (DEAPI) demo.
 
   */
 
   */
 
 
  public class SimpleCreate
 
  public class SimpleCreate
 
  {
 
  {
+
    public static void main( String[] args )
  public static void main( String[] args )
+
    {
{
+
        try
try
+
        {
{
+
            buildReport( );
buildReport( );
+
        }
}
+
        catch( IOException e )
catch ( IOException e )
+
        {
{
+
            e.printStackTrace();
// TODO Auto-generated catch block
+
        }
e.printStackTrace();
+
        catch( SemanticException e )
}
+
        {
catch ( SemanticException e )
+
            e.printStackTrace();
{
+
        }
// TODO Auto-generated catch block
+
    }
e.printStackTrace();
+
}
+
}
+
 
 
 
 
// This function shows how to build a very simple BIRT report with a
+
    // This method shows how to build a very simple BIRT report with a
// minimal set of content: a simple grid with an image and a label.
+
    // minimal set of content: a simple grid with an image and a label.
 
  
 
  
static void buildReport( ) throws IOException, SemanticException
+
    static void buildReport() throws IOException, SemanticException
{
+
    {
// Create a session handle. This is used to manage all open designs.
+
        // Create a session handle. This is used to manage all open designs.
// Your app need create the session only once.
+
        // Your app need create the session only once.
 
  
 
  
  //Configure the Engine and start the Platform  
+
        //Configure the Engine and start the Platform  
DesignConfig config = new DesignConfig( );
+
        DesignConfig config = new DesignConfig( );
 
   
 
   
config.setProperty("BIRT_HOME", "C:/birt-runtime-2_1_1/birt-runtime-2_1_1/ReportEngine");
+
        config.setProperty("BIRT_HOME", "C:/birt-runtime-2_1_1/birt-runtime-2_1_1/ReportEngine");
IDesignEngine engine = null;
+
        IDesignEngine engine = null;
try{
+
 
+
        try
+
        {
Platform.startup( config );
+
            Platform.startup( config );
IDesignEngineFactory factory = (IDesignEngineFactory) Platform
+
            IDesignEngineFactory factory = (IDesignEngineFactory) Platform.createFactoryObject( IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
.createFactoryObject( IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
+
            engine = factory.createDesignEngine( config );
engine = factory.createDesignEngine( config );
+
        }
+
        catch( Exception ex )
}catch( Exception ex){
+
        {
ex.printStackTrace();
+
            ex.printStackTrace();
}
+
        }
 
 
 
 
 +
        SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
 
 
 
 
SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
+
        // Create a new report design.
+
        ReportDesignHandle design = session.createDesign( );
// Create a new report design.
+
+
ReportDesignHandle design = session.createDesign( );
+
+
// The element factory creates instances of the various BIRT elements.
+
+
ElementFactory efactory = design.getElementFactory( );
+
+
// Create a simple master page that describes how the report will
+
// appear when printed.
+
//
+
// Note: The report will fail to load in the BIRT designer
+
// unless you create a master page.
+
+
DesignElementHandle element = efactory.newSimpleMasterPage( "Page Master" );
+
design.getMasterPages( ).add( element );
+
+
// Create a grid and add it to the "body" slot of the report
+
// design.
+
+
GridHandle grid = efactory.newGridItem( null, 2 /* cols */, 1 /* row */ );
+
design.getBody( ).add( grid );
+
 
 
 
 
// Note: Set the table width to 100% to prevent the label
+
        // The element factory creates instances of the various BIRT elements.
// from appearing too narrow in the layout view.
+
        ElementFactory efactory = design.getElementFactory( );
 
 
 
 
grid.setWidth( "100%" );  
+
        // Create a simple master page that describes how the report will appear when printed.
 +
        //
 +
        // Note: The report will fail to load in the BIRT designer unless you create a master page.
 +
        DesignElementHandle element = efactory.newSimpleMasterPage( "Page Master" );
 +
        design.getMasterPages( ).add( element );
 
 
 
 
// Get the first row.
+
        // Create a grid and add it to the "body" slot of the report design.
 +
        GridHandle grid = efactory.newGridItem( null, 2 /* cols */, 1 /* row */ );
 +
design.getBody( ).add( grid );
 
 
 
 
RowHandle row = (RowHandle) grid.getRows( ).get( 0 );
+
        // Note: Set the table width to 100% to prevent the label
 +
        // from appearing too narrow in the layout view.
 +
        grid.setWidth( "100%" );  
 
 
 
 
// Create an image and add it to the first cell.
+
        // Get the first row.
ImageHandle image = efactory.newImage( null );
+
        RowHandle row = (RowHandle) grid.getRows( ).get( 0 );
CellHandle cell = (CellHandle) row.getCells( ).get( 0 );
+
cell.getContent( ).add( image );
+
image.setURL( "\"urlofimage\"" );  
+
 
 
 
 
// Create a label and add it to the second cell.
+
        // Create an image and add it to the first cell.
LabelHandle label = efactory.newLabel( null );
+
        ImageHandle image = efactory.newImage( null );
cell = (CellHandle) row.getCells( ).get( 1 );
+
        CellHandle cell = (CellHandle) row.getCells( ).get( 0 );
cell.getContent( ).add( label );
+
        cell.getContent( ).add( image );
label.setText( "Hello, world!" );  
+
        image.setURL( "\"urlofimage\"" );  
 
 
 
 
// Save the design and close it.
+
        // Create a label and add it to the second cell.
 +
        LabelHandle label = efactory.newLabel( null );
 +
        cell = (CellHandle) row.getCells( ).get( 1 );
 +
        cell.getContent( ).add( label );
 +
        label.setText( "Hello, world!" );
 
 
 
 
design.saveAs( "c:/tmp/sample.rptdesign" );  
+
        // Save the design and close it.
design.close( );
+
        design.saveAs( "c:/tmp/sample.rptdesign" );  
System.out.println("Finished");
+
        design.close( );
 +
        System.out.println("Finished");
 
 
 
 
// We're done!
+
        // We're done!
}
+
    }
  }
+
}
 
+
 
----
 
----
  

Latest revision as of 02:20, 29 August 2013

< To: Integration Examples (BIRT)

Contents

[edit] Java - Simple Design Engine API

This example demonstrate using the DE API to create a simple report. Add comments at the bottom of the example. Moved from the old Design Engine API area.

BIRT Design Engine API Return to the BIRT Design Engine API examples

[edit] Source

[edit] SimpleCreate.java

import java.io.IOException;

import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.model.api.CellHandle;
import org.eclipse.birt.report.model.api.DesignConfig;
import org.eclipse.birt.report.model.api.DesignElementHandle;
import org.eclipse.birt.report.model.api.ElementFactory;
import org.eclipse.birt.report.model.api.GridHandle;
import org.eclipse.birt.report.model.api.IDesignEngine;
import org.eclipse.birt.report.model.api.IDesignEngineFactory;
import org.eclipse.birt.report.model.api.ImageHandle;
import org.eclipse.birt.report.model.api.LabelHandle;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
import org.eclipse.birt.report.model.api.RowHandle;
import org.eclipse.birt.report.model.api.SessionHandle;
import org.eclipse.birt.report.model.api.activity.SemanticException; 

import com.ibm.icu.util.ULocale;

/**
 * Simple BIRT Design Engine API (DEAPI) demo.
 */
public class SimpleCreate
{
   public static void main( String[] args )
   {
       try
       {
           buildReport( );
       }
       catch( IOException e )
       {
           e.printStackTrace();
       }
       catch( SemanticException e )
       {
           e.printStackTrace();
       }
   }
	
   // This method shows how to build a very simple BIRT report with a
   // minimal set of content: a simple grid with an image and a label.
 	
   static void buildReport() throws IOException, SemanticException
   {
       // Create a session handle. This is used to manage all open designs.
       // Your app need create the session only once.
 		
       //Configure the Engine and start the Platform 
       DesignConfig config = new DesignConfig( );

       config.setProperty("BIRT_HOME", "C:/birt-runtime-2_1_1/birt-runtime-2_1_1/ReportEngine");
       IDesignEngine engine = null;
       try
       {
           Platform.startup( config );
           IDesignEngineFactory factory = (IDesignEngineFactory) Platform.createFactoryObject( IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
           engine = factory.createDesignEngine( config );
       }
       catch( Exception ex )
       {
           ex.printStackTrace();
       }		
				
       SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
		
       // Create a new report design.
       ReportDesignHandle design = session.createDesign( );
		
       // The element factory creates instances of the various BIRT elements.
       ElementFactory efactory = design.getElementFactory( );
		
       // Create a simple master page that describes how the report will appear when printed.
       //
       // Note: The report will fail to load in the BIRT designer unless you create a master page.
       DesignElementHandle element = efactory.newSimpleMasterPage( "Page Master" ); 
       design.getMasterPages( ).add( element );
		
       // Create a grid and add it to the "body" slot of the report design.
       GridHandle grid = efactory.newGridItem( null, 2 /* cols */, 1 /* row */ );
	design.getBody( ).add( grid );
		
       // Note: Set the table width to 100% to prevent the label
       // from appearing too narrow in the layout view.
       grid.setWidth( "100%" ); 
		
       // Get the first row.
       RowHandle row = (RowHandle) grid.getRows( ).get( 0 );
		
       // Create an image and add it to the first cell.
       ImageHandle image = efactory.newImage( null );
       CellHandle cell = (CellHandle) row.getCells( ).get( 0 );
       cell.getContent( ).add( image );
       image.setURL( "\"urlofimage\"" ); 
		
       // Create a label and add it to the second cell.
       LabelHandle label = efactory.newLabel( null );
       cell = (CellHandle) row.getCells( ).get( 1 );
       cell.getContent( ).add( label );
       label.setText( "Hello, world!" ); 
		
       // Save the design and close it.
       design.saveAs( "c:/tmp/sample.rptdesign" ); 
       design.close( );
       System.out.println("Finished");
		
       // We're done!
   }

}


[edit] Comments

Please enter comments below by selecting the edit icon to the right. You will need a Bugzilla account to add comments.