Simple Union Dataset
This example uses the Classic Models database as it's source. The design is build in BIRT 4.2, but it should work in 3.7 also (Probably earlier versions as well). The trick is to execute the 2 datasets needed fro the union in code.<br />
<br />
This is open event:<br />
This is the fetch event<br />
Lastly this is the close event:<br />
<br />
This is open event:<br />
importPackage(Packages.java.lang); importPackage(Packages.java.util); importPackage(Packages.org.eclipse.birt.data.engine.api); importPackage(Packages.org.eclipse.birt.report.model.api); importPackage(Packages.org.eclipse.birt.report.model.api.elements); importPackage(Packages.org.eclipse.birt.data.engine.api.querydefn); importPackage(Packages.org.eclipse.birt.data.engine.core); var myconfig = reportContext.getReportRunnable().getReportEngine().getConfig(); de = DataEngine.newDataEngine( myconfig, null ); var dsrc = reportContext.getDesignHandle().findDataSource("Classic Models Data Source"); var dset1 = reportContext.getDesignHandle().findDataSet("Productline1 Data Set"); var dset2 = reportContext.getDesignHandle().findDataSet("Productline2 Data Set"); var CMDataSource = new OdaDataSourceDesign( "CM Data Source" ); CMDataSource.setExtensionID( "org.eclipse.birt.report.data.oda.jdbc" ); CMDataSource.addPublicProperty( "odaDriverClass", dsrc.getProperty("odaDriverClass").toString() ); CMDataSource.addPublicProperty( "odaURL", dsrc.getProperty("odaURL").toString() ); CMDataSource.addPublicProperty( "odaUser", dsrc.getProperty("odaUser").toString() ); var productLine1DataSet = new OdaDataSetDesign( "P1 Data Set" ); productLine1DataSet.setDataSource( CMDataSource.getName( ) ); productLine1DataSet.setExtensionID( "org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" ); productLine1DataSet.setQueryText( dset1.getQueryText() ); var productLine2DataSet = new OdaDataSetDesign( "P2 Data Set" ); productLine2DataSet.setDataSource( CMDataSource.getName( ) ); productLine2DataSet.setExtensionID( "org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" ); productLine2DataSet.setQueryText( dset2.getQueryText() ); de.defineDataSource( CMDataSource ); de.defineDataSet( productLine1DataSet ); de.defineDataSet( productLine2DataSet ); queryDefinition1 = new QueryDefinition( ); queryDefinition1.setDataSetName( productLine1DataSet.getName() ); queryDefinition1.setAutoBinding(true); queryDefinition2 = new QueryDefinition( ); queryDefinition2.setDataSetName( productLine2DataSet.getName() ); queryDefinition2.setAutoBinding(true); var pq1 = de.prepare( queryDefinition1 ); qr1 = pq1.execute( null ); recordsIterator1 = qr1.getResultIterator( ); var pq2 = de.prepare( queryDefinition2 ); qr2 = pq2.execute( null ); recordsIterator2 = qr2.getResultIterator( );<br />
This is the fetch event<br />
if (recordsIterator1.next()) { row["Productline"] = recordsIterator1.getValue("PRODUCTLINE"); return true; } if (recordsIterator2.next()) { row["Productline"] = recordsIterator2.getValue("PRODUCTLINE"); return true; } else {return false}<br />
Lastly this is the close event:<br />
recordsIterator1.close( ); qr1.close( ); recordsIterator2.close( ); qr2.close( ); de.shutdown( );
0
Categories
- All Categories
- 107 Developer Announcements
- 53 Articles
- 104 General Questions
- 141 IM Services
- 43 OpenText Hackathon
- 32 Developer Tools
- 20.6K Analytics
- 4.1K AppWorks
- 8.9K Extended ECM
- 898 Cloud Fax and Notifications
- 76 Digital Asset Management
- 9.3K Documentum
- 29 eDOCS
- 118 Exstream
- 39.8K TeamSite
- 1.7K Web Experience Management