<p>Hello everyone,</p>
<p> </p>
<p>I have a report with several DataSets, and one of these DataSet provides information in order to eventually update other DataSet queries (we can't pass this information differently).</p>
<p> </p>
<p>So, based on <a data-ipb='nomediaparse' href='
http://developer.actuate.com/community/forum/index.php?/topic/34367-execute-query-in-beforefactory-method/'>this</a>, I'm trying to run this DataSet from the Report BeforeFactory event.</p>
<p> </p>
<p>My code is as follow :</p>
<pre class="_prettyXprint">
@Override
public void beforeFactory(IReportDesign report, IReportContext reportContext) throws ScriptException {
DataRequestSession des = null;
try {
EngineConfig myconfig = reportContext.getReportRunnable().getReportEngine().getConfig();
des = DataRequestSession.newSession(myconfig, new DataSessionContext(3));
DataSourceHandle dsrc = reportContext.getDesignHandle().findDataSource("my_DATASOURCE");
DataSetHandle dset = reportContext.getDesignHandle().findDataSet("my_DATASET");
des.defineDataSource(des.getModelAdaptor().adaptDataSource(dsrc));
des.defineDataSet(des.getModelAdaptor().adaptDataSet(dset));
QueryDefinition queryDefinition = new QueryDefinition( );
queryDefinition.setDataSetName( "Test" );
queryDefinition.setAutoBinding(true);
IPreparedQuery pq = des.prepare( queryDefinition );
IQueryResults qr = pq.execute( null );
int rowcount=0;
IResultIterator ri = qr.getResultIterator( );
while ( ri.next( ) )
{
rowcount++;
System.out.println("Simulation : " + ri.getBoolean("Simulation"));
}
ri.close( );
qr.close( );
}
catch(BirtException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
finally {
des.shutdown( );
}
}
</pre>
<p>I triple check that "Simulation" field exists ... but when I run my report I'm getting the following error :</p>
<ul><li>Invalid bound column name: Simulation.</li>
</ul><p>Does anyone have an idea what's missing in my code ?</p>
<p> </p>
<p>Thank you very much.</p>
<p> </p>
<p> </p>