import java.util.ArrayList; import java.util.List; import com.businessobjects.crystalreports.designer.sdk.IDataSourceChangedListener; import com.crystaldecisions.sdk.occa.report.application.IReportClientDocument; import com.crystaldecisions.sdk.occa.report.application.ReportClientDocument; import com.crystaldecisions.sdk.occa.report.data.ITable; import com.crystaldecisions.sdk.occa.report.data.Tables; import com.crystaldecisions.sdk.occa.report.lib.ReportSDKException;
public void populateDataSource(IReportClientDocument rcd, String srcEvent) throws ReportSDKException {
String tableName = "BasicPOJO"; boolean tableFound = false; Tables allTables = rcd.getDatabaseController().getDatabase().getTables(); String tableAlias = null; for (ITable table : allTables) { if (tableName.equals(table.getName())) { tableFound = true; tableAlias = table.getAlias(); } } if (!tableFound) return;
List <BasicPOJO> allData = new ArrayList<BasicPOJO>(); for (int i = 0; i < 10; i ++) { allData.add (new BasicPOJO (i, srcEvent)); }
rcd.getDatabaseController().setDataSource(allData, BasicPOJO.class, tableAlias, tableAlias); }
public void dataSourceChanged(IReportClientDocument rcd) { ReportClientDocument doc = rcd.getMainReport();
populateDataSource(doc, "dataSourceChanged");
for (String subreportName : doc.getSubreportController().getSubreportNames()) { IReportClientDocument srcd = doc.getSubreportController().getSubreport(subreportName); populateDataSource(srcd, "dataSourceChanged"); } }
try { ... } catch (ReportSDKException e) { e.printStackTrace(); }
import java.util.ArrayList; import java.util.List; import com.businessobjects.crystalreports.designer.sdk.IDataSourceChangedListener; import com.crystaldecisions.sdk.occa.report.application.IReportClientDocument; import com.crystaldecisions.sdk.occa.report.application.ReportClientDocument; import com.crystaldecisions.sdk.occa.report.data.ITable; import com.crystaldecisions.sdk.occa.report.data.Tables; import com.crystaldecisions.sdk.occa.report.lib.ReportSDKException; public class MyDataSourceListener implements IDataSourceChangedListener { private void populateDataSource(IReportClientDocument rcd, String srcEvent) throws ReportSDKException { String tableName = "BasicPOJO"; boolean tableFound = false; Tables allTables = rcd.getDatabaseController().getDatabase().getTables(); String tableAlias = null; for (ITable table : allTables) { if (tableName.equals(table.getName())) { tableFound = true; tableAlias = table.getAlias(); } } if (!tableFound) return; List <BasicPOJO> allData = new ArrayList<BasicPOJO>(); for (int i = 0; i < 10; i ++) { allData.add (new BasicPOJO (i, srcEvent)); } rcd.getDatabaseController().setDataSource(allData, BasicPOJO.class, tableAlias, tableAlias); } public void dataSourceChanged(IReportClientDocument rcd) { try { ReportClientDocument doc = rcd.getMainReport(); populateDataSource(doc, "dataSourceChanged"); for (String subreportName : doc.getSubreportController().getSubreportNames()) { IReportClientDocument srcd = doc.getSubreportController().getSubreport(subreportName); populateDataSource(srcd, "dataSourceChanged"); } } catch (ReportSDKException e) { e.printStackTrace(); } } }
SAP BusinessObjects http://www.sap.com/sapbusinessobjects/ Support services http://service.sap.com/bosap-support/ Product Documentation on the Web http://help.sap.com/ |