User Defined Sort On Grouped Data [message #646376] |
Thu, 23 December 2010 10:09  |
Eclipse User |
|
|
|
Hi,
I am trying to allow report users to sort data on any column and in any sort direction (asc/desc). So far, after poring over many websites, I am still unable to achieve this.
Here is the problem:
In this contrived example the report has 3 tables; Customer Details, Order Details 1 and Order Details 2. The aim is to order by column 1 descending, in all 3 tables. In the Customer Details table this is done by including the following code for the "onPrepare" event:
importPackage( Packages.org.eclipse.birt.report.engine.api.script.element );
importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi );
var sortCondition = StructureScriptAPIFactory.createSortCondition();
sortCondition.setKey("row[\"CUSTOMERNUMBER\"]");
sortCondition.setDirection("desc");
var sortKey = sortCondition.getStructure();
this.addSortCondition( SimpleElementFactory.getInstance().createSortCondition(sortK ey));
In the Order Details 1 table I have used the same method as above but this time it has no effect. This table is grouped by ORDERNUMBER, so presumably I would need to get to the "group" itself, before applying the sort condition.
With this in mind I have an Order Details 2 table. In the "beforeFactory" event I have included the following code, attempting to change the sort condition:
importPackage(Packages.org.eclipse.birt.report.model.api.ele ments);
delm = reportContext.getDesignHandle().findElement("OrderTest");
tghOrderTest = delm.getGroups().get(0);
tghOrderTest.setKey("row[\"ORDERNUMBER\"]");
tghOrderTest.setSortDirection("desc"); //"asc"
This code has no effect, although...curiously, if I swap the last two lines of code, the report does render "ORDERNUMBER" in descending order. It appears that there is a problem with the "setKey" code although I can't think why, as the syntax is identical to the working version in the "Customer Details" table.
I am new to BIRT and may have overlooked something really obvious, but having spent some time trying various options I am none the wiser.
Can you help?
Report code:
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.22" id="1">
<property name="createdBy">Eclipse BIRT Designer Version 2.6.1.v20100902 Build <2.6.1.v20100915-1750></property>
<property name="units">in</property>
<method name="beforeFactory">< ![CDATA[importPackage(Packages.org.eclipse.birt.report.model .api.elements);
delm = reportContext.getDesignHandle().findElement("OrderTest");
tghOrderTest = delm.getGroups().get(0);
tghOrderTest.setKey("row[\"ORDERNUMBER\"]");
tghOrderTest.setSortDirection("desc"); //"asc"
]]></method>
<property name="iconFile">/templates/blank_report.gif</property>
<property name="bidiLayoutOrientation">ltr</property>
<property name="imageDPI">96</property>
<data-sources>
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source" id="1030">
<property name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet " name="CustomerDataSet" id="1031">
<list-property name="columnHints">
<structure>
<property name="columnName">CUSTOMERNUMBER</property>
<text-property name="displayName">CUSTOMERNUMBER</text-property>
<text-property name="heading">CUSTOMERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">CUSTOMERNAME</property>
<text-property name="displayName">CUSTOMERNAME</text-property>
<text-property name="heading">CUSTOMERNAME</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">CUSTOMERNAME</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="nativeName">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">CUSTOMERNAME</property>
<property name="nativeName">CUSTOMERNAME</property>
<property name="dataType">string</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select customernumber, customername
from customers
order by customernumber asc]]></xml-property>
</oda-data-set>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet " name="OrderDataSet" id="1048">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property name="displayName">ORDERNUMBER</text-property>
<text-property name="heading">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">QUANTITYORDERED</property>
<text-property name="displayName">QUANTITYORDERED</text-property>
<text-property name="heading">QUANTITYORDERED</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select ordernumber, quantityordered
from CLASSICMODELS.ORDERDETAILS
order by ordernumber asc]]></xml-property>
<xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CUSTOMERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CUSTOMERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CUSTOMERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CUSTOMERNAME</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CUSTOMERNAME</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CUSTOMERNAME</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CONTACTLASTNAME</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CONTACTLASTNAME</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CONTACTLASTNAME</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CONTACTFIRSTNAME</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CONTACTFIRSTNAME</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CONTACTFIRSTNAME</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PHONE</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PHONE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PHONE</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ADDRESSLINE1</design:name>
<design:position>6</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ADDRESSLINE1</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ADDRESSLINE1</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ADDRESSLINE2</design:name>
<design:position>7</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ADDRESSLINE2</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ADDRESSLINE2</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CITY</design:name>
<design:position>8</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CITY</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CITY</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>STATE</design:name>
<design:position>9</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>STATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>STATE</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>POSTALCODE</design:name>
<design:position>10</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>POSTALCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>POSTALCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>COUNTRY</design:name>
<design:position>11</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>COUNTRY</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>COUNTRY</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>SALESREPEMPLOYEENUMBER</design:name>
<design:position>12</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>SALESREPEMPLOYEENUMBER</design:displayName >
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>SALESREPEMPLOYEENUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CREDITLIMIT</design:name>
<design:position>13</design:position>
<design:nativeDataTypeCode>8</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CREDITLIMIT</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CREDITLIMIT</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
</oda-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab-cell" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table name="Customer1" id="1032">
<property name="dataSet">CustomerDataSet</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">CUSTOMERNUMBER</property>
<text-property name="displayName">CUSTOMERNUMBER</text-property>
<expression name="expression" type="javascript">dataSetRow["CUSTOMERNUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">CUSTOMERNAME</property>
<text-property name="displayName">CUSTOMERNAME</text-property>
<expression name="expression" type="javascript">dataSetRow["CUSTOMERNAME"]</expression >
<property name="dataType">string</property>
</structure>
</list-property>
<method name="onPrepare"><![CDATA[importPackage( Packages.org.eclipse.birt.report.engine.api.script.element );
importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi );
var sortCondition = StructureScriptAPIFactory.createSortCondition();
sortCondition.setKey("row[\"CUSTOMERNUMBER\"]");
sortCondition.setDirection("desc");
var sortKey = sortCondition.getStructure();
this.addSortCondition( SimpleElementFactory.getInstance().createSortCondition(sortK ey)); ]]></method>
<column id="1046"/>
<column id="1047"/>
<header>
<row id="1049">
<cell id="1050">
<label id="1052">
<property name="fontWeight">bold</property>
<property name="textAlign">left</property>
<text-property name="text">Customer Details Table</text-property>
</label>
</cell>
<cell id="1051"/>
</row>
<row id="1033">
<cell id="1034">
<label id="1035">
<property name="textAlign">left</property>
<text-property name="text">CUSTOMERNUMBER</text-property>
</label>
</cell>
<cell id="1036">
<label id="1037">
<property name="textAlign">left</property>
<text-property name="text">CUSTOMERNAME</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="1038">
<cell id="1039">
<data id="1040">
<property name="whiteSpace">nowrap</property>
<method name="onPrepare"><![CDATA[importPackage( Packages.org.eclipse.birt.report.engine.api.script.element );
importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi );
var sortCondition = StructureScriptAPIFactory.createSortCondition();
sortCondition.setKey("row[\"CUSTOMERNUMBER\"]");
sortCondition.setDirection("desc");
var sortKey = sortCondition.getStructure();
this.addSortCondition( SimpleElementFactory.getInstance().createSortCondition(sortK ey)); ]]></method>
<property name="resultSetColumn">CUSTOMERNUMBER</property>
</data>
</cell>
<cell id="1041">
<data id="1042">
<property name="whiteSpace">nowrap</property>
<property name="resultSetColumn">CUSTOMERNAME</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="1043">
<cell id="1044"/>
<cell id="1045"/>
</row>
</footer>
</table>
<table name="Order1" id="1053">
<property name="dataSet">OrderDataSet</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">ORDERNUMBER</property>
<text-property name="displayName">ORDERNUMBER</text-property>
<expression name="expression" type="javascript">dataSetRow["ORDERNUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">QUANTITYORDERED</property>
<text-property name="displayName">QUANTITYORDERED</text-property>
<expression name="expression" type="javascript">dataSetRow["QUANTITYORDERED"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">SUM_QUANTITY</property>
<text-property name="displayName">SUM_QUANTITY</text-property>
<property name="dataType">float</property>
<simple-property-list name="aggregateOn">
<value>OrderNumber</value>
</simple-property-list>
<property name="aggregateFunction">SUM</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression name="value" type="javascript">row["QUANTITYORDERED"]</expression>
</structure>
</list-property>
</structure>
</list-property>
<method name="onPrepare"><![CDATA[importPackage( Packages.org.eclipse.birt.report.engine.api.script.element );
importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi );
var sortCondition = StructureScriptAPIFactory.createSortCondition();
sortCondition.setKey("row[\"ORDERNUMBER\"]");
sortCondition.setDirection("desc");
var sortKey = sortCondition.getStructure();
this.addSortCondition( SimpleElementFactory.getInstance().createSortCondition(sortK ey)); ]]></method>
<column id="1067"/>
<column id="1068"/>
<header>
<row id="1069">
<cell id="1070">
<label id="1072">
<property name="fontWeight">bold</property>
<property name="textAlign">left</property>
<text-property name="text">Order Details Table (Example 1)</text-property>
</label>
</cell>
<cell id="1071"/>
</row>
<row id="1054">
<cell id="1055">
<label id="1056">
<property name="textAlign">left</property>
<text-property name="text">ORDERNUMBER</text-property>
</label>
</cell>
<cell id="1057">
<label id="1058">
<property name="textAlign">left</property>
<text-property name="text">QUANTITYORDERED</text-property>
</label>
</cell>
</row>
</header>
<group id="1073">
<property name="groupName">OrderNumber</property>
<property name="interval">none</property>
<property name="sortDirection">asc</property>
<expression name="keyExpr" type="javascript">row["ORDERNUMBER"]</expression>
<structure name="toc">
<expression name="expressionValue" type="javascript">row["ORDERNUMBER"]</expression>
</structure>
<property name="repeatHeader">true</property>
<property name="hideDetail">false</property>
<property name="pageBreakAfter">auto</property>
<property name="pageBreakBefore">auto</property>
<property name="pageBreakInside">auto</property>
<header>
<row id="1074">
<cell id="1075">
<data id="1080">
<property name="resultSetColumn">ORDERNUMBER</property>
</data>
</cell>
<cell id="1076">
<data id="1081">
<property name="resultSetColumn">SUM_QUANTITY</property>
</data>
</cell>
</row>
</header>
</group>
<footer>
<row id="1064">
<cell id="1065"/>
<cell id="1066"/>
</row>
</footer>
</table>
<table name="OrderTest" id="1082">
<property name="dataSet">OrderDataSet</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">ORDERNUMBER</property>
<text-property name="displayName">ORDERNUMBER</text-property>
<expression name="expression" type="javascript">dataSetRow["ORDERNUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">QUANTITYORDERED</property>
<text-property name="displayName">QUANTITYORDERED</text-property>
<expression name="expression" type="javascript">dataSetRow["QUANTITYORDERED"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">QUANTITYORDERED2</property>
<text-property name="displayName">SUM_QUANTITY</text-property>
<property name="dataType">float</property>
<simple-property-list name="aggregateOn">
<value>OrderNumber</value>
</simple-property-list>
<property name="aggregateFunction">SUM</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression name="value" type="javascript">row["ORDERNUMBER"]</expression>
</structure>
</list-property>
</structure>
</list-property>
<column id="1096"/>
<column id="1097"/>
<header>
<row id="1098">
<cell id="1099">
<label name="Order2" id="1101">
<property name="fontWeight">bold</property>
<text-property name="text">Order Details Table (Example 2)</text-property>
</label>
</cell>
<cell id="1100"/>
</row>
<row id="1083">
<cell id="1084">
<label id="1085">
<text-property name="text">ORDERNUMBER</text-property>
</label>
</cell>
<cell id="1086">
<label id="1087">
<text-property name="text">QUANTITYORDERED</text-property>
</label>
</cell>
</row>
</header>
<group id="1102">
<property name="groupName">OrderNumber</property>
<property name="interval">none</property>
<property name="sortDirection">asc</property>
<expression name="keyExpr" type="javascript">row["ORDERNUMBER"]</expression>
<structure name="toc">
<expression name="expressionValue" type="javascript">row["ORDERNUMBER"]</expression>
</structure>
<property name="repeatHeader">true</property>
<property name="hideDetail">false</property>
<property name="pageBreakAfter">auto</property>
<property name="pageBreakBefore">auto</property>
<property name="pageBreakInside">auto</property>
<header>
<row id="1103">
<cell id="1104">
<data id="1109">
<property name="resultSetColumn">ORDERNUMBER</property>
</data>
</cell>
<cell id="1105">
<data id="1110">
<property name="resultSetColumn">QUANTITYORDERED2</property>
</data>
</cell>
</row>
</header>
</group>
</table>
</body>
</report>
|
|
|
|
|
|
|
Re: User Defined Sort On Grouped Data [message #1804478 is a reply to message #646702] |
Tue, 26 March 2019 11:14  |
Eclipse User |
|
|
|
Hello Jason,
the link www.birt-exchange.org/org/devshare/designing-birt-reports/1308-grouping-and-table-sorting-using-de-api/ is broken.
Did the site move to another location?
How can the Interval of a List Group be changed via scipt?
|
|
|
Powered by
FUDForum. Page generated in 0.26693 seconds