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();
}
}
}|
Business Objects, an SAP company http://www.businessobjects.com/ Support services http://www.businessobjects.com/services/support/ Product Documentation on the Web http://support.businessobjects.com/documentation/ |