Hi,<br />
<br />
I'm trying to do dynamic sorting on crosstabs, where the users can specify which column they would like to order the rows based on .<br />
<br />
I've read<br />
<a class='bbc_url' href='
http://birtworld.blogspot.com/2010/02/birt-crosstab-scripting.html'>http://birtworld.blogspot.com/2010/02/birt-crosstab-scripting.html</a><br />
and<br />
<a class='bbc_url' href='
http://www.birt-exchange.org/devshare/designing-birt-reports/1201-add-sort-to-crosstab-using-de-api-in-script/#description'>http://www.birt-exchange.org/devshare/designing-birt-reports/1201-add-sort-to-crosstab-using-de-api-in-script/#description</a><br />
<br />
With the help of the above links, I can do dynamic sorting on aggregation columns with API. But for the Derived Columns , it seems does not work.<br />
<br />
<br />
For example, <span style='color: #0000FF'>amount of sales</span>, <span style='color: #0000FF'>amount of rent</span>, and <span style='color: #0000FF'>amount of tax</span> are 3 aggregation columns of the crosstab, I can do sorting on any of them using API.<br />
<br />
But now I have a derived column <span style='color: #0000FF'>[amount of mystery income]</span>, whose expression is <span style='color: #0000FF'>total([amount of sales]* [amount of rent] *[amount of tax]) / total([amount of rent]*[amount of tax])</span>, is there someway to do dynamic sorting on this derived column please?<br />
<br />
Code:<br />
<br />
var eF = reportContext.getDesignHandle().getElementFactory();<br />
var srt = eF.newSortElement();<br />
<br />
srt.setKey("data[\"amount of sales_GroupName/Store_Name\"]");<span style='color: #008000'>//here, the parameter "amount of sales_GroupName/Store_Name\" is name of a aggregation column. If I replace it with a derived column name ,then the hole script will no longer work.</span><br />
<br />
var xtab = reportContext.getDesignHandle().findElement("Crosstab_Name");<br />
var xtabhandle = xtab.getReportItem();<br />
<br />
var rws = xtabhandle.getCrosstabView(ICrosstabConstants.ROW_AXIS_TYPE);<br />
var lvh = rws.getDimension("GroupName").getLevel(0);<br />
<br />
lvh.getModelHandle( ).add( ILevelViewConstants.SORT_PROP, srt ); <br />
<br />
<br />
<br />
Thanks in advance.