Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Populate a 2nd table on a report from a 1st table
Julescg
Hi,
Bear with me this is a little difficult to explain!
I've got a requirement that my BIRT report shows an initial table of 12 items, then these 12 items are each filled into their own little tables underneath (4 per line) so that when the page is printed the little tables all line up with the pre-cut labels so they can be peeled off and stuck on said item! The initial SQL might return more than 12 items so then the next lot of items flow onto the next page and so on!
Someone has already written the report using quite complicated SQL views to return the page and item number, but this then means for each label it's going back to the database and running the query again (passing in the page item number it wants to print into that specific box!) and it's prooving quite slow!
Is there a way of populating 12 rows of a table and without going back to the database getting the information into the labels below the table?
I'm not sure if I'd be allowed to post the current report here for you to follow.
Have I lost everyone now??
Cheers
Jules
Find more posts tagged with
Comments
mwilliams
Ok, so you have an initial table that is like:
row1
row2
row3
row4
row5
row6
row7
row8
row9
row10
row11
row12
And you want it to show this and then underneath the original table, you want it to show:
label | label | label | label
row1 | row2 | row3 | row4
label | label | label | label
row5 | row6 | row7 | row8
label | label | label | label
row9 | row10 | row11 | row12
Let me know.
Julescg
Got it in 1!
johnw
I put this together. This is fairly simple, using a Scripted Data Set and a Cross Tab to lay out the rows as columns. Not sure if Michael or Virgil know a way to page break the columns. I tried filtering based on values so you can have a range per page, but that didnt quite work. You would need a few different data sets with filters set at that level instead of on the cross tab. Anyway, give it a look and tell me if its what you are looking for.
Julescg
Ok, that's annoying, I can't download it at work! I'll have a look at home this evening - thanks for your help so far!
johnw
I try and do things the right way to help, and we're blocked by policy
<br />
<br />
Here is the xml source. Just copy and past it in the XML tab in the report designer.<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'><?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 3.7.1.v20110905 Build <3.7.1.v20110905-1820></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">
<list-property name="privateDriverProperties">
<ex-property>
<name>contentBidiFormatStr</name>
<value>ILYNN</value>
</ex-property>
<ex-property>
<name>metadataBidiFormatStr</name>
<value>ILYNN</value>
</ex-property>
</list-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>
</oda-data-source>
<script-data-source name="ScriptedDataSource" id="91"/>
</data-sources>
<data-sets>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="DrivingTable" id="8">
<property name="nullsOrdering">nulls lowest</property>
<list-property name="columnHints">
<structure>
<property name="columnName">CUSTOMERNUMBER</property>
<property name="analysis">measure</property>
<text-property name="displayName">CUSTOMERNUMBER</text-property>
<text-property name="heading">CUSTOMERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">CUSTOMERNAME</property>
<property name="analysis">attribute</property>
<text-property name="displayName">CUSTOMERNAME</text-property>
<text-property name="heading">CUSTOMERNAME</text-property>
</structure>
<structure>
<property name="columnName">CONTACTLASTNAME</property>
<property name="analysis">attribute</property>
<text-property name="displayName">CONTACTLASTNAME</text-property>
<text-property name="heading">CONTACTLASTNAME</text-property>
</structure>
<structure>
<property name="columnName">CONTACTFIRSTNAME</property>
<property name="analysis">attribute</property>
<text-property name="displayName">CONTACTFIRSTNAME</text-property>
<text-property name="heading">CONTACTFIRSTNAME</text-property>
</structure>
<structure>
<property name="columnName">PHONE</property>
<property name="analysis">attribute</property>
<text-property name="displayName">PHONE</text-property>
<text-property name="heading">PHONE</text-property>
</structure>
<structure>
<property name="columnName">ADDRESSLINE1</property>
<property name="analysis">attribute</property>
<text-property name="displayName">ADDRESSLINE1</text-property>
<text-property name="heading">ADDRESSLINE1</text-property>
</structure>
<structure>
<property name="columnName">ADDRESSLINE2</property>
<property name="analysis">attribute</property>
<text-property name="displayName">ADDRESSLINE2</text-property>
<text-property name="heading">ADDRESSLINE2</text-property>
</structure>
<structure>
<property name="columnName">CITY</property>
<property name="analysis">attribute</property>
<text-property name="displayName">CITY</text-property>
<text-property name="heading">CITY</text-property>
</structure>
<structure>
<property name="columnName">STATE</property>
<property name="analysis">attribute</property>
<text-property name="displayName">STATE</text-property>
<text-property name="heading">STATE</text-property>
</structure>
<structure>
<property name="columnName">POSTALCODE</property>
<property name="analysis">attribute</property>
<text-property name="displayName">POSTALCODE</text-property>
<text-property name="heading">POSTALCODE</text-property>
</structure>
<structure>
<property name="columnName">COUNTRY</property>
<property name="analysis">attribute</property>
<text-property name="displayName">COUNTRY</text-property>
<text-property name="heading">COUNTRY</text-property>
</structure>
<structure>
<property name="columnName">SALESREPEMPLOYEENUMBER</property>
<property name="analysis">measure</property>
<text-property name="displayName">SALESREPEMPLOYEENUMBER</text-property>
<text-property name="heading">SALESREPEMPLOYEENUMBER</text-property>
</structure>
<structure>
<property name="columnName">CREDITLIMIT</property>
<property name="analysis">measure</property>
<text-property name="displayName">CREDITLIMIT</text-property>
<text-property name="heading">CREDITLIMIT</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>
<structure>
<property name="position">3</property>
<property name="name">CONTACTLASTNAME</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">CONTACTFIRSTNAME</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">PHONE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">ADDRESSLINE1</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">ADDRESSLINE2</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">8</property>
<property name="name">CITY</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">9</property>
<property name="name">STATE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">10</property>
<property name="name">POSTALCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">11</property>
<property name="name">COUNTRY</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">12</property>
<property name="name">SALESREPEMPLOYEENUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">13</property>
<property name="name">CREDITLIMIT</property>
<property name="dataType">float</property>
</structure>
</list-property>
</structure>
<property name="rowFetchLimit">10</property>
<method name="onFetch"><![CDATA[var list = reportContext.getGlobalVariable("nameList");
if (list == null)
{
list = new Packages.java.util.ArrayList();
}
list.add(row["CUSTOMERNAME"]);
reportContext.setGlobalVariable("nameList", list);
]]></method>
<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>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">CUSTOMERNAME</property>
<property name="nativeName">CUSTOMERNAME</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">CONTACTLASTNAME</property>
<property name="nativeName">CONTACTLASTNAME</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">CONTACTFIRSTNAME</property>
<property name="nativeName">CONTACTFIRSTNAME</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">PHONE</property>
<property name="nativeName">PHONE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">ADDRESSLINE1</property>
<property name="nativeName">ADDRESSLINE1</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">ADDRESSLINE2</property>
<property name="nativeName">ADDRESSLINE2</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">8</property>
<property name="name">CITY</property>
<property name="nativeName">CITY</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">9</property>
<property name="name">STATE</property>
<property name="nativeName">STATE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">10</property>
<property name="name">POSTALCODE</property>
<property name="nativeName">POSTALCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">11</property>
<property name="name">COUNTRY</property>
<property name="nativeName">COUNTRY</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">12</property>
<property name="name">SALESREPEMPLOYEENUMBER</property>
<property name="nativeName">SALESREPEMPLOYEENUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">13</property>
<property name="name">CREDITLIMIT</property>
<property name="nativeName">CREDITLIMIT</property>
<property name="dataType">float</property>
<property name="nativeDataType">8</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from CLASSICMODELS.CUSTOMERS]]></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>2.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>CUSTOMERNUMBER</design:name>
<design:position>1</design:position>
</design:identifier>
<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:identifier>
<design:name>CUSTOMERNAME</design:name>
<design:position>2</design:position>
</design:identifier>
<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:identifier>
<design:name>CONTACTLASTNAME</design:name>
<design:position>3</design:position>
</design:identifier>
<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:identifier>
<design:name>CONTACTFIRSTNAME</design:name>
<design:position>4</design:position>
</design:identifier>
<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:identifier>
<design:name>PHONE</design:name>
<design:position>5</design:position>
</design:identifier>
<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:identifier>
<design:name>ADDRESSLINE1</design:name>
<design:position>6</design:position>
</design:identifier>
<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:identifier>
<design:name>ADDRESSLINE2</design:name>
<design:position>7</design:position>
</design:identifier>
<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:identifier>
<design:name>CITY</design:name>
<design:position>8</design:position>
</design:identifier>
<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:identifier>
<design:name>STATE</design:name>
<design:position>9</design:position>
</design:identifier>
<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:identifier>
<design:name>POSTALCODE</design:name>
<design:position>10</design:position>
</design:identifier>
<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:identifier>
<design:name>COUNTRY</design:name>
<design:position>11</design:position>
</design:identifier>
<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:identifier>
<design:name>SALESREPEMPLOYEENUMBER</design:name>
<design:position>12</design:position>
</design:identifier>
<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:identifier>
<design:name>CREDITLIMIT</design:name>
<design:position>13</design:position>
</design:identifier>
<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>
<script-data-set name="setMap" id="92">
<list-property name="resultSetHints">
<structure>
<property name="position">0</property>
<property name="name">CustomerName</property>
<property name="dataType">string</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">CustomerName</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">CustomerName</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">ScriptedDataSource</property>
<method name="open"><![CDATA[cnt = 0;
list = reportContext.getGlobalVariable("nameList");]]></method>
<method name="fetch"><![CDATA[if (cnt < list.size())
{
row["CustomerName"] = list.get(cnt);
cnt++;
return (true);
}
return (false);]]></method>
</script-data-set>
</data-sets>
<cubes>
<tabular-cube name="Data Cube" id="93">
<property name="dimensions">
<tabular-dimension name="GroupByName" id="94">
<property name="defaultHierarchy">NewTabularHierarchy</property>
<property name="hierarchies">
<tabular-hierarchy name="NewTabularHierarchy" id="95">
<property name="levels">
<tabular-level name="CustomerName" id="96">
<property name="dataType">string</property>
<property name="columnName">CustomerName</property>
</tabular-level>
</property>
</tabular-hierarchy>
</property>
</tabular-dimension>
</property>
<property name="dataSet">setMap</property>
</tabular-cube>
</cubes>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<property name="type">us-letter</property>
<property name="orientation">landscape</property>
<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 id="9">
<property name="dataSet">DrivingTable</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>
<structure>
<property name="name">CONTACTLASTNAME</property>
<text-property name="displayName">CONTACTLASTNAME</text-property>
<expression name="expression" type="javascript">dataSetRow["CONTACTLASTNAME"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">CONTACTFIRSTNAME</property>
<text-property name="displayName">CONTACTFIRSTNAME</text-property>
<expression name="expression" type="javascript">dataSetRow["CONTACTFIRSTNAME"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">PHONE</property>
<text-property name="displayName">PHONE</text-property>
<expression name="expression" type="javascript">dataSetRow["PHONE"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">ADDRESSLINE1</property>
<text-property name="displayName">ADDRESSLINE1</text-property>
<expression name="expression" type="javascript">dataSetRow["ADDRESSLINE1"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">ADDRESSLINE2</property>
<text-property name="displayName">ADDRESSLINE2</text-property>
<expression name="expression" type="javascript">dataSetRow["ADDRESSLINE2"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">CITY</property>
<text-property name="displayName">CITY</text-property>
<expression name="expression" type="javascript">dataSetRow["CITY"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">STATE</property>
<text-property name="displayName">STATE</text-property>
<expression name="expression" type="javascript">dataSetRow["STATE"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">POSTALCODE</property>
<text-property name="displayName">POSTALCODE</text-property>
<expression name="expression" type="javascript">dataSetRow["POSTALCODE"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">COUNTRY</property>
<text-property name="displayName">COUNTRY</text-property>
<expression name="expression" type="javascript">dataSetRow["COUNTRY"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">SALESREPEMPLOYEENUMBER</property>
<text-property name="displayName">SALESREPEMPLOYEENUMBER</text-property>
<expression name="expression" type="javascript">dataSetRow["SALESREPEMPLOYEENUMBER"]</expression>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">CREDITLIMIT</property>
<text-property name="displayName">CREDITLIMIT</text-property>
<expression name="expression" type="javascript">dataSetRow["CREDITLIMIT"]</expression>
<property name="dataType">float</property>
</structure>
</list-property>
<column id="79"/>
<header>
<row id="10">
<property name="fontWeight">bold</property>
<property name="textAlign">left</property>
<cell id="13">
<label id="14">
<text-property name="text">CUSTOMERNAME</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="37">
<cell id="40">
<data id="41">
<property name="resultSetColumn">CUSTOMERNAME</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="64">
<cell id="66"/>
</row>
</footer>
</table>
<extended-item extensionName="Crosstab" extensionVersion="2.5.0" id="125">
<property name="cube">Data Cube</property>
<property name="rows">
<extended-item extensionName="CrosstabView" id="127"/>
</property>
<property name="columns">
<extended-item extensionName="CrosstabView" id="132">
<property name="views">
<extended-item extensionName="DimensionView" id="128">
<property name="dimension">GroupByName</property>
<property name="levels">
<extended-item extensionName="LevelView" name="NewLevel View" id="129">
<property name="level">GroupByName/CustomerName</property>
<property name="member">
<extended-item extensionName="CrosstabCell" id="130">
<property name="content">
<grid id="133">
<property name="borderBottomColor">#000000</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">thin</property>
<property name="borderLeftColor">#000000</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">thin</property>
<property name="borderRightColor">#000000</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">thin</property>
<property name="borderTopColor">#000000</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">thin</property>
<column id="134"/>
<row id="135">
<cell id="136">
<property name="borderBottomColor">#000000</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">thin</property>
<property name="borderLeftColor">#000000</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">thin</property>
<property name="borderRightColor">#000000</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">thin</property>
<property name="borderTopColor">#000000</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">thin</property>
<label id="139">
<text-property name="text">I Am Some Label</text-property>
</label>
</cell>
</row>
<row id="137">
<cell id="138">
<property name="borderBottomColor">#000000</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">thin</property>
<property name="borderLeftColor">#000000</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">thin</property>
<property name="borderRightColor">#000000</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">thin</property>
<property name="borderTopColor">#000000</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">thin</property>
<data name="CustomerName" id="131">
<property name="resultSetColumn">CustomerName</property>
</data>
</cell>
</row>
</grid>
</property>
</extended-item>
</property>
</extended-item>
</property>
</extended-item>
</property>
</extended-item>
</property>
<property name="header">
<extended-item extensionName="CrosstabCell" id="126"/>
</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">CustomerName</property>
<expression name="expression">dimension["GroupByName"]["CustomerName"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
</extended-item>
</body>
</report>
</pre>
mwilliams
I added a little to John's example to make it put 4 per line by using an interval grouped table, a rowcount field in the scripted dataSet, and a filter on the crosstab. With a little more script, you could make it only list 12 per page. I also added "extra blank" spots in the scripted dataSet to make there always be an even set of 4 values. You could also handle this with a width on the crosstab measure cell, probably, so you can most likely disregard that part.
Julescg
Cheers guys, I'll have a proper look at it tomorrow!