Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Simple Create
Revision as of 20:00, 11 October 2006 by Unnamed Poltroon (Talk)
Simple Create
This example demonstrate using the DE API to create a simple report. Add comments at the bottom of the example.
BIRT Design Engine API Return to the BIRT Design Engine API examples
Source
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 ) { // TODO Auto-generated catch block e.printStackTrace(); } catch ( SemanticException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } // This function 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! } }
Comments
Please enter comments below by selecting the edit icon to the right. You will need a Bugzilla account to add comments.