Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » BIRT » Column wrapping in a table(Is it possible to wrap columns in a table ?)
Column wrapping in a table [message #632865] Thu, 14 October 2010 10:10 Go to next message
Jay Jakilinki is currently offline Jay Jakilinki
Messages: 11
Registered: October 2010
Junior Member
Hello

Need your help !

I am new to BIRT and this is my first report.

I need to develop a report where a table has 2 columns and has hundreds of records. The requirement is to split the rows across columns - for example say the 2 columns are Name and Phone #. I need to have a table with these 2 columns repeated 4 times (4 column sets). So, the number of rows need to be split 4 times.

If the # of rows is 13, then the first column set will have 4 records (1 - 4), the second column set will have the next 4 records (5 - Cool, the third column set will have the next 4 records (9 - 12) and the fourth column set will have the last record (13).

What would be the best approach ?

I tried using nested tables - 1 table for each column set and used some pagination logic using row["__rownum"] and record count (aggregation column binding). But, the query will be executed once for each column set i.e. 4 times for each table.

Please advice...
Re: Column wrapping in a table [message #632870 is a reply to message #632865] Thu, 14 October 2010 10:25 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Jay,

If you use an running count aggregate on the dataset to get the rownum
(because you can not filter on rownum built in variable) you should be
able to put a filter on each of the tables to do what you want. The
dataset should be cached and reused by each of the tables so it should
not run once for each table. It may run more than once for the two-pass
aggregate but not once for each table. Take a look at the attached
example that has a grid with three tables tied to the same dataset and
uses filters for each table.

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.21"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.5.2.v20100208 Build &lt;2.5.2.v20100210-0630></property>
<property name="units">in</property>
<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="7">
<text-property name="displayName"></text-property>
<property
name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
<property name="OdaConnProfileName"></property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set" id="8">
<list-property name="computedColumns">
<structure>
<property name="name">rwc</property>
<property name="dataType">integer</property>
<property
name="aggregateFunction">RUNNINGCOUNT</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression
name="value">row["ORDERNUMBER"]</expression>
</structure>
</list-property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">QUANTITYORDERED</property>
<text-property
name="displayName">QUANTITYORDERED</text-property>
</structure>
<structure>
<property name="columnName">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
</structure>
<structure>
<property name="columnName">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</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">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">rwc</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>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="nativeName">PRICEEACH</property>
<property name="dataType">float</property>
<property name="nativeDataType">8</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="nativeName">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">5</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orderdetails
where ordernumber = 10104
order by orderlinenumber]]></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>ORDERNUMBER</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>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTCODE</design:name>
<design:position>2</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>PRODUCTCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYORDERED</design:name>
<design:position>3</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>QUANTITYORDERED</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYORDERED</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRICEEACH</design:name>
<design:position>4</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>PRICEEACH</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRICEEACH</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERLINENUMBER</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>5</design:nativeDataTypeCode>
<design:precision>5</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERLINENUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERLINENUMBER</design:label>
<design:formattingHints>
<design:displaySize>6</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" 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-cell" 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>
<grid id="9">
<column id="10"/>
<column id="11"/>
<column id="12"/>
<row id="13">
<cell id="14"/>
<cell id="15"/>
<cell id="16"/>
</row>
<row id="17">
<cell id="18">
<table id="99">
<property name="dataSet">Data Set</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">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</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">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRICEEACH"]</expression>
<property name="dataType">float</property>
</structure>
<structure>
<property
name="name">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
<expression name="expression"
type="javascript">dataSetRow["ORDERLINENUMBER"]</expression >
<property
name="dataType">integer</property>
</structure>
<structure>
<property name="name">rwc</property>
<text-property
name="displayName">rwc</text-property>
<expression name="expression"
type="javascript">dataSetRow["rwc"]</expression>
<property
name="dataType">integer</property>
</structure>
</list-property>
<list-property name="filter">
<structure>
<property name="operator">eq</property>
<expression name="expr"
type="javascript">(row["rwc"]-1)%3</expression>
<simple-property-list name="value1">
<value>0</value>
</simple-property-list>
</structure>
</list-property>
<column id="123"/>
<column id="124"/>
<column id="125"/>
<column id="126"/>
<header>
<row id="100">
<cell id="101">
<label id="102">
<text-property
name="text">rwc</text-property>
</label>
</cell>
<cell id="103">
<label id="104">
<text-property
name="text">PRODUCTCODE</text-property>
</label>
</cell>
<cell id="105">
<label id="106">
<text-property
name="text">QUANTITYORDERED</text-property>
</label>
</cell>
<cell id="107">
<label id="108">
<text-property
name="text">ORDERLINENUMBER</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="109">
<cell id="110">
<data id="111">
<property
name="resultSetColumn">rwc</property>
</data>
</cell>
<cell id="112">
<data id="113">
<property
name="resultSetColumn">PRODUCTCODE</property>
</data>
</cell>
<cell id="114">
<data id="115">
<property
name="resultSetColumn">QUANTITYORDERED</property>
</data>
</cell>
<cell id="116">
<data id="117">
<property
name="resultSetColumn">ORDERLINENUMBER</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="118">
<cell id="119"/>
<cell id="120"/>
<cell id="121"/>
<cell id="122"/>
</row>
</footer>
</table>
</cell>
<cell id="19">
<table id="71">
<property name="dataSet">Data Set</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">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</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">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRICEEACH"]</expression>
<property name="dataType">float</property>
</structure>
<structure>
<property
name="name">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
<expression name="expression"
type="javascript">dataSetRow["ORDERLINENUMBER"]</expression >
<property
name="dataType">integer</property>
</structure>
<structure>
<property name="name">rwc</property>
<text-property
name="displayName">rwc</text-property>
<expression name="expression"
type="javascript">dataSetRow["rwc"]</expression>
<property
name="dataType">integer</property>
</structure>
</list-property>
<list-property name="filter">
<structure>
<property name="operator">eq</property>
<expression name="expr"
type="javascript">(row["rwc"]-2)%3</expression>
<simple-property-list name="value1">
<value>0</value>
</simple-property-list>
</structure>
</list-property>
<column id="95"/>
<column id="96"/>
<column id="97"/>
<column id="98"/>
<header>
<row id="72">
<cell id="73">
<label id="74">
<text-property
name="text">rwc</text-property>
</label>
</cell>
<cell id="75">
<label id="76">
<text-property
name="text">PRODUCTCODE</text-property>
</label>
</cell>
<cell id="77">
<label id="78">
<text-property
name="text">QUANTITYORDERED</text-property>
</label>
</cell>
<cell id="79">
<label id="80">
<text-property
name="text">ORDERLINENUMBER</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="81">
<cell id="82">
<data id="83">
<property
name="resultSetColumn">rwc</property>
</data>
</cell>
<cell id="84">
<data id="85">
<property
name="resultSetColumn">PRODUCTCODE</property>
</data>
</cell>
<cell id="86">
<data id="87">
<property
name="resultSetColumn">QUANTITYORDERED</property>
</data>
</cell>
<cell id="88">
<data id="89">
<property
name="resultSetColumn">ORDERLINENUMBER</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="90">
<cell id="91"/>
<cell id="92"/>
<cell id="93"/>
<cell id="94"/>
</row>
</footer>
</table>
</cell>
<cell id="20">
<table id="25">
<property name="dataSet">Data Set</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">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</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">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRICEEACH"]</expression>
<property name="dataType">float</property>
</structure>
<structure>
<property
name="name">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
<expression name="expression"
type="javascript">dataSetRow["ORDERLINENUMBER"]</expression >
<property
name="dataType">integer</property>
</structure>
<structure>
<property name="name">rwc</property>
<text-property
name="displayName">rwc</text-property>
<expression name="expression"
type="javascript">dataSetRow["rwc"]</expression>
<property
name="dataType">integer</property>
</structure>
</list-property>
<list-property name="filter">
<structure>
<property name="operator">eq</property>
<expression name="expr"
type="javascript">(row["rwc"]-3)%3</expression>
<simple-property-list name="value1">
<value>0</value>
</simple-property-list>
</structure>
</list-property>
<column id="68"/>
<column id="60"/>
<column id="61"/>
<column id="63"/>
<header>
<row id="26">
<cell id="65">
<label id="69">
<text-property
name="text">rwc</text-property>
</label>
</cell>
<cell id="29">
<label id="30">
<text-property
name="text">PRODUCTCODE</text-property>
</label>
</cell>
<cell id="31">
<label id="32">
<text-property
name="text">QUANTITYORDERED</text-property>
</label>
</cell>
<cell id="35">
<label id="36">
<text-property
name="text">ORDERLINENUMBER</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="39">
<cell id="66">
<data id="70">
<property
name="resultSetColumn">rwc</property>
</data>
</cell>
<cell id="42">
<data id="43">
<property
name="resultSetColumn">PRODUCTCODE</property>
</data>
</cell>
<cell id="44">
<data id="45">
<property
name="resultSetColumn">QUANTITYORDERED</property>
</data>
</cell>
<cell id="48">
<data id="49">
<property
name="resultSetColumn">ORDERLINENUMBER</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="52">
<cell id="67"/>
<cell id="54"/>
<cell id="55"/>
<cell id="57"/>
</row>
</footer>
</table>
</cell>
</row>
<row id="21">
<cell id="22"/>
<cell id="23"/>
<cell id="24"/>
</row>
</grid>
</body>
</report>



On 10/14/2010 10:10 AM, Jay Jakilinki wrote:
> Hello
>
> Need your help !
>
> I am new to BIRT and this is my first report.
>
> I need to develop a report where a table has 2 columns and has hundreds
> of records. The requirement is to split the rows across columns - for
> example say the 2 columns are Name and Phone #. I need to have a table
> with these 2 columns repeated 4 times (4 column sets). So, the number of
> rows need to be split 4 times.
> If the # of rows is 13, then the first column set will have 4 records (1
> - 4), the second column set will have the next 4 records (5 - 8), the
> third column set will have the next 4 records (9 - 12) and the fourth
> column set will have the last record (13).
>
> What would be the best approach ?
>
> I tried using nested tables - 1 table for each column set and used some
> pagination logic using row["__rownum"] and record count (aggregation
> column binding). But, the query will be executed once for each column
> set i.e. 4 times for each table.
>
> Please advice...
Re: Column wrapping in a table [message #632881 is a reply to message #632870] Thu, 14 October 2010 10:51 Go to previous messageGo to next message
Jay Jakilinki is currently offline Jay Jakilinki
Messages: 11
Registered: October 2010
Junior Member
Thanks much Jason for your quick response.

I tried it and it works great.

Couple of notes:
- I am using BIRT 2.5.2
- i was able to use row["__rownum"] in the Table filter and it works, but as I am not too intimate with these built in variables yet, I was not too confident. Your suggestion of using the computed recordcount is what I will use, I will change my report.
- as the rows have to go down the table first and then wrap to the next table, I need to put in a different logic. I created an aggregated column binding for the nested table for the total record count and that used that count with some pagination logic.


Where can I find more information about the BIRT builin variables ?

Please check out my attached report and let me know what you think...

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.21" id="1">
<property name="createdBy">Eclipse BIRT Designer Version 2.5.2.v20100208 Build &lt;2.5.2.v20100210-0630></property>
<property name="units">in</property>
<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="Classic Models" id="7">
<property name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
<property name="OdaConnProfileName"></property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet " name="Products" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">PRODUCTNAME</property>
<text-property name="displayName">PRODUCTNAME</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTCODE</property>
<text-property name="displayName">PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">QUANTITYINSTOCK</property>
<text-property name="displayName">QUANTITYINSTOCK</text-property>
</structure>
</list-property>
<list-property name="parameters">
<structure>
<property name="name">ProductLine</property>
<property name="nativeName"></property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
<property name="position">1</property>
<expression name="defaultValue" type="javascript">"Ships"</expression>
<property name="isOptional">true</property>
<property name="allowNull">true</property>
<property name="isInput">true</property>
<property name="isOutput">false</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">PRODUCTNAME</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYINSTOCK</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Classic Models</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">PRODUCTNAME</property>
<property name="nativeName">PRODUCTNAME</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYINSTOCK</property>
<property name="nativeName">QUANTITYINSTOCK</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select CLASSICMODELS.PRODUCTS.PRODUCTNAME, CLASSICMODELS.PRODUCTS.PRODUCTCODE, CLASSICMODELS.PRODUCTS.QUANTITYINSTOCK
from CLASSICMODELS.PRODUCTS
where CLASSICMODELS.PRODUCTS.PRODUCTLINE = ?]]></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:DataSetParameters>
<design:parameterDefinitions>
<design:inOutMode>In</design:inOutMode>
<design:attributes>
<design:name></design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>50</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
</design:attributes>
<design:inputAttributes>
<design:elementAttributes>
<design:optional>true</design:optional>
</design:elementAttributes>
</design:inputAttributes>
</design:parameterDefinitions>
</design:DataSetParameters>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTNAME</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>70</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTNAME</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTNAME</design:label>
<design:formattingHints>
<design:displaySize>70</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYINSTOCK</design:name>
<design:position>2</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>QUANTITYINSTOCK</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYINSTOCK</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
</oda-data-set>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet " name="Product Line" id="248">
<list-property name="columnHints">
<structure>
<property name="columnName">PRODUCTLINE</property>
<text-property name="displayName">PRODUCTLINE</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">PRODUCTLINE</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Classic Models</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">PRODUCTLINE</property>
<property name="nativeName">PRODUCTLINE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select CLASSICMODELS.PRODUCTLINES.PRODUCTLINE
from CLASSICMODELS.PRODUCTLINES]]></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>PRODUCTLINE</design:name>
<design:position>1</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>PRODUCTLINE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTLINE</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
</oda-data-set>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet " name="All Products" id="337">
<list-property name="columnHints">
<structure>
<property name="columnName">PRODUCTLINE</property>
<text-property name="displayName">PRODUCTLINE</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTLINE_COUNT</property>
<text-property name="displayName">PRODUCTLINE_COUNT</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTLINE_QUANTITYINSTOCK</property>
<text-property name="displayName">PRODUCTLINE_QUANTITYINSTOCK</text-property >
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">PRODUCTLINE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTLINE_COUNT</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">PRODUCTLINE_QUANTITYINSTOCK</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Classic Models</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">PRODUCTLINE</property>
<property name="nativeName">PRODUCTLINE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTLINE_COUNT</property>
<property name="nativeName">PRODUCTLINE_COUNT</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">PRODUCTLINE_QUANTITYINSTOCK</property>
<property name="nativeName">PRODUCTLINE_QUANTITYINSTOCK</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select CLASSICMODELS.PRODUCTS.PRODUCTLINE, count(1) PRODUCTLINE_COUNT, sum(CLASSICMODELS.PRODUCTS.QUANTITYINSTOCK) PRODUCTLINE_QUANTITYINSTOCK
from CLASSICMODELS.PRODUCTS
group by CLASSICMODELS.PRODUCTS.PRODUCTLINE]]></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>PRODUCTCODE</design:name>
<design:position>1</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>PRODUCTCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTNAME</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>70</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTNAME</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTNAME</design:label>
<design:formattingHints>
<design:displaySize>70</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTLINE</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>PRODUCTLINE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTLINE</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTSCALE</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTSCALE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTSCALE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTVENDOR</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>PRODUCTVENDOR</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTVENDOR</design:label>
<design:formattingHints>
<design:displaySize>50</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTDESCRIPTION</design:name>
<design:position>6</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>32700</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTDESCRIPTION</design:displayName >
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTDESCRIPTION</design:label>
<design:formattingHints>
<design:displaySize>32700</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYINSTOCK</design:name>
<design:position>7</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>QUANTITYINSTOCK</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYINSTOCK</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>BUYPRICE</design:name>
<design:position>8</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>BUYPRICE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>BUYPRICE</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>MSRP</design:name>
<design:position>9</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>MSRP</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>MSRP</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" 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-cell" 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>
<style name="group1-footer" id="75">
<property name="backgroundColor">#859CA1</property>
<property name="fontFamily">sans-serif</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#F5F5DC</property>
</style>
<style name="group1-header" id="74">
<property name="backgroundColor">#859CA1</property>
<property name="fontFamily">sans-serif</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#F5F5DC</property>
</style>
<style name="table-detail" id="73">
<property name="backgroundColor">#DEDCD3</property>
<property name="fontFamily">sans-serif</property>
<property name="fontSize">x-small</property>
<property name="color">#1C515A</property>
<property name="borderBottomColor">#859CA1</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">thin</property>
<property name="borderLeftColor">#859CA1</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">thin</property>
<property name="borderRightColor">#859CA1</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">thin</property>
<property name="borderTopColor">#859CA1</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">thin</property>
</style>
<style name="table-footer" id="71">
<property name="backgroundColor">#5C6C7B</property>
<property name="fontFamily">sans-serif</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#DEDCD3</property>
</style>
<style name="table-header" id="72">
<property name="backgroundColor">#5C6C7B</property>
<property name="fontFamily">sans-serif</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#DEDCD3</property>
</style>
<style name="sub-total" id="335">
<property name="fontSize">smaller</property>
<property name="fontWeight">bold</property>
<property name="textUnderline">none</property>
</style>
<style name="Total" id="340">
<property name="backgroundColor">#FF8000</property>
<property name="fontSize">smaller</property>
<property name="fontWeight">bold</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>
<grid id="296">
<column id="297"/>
<row id="298">
<cell id="299">
<table name="Outer Table" id="113">
<property name="dataSet">All Products</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">PRODUCTLINE</property>
<expression name="expression" type="javascript">dataSetRow["PRODUCTLINE"]</expression >
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">PRODUCTLINE_COUNT</property>
<expression name="expression" type="javascript">dataSetRow["PRODUCTLINE_COUNT"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">PRODUCTLINE_QUANTITYINSTOCK</property>
<expression name="expression" type="javascript">dataSetRow["PRODUCTLINE_QUANTITYINSTOCK "]</expression>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Total</property>
<expression name="expression" type="javascript">row["PRODUCTLINE_QUANTITYINSTOCK"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Count</property>
<expression name="expression" type="javascript">"Count : " + row["PRODUCTLINE_COUNT"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<list-property name="sort">
<structure>
<expression name="key" type="javascript">row["PRODUCTLINE"]</expression>
<property name="direction">asc</property>
<property name="strength">-1</property>
</structure>
</list-property>
<column id="132"/>
<column id="133"/>
<column id="134"/>
<column id="135"/>
<header>
<row id="114">
<cell id="115"/>
<cell id="116"/>
<cell id="117"/>
<cell id="118"/>
</row>
</header>
<group id="341">
<property name="groupName">ProductLine Group</property>
<property name="interval">none</property>
<property name="sortDirection">asc</property>
<expression name="keyExpr" type="javascript">row["PRODUCTLINE"]</expression>
<structure name="toc">
<expression name="expressionValue" type="javascript">row["PRODUCTLINE"]</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="342">
<property name="backgroundColor">#FFFF8C</property>
<cell id="343">
<data id="352">
<property name="resultSetColumn">PRODUCTLINE</property>
</data>
</cell>
<cell id="344">
<data id="364">
<property name="resultSetColumn">Count</property>
</data>
</cell>
<cell id="345"/>
<cell id="346"/>
</row>
</header>
<footer>
<row id="347">
<cell id="348"/>
<cell id="349"/>
<cell id="350"/>
<cell id="351">
<grid id="355">
<column id="356"/>
<column id="357"/>
<row id="358">
<property name="style">Total</property>
<cell id="359">
<label id="363">
<text-property name="text">Total</text-property>
</label>
</cell>
<cell id="360">
<data id="361">
<structure name="numberFormat">
<property name="category">Fixed</property>
<property name="pattern">#,##0</property>
</structure>
<property name="textAlign">right</property>
<list-property name="mapRules">
<structure>
<expression name="testExpr" type="javascript">row["Total"]</expression>
<property name="operator">is-null</property>
<text-property name="display">0</text-property>
</structure>
</list-property>
<property name="resultSetColumn">Total</property>
</data>
</cell>
</row>
</grid>
</cell>
</row>
</footer>
</group>
<detail>
<row id="120">
<cell id="121">
<table name="Inner Table 1" id="137">
<property name="dataSet">Products</property>
<list-property name="paramBindings">
<structure>
<property name="paramName">ProductLine</property>
<expression name="expression" type="javascript">row["PRODUCTLINE"]</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">PRODUCTNAME</property>
<expression name="expression" type="javascript">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">QUANTITYINSTOCK</property>
<expression name="expression" type="javascript">dataSetRow["QUANTITYINSTOCK"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Product Count</property>
<property name="dataType">integer</property>
<property name="aggregateFunction">COUNT</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression name="value" type="javascript">row["PRODUCTNAME"]</expression>
</structure>
</list-property>
</structure>
<structure>
<property name="name">Quantity Sub Total</property>
<property name="dataType">integer</property>
<property name="aggregateFunction">SUM</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression name="value" type="javascript">row["QUANTITYINSTOCK"]</expression>
</structure>
</list-property>
</structure>
<structure>
<property name="name">Column Binding</property>
<expression name="expression" type="javascript">row["Quantity Sub Total"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">SubTotal</property>
<expression name="expression" type="javascript">row["Quantity Sub Total"]</expression>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">ROWNUM</property>
<expression name="expression" type="javascript">row.__rownum</expression>
<property name="dataType">integer</property>
</structure>
</list-property>
<list-property name="sort">
<structure>
<expression name="key" type="javascript">row["PRODUCTNAME"]</expression>
<property name="direction">asc</property>
<property name="strength">-1</property>
</structure>
</list-property>
<list-property name="filter">
<structure>
<property name="operator">le</property>
<expression name="expr" type="javascript">row["__rownum"]</expression>
<simple-property-list name="value1">
<value>Math.floor((row["Product Count"] - 1) / 4)</value>
</simple-property-list>
</structure>
</list-property>
<column id="147"/>
<column id="148"/>
<header>
<row id="138">
<cell id="139">
<label id="201">
<text-property name="text">Name</text-property>
</label>
</cell>
<cell id="140">
<label id="203">
<text-property name="text">Quantity</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="141">
<cell id="142">
<data id="202">
<property name="resultSetColumn">PRODUCTNAME</property>
</data>
</cell>
<cell id="143">
<data id="204">
<structure name="numberFormat">
<property name="category">Fixed</property>
<property name="pattern">#,##0</property>
</structure>
<property name="textAlign">right</property>
<property name="resultSetColumn">QUANTITYINSTOCK</property>
</data>
</cell>
</row>
</detail>
</table>
</cell>
<cell id="122">
<table name="Inner Table 2" id="149">
<property name="dataSet">Products</property>
<list-property name="paramBindings">
<structure>
<property name="paramName">ProductLine</property>
<expression name="expression" type="javascript">row["PRODUCTLINE"]</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">PRODUCTNAME</property>
<expression name="expression" type="javascript">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">QUANTITYINSTOCK</property>
<expression name="expression" type="javascript">dataSetRow["QUANTITYINSTOCK"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Product Count</property>
<property name="dataType">integer</property>
<property name="aggregateFunction">COUNT</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression name="value" type="javascript">

[Updated on: Thu, 14 October 2010 11:25]

Report message to a moderator

Re: Column wrapping in a table [message #632935 is a reply to message #632881] Thu, 14 October 2010 13:29 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Jay,

Can you email me the report. Post did not come through.
jasonweathersby at windstream dot net.


Jason

On 10/14/2010 10:51 AM, Jay Jakilinki wrote:
> Thanks much Jason for your quick response.
>
> I tried it and it works great.
>
> Couple of notes:
> - i was able to use row["__rownum"] in the Table filter and it works,
> but as I am not too intimate with these built in variables yet, I was
> not too confident. Your suggestion of using the computed recordcount is
> what I will use, I will change my report.
> - as the rows have to go down the table first and then wrap to the next
> table, I need to put in a different logic. I created an aggregated
> column binding for the nested table for the total record count and that
> used that count with some pagination logic.
>
>
> Where can I find more information about the BIRT builin variables ?
>
> Please check out my attached report and let me know what you think...
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.21"
> id="1">
> <property name="createdBy">Eclipse BIRT Designer Version 2.5.2.v20100208
> Build <2.5.2.v20100210-0630></property>
> <property name="units">in</property>
> <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="Classic Models" id="7">
> <property
> name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
>
> <property name="odaURL">jdbc:classicmodels:sampledb</property>
> <property name="odaUser">ClassicModels</property>
> <property name="OdaConnProfileName"></property>
> </oda-data-source>
> </data-sources>
> <data-sets>
> <oda-data-set
> extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
> name="Products" id="8">
> <list-property name="columnHints">
> <structure>
> <property name="columnName">PRODUCTNAME</property>
> <text-property name="displayName">PRODUCTNAME</text-property>
> </structure>
> <structure>
> <property name="columnName">PRODUCTCODE</property>
> <text-property name="displayName">PRODUCTCODE</text-property>
> </structure>
> <structure>
> <property name="columnName">QUANTITYINSTOCK</property>
> <text-property name="displayName">QUANTITYINSTOCK</text-property>
> </structure>
> </list-property>
> <list-property name="parameters">
> <structure>
> <property name="name">ProductLine</property>
> <property name="nativeName"></property>
> <property name="dataType">string</property>
> <property name="nativeDataType">12</property>
> <property name="position">1</property>
> <expression name="defaultValue" type="javascript">"Ships"</expression>
> <property name="isOptional">true</property>
> <property name="allowNull">true</property>
> <property name="isInput">true</property>
> <property name="isOutput">false</property>
> </structure>
> </list-property>
> <structure name="cachedMetaData">
> <list-property name="resultSet">
> <structure>
> <property name="position">1</property>
> <property name="name">PRODUCTNAME</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">2</property>
> <property name="name">PRODUCTCODE</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">3</property>
> <property name="name">QUANTITYINSTOCK</property>
> <property name="dataType">integer</property>
> </structure>
> </list-property>
> </structure>
> <property name="dataSource">Classic Models</property>
> <list-property name="resultSet">
> <structure>
> <property name="position">1</property>
> <property name="name">PRODUCTNAME</property>
> <property name="nativeName">PRODUCTNAME</property>
> <property name="dataType">string</property>
> <property name="nativeDataType">12</property>
> </structure>
> <structure>
> <property name="position">2</property>
> <property name="name">PRODUCTCODE</property>
> <property name="nativeName">PRODUCTCODE</property>
> <property name="dataType">string</property>
> <property name="nativeDataType">12</property>
> </structure>
> <structure>
> <property name="position">3</property>
> <property name="name">QUANTITYINSTOCK</property>
> <property name="nativeName">QUANTITYINSTOCK</property>
> <property name="dataType">integer</property>
> <property name="nativeDataType">4</property>
> </structure>
> </list-property>
> <xml-property name="queryText"><![CDATA[select
> CLASSICMODELS.PRODUCTS.PRODUCTNAME, CLASSICMODELS.PRODUCTS.PRODUCTCODE,
> CLASSICMODELS.PRODUCTS.QUANTITYINSTOCK
> from CLASSICMODELS.PRODUCTS
> where CLASSICMODELS.PRODUCTS.PRODUCTLINE = ?]]></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:DataSetParameters>
> <design:parameterDefinitions>
> <design:inOutMode>In</design:inOutMode>
> <design:attributes>
> <design:name></design:name>
> <design:position>1</design:position>
> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
> <design:precision>50</design:precision>
> <design:scale>0</design:scale>
> <design:nullability>Nullable</design:nullability>
> </design:attributes>
> <design:inputAttributes>
> <design:elementAttributes>
> <design:optional>true</design:optional>
> </design:elementAttributes>
> </design:inputAttributes>
> </design:parameterDefinitions>
> </design:DataSetParameters>
> <design:ResultSets derivedMetaData="true">
> <design:resultSetDefinitions>
> <design:resultSetColumns>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>PRODUCTNAME</design:name>
> <design:position>1</design:position>
> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
> <design:precision>70</design:precision>
> <design:scale>0</design:scale>
> <design:nullability>Nullable</design:nullability>
> <design:uiHints>
> <design:displayName>PRODUCTNAME</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTNAME</design:label>
> <design:formattingHints>
> <design:displaySize>70</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>QUANTITYINSTOCK</design:name>
> <design:position>2</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>QUANTITYINSTOCK</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>QUANTITYINSTOCK</design:label>
> <design:formattingHints>
> <design:displaySize>11</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> </design:resultSetColumns>
> <design:criteria/>
> </design:resultSetDefinitions>
> </design:ResultSets>
> </model:DesignValues>]]></xml-property>
> </oda-data-set>
> <oda-data-set
> extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
> name="Product Line" id="248">
> <list-property name="columnHints">
> <structure>
> <property name="columnName">PRODUCTLINE</property>
> <text-property name="displayName">PRODUCTLINE</text-property>
> </structure>
> </list-property>
> <structure name="cachedMetaData">
> <list-property name="resultSet">
> <structure>
> <property name="position">1</property>
> <property name="name">PRODUCTLINE</property>
> <property name="dataType">string</property>
> </structure>
> </list-property>
> </structure>
> <property name="dataSource">Classic Models</property>
> <list-property name="resultSet">
> <structure>
> <property name="position">1</property>
> <property name="name">PRODUCTLINE</property>
> <property name="nativeName">PRODUCTLINE</property>
> <property name="dataType">string</property>
> <property name="nativeDataType">12</property>
> </structure>
> </list-property>
> <xml-property name="queryText"><![CDATA[select
> CLASSICMODELS.PRODUCTLINES.PRODUCTLINE
> from CLASSICMODELS.PRODUCTLINES]]></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>PRODUCTLINE</design:name>
> <design:position>1</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>PRODUCTLINE</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTLINE</design:label>
> <design:formattingHints>
> <design:displaySize>50</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> </design:resultSetColumns>
> <design:criteria/>
> </design:resultSetDefinitions>
> </design:ResultSets>
> </model:DesignValues>]]></xml-property>
> </oda-data-set>
> <oda-data-set
> extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
> name="All Products" id="337">
> <list-property name="columnHints">
> <structure>
> <property name="columnName">PRODUCTLINE</property>
> <text-property name="displayName">PRODUCTLINE</text-property>
> </structure>
> <structure>
> <property name="columnName">PRODUCTLINE_COUNT</property>
> <text-property name="displayName">PRODUCTLINE_COUNT</text-property>
> </structure>
> <structure>
> <property name="columnName">PRODUCTLINE_QUANTITYINSTOCK</property>
> <text-property
> name="displayName">PRODUCTLINE_QUANTITYINSTOCK</text-property >
> </structure>
> </list-property>
> <structure name="cachedMetaData">
> <list-property name="resultSet">
> <structure>
> <property name="position">1</property>
> <property name="name">PRODUCTLINE</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">2</property>
> <property name="name">PRODUCTLINE_COUNT</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">3</property>
> <property name="name">PRODUCTLINE_QUANTITYINSTOCK</property>
> <property name="dataType">integer</property>
> </structure>
> </list-property>
> </structure>
> <property name="dataSource">Classic Models</property>
> <list-property name="resultSet">
> <structure>
> <property name="position">1</property>
> <property name="name">PRODUCTLINE</property>
> <property name="nativeName">PRODUCTLINE</property>
> <property name="dataType">string</property>
> <property name="nativeDataType">12</property>
> </structure>
> <structure>
> <property name="position">2</property>
> <property name="name">PRODUCTLINE_COUNT</property>
> <property name="nativeName">PRODUCTLINE_COUNT</property>
> <property name="dataType">integer</property>
> <property name="nativeDataType">4</property>
> </structure>
> <structure>
> <property name="position">3</property>
> <property name="name">PRODUCTLINE_QUANTITYINSTOCK</property>
> <property name="nativeName">PRODUCTLINE_QUANTITYINSTOCK</property>
> <property name="dataType">integer</property>
> <property name="nativeDataType">4</property>
> </structure>
> </list-property>
> <xml-property name="queryText"><![CDATA[select
> CLASSICMODELS.PRODUCTS.PRODUCTLINE, count(1) PRODUCTLINE_COUNT,
> sum(CLASSICMODELS.PRODUCTS.QUANTITYINSTOCK) PRODUCTLINE_QUANTITYINSTOCK
> from CLASSICMODELS.PRODUCTS
> group by CLASSICMODELS.PRODUCTS.PRODUCTLINE]]></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>PRODUCTCODE</design:name>
> <design:position>1</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>PRODUCTCODE</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTCODE</design:label>
> <design:formattingHints>
> <design:displaySize>15</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>PRODUCTNAME</design:name>
> <design:position>2</design:position>
> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
> <design:precision>70</design:precision>
> <design:scale>0</design:scale>
> <design:nullability>Nullable</design:nullability>
> <design:uiHints>
> <design:displayName>PRODUCTNAME</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTNAME</design:label>
> <design:formattingHints>
> <design:displaySize>70</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>PRODUCTLINE</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>PRODUCTLINE</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTLINE</design:label>
> <design:formattingHints>
> <design:displaySize>50</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>PRODUCTSCALE</design:name>
> <design:position>4</design:position>
> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
> <design:precision>10</design:precision>
> <design:scale>0</design:scale>
> <design:nullability>Nullable</design:nullability>
> <design:uiHints>
> <design:displayName>PRODUCTSCALE</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTSCALE</design:label>
> <design:formattingHints>
> <design:displaySize>10</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>PRODUCTVENDOR</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>PRODUCTVENDOR</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTVENDOR</design:label>
> <design:formattingHints>
> <design:displaySize>50</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>PRODUCTDESCRIPTION</design:name>
> <design:position>6</design:position>
> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
> <design:precision>32700</design:precision>
> <design:scale>0</design:scale>
> <design:nullability>Nullable</design:nullability>
> <design:uiHints>
> <design:displayName>PRODUCTDESCRIPTION</design:displayName >
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>PRODUCTDESCRIPTION</design:label>
> <design:formattingHints>
> <design:displaySize>32700</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>QUANTITYINSTOCK</design:name>
> <design:position>7</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>QUANTITYINSTOCK</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>QUANTITYINSTOCK</design:label>
> <design:formattingHints>
> <design:displaySize>11</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>BUYPRICE</design:name>
> <design:position>8</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>BUYPRICE</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>BUYPRICE</design:label>
> <design:formattingHints>
> <design:displaySize>22</design:displaySize>
> </design:formattingHints>
> </design:usageHints>
> </design:resultColumnDefinitions>
> <design:resultColumnDefinitions>
> <design:attributes>
> <design:name>MSRP</design:name>
> <design:position>9</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>MSRP</design:displayName>
> </design:uiHints>
> </design:attributes>
> <design:usageHints>
> <design:label>MSRP</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" 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-cell" 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>
> <style name="group1-footer" id="75">
> <property name="backgroundColor">#859CA1</property>
> <property name="fontFamily">sans-serif</property>
> <property name="fontSize">small</property>
> <property name="fontWeight">bold</property>
> <property name="color">#F5F5DC</property>
> </style>
> <style name="group1-header" id="74">
> <property name="backgroundColor">#859CA1</property>
> <property name="fontFamily">sans-serif</property>
> <property name="fontSize">small</property>
> <property name="fontWeight">bold</property>
> <property name="color">#F5F5DC</property>
> </style>
> <style name="table-detail" id="73">
> <property name="backgroundColor">#DEDCD3</property>
> <property name="fontFamily">sans-serif</property>
> <property name="fontSize">x-small</property>
> <property name="color">#1C515A</property>
> <property name="borderBottomColor">#859CA1</property>
> <property name="borderBottomStyle">solid</property>
> <property name="borderBottomWidth">thin</property>
> <property name="borderLeftColor">#859CA1</property>
> <property name="borderLeftStyle">solid</property>
> <property name="borderLeftWidth">thin</property>
> <property name="borderRightColor">#859CA1</property>
> <property name="borderRightStyle">solid</property>
> <property name="borderRightWidth">thin</property>
> <property name="borderTopColor">#859CA1</property>
> <property name="borderTopStyle">solid</property>
> <property name="borderTopWidth">thin</property>
> </style>
> <style name="table-footer" id="71">
> <property name="backgroundColor">#5C6C7B</property>
> <property name="fontFamily">sans-serif</property>
> <property name="fontSize">small</property>
> <property name="fontWeight">bold</property>
> <property name="color">#DEDCD3</property>
> </style>
> <style name="table-header" id="72">
> <property name="backgroundColor">#5C6C7B</property>
> <property name="fontFamily">sans-serif</property>
> <property name="fontSize">small</property>
> <property name="fontWeight">bold</property>
> <property name="color">#DEDCD3</property>
> </style>
> <style name="sub-total" id="335">
> <property name="fontSize">smaller</property>
> <property name="fontWeight">bold</property>
> <property name="textUnderline">none</property>
> </style>
> <style name="Total" id="340">
> <property name="backgroundColor">#FF8000</property>
> <property name="fontSize">smaller</property>
> <property name="fontWeight">bold</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>
> <grid id="296">
> <column id="297"/>
> <row id="298">
> <cell id="299">
> <table name="Outer Table" id="113">
> <property name="dataSet">All Products</property>
> <list-property name="boundDataColumns">
> <structure>
> <property name="name">PRODUCTLINE</property>
> <expression name="expression"
> type="javascript">dataSetRow["PRODUCTLINE"]</expression >
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="name">PRODUCTLINE_COUNT</property>
> <expression name="expression"
> type="javascript">dataSetRow["PRODUCTLINE_COUNT"]</expression >
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">PRODUCTLINE_QUANTITYINSTOCK</property>
> <expression name="expression"
> type="javascript">dataSetRow["PRODUCTLINE_QUANTITYINSTOCK "]</expression>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">Total</property>
> <expression name="expression"
> type="javascript">row["PRODUCTLINE_QUANTITYINSTOCK"]</expression >
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">Count</property>
> <expression name="expression" type="javascript">"Count : " +
> row["PRODUCTLINE_COUNT"]</expression>
> <property name="dataType">string</property>
> </structure>
> </list-property>
> <list-property name="sort">
> <structure>
> <expression name="key" type="javascript">row["PRODUCTLINE"]</expression>
> <property name="direction">asc</property>
> <property name="strength">-1</property>
> </structure>
> </list-property>
> <column id="132"/>
> <column id="133"/>
> <column id="134"/>
> <column id="135"/>
> <header>
> <row id="114">
> <cell id="115"/>
> <cell id="116"/>
> <cell id="117"/>
> <cell id="118"/>
> </row>
> </header>
> <group id="341">
> <property name="groupName">ProductLine Group</property>
> <property name="interval">none</property>
> <property name="sortDirection">asc</property>
> <expression name="keyExpr"
> type="javascript">row["PRODUCTLINE"]</expression>
> <structure name="toc">
> <expression name="expressionValue"
> type="javascript">row["PRODUCTLINE"]</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="342">
> <property name="backgroundColor">#FFFF8C</property>
> <cell id="343">
> <data id="352">
> <property name="resultSetColumn">PRODUCTLINE</property>
> </data>
> </cell>
> <cell id="344">
> <data id="364">
> <property name="resultSetColumn">Count</property>
> </data>
> </cell>
> <cell id="345"/>
> <cell id="346"/>
> </row>
> </header>
> <footer>
> <row id="347">
> <cell id="348"/>
> <cell id="349"/>
> <cell id="350"/>
> <cell id="351">
> <grid id="355">
> <column id="356"/>
> <column id="357"/>
> <row id="358">
> <property name="style">Total</property>
> <cell id="359">
> <label id="363">
> <text-property name="text">Total</text-property>
> </label>
> </cell>
> <cell id="360">
> <data id="361">
> <structure name="numberFormat">
> <property name="category">Fixed</property>
> <property name="pattern">#,##0</property>
> </structure>
> <property name="textAlign">right</property>
> <list-property name="mapRules">
> <structure>
> <expression name="testExpr" type="javascript">row["Total"]</expression>
> <property name="operator">is-null</property>
> <text-property name="display">0</text-property>
> </structure>
> </list-property>
> <property name="resultSetColumn">Total</property>
> </data>
> </cell>
> </row>
> </grid>
> </cell>
> </row>
> </footer>
> </group>
> <detail>
> <row id="120">
> <cell id="121">
> <table name="Inner Table 1" id="137">
> <property name="dataSet">Products</property>
> <list-property name="paramBindings">
> <structure>
> <property name="paramName">ProductLine</property>
> <expression name="expression"
> type="javascript">row["PRODUCTLINE"]</expression>
> </structure>
> </list-property>
> <list-property name="boundDataColumns">
> <structure>
> <property name="name">PRODUCTNAME</property>
> <expression name="expression"
> type="javascript">dataSetRow["PRODUCTCODE"]</expression >
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="name">QUANTITYINSTOCK</property>
> <expression name="expression"
> type="javascript">dataSetRow["QUANTITYINSTOCK"]</expression >
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">Product Count</property>
> <property name="dataType">integer</property>
> <property name="aggregateFunction">COUNT</property>
> <list-property name="arguments">
> <structure>
> <property name="name">Expression</property>
> <expression name="value" type="javascript">row["PRODUCTNAME"]</expression>
> </structure>
> </list-property>
> </structure>
> <structure>
> <property name="name">Quantity Sub Total</property>
> <property name="dataType">integer</property>
> <property name="aggregateFunction">SUM</property>
> <list-property name="arguments">
> <structure>
> <property name="name">Expression</property>
> <expression name="value"
> type="javascript">row["QUANTITYINSTOCK"]</expression>
> </structure>
> </list-property>
> </structure>
> <structure>
> <property name="name">Column Binding</property>
> <expression name="expression" type="javascript">row["Quantity Sub
> Total"]</expression>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="name">SubTotal</property>
> <expression name="expression" type="javascript">row["Quantity Sub
> Total"]</expression>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">ROWNUM</property>
> <expression name="expression" type="javascript">row.__rownum</expression>
> <property name="dataType">integer</property>
> </structure>
> </list-property>
> <list-property name="sort">
> <structure>
> <expression name="key" type="javascript">row["PRODUCTNAME"]</expression>
> <property name="direction">asc</property>
> <property name="strength">-1</property>
> </structure>
> </list-property>
> <list-property name="filter">
> <structure>
> <property name="operator">le</property>
> <expression name="expr" type="javascript">row["__rownum"]</expression>
> <simple-property-list name="value1">
> <value>Math.floor((row["Product Count"] - 1) / 4)</value>
> </simple-property-list>
> </structure>
> </list-property>
> <column id="147"/>
> <column id="148"/>
> <header>
> <row id="138">
> <cell id="139">
> <label id="201">
> <text-property name="text">Name</text-property>
> </label>
> </cell>
> <cell id="140">
> <label id="203">
> <text-property name="text">Quantity</text-property>
> </label>
> </cell>
> </row>
> </header>
> <detail>
> <row id="141">
> <cell id="142">
> <data id="202">
> <property name="resultSetColumn">PRODUCTNAME</property>
> </data>
> </cell>
> <cell id="143">
> <data id="204">
> <structure name="numberFormat">
> <property name="category">Fixed</property>
> <property name="pattern">#,##0</property>
> </structure>
> <property name="textAlign">right</property>
> <property name="resultSetColumn">QUANTITYINSTOCK</property>
> </data>
> </cell>
> </row>
> </detail>
> </table>
> </cell>
> <cell id="122">
> <table name="Inner Table 2" id="149">
> <property name="dataSet">Products</property>
> <list-property name="paramBindings">
> <structure>
> <property name="paramName">ProductLine</property>
> <expression name="expression"
> type="javascript">row["PRODUCTLINE"]</expression>
> </structure>
> </list-property>
> <list-property name="boundDataColumns">
> <structure>
> <property name="name">PRODUCTNAME</property>
> <expression name="expression"
> type="javascript">dataSetRow["PRODUCTCODE"]</expression >
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="name">QUANTITYINSTOCK</property>
> <expression name="expression"
> type="javascript">dataSetRow["QUANTITYINSTOCK"]</expression >
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">Product Count</property>
> <property name="dataType">integer</property>
> <property name="aggregateFunction">COUNT</property>
> <list-property name="arguments">
> <structure>
> <property name="name">Expression</property>
> <expression name="value" type="javascript">row["PRODUCTNAME"]</expression>
> </structure>
> </list-property>
> </structure>
> <structure>
> <property name="name">Quantity Sub Total</property>
> <property name="dataType">integer</property>
> <property name="aggregateFunction">SUM</property>
> <list-property name="arguments">
> <structure>
> <property name="name">Expression</property>
> <expression name="value"
> type="javascript">row["QUANTITYINSTOCK"]</expression>
> </structure>
> </list-property>
> </structure>
> <structure>
> <property name="name">SubTotal</property>
> <expression name="expression" type="javascript">row["Quantity Sub
> Total"]</expression>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="name">ROWNUM</property>
> <expression name="expression" type="javascript">row.__rownum</expression>
> <property name="dataType">integer</property>
> </structure>
> </list-property>
> <list-property name="sort">
> <structure>
> <expression name="key" type="javascript">row["PRODUCTNAME"]</expression>
> <property name="direction">asc</property>
> <property name="strength">-1</property>
> </structure>
> </list-property>
> <list-property name="filter">
> <structure>
> <property name="operator">gt</property>
> <expression name="expr" type="javascript">row["__rownum"]</expression>
> <simple-property-list name="value1">
> <value>Math.floor((row["Product Count"] - 1) / 4)</value>
> </simple-property-list>
> </structure>
> <structure>
> <property name="operator">le</property>
> <expression name="expr" type="javascript">row["__rownum"]</expression>
> <simple-property-list name="value1">
> <value>(Math.floor((row["Product Count"] - 1) / 4) * 2) + 1</value>
> </simple-property-list>
> </structure>
> </list-property>
> <column id="159"/>
> <column id="160"/>
> <header>
> <row id="150">
> <cell id="151">
> <label id="252">
> <text-property name="text">Name</text-property>
> </label>
> </cell>
> <cell id="152">
> <la
Re: Column wrapping in a table [message #632942 is a reply to message #632935] Thu, 14 October 2010 13:55 Go to previous messageGo to next message
Jay Jakilinki is currently offline Jay Jakilinki
Messages: 11
Registered: October 2010
Junior Member
Hi Jason

I emailed you the report.

I did that the report XML was getting truncated and I was looking for somehow to attach the report to this post. Couldn't figure it out.
Re: Column wrapping in a table [message #632955 is a reply to message #632942] Thu, 14 October 2010 14:58 Go to previous message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

I replied to your email.

On 10/14/2010 1:55 PM, Jay Jakilinki wrote:
> Hi Jason
>
> I emailed you the report.
>
> I did that the report XML was getting truncated and I was looking for
> somehow to attach the report to this post. Couldn't figure it out.
Previous Topic:cachedMetaData and designerValues
Next Topic:Using RE API without birt installed on the server machine
Goto Forum:
  


Current Time: Fri Aug 01 01:52:04 EDT 2014

Powered by FUDForum. Page generated in 0.02021 seconds