Dynamicaly Add New dataset
Comments
-
Hi ,
I have one table which has three columns and n no of rows.
1 column is ID (to identify particular row )
2 column contains Select Statement
3 column contains Where clause
Now what i require is call these Select and where fields make a query and run it using the id as parameter to identify row.
After that i have to show this value in any chart.
i have been able to do so for predefined no of arguments X.
By defining X dummy dataset and writing script on open before
this.queryString = queryN;
How this could be done dynamically or is it Possible or not?
Any help will be appreciated.
Thanks
lrnit0 -
Sorry for the delay. I was at JavaOne this week. Take a look at this post by John Ward:
http://www.birt-exchange.org/org/devshare/interactive-reporting/1317-using-the-deapi-to-dynamically-add-a-data-set/Warning No formatter is installed for the format ipb0 -
<blockquote class='ipsBlockquote' data-author="'mwilliams'" data-cid="83846" data-time="1318008948" data-date="07 October 2011 - 10:35 AM"><p>
Sorry for the delay. I was at JavaOne this week. Take a look at this post by John Ward:<br />
<br />
<a class='bbc_url' href='http://www.birt-exchange.org/org/devshare/interactive-reporting/1317-using-the-deapi-to-dynamically-add-a-data-set/'>http://www.birt-exchange.org/org/devshare/interactive-reporting/1317-using-the-deapi-to-dynamically-add-a-data-set/</a><br /></p></blockquote>
<br />
<br />
Hi I have added this in my report design beforFactory / Initalize event But it gives error on fist line it self. Am i missing something here ?<br />
<br />
public class ReportEventHandler extends ReportEventAdapter {<br />
<br />
@Override<br />
public void beforeFactory(IReportDesign report, IReportContext reportContext) {<br />
super.beforeFactory(report, reportContext);<br />
<br />
try {<br />
ReportDesignHandle reportDesign = reportContext.getDesignHandle();<br />
OdaDataSetHandle dataSet = reportDesign.getElementFactory().newOdaDataSet("Data Set", "org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet");<br />
<br />
dataSet.setDataSource("Data Source");<br />
dataSet.setQueryText("select employeenumber from employees where employeenumber = ?");<br />
<br />
OdaDataSetParameter param = new OdaDataSetParameter();<br />
<br />
param.setName("param_1");<br />
param.setParamName("empNo");<br />
param.setNativeName("");<br />
param.setDataType("integer");<br />
param.setNativeDataType(4);<br />
param.setPosition(1);<br />
param.setIsInput(true);<br />
param.setIsOutput(false);<br />
<br />
dataSet.getPropertyHandle(DataSetHandle.PARAMETERS_PROP).addItem(param);<br />
<br />
OdaResultSetColumn result = new OdaResultSetColumn();<br />
result.setColumnName("EMPLOYEENUMBER");<br />
result.setNativeName("EMPLOYEENUMBER");<br />
result.setDataType("integer");<br />
result.setPosition(1);<br />
result.setNativeDataType(4);<br />
dataSet.getPropertyHandle(DataSetHandle.RESULT_SET_PROP).addItem(result);<br />
<br />
ColumnHint resultHint = new ColumnHint();<br />
resultHint.setProperty(ColumnHint.COLUMN_NAME_MEMBER, "EMPLOYEENUMBER");<br />
resultHint.setProperty(ColumnHint.COLUMN_NAME_MEMBER, "integer");<br />
<br />
dataSet.getPropertyHandle(DataSet.COLUMN_HINTS_PROP).addItem(resultHint);<br />
<br />
//this works<br />
reportDesign.getDataSets().add(dataSet);<br />
<br />
//and so does this<br />
//reportDesign.getSlot(ReportDesignHandle.DATA_SET_SLOT).add(dataSet);<br />
<br />
//just saving for debug purposes, you can ignore this<br />
reportDesign.saveAs("C:/TEMP/MyTestDesign.rptdesign");<br />
} catch (ContentException e) {<br />
e.printStackTrace();<br />
} catch (NameException e) {<br />
e.printStackTrace();<br />
} catch (SemanticException e) {<br />
e.printStackTrace();<br />
} catch (IOException e) {<br />
e.printStackTrace();<br />
}<br />
}<br />
}0 -
How I can execute dynamic query which is set on DataSet inside rptdesign file?
stageDataSet.setQueryText(dynQuery);expected column is not binding on chart/cube , meaning, query on dataSet is set but not executed?
0 -
yes, its working
var dataSets = reportContext.getReportRunnable().designHandle.getDesignHandle().getDataSets()
....
newDataSet = reportContext.getReportRunnable().designHandle.getElementFactory().newOdaDataSet("something" + uaIndex)
newDataSet.setDataSource("JDBC_DataSource");
newDataSet.setQueryText("select stage_id," + stage.userSpecifiedAnalysis[uaIndex].columnNames.toString() + " from " + stage.userSpecifiedAnalysis[uaIndex].tableName + " where stage_id='" + stage.stageId + "' and journey_id='" + json_param.journeyId + "'")dataSets.add(newDataSet);
0
Categories
- All Categories
- 108 Developer Announcements
- 53 Articles
- 107 General Questions
- 144 IM Services
- 43 OpenText Hackathon
- 32 Developer Tools
- 20.6K Analytics
- 4.1K AppWorks
- 8.9K Extended ECM
- 899 Cloud Fax and Notifications
- 77 Digital Asset Management
- 9.3K Documentum
- 29 eDOCS
- 119 Exstream
- 39.8K TeamSite
- 1.7K Web Experience Management