Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » BIRT » Nested tables/groups(Nested tables/groups with single xml source subdivided into data sets)
Nested tables/groups [message #663811] Wed, 06 April 2011 10:47 Go to next message
TerryWyatt01 is currently offline TerryWyatt01
Messages: 6
Registered: April 2011
Junior Member
I am pretty new to Birt and have been unable to find the solution to my problem yet.

I need nested tables that display a heirarchy like the following (see xml dataset at the bottom)
1) Table of Cases, each case containing
A) Table of CaseUsers, each case user containing
a) Table of Travel
B) Table of Actions, each Action containing
a) Table of Punishments


Is there an easy to maintain (hopefully drag and drop) way to read in a nested xml document (like the provided example) as a data source, and then map sub-portions of it as individual data sets? The goal is to implement grouping for each subset (Case, Action, CaseUser, Travel,
Punishment, etc.) to represent in nested tables.

I have been able to create the layout by adding the same data source several times, but this results in exponentially longer run times with each nested table, as Birt tries to retrieve the dataset for each and every xml tag (19 retrievals of the datasource for the provided xml sample).

The structure of this document will, in reality, be much more complex than the sample and currently (even at a more simple implementation) is unusable as the report runs for more than 30 minutes.

This type of XML representation is common, and it seems that this type of grouping should be easily available, but I am unable to get it to work properly. I have begun building scripted datasets, but that solution is not easily maintainable and I am hoping that I am just (currently) ignorant of a more elegant solution.

Any help would be appreciated.


<RowSet actionType="Action1">
<Case caseId="38930" dateClosed="10-Feb-2011" clientId="643412" clientName="Jake Foolish">
<Action actionCaseId="38930" dateServed="11-Nov-2010" adverseActionId="30" allegations="" actionTypeId="114" actionType="Action1">
<Punishment pAdverseActionId="30" pParagraph="Write I'm Sorry"/>
<Punishment pAdverseActionId="30" pParagraph="Another punishment"/>
<Punishment pAdverseActionId="30" pParagraph="50 Push-ups"/>
</Action>
</Case>
<Case caseId="80002" dateClosed="" clientId="99424" clientName="John Doe">
<CaseUser cuCaseId="80002" cuUserId="999242" cuDateAssigned="20-Oct-2010" cuDateRemoved="29-Oct-2010" cuNameFormatted="[Lawyer] Mrs. Hard Nose">
<Travel travelId="1234" location="Washington DC" purpose="Witness interview"/>
<Travel travelId="1372" location="Miami" purpose="Witness interview"/>
<Travel travelId="2366" location="Los Angeles" purpose="Consultation"/>
</CaseUser>
<CaseUser cuCaseId="80002" cuUserId="194263" cuDateAssigned="25-Oct-2010" cuDateRemoved="29-Oct-2010" cuNameFormatted="[Lawyer] Mr. Bleeding Heart">
</CaseUser>
<CaseUser cuCaseId="80002" cuUserId="224011" cuDateAssigned="01-Nov-2010" cuDateRemoved="01-Nov-2010" cuNameFormatted="[Paralegal] Goldie">
</CaseUser>
<Action actionCaseId="80002" dateServed="02-Nov-2010" adverseActionId="25" allegations="" actionTypeId="115" actionType="Action1">
<Punishment pAdverseActionId="25" pParagraph="Lots of Sit-ups."/>
<Punishment pAdverseActionId="25" pParagraph="30 lashes"/>
</Action>
<Action actionCaseId="80002" dateServed="01-Nov-2010" adverseActionId="26" allegations="" actionTypeId="114" actionType="Action1">
<Punishment pAdverseActionId="26" pParagraph="Imprisonment"/>
<Punishment pAdverseActionId="26" pParagraph="Solitary Confinement"/>
</Action>
</Case>
</RowSet>
Re: Nested tables/groups [message #663990 is a reply to message #663811] Thu, 07 April 2011 02:23 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Terry

You should be able to do this using xml dataset parameters. Take a look
at the attached example. I used your data to write it. I have two
datasets one for cases and one for actions. The action dataset uses an
xml parameter to to retrieve the actions for a given case. In the
binding tab of the inner table I bind this parameter to the outer tables
caseid.

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.22"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.6.2.r262_v20110209 Build &lt;2.6.2.v20110214-1523></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.datatools.enablement.oda.xml" name="Data
Source" id="7">
<property name="FILELIST">C:\work\styles\cases.xml</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet "
name="cases" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">actionType</property>
<text-property
name="heading">actionType</text-property>
</structure>
<structure>
<property name="columnName">caseId</property>
<text-property name="heading">caseId</text-property>
</structure>
<structure>
<property name="columnName">clientId</property>
<text-property name="heading">clientId</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionType</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">caseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">clientId</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionType</property>
<property name="nativeName">actionType</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">caseId</property>
<property name="nativeName">caseId</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">clientId</property>
<property name="nativeName">clientId</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
</list-property>
<xml-property
name="queryText">< ![CDATA[table0#-TNAME-#table0#:#[/RowSet/Case]#:#{actionType ;STRING;../@actionType},{caseId;STRING;/@caseId},{clientId;S TRING;/@clientId}]] ></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>actionType</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>actionType</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>caseId</design:name>
<design:position>2</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>caseId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>clientId</design:name>
<design:position>3</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>clientId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
<list-property name="privateDriverProperties">
<ex-property>
<name>MAX_ROW</name>
<value>-1</value>
</ex-property>
<ex-property>
<name>XML_FILE</name>
</ex-property>
</list-property>
</oda-data-set>
<oda-data-set
extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet "
name="actions" id="9">
<list-property name="columnHints">
<structure>
<property name="columnName">actionCaseId</property>
<text-property
name="heading">actionCaseId</text-property>
</structure>
<structure>
<property name="columnName">dateServed</property>
<text-property
name="heading">dateServed</text-property>
</structure>
<structure>
<property name="columnName">adverseActionId</property>
<text-property
name="heading">adverseActionId</text-property>
</structure>
</list-property>
<list-property name="parameters">
<structure>
<property name="name">p1</property>
<property name="nativeName">p1</property>
<property name="dataType">integer</property>
<property name="nativeDataType">12</property>
<property name="position">1</property>
<expression name="defaultValue"
type="javascript">80002</expression>
<property name="isOptional">false</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">actionCaseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">dateServed</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">adverseActionId</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionCaseId</property>
<property name="nativeName">actionCaseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">dateServed</property>
<property name="nativeName">dateServed</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">adverseActionId</property>
<property name="nativeName">adverseActionId</property>
<property name="dataType">string</property>
</structure>
</list-property>
<xml-property
name="queryText">< ![CDATA[table0#-TNAME-#table0#:#[/RowSet/Case/Action[@action CaseId= "{?p1?}" ]]#:#{actionCaseId;STRING;/@actionCaseId},{dateServed;STRING ;/@dateServed},{adverseActionId;STRING;/@adverseActionId}]] ></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>
<DataSetParameters>
<parameter>
<design:ParameterDefinition>
<design:inOutMode>In</design:inOutMode>
<design:attributes>
<design:identifier>
<design:name>p1</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:inputAttributes>
<design:elementAttributes>
<design:defaultValues>
<design:values>CustomData value: 80002, displayValue:
null</design:values>
</design:defaultValues>
</design:elementAttributes>
</design:inputAttributes>
</design:ParameterDefinition>
</parameter>
</DataSetParameters>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>actionCaseId</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>actionCaseId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>dateServed</design:name>
<design:position>2</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>dateServed</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>adverseActionId</design:name>
<design:position>3</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>adverseActionId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
<list-property name="privateDriverProperties">
<ex-property>
<name>MAX_ROW</name>
<value>-1</value>
</ex-property>
<ex-property>
<name>XML_FILE</name>
</ex-property>
</list-property>
</oda-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab-cell" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="table-header" id="80">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-footer" id="81">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-detail" id="82">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-header-1" id="83">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-footer-1" id="84">
<property name="backgroundColor">#C0C0C0</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="special-header" id="85">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">medium</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-detail" id="86">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-header" id="87">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="mydata" id="88">
<property name="color">orange</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table id="10">
<property name="width">7.947916666666667in</property>
<property name="dataSet">cases</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">actionType</property>
<text-property
name="displayName">actionType</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionType"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">caseId</property>
<text-property
name="displayName">caseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["caseId"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">clientId</property>
<text-property
name="displayName">clientId</text-property>
<expression name="expression"
type="javascript">dataSetRow["clientId"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<column id="29">
<property name="width">1.2291666666666667in</property>
</column>
<column id="30">
<property name="width">1in</property>
</column>
<column id="31">
<property name="width">1.1875in</property>
</column>
<column id="35">
<property name="width">4.53125in</property>
</column>
<header>
<row id="11">
<cell id="12">
<label id="13">
<text-property
name="text">actionType</text-property>
</label>
</cell>
<cell id="14">
<label id="15">
<text-property
name="text">caseId</text-property>
</label>
</cell>
<cell id="16">
<label id="17">
<text-property
name="text">clientId</text-property>
</label>
</cell>
<cell id="32"/>
</row>
</header>
<detail>
<row id="18">
<cell id="19">
<data id="20">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionType</property>
</data>
</cell>
<cell id="21">
<data id="22">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">caseId</property>
</data>
</cell>
<cell id="23">
<data id="24">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">clientId</property>
</data>
</cell>
<cell id="33">
<table id="58">
<property name="dataSet">actions</property>
<list-property name="paramBindings">
<structure>
<property
name="paramName">p1</property>
<simple-property-list
name="expression">
<value
type="javascript">row["caseId"]</value>
</simple-property-list>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property
name="name">actionCaseId</property>
<text-property
name="displayName">actionCaseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionCaseId"]</expression >
<property
name="dataType">string</property>
</structure>
<structure>
<property
name="name">dateServed</property>
<text-property
name="displayName">dateServed</text-property>
<expression name="expression"
type="javascript">dataSetRow["dateServed"]</expression>
<property
name="dataType">string</property>
</structure>
<structure>
<property
name="name">adverseActionId</property>
<text-property
name="displayName">adverseActionId</text-property>
<expression name="expression"
type="javascript">dataSetRow["adverseActionId"]</expression >
<property
name="dataType">string</property>
</structure>
</list-property>
<column id="77"/>
<column id="78"/>
<column id="79"/>
<header>
<row id="59">
<cell id="60">
<label id="61">
<text-property
name="text">actionCaseId</text-property>
</label>
</cell>
<cell id="62">
<label id="63">
<text-property
name="text">dateServed</text-property>
</label>
</cell>
<cell id="64">
<label id="65">
<text-property
name="text">adverseActionId</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="66">
<cell id="67">
<data id="68">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionCaseId</property>
</data>
</cell>
<cell id="69">
<data id="70">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">dateServed</property>
</data>
</cell>
<cell id="71">
<data id="72">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">adverseActionId</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="73">
<cell id="74"/>
<cell id="75"/>
<cell id="76"/>
</row>
</footer>
</table>
</cell>
</row>
</detail>
<footer>
<row id="25">
<cell id="26"/>
<cell id="27"/>
<cell id="28"/>
<cell id="34"/>
</row>
</footer>
</table>
</body>
</report>


On 4/6/2011 10:47 AM, Terry wrote:
> I am pretty new to Birt and have been unable to find the solution to my
> problem yet.
>
> I need nested tables that display a heirarchy like the following (see
> xml dataset at the bottom)
> 1) Table of Cases, each case containing
> A) Table of CaseUsers, each case user containing
> a) Table of Travel
> B) Table of Actions, each Action containing
> a) Table of Punishments
>
>
> Is there an easy to maintain (hopefully drag and drop) way to read in a
> nested xml document (like the provided example) as a data source, and
> then map sub-portions of it as individual data sets? The goal is to
> implement grouping for each subset (Case, Action, CaseUser, Travel,
> Punishment, etc.) to represent in nested tables.
>
> I have been able to create the layout by adding the same data source
> several times, but this results in exponentially longer run times with
> each nested table, as Birt tries to retrieve the dataset for each and
> every xml tag (19 retrievals of the datasource for the provided xml
> sample).
>
> The structure of this document will, in reality, be much more complex
> than the sample and currently (even at a more simple implementation) is
> unusable as the report runs for more than 30 minutes.
>
> This type of XML representation is common, and it seems that this type
> of grouping should be easily available, but I am unable to get it to
> work properly. I have begun building scripted datasets, but that
> solution is not easily maintainable and I am hoping that I am just
> (currently) ignorant of a more elegant solution.
>
> Any help would be appreciated.
>
>
> <RowSet actionType="Action1">
> <Case caseId="38930" dateClosed="10-Feb-2011" clientId="643412"
> clientName="Jake Foolish">
> <Action actionCaseId="38930" dateServed="11-Nov-2010"
> adverseActionId="30" allegations="" actionTypeId="114"
> actionType="Action1">
> <Punishment pAdverseActionId="30" pParagraph="Write I'm Sorry"/>
> <Punishment pAdverseActionId="30" pParagraph="Another punishment"/>
> <Punishment pAdverseActionId="30" pParagraph="50 Push-ups"/>
> </Action>
> </Case>
> <Case caseId="80002" dateClosed="" clientId="99424" clientName="John Doe">
> <CaseUser cuCaseId="80002" cuUserId="999242"
> cuDateAssigned="20-Oct-2010" cuDateRemoved="29-Oct-2010"
> cuNameFormatted="[Lawyer] Mrs. Hard Nose">
> <Travel travelId="1234" location="Washington DC" purpose="Witness
> interview"/>
> <Travel travelId="1372" location="Miami" purpose="Witness interview"/>
> <Travel travelId="2366" location="Los Angeles" purpose="Consultation"/>
> </CaseUser>
> <CaseUser cuCaseId="80002" cuUserId="194263"
> cuDateAssigned="25-Oct-2010" cuDateRemoved="29-Oct-2010"
> cuNameFormatted="[Lawyer] Mr. Bleeding Heart">
> </CaseUser>
> <CaseUser cuCaseId="80002" cuUserId="224011"
> cuDateAssigned="01-Nov-2010" cuDateRemoved="01-Nov-2010"
> cuNameFormatted="[Paralegal] Goldie">
> </CaseUser>
> <Action actionCaseId="80002" dateServed="02-Nov-2010"
> adverseActionId="25" allegations="" actionTypeId="115"
> actionType="Action1">
> <Punishment pAdverseActionId="25" pParagraph="Lots of Sit-ups."/>
> <Punishment pAdverseActionId="25" pParagraph="30 lashes"/>
> </Action>
> <Action actionCaseId="80002" dateServed="01-Nov-2010"
> adverseActionId="26" allegations="" actionTypeId="114"
> actionType="Action1">
> <Punishment pAdverseActionId="26" pParagraph="Imprisonment"/>
> <Punishment pAdverseActionId="26" pParagraph="Solitary Confinement"/>
> </Action>
> </Case>
> </RowSet>
>
Re: Nested tables/groups [message #664123 is a reply to message #663990] Thu, 07 April 2011 10:38 Go to previous messageGo to next message
TerryWyatt01 is currently offline TerryWyatt01
Messages: 6
Registered: April 2011
Junior Member
Jason,
Thank you for the quick response.

While your proposed solution does structure the nested tables properly, it still accesses the data source once for each case (plus this initial read).

If this is a static file, it is not too noticeable, but this XML document is output from a database stored procedure that takes about 2-3 seconds to run. When you start multiplying that access time for each row in each nested table, the execution time quickly climbs to where the report will not come back.

When testing this on live data, I get 14 separate URL requests for one execution of the Birt report that contains 11 cases, for a total run time of about 30 seconds. This is only a small subset of what will be hit when it goes to production, and it is currently only nested one level deep to the Actions level. I'll need this to go maybe 4 or 5 levels deep for several times as many rows.

What I need to do is define the Data Source of the ActionDataSet as the /Action xpath of the Case Data Set (which should translate to /RowSet/Case/Action). The desired result would be that Birt should only access the XML page URL once and will then parse the document into separate Data Sets that I can use for separate tables. It doesn't matter if I get all actions as I can bind to keys in outer tables to filter the results out, as long as it does not try to retrieve the Data Source again.

I hope that explains my problem more clearly.
Re: Nested tables/groups [message #664276 is a reply to message #664123] Fri, 08 April 2011 04:33 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Terry,

I revised the report to not use parameters but a filter on the inner
table. Can you test this approach?

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.22"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.6.2.r262_v20110209 Build &lt;2.6.2.v20110214-1523></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.datatools.enablement.oda.xml" name="Data
Source" id="7">
<property name="FILELIST">C:\work\styles\cases.xml</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet "
name="cases" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">actionType</property>
<text-property
name="heading">actionType</text-property>
</structure>
<structure>
<property name="columnName">caseId</property>
<text-property name="heading">caseId</text-property>
</structure>
<structure>
<property name="columnName">clientId</property>
<text-property name="heading">clientId</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionType</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">caseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">clientId</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionType</property>
<property name="nativeName">actionType</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">caseId</property>
<property name="nativeName">caseId</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">clientId</property>
<property name="nativeName">clientId</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
</list-property>
<xml-property
name="queryText">< ![CDATA[table0#-TNAME-#table0#:#[/RowSet/Case]#:#{actionType ;STRING;../@actionType},{caseId;STRING;/@caseId},{clientId;S TRING;/@clientId}]] ></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>actionType</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>actionType</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>caseId</design:name>
<design:position>2</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>caseId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>clientId</design:name>
<design:position>3</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>clientId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
<list-property name="privateDriverProperties">
<ex-property>
<name>MAX_ROW</name>
<value>-1</value>
</ex-property>
<ex-property>
<name>XML_FILE</name>
</ex-property>
</list-property>
</oda-data-set>
<oda-data-set
extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet "
name="actions" id="9">
<list-property name="columnHints">
<structure>
<property name="columnName">actionCaseId</property>
<text-property
name="heading">actionCaseId</text-property>
</structure>
<structure>
<property name="columnName">dateServed</property>
<text-property
name="heading">dateServed</text-property>
</structure>
<structure>
<property name="columnName">adverseActionId</property>
<text-property
name="heading">adverseActionId</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionCaseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">dateServed</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">adverseActionId</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionCaseId</property>
<property name="nativeName">actionCaseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">dateServed</property>
<property name="nativeName">dateServed</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">adverseActionId</property>
<property name="nativeName">adverseActionId</property>
<property name="dataType">string</property>
</structure>
</list-property>
<xml-property
name="queryText">< ![CDATA[table0#-TNAME-#table0#:#[/RowSet/Case/Action]#:#{act ionCaseId;STRING;/@actionCaseId},{dateServed;STRING;/@dateSe rved},{adverseActionId;STRING;/@adverseActionId}]] ></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>actionCaseId</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>actionCaseId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>dateServed</design:name>
<design:position>2</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>dateServed</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>adverseActionId</design:name>
<design:position>3</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>adverseActionId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
<list-property name="privateDriverProperties">
<ex-property>
<name>MAX_ROW</name>
<value>-1</value>
</ex-property>
<ex-property>
<name>XML_FILE</name>
</ex-property>
</list-property>
</oda-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab-cell" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="table-header" id="80">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-footer" id="81">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-detail" id="82">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-header-1" id="83">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-footer-1" id="84">
<property name="backgroundColor">#C0C0C0</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="special-header" id="85">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">medium</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-detail" id="86">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-header" id="87">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="mydata" id="88">
<property name="color">orange</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table id="10">
<property name="width">7.947916666666667in</property>
<property name="dataSet">cases</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">actionType</property>
<text-property
name="displayName">actionType</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionType"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">caseId</property>
<text-property
name="displayName">caseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["caseId"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">clientId</property>
<text-property
name="displayName">clientId</text-property>
<expression name="expression"
type="javascript">dataSetRow["clientId"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<column id="29">
<property name="width">1.2291666666666667in</property>
</column>
<column id="30">
<property name="width">1in</property>
</column>
<column id="31">
<property name="width">1.1875in</property>
</column>
<column id="35">
<property name="width">4.53125in</property>
</column>
<header>
<row id="11">
<cell id="12">
<label id="13">
<text-property
name="text">actionType</text-property>
</label>
</cell>
<cell id="14">
<label id="15">
<text-property
name="text">caseId</text-property>
</label>
</cell>
<cell id="16">
<label id="17">
<text-property
name="text">clientId</text-property>
</label>
</cell>
<cell id="32"/>
</row>
</header>
<detail>
<row id="18">
<cell id="19">
<data id="20">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionType</property>
</data>
</cell>
<cell id="21">
<data id="22">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">caseId</property>
</data>
</cell>
<cell id="23">
<data id="24">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">clientId</property>
</data>
</cell>
<cell id="33">
<table id="58">
<property name="dataSet">actions</property>
<list-property name="boundDataColumns">
<structure>
<property
name="name">actionCaseId</property>
<text-property
name="displayName">actionCaseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionCaseId"]</expression >
<property
name="dataType">string</property>
</structure>
<structure>
<property
name="name">dateServed</property>
<text-property
name="displayName">dateServed</text-property>
<expression name="expression"
type="javascript">dataSetRow["dateServed"]</expression>
<property
name="dataType">string</property>
</structure>
<structure>
<property
name="name">adverseActionId</property>
<text-property
name="displayName">adverseActionId</text-property>
<expression name="expression"
type="javascript">dataSetRow["adverseActionId"]</expression >
<property
name="dataType">string</property>
</structure>
</list-property>
<list-property name="filter">
<structure>
<property name="operator">eq</property>
<expression name="expr"
type="javascript">row["actionCaseId"]</expression>
<simple-property-list name="value1">
<value>row._outer["caseId"]</value>
</simple-property-list>
</structure>
</list-property>
<column id="77"/>
<column id="78"/>
<column id="79"/>
<header>
<row id="59">
<cell id="60">
<label id="61">
<text-property
name="text">actionCaseId</text-property>
</label>
</cell>
<cell id="62">
<label id="63">
<text-property
name="text">dateServed</text-property>
</label>
</cell>
<cell id="64">
<label id="65">
<text-property
name="text">adverseActionId</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="66">
<cell id="67">
<data id="68">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionCaseId</property>
</data>
</cell>
<cell id="69">
<data id="70">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">dateServed</property>
</data>
</cell>
<cell id="71">
<data id="72">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">adverseActionId</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="73">
<cell id="74"/>
<cell id="75"/>
<cell id="76"/>
</row>
</footer>
</table>
</cell>
</row>
</detail>
<footer>
<row id="25">
<cell id="26"/>
<cell id="27"/>
<cell id="28"/>
<cell id="34"/>
</row>
</footer>
</table>
</body>
</report>


On 4/7/2011 10:38 AM, Terry wrote:
> Jason,
> Thank you for the quick response.
>
> While your proposed solution does structure the nested tables properly,
> it still accesses the data source once for each case (plus this initial
> read).
>
> If this is a static file, it is not too noticeable, but this XML
> document is output from a database stored procedure that takes about 2-3
> seconds to run. When you start multiplying that access time for each row
> in each nested table, the execution time quickly climbs to where the
> report will not come back.
>
> When testing this on live data, I get 14 separate URL requests for one
> execution of the Birt report that contains 11 cases, for a total run
> time of about 30 seconds. This is only a small subset of what will be
> hit when it goes to production, and it is currently only nested one
> level deep to the Actions level. I'll need this to go maybe 4 or 5
> levels deep for several times as many rows.
>
> What I need to do is define the Data Source of the ActionDataSet as the
> /Action xpath of the Case Data Set (which should translate to
> /RowSet/Case/Action). The desired result would be that Birt should only
> access the XML page URL once and will then parse the document into
> separate Data Sets that I can use for separate tables. It doesn't matter
> if I get all actions as I can bind to keys in outer tables to filter the
> results out, as long as it does not try to retrieve the Data Source again.
>
> I hope that explains my problem more clearly.
>
Re: Nested tables/groups [message #664741 is a reply to message #664276] Mon, 11 April 2011 15:12 Go to previous messageGo to next message
TerryWyatt01 is currently offline TerryWyatt01
Messages: 6
Registered: April 2011
Junior Member
The following are the Apache logs (some login info edited) from my execution of your report:


192.168.xx.xxx - myUserId [11/Apr/2011:13:58:07 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:21 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:24 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:26 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:28 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:30 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:32 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:34 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:35 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:38 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:40 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:42 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:43 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:45 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
192.168.xx.xxx - myUserId [11/Apr/2011:13:58:46 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111

The goal is only one hit on the server, but to still be able to break out the resulting XML document into multiple data sets for ease of use.

Thanks in advance,
Terry
Re: Nested tables/groups [message #664847 is a reply to message #664741] Tue, 12 April 2011 05:22 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Terry,

Can you try one more. Take a look at the attached report. For the
nested actions table I placed it at the top of the report which should
cause it to only run once and cache the data. I then filter an instance
of the data in the nested table for each row of the outer table. If you
look at the binding tab of the inner table I have bound it to the table
at the top of the report. The table at the top of the report I named
and turned off the visibility for it.

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.22"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.6.2.r262_v20110209 Build &lt;2.6.2.v20110214-1523></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.datatools.enablement.oda.xml" name="Data
Source" id="7">
<property name="FILELIST">C:\work\styles\cases.xml</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet "
name="cases" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">actionType</property>
<text-property
name="heading">actionType</text-property>
</structure>
<structure>
<property name="columnName">caseId</property>
<text-property name="heading">caseId</text-property>
</structure>
<structure>
<property name="columnName">clientId</property>
<text-property name="heading">clientId</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionType</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">caseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">clientId</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionType</property>
<property name="nativeName">actionType</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">caseId</property>
<property name="nativeName">caseId</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">clientId</property>
<property name="nativeName">clientId</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
</list-property>
<xml-property
name="queryText">< ![CDATA[table0#-TNAME-#table0#:#[/RowSet/Case]#:#{actionType ;STRING;../@actionType},{caseId;STRING;/@caseId},{clientId;S TRING;/@clientId}]] ></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>actionType</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>actionType</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>caseId</design:name>
<design:position>2</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>caseId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>clientId</design:name>
<design:position>3</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>clientId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
<list-property name="privateDriverProperties">
<ex-property>
<name>MAX_ROW</name>
<value>-1</value>
</ex-property>
<ex-property>
<name>XML_FILE</name>
</ex-property>
</list-property>
</oda-data-set>
<oda-data-set
extensionID="org.eclipse.datatools.enablement.oda.xml.dataSet "
name="actions" id="9">
<list-property name="columnHints">
<structure>
<property name="columnName">actionCaseId</property>
<text-property
name="heading">actionCaseId</text-property>
</structure>
<structure>
<property name="columnName">dateServed</property>
<text-property
name="heading">dateServed</text-property>
</structure>
<structure>
<property name="columnName">adverseActionId</property>
<text-property
name="heading">adverseActionId</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionCaseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">dateServed</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">adverseActionId</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<method name="beforeOpen"><![CDATA[importPackage(
Packages.java.io );
out = new PrintWriter( new FileWriter( "c:/test/xmldsevents.txt", true ) );
out.println( "beforeopen");
out.close();]]></method>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">actionCaseId</property>
<property name="nativeName">actionCaseId</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">dateServed</property>
<property name="nativeName">dateServed</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">adverseActionId</property>
<property name="nativeName">adverseActionId</property>
<property name="dataType">string</property>
</structure>
</list-property>
<xml-property
name="queryText">< ![CDATA[table0#-TNAME-#table0#:#[/RowSet/Case/Action]#:#{act ionCaseId;STRING;/@actionCaseId},{dateServed;STRING;/@dateSe rved},{adverseActionId;STRING;/@adverseActionId}]] ></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>actionCaseId</design:name>
<design:position>1</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>actionCaseId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>dateServed</design:name>
<design:position>2</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>dateServed</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:identifier>
<design:name>adverseActionId</design:name>
<design:position>3</design:position>
</design:identifier>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>-1</design:precision>
<design:scale>-1</design:scale>
<design:nullability>Unknown</design:nullability>
</design:attributes>
<design:usageHints>
<design:label>adverseActionId</design:label>
<design:formattingHints/>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
<design:criteria/>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
<list-property name="privateDriverProperties">
<ex-property>
<name>MAX_ROW</name>
<value>-1</value>
</ex-property>
<ex-property>
<name>XML_FILE</name>
</ex-property>
</list-property>
</oda-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab-cell" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="table-header" id="80">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-footer" id="81">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-detail" id="82">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-header-1" id="83">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-footer-1" id="84">
<property name="backgroundColor">#C0C0C0</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="special-header" id="85">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">medium</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-detail" id="86">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-header" id="87">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="mydata" id="88">
<property name="color">orange</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table id="111">
<property name="dataSet">actions</property>
<list-property name="visibility">
<structure>
<property name="format">all</property>
<expression name="valueExpr"
type="javascript">true</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">actionCaseId</property>
<text-property
name="displayName">actionCaseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionCaseId"]</expression >
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">dateServed</property>
<text-property
name="displayName">dateServed</text-property>
<expression name="expression"
type="javascript">dataSetRow["dateServed"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">adverseActionId</property>
<text-property
name="displayName">adverseActionId</text-property>
<expression name="expression"
type="javascript">dataSetRow["adverseActionId"]</expression >
<property name="dataType">string</property>
</structure>
</list-property>
<column id="130"/>
<column id="131"/>
<column id="132"/>
<header>
<row id="112">
<cell id="113">
<label id="114">
<text-property
name="text">actionCaseId</text-property>
</label>
</cell>
<cell id="115">
<label id="116">
<text-property
name="text">dateServed</text-property>
</label>
</cell>
<cell id="117">
<label id="118">
<text-property
name="text">adverseActionId</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="119">
<cell id="120">
<data id="121">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionCaseId</property>
</data>
</cell>
<cell id="122">
<data id="123">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">dateServed</property>
</data>
</cell>
<cell id="124">
<data id="125">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">adverseActionId</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="126">
<cell id="127"/>
<cell id="128"/>
<cell id="129"/>
</row>
</footer>
</table>
<table id="10">
<property name="width">7.947916666666667in</property>
<property name="dataSet">cases</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">actionType</property>
<text-property
name="displayName">actionType</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionType"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">caseId</property>
<text-property
name="displayName">caseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["caseId"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">clientId</property>
<text-property
name="displayName">clientId</text-property>
<expression name="expression"
type="javascript">dataSetRow["clientId"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<column id="29">
<property name="width">1.2291666666666667in</property>
</column>
<column id="30">
<property name="width">1in</property>
</column>
<column id="31">
<property name="width">1.1875in</property>
</column>
<column id="35">
<property name="width">4.53125in</property>
</column>
<header>
<row id="11">
<cell id="12">
<label id="13">
<text-property
name="text">actionType</text-property>
</label>
</cell>
<cell id="14">
<label id="15">
<text-property
name="text">caseId</text-property>
</label>
</cell>
<cell id="16">
<label id="17">
<text-property
name="text">clientId</text-property>
</label>
</cell>
<cell id="32"/>
</row>
</header>
<detail>
<row id="18">
<cell id="19">
<data id="20">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionType</property>
</data>
</cell>
<cell id="21">
<data id="22">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">caseId</property>
</data>
</cell>
<cell id="23">
<data id="24">
<property name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">clientId</property>
</data>
</cell>
<cell id="33">
<table id="58">
<property name="dataSet">actions</property>
<list-property name="boundDataColumns">
<structure>
<property
name="name">actionCaseId</property>
<text-property
name="displayName">actionCaseId</text-property>
<expression name="expression"
type="javascript">dataSetRow["actionCaseId"]</expression >
<property
name="dataType">string</property>
</structure>
<structure>
<property
name="name">dateServed</property>
<text-property
name="displayName">dateServed</text-property>
<expression name="expression"
type="javascript">dataSetRow["dateServed"]</expression>
<property
name="dataType">string</property>
</structure>
<structure>
<property
name="name">adverseActionId</property>
<text-property
name="displayName">adverseActionId</text-property>
<expression name="expression"
type="javascript">dataSetRow["adverseActionId"]</expression >
<property
name="dataType">string</property>
</structure>
</list-property>
<list-property name="filter">
<structure>
<property name="operator">eq</property>
<expression name="expr"
type="javascript">row["actionCaseId"]</expression>
<simple-property-list name="value1">
<value>row._outer["caseId"]</value>
</simple-property-list>
</structure>
</list-property>
<column id="77"/>
<column id="78"/>
<column id="79"/>
<header>
<row id="59">
<cell id="60">
<label id="61">
<text-property
name="text">actionCaseId</text-property>
</label>
</cell>
<cell id="62">
<label id="63">
<text-property
name="text">dateServed</text-property>
</label>
</cell>
<cell id="64">
<label id="65">
<text-property
name="text">adverseActionId</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="66">
<cell id="67">
<data id="68">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">actionCaseId</property>
</data>
</cell>
<cell id="69">
<data id="70">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">dateServed</property>
</data>
</cell>
<cell id="71">
<data id="72">
<property
name="whiteSpace">nowrap</property>
<property
name="resultSetColumn">adverseActionId</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="73">
<cell id="74"/>
<cell id="75"/>
<cell id="76"/>
</row>
</footer>
</table>
</cell>
</row>
</detail>
<footer>
<row id="25">
<cell id="26"/>
<cell id="27"/>
<cell id="28"/>
<cell id="34"/>
</row>
</footer>
</table>
</body>
</report>


On 4/11/2011 3:12 PM, Terry wrote:
> The following are the Apache logs (some login info edited) from my
> execution of your report:
>
>
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:07 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:21 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:24 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:26 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:28 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:30 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:32 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:34 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:35 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:38 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:40 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:42 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:43 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:45 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
> 192.168.xx.xxx - myUserId [11/Apr/2011:13:58:46 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=110044 HTTP/1.1" 200 36111
>
> The goal is only one hit on the server, but to still be able to break
> out the resulting XML document into multiple data sets for ease of use.
>
> Thanks in advance,
> Terry
>
Re: Nested tables/groups [message #664925 is a reply to message #664847] Tue, 12 April 2011 10:00 Go to previous messageGo to next message
TerryWyatt01 is currently offline TerryWyatt01
Messages: 6
Registered: April 2011
Junior Member
That actually seems to be about twice as bad (27 hits vs. 15).
Log below:


192.168.xx.xxx - myUserId [12/Apr/2011:08:44:50 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:44:53 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:44:54 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:44:56 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:44:58 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:44:59 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:01 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:02 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:06 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:08 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:10 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:12 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:13 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:16 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:18 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:20 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:22 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:24 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:26 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:27 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:29 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:31 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:33 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:35 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:38 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:41 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
192.168.xx.xxx - myUserId [12/Apr/2011:08:45:43 -0500] "GET /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953

It would be ideal (maybe a future enhancement idea) to be able to choose another data set as the data source of another data set.

You would then be able to define an XPath relative to the content of the referenced (dataSet as dataSource).
Re: Nested tables/groups [message #665395 is a reply to message #664925] Thu, 14 April 2011 10:02 Go to previous message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Can you open a bugzilla entry for this?

Jason

On 4/12/2011 10:00 AM, Terry wrote:
> That actually seems to be about twice as bad (27 hits vs. 15).
> Log below:
>
>
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:44:50 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:44:53 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:44:54 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:44:56 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:44:58 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:44:59 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:01 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:02 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:06 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:08 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:10 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:12 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:13 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:16 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:18 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:20 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:22 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:24 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:26 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:27 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:29 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:31 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:33 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:35 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:38 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:41 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
> 192.168.xx.xxx - myUserId [12/Apr/2011:08:45:43 -0500] "GET
> /appFolder/CASE_LIST?CaseDateType=C&StartDate=01-Jan-200
> 9&EndDate=31-Dec-2010&ActionTypeId=144 HTTP/1.1" 200 13953
>
> It would be ideal (maybe a future enhancement idea) to be able to choose
> another data set as the data source of another data set.
>
> You would then be able to define an XPath relative to the content of the
> referenced (dataSet as dataSource).
Previous Topic:Custom date format localized and Excel compatibility
Next Topic:Css or Styles for multiple reports?
Goto Forum:
  


Current Time: Sat Aug 23 15:21:10 EDT 2014

Powered by FUDForum. Page generated in 0.09932 seconds