Home » Archived » BIRT » footer on last page only
|
Re: footer on last page only [message #258520 is a reply to message #258485] |
Tue, 16 October 2007 18:06 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Steve,
I believe there is a bug for this already in bugzilla, but you may want
to try adding an additional master page. On one have nothing and on the
second have the footer you want. Add a grid at the bottom of the report
and set it to your footer master page.
Jason
Steve Nell wrote:
> I want to print a page footer only on the last page of my report. I see
> several postings about this and have tried a few approaches, but no success
> so far. Anyone know if it is possible? Does anyone know if it is not
> possible?
>
> many thanks,
> Steve Nell
>
>
|
|
| |
Re: footer on last page only - revised [message #258640 is a reply to message #258630] |
Wed, 17 October 2007 18:59 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Steve,
I do not know of an easy way to do this.
Jason
Steve Nell wrote:
> Jason,
>
> That did work nicely, but now I have discovered that some of the footer
> block needs to include data from the dataset. I have read that pagemasters
> cannot interact w/ the data -- so now my question becomes:
>
> Is there a way to force a table group footer to align to the bottom of the
> available space on a page? ( or perhaps expand to fill the available space
> on the page )
>
> thank you,
> Steve
>
>
>
>
>
>
> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
> news:ff2udn$4es$1@build.eclipse.org...
>> Steve,
>>
>> I believe there is a bug for this already in bugzilla, but you may want to
>> try adding an additional master page. On one have nothing and on the
>> second have the footer you want. Add a grid at the bottom of the report
>> and set it to your footer master page.
>>
>> Jason
>>
>> Steve Nell wrote:
>>> I want to print a page footer only on the last page of my report. I see
>>> several postings about this and have tried a few approaches, but no
>>> success so far. Anyone know if it is possible? Does anyone know if it
>>> is not possible?
>>>
>>> many thanks,
>>> Steve Nell
>>>
>
|
|
|
Re: footer on last page only - revised [message #258718 is a reply to message #258640] |
Thu, 18 October 2007 16:59 |
Steve Nell Messages: 11 Registered: July 2009 |
Junior Member |
|
|
Jason,
We are still in the evaluation stage and have tested BIRT with about 10 of
our key reports. This is one of the last unresolved issues. We've
discussed ways of working around it, but those come with their own set of
costs. We are open to other approaches even if they are not easy.
We've considered modifying the birt engine, or doing some post processing on
the pdf file. Any thoughts/ideas you might have are appreciated.
thanks again,
Steve
"Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
news:ff5lt6$sic$1@build.eclipse.org...
> Steve,
>
> I do not know of an easy way to do this.
>
> Jason
>
> Steve Nell wrote:
>> Jason,
>>
>> That did work nicely, but now I have discovered that some of the footer
>> block needs to include data from the dataset. I have read that
>> pagemasters cannot interact w/ the data -- so now my question becomes:
>>
>> Is there a way to force a table group footer to align to the bottom of
>> the available space on a page? ( or perhaps expand to fill the
>> available space on the page )
>>
>> thank you,
>> Steve
>>
>>
>>
>>
>>
>>
>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>> news:ff2udn$4es$1@build.eclipse.org...
>>> Steve,
>>>
>>> I believe there is a bug for this already in bugzilla, but you may want
>>> to try adding an additional master page. On one have nothing and on the
>>> second have the footer you want. Add a grid at the bottom of the report
>>> and set it to your footer master page.
>>>
>>> Jason
>>>
>>> Steve Nell wrote:
>>>> I want to print a page footer only on the last page of my report. I
>>>> see several postings about this and have tried a few approaches, but no
>>>> success so far. Anyone know if it is possible? Does anyone know if it
>>>> is not possible?
>>>>
>>>> many thanks,
>>>> Steve Nell
>>>>
>>
|
|
|
Re: footer on last page only - revised [message #258768 is a reply to message #258718] |
Thu, 18 October 2007 20:59 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Steve,
Take a look at the attached report. It has two master pages. I use
script to pull data from the main table and use in the page footer. The
only issue is the page break before the last footer. Would something
like this meet your needs?
Jason
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.2.1.r221_v20070924 Build <2.2.0.v20070924-1550></property>
<property name="units">in</property>
<property name="comments">Copyright (c) 2007 <<Your Company Name
here>></property>
<html-property name="description">Creates a blank report with no
predefined content.</html-property>
<method name="beforeFactory"><![CDATA[importPackage(Packages.java.lang)
testvar = Integer.parseInt(0);
testvar2 = Integer.parseInt(0);]]></method>
<text-property name="displayName">Blank Report</text-property>
<property name="iconFile">/templates/blank_report.gif</property>
<data-sources>
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc"
name="Data Source" id="6">
<text-property name="displayName"></text-property>
<property
name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set" id="7">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<property name="displayName">ORDERNUMBER</property>
</structure>
<structure>
<property name="columnName">PRODUCTCODE</property>
<property name="displayName">PRODUCTCODE</property>
</structure>
<structure>
<property name="columnName">QUANTITYORDERED</property>
<property name="displayName">QUANTITYORDERED</property>
</structure>
<structure>
<property name="columnName">PRICEEACH</property>
<property name="displayName">PRICEEACH</property>
</structure>
<structure>
<property name="columnName">ORDERLINENUMBER</property>
<property name="displayName">ORDERLINENUMBER</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="nativeName">PRICEEACH</property>
<property name="dataType">float</property>
<property name="nativeDataType">8</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="nativeName">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">5</property>
</structure>
</list-property>
<property name="queryText">select *
from orderdetails
</property>
<xml-property name="designerValues"><![CDATA[<?xml version="1.0"
encoding="UTF-8"?>
<model:DesignValues
xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTCODE</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYORDERED</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>QUANTITYORDERED</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYORDERED</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRICEEACH</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>8</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRICEEACH</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRICEEACH</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERLINENUMBER</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>5</design:nativeDataTypeCode>
<design:precision>5</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERLINENUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERLINENUMBER</design:label>
<design:formattingHints>
<design:displaySize>6</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>
]]></xml-property>
</oda-data-set>
</data-sets>
<styles>
<style name="crosstab" id="4">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="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="detail" id="42">
<property name="backgroundColor">#FFFF80</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
</style>
<style name="headerfooter" id="43">
<property name="backgroundColor">#004080</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
</style>
<style name="groupheader" id="44">
<property name="backgroundColor">#0080FF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</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>testvar + "###"+
testvar2</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
<simple-master-page name="lastpage" id="61">
<page-footer>
<data id="62">
<property name="backgroundColor">#FF8000</property>
<property name="color">#FFFFFF</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">Column Binding</property>
<expression name="expression">"This is the last page footer " +testvar +
" --- " + testvar2;</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<property name="resultSetColumn">Column Binding</property>
</data>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table id="8">
<property name="pageBreakAfter">avoid</property>
<property name="width">100%</property>
<property name="dataSet">Data Set</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">ORDERNUMBER</property>
<expression name="expression">dataSetRow["ORDERNUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">PRODUCTCODE</property>
<expression name="expression">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">QUANTITYORDERED</property>
<expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">PRICEEACH</property>
<expression name="expression">dataSetRow["PRICEEACH"]</expression>
<property name="dataType">float</property>
</structure>
<structure>
<property name="name">ORDERLINENUMBER</property>
<expression name="expression">dataSetRow["ORDERLINENUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Aggregation</property>
<expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
<property name="dataType">integer</property>
<property name="aggregateFunction">SUM</property>
</structure>
</list-property>
<column id="37"/>
<column id="38"/>
<column id="39"/>
<column id="40"/>
<column id="41"/>
<header>
<row id="9">
<property name="style">headerfooter</property>
<cell id="10">
<label id="11">
<text-property name="text">ORDERNUMBER</text-property>
</label>
</cell>
<cell id="12">
<label id="13">
<text-property name="text">PRODUCTCODE</text-property>
</label>
</cell>
<cell id="14">
<label id="15">
<text-property name="text">QUANTITYORDERED</text-property>
</label>
</cell>
<cell id="16">
<label id="17">
<text-property name="text">PRICEEACH</text-property>
</label>
</cell>
<cell id="18">
<label id="19">
<text-property name="text">ORDERLINENUMBER</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="20">
<method name="onCreate"><![CDATA[importPackage(Packages.java.lang)
var tmp = this.getRowData().getColumnValue("QUANTITYORDERED");
var tmp2 = testvar;
testvar = Integer.parseInt(tmp) + Integer.parseInt(tmp2);]]></method>
<property name="style">detail</property>
<cell id="21">
<data id="22">
<property name="resultSetColumn">ORDERNUMBER</property>
</data>
</cell>
<cell id="23">
<data id="24">
<property name="resultSetColumn">PRODUCTCODE</property>
</data>
</cell>
<cell id="25">
<data id="26">
<property name="resultSetColumn">QUANTITYORDERED</property>
</data>
</cell>
<cell id="27">
<data id="28">
<property name="resultSetColumn">PRICEEACH</property>
</data>
</cell>
<cell id="29">
<data id="30">
<property name="resultSetColumn">ORDERLINENUMBER</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="31">
<property name="style">headerfooter</property>
<cell id="32"/>
<cell id="33"/>
<cell id="34">
<data id="63">
<method name="onCreate"><![CDATA[testvar2 =
this.getRowData().getColumnValue("Aggregation");//this.getValue();]] ></method>
<property name="resultSetColumn">Aggregation</property>
</data>
</cell>
<cell id="35"/>
<cell id="36"/>
</row>
</footer>
</table>
<grid id="45">
<property name="masterPage">lastpage</property>
<property name="pageBreakBefore">avoid</property>
<property name="width">100%</property>
<column id="46"/>
<column id="47"/>
<column id="48"/>
<row id="49">
<cell id="50"/>
<cell id="51"/>
<cell id="52"/>
</row>
<row id="53">
<cell id="54"/>
<cell id="55"/>
<cell id="56"/>
</row>
<row id="57">
<cell id="58"/>
<cell id="59"/>
<cell id="60"/>
</row>
</grid>
</body>
</report>
Steve Nell wrote:
> Jason,
>
> We are still in the evaluation stage and have tested BIRT with about 10 of
> our key reports. This is one of the last unresolved issues. We've
> discussed ways of working around it, but those come with their own set of
> costs. We are open to other approaches even if they are not easy.
>
> We've considered modifying the birt engine, or doing some post processing on
> the pdf file. Any thoughts/ideas you might have are appreciated.
>
> thanks again,
> Steve
>
>
>
>
> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
> news:ff5lt6$sic$1@build.eclipse.org...
>> Steve,
>>
>> I do not know of an easy way to do this.
>>
>> Jason
>>
>> Steve Nell wrote:
>>> Jason,
>>>
>>> That did work nicely, but now I have discovered that some of the footer
>>> block needs to include data from the dataset. I have read that
>>> pagemasters cannot interact w/ the data -- so now my question becomes:
>>>
>>> Is there a way to force a table group footer to align to the bottom of
>>> the available space on a page? ( or perhaps expand to fill the
>>> available space on the page )
>>>
>>> thank you,
>>> Steve
>>>
>>>
>>>
>>>
>>>
>>>
>>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>>> news:ff2udn$4es$1@build.eclipse.org...
>>>> Steve,
>>>>
>>>> I believe there is a bug for this already in bugzilla, but you may want
>>>> to try adding an additional master page. On one have nothing and on the
>>>> second have the footer you want. Add a grid at the bottom of the report
>>>> and set it to your footer master page.
>>>>
>>>> Jason
>>>>
>>>> Steve Nell wrote:
>>>>> I want to print a page footer only on the last page of my report. I
>>>>> see several postings about this and have tried a few approaches, but no
>>>>> success so far. Anyone know if it is possible? Does anyone know if it
>>>>> is not possible?
>>>>>
>>>>> many thanks,
>>>>> Steve Nell
>>>>>
>
>
|
|
|
Re: footer on last page only - revised [message #258874 is a reply to message #258768] |
Fri, 19 October 2007 17:40 |
Steve Nell Messages: 11 Registered: July 2009 |
Junior Member |
|
|
Jason,
unfortunately no... I had thought about using this approach but discovered
that script values aren't available to the pagemaster until the next page.
So if my footer occurs on the first page ( which is the case most of the
time) it wouldnt display the values I need. If the report was always 2
pages or more, then this approach would work for me ( this is a signature
footer so I am not doing subtotalling -- just showing appropriate names /
titles below the signature lines -- so the values from the first page would
be appropriate ).
Steve
"Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
news:ff8hb7$e41$1@build.eclipse.org...
> Steve,
>
> Take a look at the attached report. It has two master pages. I use
> script to pull data from the main table and use in the page footer. The
> only issue is the page break before the last footer. Would something like
> this meet your needs?
>
> Jason
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15"
> id="1">
>
> <property name="createdBy">Eclipse BIRT Designer Version
> 2.2.1.r221_v20070924 Build <2.2.0.v20070924-1550></property>
>
> <property name="units">in</property>
>
> <property name="comments">Copyright (c) 2007 <<Your Company Name
> here>></property>
>
> <html-property name="description">Creates a blank report with no
> predefined content.</html-property>
>
> <method name="beforeFactory"><![CDATA[importPackage(Packages.java.lang)
>
> testvar = Integer.parseInt(0);
>
> testvar2 = Integer.parseInt(0);]]></method>
>
> <text-property name="displayName">Blank Report</text-property>
>
> <property name="iconFile">/templates/blank_report.gif</property>
>
> <data-sources>
>
> <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc"
> name="Data Source" id="6">
>
> <text-property name="displayName"></text-property>
>
> <property
> name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
>
> <property name="odaURL">jdbc:classicmodels:sampledb</property>
>
> <property name="odaUser">ClassicModels</property>
>
> </oda-data-source>
>
> </data-sources>
>
> <data-sets>
>
> <oda-data-set
> extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
> name="Data Set" id="7">
>
> <list-property name="columnHints">
>
> <structure>
>
> <property name="columnName">ORDERNUMBER</property>
>
> <property name="displayName">ORDERNUMBER</property>
>
> </structure>
>
> <structure>
>
> <property name="columnName">PRODUCTCODE</property>
>
> <property name="displayName">PRODUCTCODE</property>
>
> </structure>
>
> <structure>
>
> <property name="columnName">QUANTITYORDERED</property>
>
> <property name="displayName">QUANTITYORDERED</property>
>
> </structure>
>
> <structure>
>
> <property name="columnName">PRICEEACH</property>
>
> <property name="displayName">PRICEEACH</property>
>
> </structure>
>
> <structure>
>
> <property name="columnName">ORDERLINENUMBER</property>
>
> <property name="displayName">ORDERLINENUMBER</property>
>
> </structure>
>
> </list-property>
>
> <structure name="cachedMetaData">
>
> <list-property name="resultSet">
>
> <structure>
>
> <property name="position">1</property>
>
> <property name="name">ORDERNUMBER</property>
>
> <property name="dataType">integer</property>
>
> </structure>
>
> <structure>
>
> <property name="position">2</property>
>
> <property name="name">PRODUCTCODE</property>
>
> <property name="dataType">string</property>
>
> </structure>
>
> <structure>
>
> <property name="position">3</property>
>
> <property name="name">QUANTITYORDERED</property>
>
> <property name="dataType">integer</property>
>
> </structure>
>
> <structure>
>
> <property name="position">4</property>
>
> <property name="name">PRICEEACH</property>
>
> <property name="dataType">float</property>
>
> </structure>
>
> <structure>
>
> <property name="position">5</property>
>
> <property name="name">ORDERLINENUMBER</property>
>
> <property name="dataType">integer</property>
>
> </structure>
>
> </list-property>
>
> </structure>
>
> <property name="dataSource">Data Source</property>
>
> <list-property name="resultSet">
>
> <structure>
>
> <property name="position">1</property>
>
> <property name="name">ORDERNUMBER</property>
>
> <property name="nativeName">ORDERNUMBER</property>
>
> <property name="dataType">integer</property>
>
> <property name="nativeDataType">4</property>
>
> </structure>
>
> <structure>
>
> <property name="position">2</property>
>
> <property name="name">PRODUCTCODE</property>
>
> <property name="nativeName">PRODUCTCODE</property>
>
> <property name="dataType">string</property>
>
> <property name="nativeDataType">12</property>
>
> </structure>
>
> <structure>
>
> <property name="position">3</property>
>
> <property name="name">QUANTITYORDERED</property>
>
> <property name="nativeName">QUANTITYORDERED</property>
>
> <property name="dataType">integer</property>
>
> <property name="nativeDataType">4</property>
>
> </structure>
>
> <structure>
>
> <property name="position">4</property>
>
> <property name="name">PRICEEACH</property>
>
> <property name="nativeName">PRICEEACH</property>
>
> <property name="dataType">float</property>
>
> <property name="nativeDataType">8</property>
>
> </structure>
>
> <structure>
>
> <property name="position">5</property>
>
> <property name="name">ORDERLINENUMBER</property>
>
> <property name="nativeName">ORDERLINENUMBER</property>
>
> <property name="dataType">integer</property>
>
> <property name="nativeDataType">5</property>
>
> </structure>
>
> </list-property>
>
> <property name="queryText">select *
>
> from orderdetails
>
> </property>
>
> <xml-property name="designerValues"><![CDATA[<?xml version="1.0"
> encoding="UTF-8"?>
>
> <model:DesignValues
> xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
> xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
>
> <Version>1.0</Version>
>
> <design:ResultSets derivedMetaData="true">
>
> <design:resultSetDefinitions>
>
> <design:resultSetColumns>
>
> <design:resultColumnDefinitions>
>
> <design:attributes>
>
> <design:name>ORDERNUMBER</design:name>
>
> <design:position>1</design:position>
>
> <design:nativeDataTypeCode>4</design:nativeDataTypeCode>
>
> <design:precision>10</design:precision>
>
> <design:scale>0</design:scale>
>
> <design:nullability>Nullable</design:nullability>
>
> <design:uiHints>
>
> <design:displayName>ORDERNUMBER</design:displayName>
>
> </design:uiHints>
>
> </design:attributes>
>
> <design:usageHints>
>
> <design:label>ORDERNUMBER</design:label>
>
> <design:formattingHints>
>
> <design:displaySize>11</design:displaySize>
>
> </design:formattingHints>
>
> </design:usageHints>
>
> </design:resultColumnDefinitions>
>
> <design:resultColumnDefinitions>
>
> <design:attributes>
>
> <design:name>PRODUCTCODE</design:name>
>
> <design:position>2</design:position>
>
> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
>
> <design:precision>15</design:precision>
>
> <design:scale>0</design:scale>
>
> <design:nullability>Nullable</design:nullability>
>
> <design:uiHints>
>
> <design:displayName>PRODUCTCODE</design:displayName>
>
> </design:uiHints>
>
> </design:attributes>
>
> <design:usageHints>
>
> <design:label>PRODUCTCODE</design:label>
>
> <design:formattingHints>
>
> <design:displaySize>15</design:displaySize>
>
> </design:formattingHints>
>
> </design:usageHints>
>
> </design:resultColumnDefinitions>
>
> <design:resultColumnDefinitions>
>
> <design:attributes>
>
> <design:name>QUANTITYORDERED</design:name>
>
> <design:position>3</design:position>
>
> <design:nativeDataTypeCode>4</design:nativeDataTypeCode>
>
> <design:precision>10</design:precision>
>
> <design:scale>0</design:scale>
>
> <design:nullability>Nullable</design:nullability>
>
> <design:uiHints>
>
> <design:displayName>QUANTITYORDERED</design:displayName>
>
> </design:uiHints>
>
> </design:attributes>
>
> <design:usageHints>
>
> <design:label>QUANTITYORDERED</design:label>
>
> <design:formattingHints>
>
> <design:displaySize>11</design:displaySize>
>
> </design:formattingHints>
>
> </design:usageHints>
>
> </design:resultColumnDefinitions>
>
> <design:resultColumnDefinitions>
>
> <design:attributes>
>
> <design:name>PRICEEACH</design:name>
>
> <design:position>4</design:position>
>
> <design:nativeDataTypeCode>8</design:nativeDataTypeCode>
>
> <design:precision>15</design:precision>
>
> <design:scale>0</design:scale>
>
> <design:nullability>Nullable</design:nullability>
>
> <design:uiHints>
>
> <design:displayName>PRICEEACH</design:displayName>
>
> </design:uiHints>
>
> </design:attributes>
>
> <design:usageHints>
>
> <design:label>PRICEEACH</design:label>
>
> <design:formattingHints>
>
> <design:displaySize>22</design:displaySize>
>
> </design:formattingHints>
>
> </design:usageHints>
>
> </design:resultColumnDefinitions>
>
> <design:resultColumnDefinitions>
>
> <design:attributes>
>
> <design:name>ORDERLINENUMBER</design:name>
>
> <design:position>5</design:position>
>
> <design:nativeDataTypeCode>5</design:nativeDataTypeCode>
>
> <design:precision>5</design:precision>
>
> <design:scale>0</design:scale>
>
> <design:nullability>Nullable</design:nullability>
>
> <design:uiHints>
>
> <design:displayName>ORDERLINENUMBER</design:displayName>
>
> </design:uiHints>
>
> </design:attributes>
>
> <design:usageHints>
>
> <design:label>ORDERLINENUMBER</design:label>
>
> <design:formattingHints>
>
> <design:displaySize>6</design:displaySize>
>
> </design:formattingHints>
>
> </design:usageHints>
>
> </design:resultColumnDefinitions>
>
> </design:resultSetColumns>
>
> </design:resultSetDefinitions>
>
> </design:ResultSets>
>
> </model:DesignValues>
>
> ]]></xml-property>
>
> </oda-data-set>
>
> </data-sets>
>
> <styles>
>
> <style name="crosstab" id="4">
>
> <property name="borderBottomColor">#CCCCCC</property>
>
> <property name="borderBottomStyle">solid</property>
>
> <property name="borderBottomWidth">1pt</property>
>
> <property name="borderLeftColor">#CCCCCC</property>
>
> <property name="borderLeftStyle">solid</property>
>
> <property name="borderLeftWidth">1pt</property>
>
> <property name="borderRightColor">#CCCCCC</property>
>
> <property name="borderRightStyle">solid</property>
>
> <property name="borderRightWidth">1pt</property>
>
> <property name="borderTopColor">#CCCCCC</property>
>
> <property name="borderTopStyle">solid</property>
>
> <property name="borderTopWidth">1pt</property>
>
> </style>
>
> <style name="crosstab-cell" id="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="detail" id="42">
>
> <property name="backgroundColor">#FFFF80</property>
>
> <property name="fontFamily">"Arial"</property>
>
> <property name="fontSize">small</property>
>
> </style>
>
> <style name="headerfooter" id="43">
>
> <property name="backgroundColor">#004080</property>
>
> <property name="fontFamily">"Arial"</property>
>
> <property name="fontSize">small</property>
>
> <property name="fontWeight">bold</property>
>
> <property name="color">#FFFFFF</property>
>
> </style>
>
> <style name="groupheader" id="44">
>
> <property name="backgroundColor">#0080FF</property>
>
> <property name="fontFamily">"Arial"</property>
>
> <property name="fontSize">small</property>
>
> <property name="fontWeight">bold</property>
>
> <property name="color">#FFFFFF</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>testvar + "###"+
> testvar2</value-of>]]></text-property>
>
> </text>
>
> </page-footer>
>
> </simple-master-page>
>
> <simple-master-page name="lastpage" id="61">
>
> <page-footer>
>
> <data id="62">
>
> <property name="backgroundColor">#FF8000</property>
>
> <property name="color">#FFFFFF</property>
>
> <list-property name="boundDataColumns">
>
> <structure>
>
> <property name="name">Column Binding</property>
>
> <expression name="expression">"This is the last page footer " +testvar +
> " --- " + testvar2;</expression>
>
> <property name="dataType">string</property>
>
> </structure>
>
> </list-property>
>
> <property name="resultSetColumn">Column Binding</property>
>
> </data>
>
> </page-footer>
>
> </simple-master-page>
>
> </page-setup>
>
> <body>
>
> <table id="8">
>
> <property name="pageBreakAfter">avoid</property>
>
> <property name="width">100%</property>
>
> <property name="dataSet">Data Set</property>
>
> <list-property name="boundDataColumns">
>
> <structure>
>
> <property name="name">ORDERNUMBER</property>
>
> <expression name="expression">dataSetRow["ORDERNUMBER"]</expression >
>
> <property name="dataType">integer</property>
>
> </structure>
>
> <structure>
>
> <property name="name">PRODUCTCODE</property>
>
> <expression name="expression">dataSetRow["PRODUCTCODE"]</expression >
>
> <property name="dataType">string</property>
>
> </structure>
>
> <structure>
>
> <property name="name">QUANTITYORDERED</property>
>
> <expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
>
> <property name="dataType">integer</property>
>
> </structure>
>
> <structure>
>
> <property name="name">PRICEEACH</property>
>
> <expression name="expression">dataSetRow["PRICEEACH"]</expression>
>
> <property name="dataType">float</property>
>
> </structure>
>
> <structure>
>
> <property name="name">ORDERLINENUMBER</property>
>
> <expression name="expression">dataSetRow["ORDERLINENUMBER"]</expression >
>
> <property name="dataType">integer</property>
>
> </structure>
>
> <structure>
>
> <property name="name">Aggregation</property>
>
> <expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
>
> <property name="dataType">integer</property>
>
> <property name="aggregateFunction">SUM</property>
>
> </structure>
>
> </list-property>
>
> <column id="37"/>
>
> <column id="38"/>
>
> <column id="39"/>
>
> <column id="40"/>
>
> <column id="41"/>
>
> <header>
>
> <row id="9">
>
> <property name="style">headerfooter</property>
>
> <cell id="10">
>
> <label id="11">
>
> <text-property name="text">ORDERNUMBER</text-property>
>
> </label>
>
> </cell>
>
> <cell id="12">
>
> <label id="13">
>
> <text-property name="text">PRODUCTCODE</text-property>
>
> </label>
>
> </cell>
>
> <cell id="14">
>
> <label id="15">
>
> <text-property name="text">QUANTITYORDERED</text-property>
>
> </label>
>
> </cell>
>
> <cell id="16">
>
> <label id="17">
>
> <text-property name="text">PRICEEACH</text-property>
>
> </label>
>
> </cell>
>
> <cell id="18">
>
> <label id="19">
>
> <text-property name="text">ORDERLINENUMBER</text-property>
>
> </label>
>
> </cell>
>
> </row>
>
> </header>
>
> <detail>
>
> <row id="20">
>
> <method name="onCreate"><![CDATA[importPackage(Packages.java.lang)
>
>
> var tmp = this.getRowData().getColumnValue("QUANTITYORDERED");
>
> var tmp2 = testvar;
>
>
> testvar = Integer.parseInt(tmp) + Integer.parseInt(tmp2);]]></method>
>
> <property name="style">detail</property>
>
> <cell id="21">
>
> <data id="22">
>
> <property name="resultSetColumn">ORDERNUMBER</property>
>
> </data>
>
> </cell>
>
> <cell id="23">
>
> <data id="24">
>
> <property name="resultSetColumn">PRODUCTCODE</property>
>
> </data>
>
> </cell>
>
> <cell id="25">
>
> <data id="26">
>
> <property name="resultSetColumn">QUANTITYORDERED</property>
>
> </data>
>
> </cell>
>
> <cell id="27">
>
> <data id="28">
>
> <property name="resultSetColumn">PRICEEACH</property>
>
> </data>
>
> </cell>
>
> <cell id="29">
>
> <data id="30">
>
> <property name="resultSetColumn">ORDERLINENUMBER</property>
>
> </data>
>
> </cell>
>
> </row>
>
> </detail>
>
> <footer>
>
> <row id="31">
>
> <property name="style">headerfooter</property>
>
> <cell id="32"/>
>
> <cell id="33"/>
>
> <cell id="34">
>
> <data id="63">
>
> <method name="onCreate"><![CDATA[testvar2 =
> this.getRowData().getColumnValue("Aggregation");//this.getValue();]] ></method>
>
> <property name="resultSetColumn">Aggregation</property>
>
> </data>
>
> </cell>
>
> <cell id="35"/>
>
> <cell id="36"/>
>
> </row>
>
> </footer>
>
> </table>
>
> <grid id="45">
>
> <property name="masterPage">lastpage</property>
>
> <property name="pageBreakBefore">avoid</property>
>
> <property name="width">100%</property>
>
> <column id="46"/>
>
> <column id="47"/>
>
> <column id="48"/>
>
> <row id="49">
>
> <cell id="50"/>
>
> <cell id="51"/>
>
> <cell id="52"/>
>
> </row>
>
> <row id="53">
>
> <cell id="54"/>
>
> <cell id="55"/>
>
> <cell id="56"/>
>
> </row>
>
> <row id="57">
>
> <cell id="58"/>
>
> <cell id="59"/>
>
> <cell id="60"/>
>
> </row>
>
> </grid>
>
> </body>
>
> </report>
>
>
> Steve Nell wrote:
>> Jason,
>>
>> We are still in the evaluation stage and have tested BIRT with about 10
>> of our key reports. This is one of the last unresolved issues. We've
>> discussed ways of working around it, but those come with their own set of
>> costs. We are open to other approaches even if they are not easy.
>>
>> We've considered modifying the birt engine, or doing some post processing
>> on the pdf file. Any thoughts/ideas you might have are appreciated.
>>
>> thanks again,
>> Steve
>>
>>
>>
>>
>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>> news:ff5lt6$sic$1@build.eclipse.org...
>>> Steve,
>>>
>>> I do not know of an easy way to do this.
>>>
>>> Jason
>>>
>>> Steve Nell wrote:
>>>> Jason,
>>>>
>>>> That did work nicely, but now I have discovered that some of the footer
>>>> block needs to include data from the dataset. I have read that
>>>> pagemasters cannot interact w/ the data -- so now my question becomes:
>>>>
>>>> Is there a way to force a table group footer to align to the bottom of
>>>> the available space on a page? ( or perhaps expand to fill the
>>>> available space on the page )
>>>>
>>>> thank you,
>>>> Steve
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>>>> news:ff2udn$4es$1@build.eclipse.org...
>>>>> Steve,
>>>>>
>>>>> I believe there is a bug for this already in bugzilla, but you may
>>>>> want to try adding an additional master page. On one have nothing and
>>>>> on the second have the footer you want. Add a grid at the bottom of
>>>>> the report and set it to your footer master page.
>>>>>
>>>>> Jason
>>>>>
>>>>> Steve Nell wrote:
>>>>>> I want to print a page footer only on the last page of my report. I
>>>>>> see several postings about this and have tried a few approaches, but
>>>>>> no success so far. Anyone know if it is possible? Does anyone know
>>>>>> if it is not possible?
>>>>>>
>>>>>> many thanks,
>>>>>> Steve Nell
>>>>>>
>>
|
|
|
Re: footer on last page only - revised [message #258902 is a reply to message #258874] |
Sat, 20 October 2007 03:36 |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Steve,
You can make every report at least two pages by adding a page break
after the first table. Will this not work?
Jason
Steve Nell wrote:
> Jason,
>
> unfortunately no... I had thought about using this approach but discovered
> that script values aren't available to the pagemaster until the next page.
> So if my footer occurs on the first page ( which is the case most of the
> time) it wouldnt display the values I need. If the report was always 2
> pages or more, then this approach would work for me ( this is a signature
> footer so I am not doing subtotalling -- just showing appropriate names /
> titles below the signature lines -- so the values from the first page would
> be appropriate ).
>
> Steve
>
>
>
> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
> news:ff8hb7$e41$1@build.eclipse.org...
>> Steve,
>>
>> Take a look at the attached report. It has two master pages. I use
>> script to pull data from the main table and use in the page footer. The
>> only issue is the page break before the last footer. Would something like
>> this meet your needs?
>>
>> Jason
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>>
>> <report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15"
>> id="1">
>>
>> <property name="createdBy">Eclipse BIRT Designer Version
>> 2.2.1.r221_v20070924 Build <2.2.0.v20070924-1550></property>
>>
>> <property name="units">in</property>
>>
>> <property name="comments">Copyright (c) 2007 <<Your Company Name
>> here>></property>
>>
>> <html-property name="description">Creates a blank report with no
>> predefined content.</html-property>
>>
>> <method name="beforeFactory"><![CDATA[importPackage(Packages.java.lang)
>>
>> testvar = Integer.parseInt(0);
>>
>> testvar2 = Integer.parseInt(0);]]></method>
>>
>> <text-property name="displayName">Blank Report</text-property>
>>
>> <property name="iconFile">/templates/blank_report.gif</property>
>>
>> <data-sources>
>>
>> <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc"
>> name="Data Source" id="6">
>>
>> <text-property name="displayName"></text-property>
>>
>> <property
>> name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
>>
>> <property name="odaURL">jdbc:classicmodels:sampledb</property>
>>
>> <property name="odaUser">ClassicModels</property>
>>
>> </oda-data-source>
>>
>> </data-sources>
>>
>> <data-sets>
>>
>> <oda-data-set
>> extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
>> name="Data Set" id="7">
>>
>> <list-property name="columnHints">
>>
>> <structure>
>>
>> <property name="columnName">ORDERNUMBER</property>
>>
>> <property name="displayName">ORDERNUMBER</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="columnName">PRODUCTCODE</property>
>>
>> <property name="displayName">PRODUCTCODE</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="columnName">QUANTITYORDERED</property>
>>
>> <property name="displayName">QUANTITYORDERED</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="columnName">PRICEEACH</property>
>>
>> <property name="displayName">PRICEEACH</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="columnName">ORDERLINENUMBER</property>
>>
>> <property name="displayName">ORDERLINENUMBER</property>
>>
>> </structure>
>>
>> </list-property>
>>
>> <structure name="cachedMetaData">
>>
>> <list-property name="resultSet">
>>
>> <structure>
>>
>> <property name="position">1</property>
>>
>> <property name="name">ORDERNUMBER</property>
>>
>> <property name="dataType">integer</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">2</property>
>>
>> <property name="name">PRODUCTCODE</property>
>>
>> <property name="dataType">string</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">3</property>
>>
>> <property name="name">QUANTITYORDERED</property>
>>
>> <property name="dataType">integer</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">4</property>
>>
>> <property name="name">PRICEEACH</property>
>>
>> <property name="dataType">float</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">5</property>
>>
>> <property name="name">ORDERLINENUMBER</property>
>>
>> <property name="dataType">integer</property>
>>
>> </structure>
>>
>> </list-property>
>>
>> </structure>
>>
>> <property name="dataSource">Data Source</property>
>>
>> <list-property name="resultSet">
>>
>> <structure>
>>
>> <property name="position">1</property>
>>
>> <property name="name">ORDERNUMBER</property>
>>
>> <property name="nativeName">ORDERNUMBER</property>
>>
>> <property name="dataType">integer</property>
>>
>> <property name="nativeDataType">4</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">2</property>
>>
>> <property name="name">PRODUCTCODE</property>
>>
>> <property name="nativeName">PRODUCTCODE</property>
>>
>> <property name="dataType">string</property>
>>
>> <property name="nativeDataType">12</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">3</property>
>>
>> <property name="name">QUANTITYORDERED</property>
>>
>> <property name="nativeName">QUANTITYORDERED</property>
>>
>> <property name="dataType">integer</property>
>>
>> <property name="nativeDataType">4</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">4</property>
>>
>> <property name="name">PRICEEACH</property>
>>
>> <property name="nativeName">PRICEEACH</property>
>>
>> <property name="dataType">float</property>
>>
>> <property name="nativeDataType">8</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="position">5</property>
>>
>> <property name="name">ORDERLINENUMBER</property>
>>
>> <property name="nativeName">ORDERLINENUMBER</property>
>>
>> <property name="dataType">integer</property>
>>
>> <property name="nativeDataType">5</property>
>>
>> </structure>
>>
>> </list-property>
>>
>> <property name="queryText">select *
>>
>> from orderdetails
>>
>> </property>
>>
>> <xml-property name="designerValues"><![CDATA[<?xml version="1.0"
>> encoding="UTF-8"?>
>>
>> <model:DesignValues
>> xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
>> xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
>>
>> <Version>1.0</Version>
>>
>> <design:ResultSets derivedMetaData="true">
>>
>> <design:resultSetDefinitions>
>>
>> <design:resultSetColumns>
>>
>> <design:resultColumnDefinitions>
>>
>> <design:attributes>
>>
>> <design:name>ORDERNUMBER</design:name>
>>
>> <design:position>1</design:position>
>>
>> <design:nativeDataTypeCode>4</design:nativeDataTypeCode>
>>
>> <design:precision>10</design:precision>
>>
>> <design:scale>0</design:scale>
>>
>> <design:nullability>Nullable</design:nullability>
>>
>> <design:uiHints>
>>
>> <design:displayName>ORDERNUMBER</design:displayName>
>>
>> </design:uiHints>
>>
>> </design:attributes>
>>
>> <design:usageHints>
>>
>> <design:label>ORDERNUMBER</design:label>
>>
>> <design:formattingHints>
>>
>> <design:displaySize>11</design:displaySize>
>>
>> </design:formattingHints>
>>
>> </design:usageHints>
>>
>> </design:resultColumnDefinitions>
>>
>> <design:resultColumnDefinitions>
>>
>> <design:attributes>
>>
>> <design:name>PRODUCTCODE</design:name>
>>
>> <design:position>2</design:position>
>>
>> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
>>
>> <design:precision>15</design:precision>
>>
>> <design:scale>0</design:scale>
>>
>> <design:nullability>Nullable</design:nullability>
>>
>> <design:uiHints>
>>
>> <design:displayName>PRODUCTCODE</design:displayName>
>>
>> </design:uiHints>
>>
>> </design:attributes>
>>
>> <design:usageHints>
>>
>> <design:label>PRODUCTCODE</design:label>
>>
>> <design:formattingHints>
>>
>> <design:displaySize>15</design:displaySize>
>>
>> </design:formattingHints>
>>
>> </design:usageHints>
>>
>> </design:resultColumnDefinitions>
>>
>> <design:resultColumnDefinitions>
>>
>> <design:attributes>
>>
>> <design:name>QUANTITYORDERED</design:name>
>>
>> <design:position>3</design:position>
>>
>> <design:nativeDataTypeCode>4</design:nativeDataTypeCode>
>>
>> <design:precision>10</design:precision>
>>
>> <design:scale>0</design:scale>
>>
>> <design:nullability>Nullable</design:nullability>
>>
>> <design:uiHints>
>>
>> <design:displayName>QUANTITYORDERED</design:displayName>
>>
>> </design:uiHints>
>>
>> </design:attributes>
>>
>> <design:usageHints>
>>
>> <design:label>QUANTITYORDERED</design:label>
>>
>> <design:formattingHints>
>>
>> <design:displaySize>11</design:displaySize>
>>
>> </design:formattingHints>
>>
>> </design:usageHints>
>>
>> </design:resultColumnDefinitions>
>>
>> <design:resultColumnDefinitions>
>>
>> <design:attributes>
>>
>> <design:name>PRICEEACH</design:name>
>>
>> <design:position>4</design:position>
>>
>> <design:nativeDataTypeCode>8</design:nativeDataTypeCode>
>>
>> <design:precision>15</design:precision>
>>
>> <design:scale>0</design:scale>
>>
>> <design:nullability>Nullable</design:nullability>
>>
>> <design:uiHints>
>>
>> <design:displayName>PRICEEACH</design:displayName>
>>
>> </design:uiHints>
>>
>> </design:attributes>
>>
>> <design:usageHints>
>>
>> <design:label>PRICEEACH</design:label>
>>
>> <design:formattingHints>
>>
>> <design:displaySize>22</design:displaySize>
>>
>> </design:formattingHints>
>>
>> </design:usageHints>
>>
>> </design:resultColumnDefinitions>
>>
>> <design:resultColumnDefinitions>
>>
>> <design:attributes>
>>
>> <design:name>ORDERLINENUMBER</design:name>
>>
>> <design:position>5</design:position>
>>
>> <design:nativeDataTypeCode>5</design:nativeDataTypeCode>
>>
>> <design:precision>5</design:precision>
>>
>> <design:scale>0</design:scale>
>>
>> <design:nullability>Nullable</design:nullability>
>>
>> <design:uiHints>
>>
>> <design:displayName>ORDERLINENUMBER</design:displayName>
>>
>> </design:uiHints>
>>
>> </design:attributes>
>>
>> <design:usageHints>
>>
>> <design:label>ORDERLINENUMBER</design:label>
>>
>> <design:formattingHints>
>>
>> <design:displaySize>6</design:displaySize>
>>
>> </design:formattingHints>
>>
>> </design:usageHints>
>>
>> </design:resultColumnDefinitions>
>>
>> </design:resultSetColumns>
>>
>> </design:resultSetDefinitions>
>>
>> </design:ResultSets>
>>
>> </model:DesignValues>
>>
>> ]]></xml-property>
>>
>> </oda-data-set>
>>
>> </data-sets>
>>
>> <styles>
>>
>> <style name="crosstab" id="4">
>>
>> <property name="borderBottomColor">#CCCCCC</property>
>>
>> <property name="borderBottomStyle">solid</property>
>>
>> <property name="borderBottomWidth">1pt</property>
>>
>> <property name="borderLeftColor">#CCCCCC</property>
>>
>> <property name="borderLeftStyle">solid</property>
>>
>> <property name="borderLeftWidth">1pt</property>
>>
>> <property name="borderRightColor">#CCCCCC</property>
>>
>> <property name="borderRightStyle">solid</property>
>>
>> <property name="borderRightWidth">1pt</property>
>>
>> <property name="borderTopColor">#CCCCCC</property>
>>
>> <property name="borderTopStyle">solid</property>
>>
>> <property name="borderTopWidth">1pt</property>
>>
>> </style>
>>
>> <style name="crosstab-cell" id="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="detail" id="42">
>>
>> <property name="backgroundColor">#FFFF80</property>
>>
>> <property name="fontFamily">"Arial"</property>
>>
>> <property name="fontSize">small</property>
>>
>> </style>
>>
>> <style name="headerfooter" id="43">
>>
>> <property name="backgroundColor">#004080</property>
>>
>> <property name="fontFamily">"Arial"</property>
>>
>> <property name="fontSize">small</property>
>>
>> <property name="fontWeight">bold</property>
>>
>> <property name="color">#FFFFFF</property>
>>
>> </style>
>>
>> <style name="groupheader" id="44">
>>
>> <property name="backgroundColor">#0080FF</property>
>>
>> <property name="fontFamily">"Arial"</property>
>>
>> <property name="fontSize">small</property>
>>
>> <property name="fontWeight">bold</property>
>>
>> <property name="color">#FFFFFF</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>testvar + "###"+
>> testvar2</value-of>]]></text-property>
>>
>> </text>
>>
>> </page-footer>
>>
>> </simple-master-page>
>>
>> <simple-master-page name="lastpage" id="61">
>>
>> <page-footer>
>>
>> <data id="62">
>>
>> <property name="backgroundColor">#FF8000</property>
>>
>> <property name="color">#FFFFFF</property>
>>
>> <list-property name="boundDataColumns">
>>
>> <structure>
>>
>> <property name="name">Column Binding</property>
>>
>> <expression name="expression">"This is the last page footer " +testvar +
>> " --- " + testvar2;</expression>
>>
>> <property name="dataType">string</property>
>>
>> </structure>
>>
>> </list-property>
>>
>> <property name="resultSetColumn">Column Binding</property>
>>
>> </data>
>>
>> </page-footer>
>>
>> </simple-master-page>
>>
>> </page-setup>
>>
>> <body>
>>
>> <table id="8">
>>
>> <property name="pageBreakAfter">avoid</property>
>>
>> <property name="width">100%</property>
>>
>> <property name="dataSet">Data Set</property>
>>
>> <list-property name="boundDataColumns">
>>
>> <structure>
>>
>> <property name="name">ORDERNUMBER</property>
>>
>> <expression name="expression">dataSetRow["ORDERNUMBER"]</expression >
>>
>> <property name="dataType">integer</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="name">PRODUCTCODE</property>
>>
>> <expression name="expression">dataSetRow["PRODUCTCODE"]</expression >
>>
>> <property name="dataType">string</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="name">QUANTITYORDERED</property>
>>
>> <expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
>>
>> <property name="dataType">integer</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="name">PRICEEACH</property>
>>
>> <expression name="expression">dataSetRow["PRICEEACH"]</expression>
>>
>> <property name="dataType">float</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="name">ORDERLINENUMBER</property>
>>
>> <expression name="expression">dataSetRow["ORDERLINENUMBER"]</expression >
>>
>> <property name="dataType">integer</property>
>>
>> </structure>
>>
>> <structure>
>>
>> <property name="name">Aggregation</property>
>>
>> <expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
>>
>> <property name="dataType">integer</property>
>>
>> <property name="aggregateFunction">SUM</property>
>>
>> </structure>
>>
>> </list-property>
>>
>> <column id="37"/>
>>
>> <column id="38"/>
>>
>> <column id="39"/>
>>
>> <column id="40"/>
>>
>> <column id="41"/>
>>
>> <header>
>>
>> <row id="9">
>>
>> <property name="style">headerfooter</property>
>>
>> <cell id="10">
>>
>> <label id="11">
>>
>> <text-property name="text">ORDERNUMBER</text-property>
>>
>> </label>
>>
>> </cell>
>>
>> <cell id="12">
>>
>> <label id="13">
>>
>> <text-property name="text">PRODUCTCODE</text-property>
>>
>> </label>
>>
>> </cell>
>>
>> <cell id="14">
>>
>> <label id="15">
>>
>> <text-property name="text">QUANTITYORDERED</text-property>
>>
>> </label>
>>
>> </cell>
>>
>> <cell id="16">
>>
>> <label id="17">
>>
>> <text-property name="text">PRICEEACH</text-property>
>>
>> </label>
>>
>> </cell>
>>
>> <cell id="18">
>>
>> <label id="19">
>>
>> <text-property name="text">ORDERLINENUMBER</text-property>
>>
>> </label>
>>
>> </cell>
>>
>> </row>
>>
>> </header>
>>
>> <detail>
>>
>> <row id="20">
>>
>> <method name="onCreate"><![CDATA[importPackage(Packages.java.lang)
>>
>>
>> var tmp = this.getRowData().getColumnValue("QUANTITYORDERED");
>>
>> var tmp2 = testvar;
>>
>>
>> testvar = Integer.parseInt(tmp) + Integer.parseInt(tmp2);]]></method>
>>
>> <property name="style">detail</property>
>>
>> <cell id="21">
>>
>> <data id="22">
>>
>> <property name="resultSetColumn">ORDERNUMBER</property>
>>
>> </data>
>>
>> </cell>
>>
>> <cell id="23">
>>
>> <data id="24">
>>
>> <property name="resultSetColumn">PRODUCTCODE</property>
>>
>> </data>
>>
>> </cell>
>>
>> <cell id="25">
>>
>> <data id="26">
>>
>> <property name="resultSetColumn">QUANTITYORDERED</property>
>>
>> </data>
>>
>> </cell>
>>
>> <cell id="27">
>>
>> <data id="28">
>>
>> <property name="resultSetColumn">PRICEEACH</property>
>>
>> </data>
>>
>> </cell>
>>
>> <cell id="29">
>>
>> <data id="30">
>>
>> <property name="resultSetColumn">ORDERLINENUMBER</property>
>>
>> </data>
>>
>> </cell>
>>
>> </row>
>>
>> </detail>
>>
>> <footer>
>>
>> <row id="31">
>>
>> <property name="style">headerfooter</property>
>>
>> <cell id="32"/>
>>
>> <cell id="33"/>
>>
>> <cell id="34">
>>
>> <data id="63">
>>
>> <method name="onCreate"><![CDATA[testvar2 =
>> this.getRowData().getColumnValue("Aggregation");//this.getValue();]] ></method>
>>
>> <property name="resultSetColumn">Aggregation</property>
>>
>> </data>
>>
>> </cell>
>>
>> <cell id="35"/>
>>
>> <cell id="36"/>
>>
>> </row>
>>
>> </footer>
>>
>> </table>
>>
>> <grid id="45">
>>
>> <property name="masterPage">lastpage</property>
>>
>> <property name="pageBreakBefore">avoid</property>
>>
>> <property name="width">100%</property>
>>
>> <column id="46"/>
>>
>> <column id="47"/>
>>
>> <column id="48"/>
>>
>> <row id="49">
>>
>> <cell id="50"/>
>>
>> <cell id="51"/>
>>
>> <cell id="52"/>
>>
>> </row>
>>
>> <row id="53">
>>
>> <cell id="54"/>
>>
>> <cell id="55"/>
>>
>> <cell id="56"/>
>>
>> </row>
>>
>> <row id="57">
>>
>> <cell id="58"/>
>>
>> <cell id="59"/>
>>
>> <cell id="60"/>
>>
>> </row>
>>
>> </grid>
>>
>> </body>
>>
>> </report>
>>
>>
>> Steve Nell wrote:
>>> Jason,
>>>
>>> We are still in the evaluation stage and have tested BIRT with about 10
>>> of our key reports. This is one of the last unresolved issues. We've
>>> discussed ways of working around it, but those come with their own set of
>>> costs. We are open to other approaches even if they are not easy.
>>>
>>> We've considered modifying the birt engine, or doing some post processing
>>> on the pdf file. Any thoughts/ideas you might have are appreciated.
>>>
>>> thanks again,
>>> Steve
>>>
>>>
>>>
>>>
>>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>>> news:ff5lt6$sic$1@build.eclipse.org...
>>>> Steve,
>>>>
>>>> I do not know of an easy way to do this.
>>>>
>>>> Jason
>>>>
>>>> Steve Nell wrote:
>>>>> Jason,
>>>>>
>>>>> That did work nicely, but now I have discovered that some of the footer
>>>>> block needs to include data from the dataset. I have read that
>>>>> pagemasters cannot interact w/ the data -- so now my question becomes:
>>>>>
>>>>> Is there a way to force a table group footer to align to the bottom of
>>>>> the available space on a page? ( or perhaps expand to fill the
>>>>> available space on the page )
>>>>>
>>>>> thank you,
>>>>> Steve
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>>>>> news:ff2udn$4es$1@build.eclipse.org...
>>>>>> Steve,
>>>>>>
>>>>>> I believe there is a bug for this already in bugzilla, but you may
>>>>>> want to try adding an additional master page. On one have nothing and
>>>>>> on the second have the footer you want. Add a grid at the bottom of
>>>>>> the report and set it to your footer master page.
>>>>>>
>>>>>> Jason
>>>>>>
>>>>>> Steve Nell wrote:
>>>>>>> I want to print a page footer only on the last page of my report. I
>>>>>>> see several postings about this and have tried a few approaches, but
>>>>>>> no success so far. Anyone know if it is possible? Does anyone know
>>>>>>> if it is not possible?
>>>>>>>
>>>>>>> many thanks,
>>>>>>> Steve Nell
>>>>>>>
>
|
|
|
Re: footer on last page only - revised [message #258909 is a reply to message #258902] |
Sat, 20 October 2007 04:51 |
Steve Nell Messages: 11 Registered: July 2009 |
Junior Member |
|
|
It would function, but I wouldnt want to show it to our customers or our
competitors. It would look very awkward.
Steve
"Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
news:ffbsvr$him$1@build.eclipse.org...
> Steve,
>
> You can make every report at least two pages by adding a page break after
> the first table. Will this not work?
>
> Jason
>
> Steve Nell wrote:
>> Jason,
>>
>> unfortunately no... I had thought about using this approach but
>> discovered that script values aren't available to the pagemaster until
>> the next page. So if my footer occurs on the first page ( which is the
>> case most of the time) it wouldnt display the values I need. If the
>> report was always 2 pages or more, then this approach would work for me
>> ( this is a signature footer so I am not doing subtotalling -- just
>> showing appropriate names / titles below the signature lines -- so the
>> values from the first page would be appropriate ).
>>
>> Steve
>>
>>
>>
>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>> news:ff8hb7$e41$1@build.eclipse.org...
>>> Steve,
>>>
>>> Take a look at the attached report. It has two master pages. I use
>>> script to pull data from the main table and use in the page footer. The
>>> only issue is the page break before the last footer. Would something
>>> like this meet your needs?
>>>
>>> Jason
>>>
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>>
>>> <report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15"
>>> id="1">
>>>
>>> <property name="createdBy">Eclipse BIRT Designer Version
>>> 2.2.1.r221_v20070924 Build <2.2.0.v20070924-1550></property>
>>>
>>> <property name="units">in</property>
>>>
>>> <property name="comments">Copyright (c) 2007 <<Your Company Name
>>> here>></property>
>>>
>>> <html-property name="description">Creates a blank report with no
>>> predefined content.</html-property>
>>>
>>> <method name="beforeFactory"><![CDATA[importPackage(Packages.java.lang)
>>>
>>> testvar = Integer.parseInt(0);
>>>
>>> testvar2 = Integer.parseInt(0);]]></method>
>>>
>>> <text-property name="displayName">Blank Report</text-property>
>>>
>>> <property name="iconFile">/templates/blank_report.gif</property>
>>>
>>> <data-sources>
>>>
>>> <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc"
>>> name="Data Source" id="6">
>>>
>>> <text-property name="displayName"></text-property>
>>>
>>> <property
>>> name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
>>>
>>> <property name="odaURL">jdbc:classicmodels:sampledb</property>
>>>
>>> <property name="odaUser">ClassicModels</property>
>>>
>>> </oda-data-source>
>>>
>>> </data-sources>
>>>
>>> <data-sets>
>>>
>>> <oda-data-set
>>> extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
>>> name="Data Set" id="7">
>>>
>>> <list-property name="columnHints">
>>>
>>> <structure>
>>>
>>> <property name="columnName">ORDERNUMBER</property>
>>>
>>> <property name="displayName">ORDERNUMBER</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="columnName">PRODUCTCODE</property>
>>>
>>> <property name="displayName">PRODUCTCODE</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="columnName">QUANTITYORDERED</property>
>>>
>>> <property name="displayName">QUANTITYORDERED</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="columnName">PRICEEACH</property>
>>>
>>> <property name="displayName">PRICEEACH</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="columnName">ORDERLINENUMBER</property>
>>>
>>> <property name="displayName">ORDERLINENUMBER</property>
>>>
>>> </structure>
>>>
>>> </list-property>
>>>
>>> <structure name="cachedMetaData">
>>>
>>> <list-property name="resultSet">
>>>
>>> <structure>
>>>
>>> <property name="position">1</property>
>>>
>>> <property name="name">ORDERNUMBER</property>
>>>
>>> <property name="dataType">integer</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">2</property>
>>>
>>> <property name="name">PRODUCTCODE</property>
>>>
>>> <property name="dataType">string</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">3</property>
>>>
>>> <property name="name">QUANTITYORDERED</property>
>>>
>>> <property name="dataType">integer</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">4</property>
>>>
>>> <property name="name">PRICEEACH</property>
>>>
>>> <property name="dataType">float</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">5</property>
>>>
>>> <property name="name">ORDERLINENUMBER</property>
>>>
>>> <property name="dataType">integer</property>
>>>
>>> </structure>
>>>
>>> </list-property>
>>>
>>> </structure>
>>>
>>> <property name="dataSource">Data Source</property>
>>>
>>> <list-property name="resultSet">
>>>
>>> <structure>
>>>
>>> <property name="position">1</property>
>>>
>>> <property name="name">ORDERNUMBER</property>
>>>
>>> <property name="nativeName">ORDERNUMBER</property>
>>>
>>> <property name="dataType">integer</property>
>>>
>>> <property name="nativeDataType">4</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">2</property>
>>>
>>> <property name="name">PRODUCTCODE</property>
>>>
>>> <property name="nativeName">PRODUCTCODE</property>
>>>
>>> <property name="dataType">string</property>
>>>
>>> <property name="nativeDataType">12</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">3</property>
>>>
>>> <property name="name">QUANTITYORDERED</property>
>>>
>>> <property name="nativeName">QUANTITYORDERED</property>
>>>
>>> <property name="dataType">integer</property>
>>>
>>> <property name="nativeDataType">4</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">4</property>
>>>
>>> <property name="name">PRICEEACH</property>
>>>
>>> <property name="nativeName">PRICEEACH</property>
>>>
>>> <property name="dataType">float</property>
>>>
>>> <property name="nativeDataType">8</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="position">5</property>
>>>
>>> <property name="name">ORDERLINENUMBER</property>
>>>
>>> <property name="nativeName">ORDERLINENUMBER</property>
>>>
>>> <property name="dataType">integer</property>
>>>
>>> <property name="nativeDataType">5</property>
>>>
>>> </structure>
>>>
>>> </list-property>
>>>
>>> <property name="queryText">select *
>>>
>>> from orderdetails
>>>
>>> </property>
>>>
>>> <xml-property name="designerValues"><![CDATA[<?xml version="1.0"
>>> encoding="UTF-8"?>
>>>
>>> <model:DesignValues
>>> xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
>>> xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
>>>
>>> <Version>1.0</Version>
>>>
>>> <design:ResultSets derivedMetaData="true">
>>>
>>> <design:resultSetDefinitions>
>>>
>>> <design:resultSetColumns>
>>>
>>> <design:resultColumnDefinitions>
>>>
>>> <design:attributes>
>>>
>>> <design:name>ORDERNUMBER</design:name>
>>>
>>> <design:position>1</design:position>
>>>
>>> <design:nativeDataTypeCode>4</design:nativeDataTypeCode>
>>>
>>> <design:precision>10</design:precision>
>>>
>>> <design:scale>0</design:scale>
>>>
>>> <design:nullability>Nullable</design:nullability>
>>>
>>> <design:uiHints>
>>>
>>> <design:displayName>ORDERNUMBER</design:displayName>
>>>
>>> </design:uiHints>
>>>
>>> </design:attributes>
>>>
>>> <design:usageHints>
>>>
>>> <design:label>ORDERNUMBER</design:label>
>>>
>>> <design:formattingHints>
>>>
>>> <design:displaySize>11</design:displaySize>
>>>
>>> </design:formattingHints>
>>>
>>> </design:usageHints>
>>>
>>> </design:resultColumnDefinitions>
>>>
>>> <design:resultColumnDefinitions>
>>>
>>> <design:attributes>
>>>
>>> <design:name>PRODUCTCODE</design:name>
>>>
>>> <design:position>2</design:position>
>>>
>>> <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
>>>
>>> <design:precision>15</design:precision>
>>>
>>> <design:scale>0</design:scale>
>>>
>>> <design:nullability>Nullable</design:nullability>
>>>
>>> <design:uiHints>
>>>
>>> <design:displayName>PRODUCTCODE</design:displayName>
>>>
>>> </design:uiHints>
>>>
>>> </design:attributes>
>>>
>>> <design:usageHints>
>>>
>>> <design:label>PRODUCTCODE</design:label>
>>>
>>> <design:formattingHints>
>>>
>>> <design:displaySize>15</design:displaySize>
>>>
>>> </design:formattingHints>
>>>
>>> </design:usageHints>
>>>
>>> </design:resultColumnDefinitions>
>>>
>>> <design:resultColumnDefinitions>
>>>
>>> <design:attributes>
>>>
>>> <design:name>QUANTITYORDERED</design:name>
>>>
>>> <design:position>3</design:position>
>>>
>>> <design:nativeDataTypeCode>4</design:nativeDataTypeCode>
>>>
>>> <design:precision>10</design:precision>
>>>
>>> <design:scale>0</design:scale>
>>>
>>> <design:nullability>Nullable</design:nullability>
>>>
>>> <design:uiHints>
>>>
>>> <design:displayName>QUANTITYORDERED</design:displayName>
>>>
>>> </design:uiHints>
>>>
>>> </design:attributes>
>>>
>>> <design:usageHints>
>>>
>>> <design:label>QUANTITYORDERED</design:label>
>>>
>>> <design:formattingHints>
>>>
>>> <design:displaySize>11</design:displaySize>
>>>
>>> </design:formattingHints>
>>>
>>> </design:usageHints>
>>>
>>> </design:resultColumnDefinitions>
>>>
>>> <design:resultColumnDefinitions>
>>>
>>> <design:attributes>
>>>
>>> <design:name>PRICEEACH</design:name>
>>>
>>> <design:position>4</design:position>
>>>
>>> <design:nativeDataTypeCode>8</design:nativeDataTypeCode>
>>>
>>> <design:precision>15</design:precision>
>>>
>>> <design:scale>0</design:scale>
>>>
>>> <design:nullability>Nullable</design:nullability>
>>>
>>> <design:uiHints>
>>>
>>> <design:displayName>PRICEEACH</design:displayName>
>>>
>>> </design:uiHints>
>>>
>>> </design:attributes>
>>>
>>> <design:usageHints>
>>>
>>> <design:label>PRICEEACH</design:label>
>>>
>>> <design:formattingHints>
>>>
>>> <design:displaySize>22</design:displaySize>
>>>
>>> </design:formattingHints>
>>>
>>> </design:usageHints>
>>>
>>> </design:resultColumnDefinitions>
>>>
>>> <design:resultColumnDefinitions>
>>>
>>> <design:attributes>
>>>
>>> <design:name>ORDERLINENUMBER</design:name>
>>>
>>> <design:position>5</design:position>
>>>
>>> <design:nativeDataTypeCode>5</design:nativeDataTypeCode>
>>>
>>> <design:precision>5</design:precision>
>>>
>>> <design:scale>0</design:scale>
>>>
>>> <design:nullability>Nullable</design:nullability>
>>>
>>> <design:uiHints>
>>>
>>> <design:displayName>ORDERLINENUMBER</design:displayName>
>>>
>>> </design:uiHints>
>>>
>>> </design:attributes>
>>>
>>> <design:usageHints>
>>>
>>> <design:label>ORDERLINENUMBER</design:label>
>>>
>>> <design:formattingHints>
>>>
>>> <design:displaySize>6</design:displaySize>
>>>
>>> </design:formattingHints>
>>>
>>> </design:usageHints>
>>>
>>> </design:resultColumnDefinitions>
>>>
>>> </design:resultSetColumns>
>>>
>>> </design:resultSetDefinitions>
>>>
>>> </design:ResultSets>
>>>
>>> </model:DesignValues>
>>>
>>> ]]></xml-property>
>>>
>>> </oda-data-set>
>>>
>>> </data-sets>
>>>
>>> <styles>
>>>
>>> <style name="crosstab" id="4">
>>>
>>> <property name="borderBottomColor">#CCCCCC</property>
>>>
>>> <property name="borderBottomStyle">solid</property>
>>>
>>> <property name="borderBottomWidth">1pt</property>
>>>
>>> <property name="borderLeftColor">#CCCCCC</property>
>>>
>>> <property name="borderLeftStyle">solid</property>
>>>
>>> <property name="borderLeftWidth">1pt</property>
>>>
>>> <property name="borderRightColor">#CCCCCC</property>
>>>
>>> <property name="borderRightStyle">solid</property>
>>>
>>> <property name="borderRightWidth">1pt</property>
>>>
>>> <property name="borderTopColor">#CCCCCC</property>
>>>
>>> <property name="borderTopStyle">solid</property>
>>>
>>> <property name="borderTopWidth">1pt</property>
>>>
>>> </style>
>>>
>>> <style name="crosstab-cell" id="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="detail" id="42">
>>>
>>> <property name="backgroundColor">#FFFF80</property>
>>>
>>> <property name="fontFamily">"Arial"</property>
>>>
>>> <property name="fontSize">small</property>
>>>
>>> </style>
>>>
>>> <style name="headerfooter" id="43">
>>>
>>> <property name="backgroundColor">#004080</property>
>>>
>>> <property name="fontFamily">"Arial"</property>
>>>
>>> <property name="fontSize">small</property>
>>>
>>> <property name="fontWeight">bold</property>
>>>
>>> <property name="color">#FFFFFF</property>
>>>
>>> </style>
>>>
>>> <style name="groupheader" id="44">
>>>
>>> <property name="backgroundColor">#0080FF</property>
>>>
>>> <property name="fontFamily">"Arial"</property>
>>>
>>> <property name="fontSize">small</property>
>>>
>>> <property name="fontWeight">bold</property>
>>>
>>> <property name="color">#FFFFFF</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>testvar + "###"+
>>> testvar2</value-of>]]></text-property>
>>>
>>> </text>
>>>
>>> </page-footer>
>>>
>>> </simple-master-page>
>>>
>>> <simple-master-page name="lastpage" id="61">
>>>
>>> <page-footer>
>>>
>>> <data id="62">
>>>
>>> <property name="backgroundColor">#FF8000</property>
>>>
>>> <property name="color">#FFFFFF</property>
>>>
>>> <list-property name="boundDataColumns">
>>>
>>> <structure>
>>>
>>> <property name="name">Column Binding</property>
>>>
>>> <expression name="expression">"This is the last page footer " +testvar +
>>> " --- " + testvar2;</expression>
>>>
>>> <property name="dataType">string</property>
>>>
>>> </structure>
>>>
>>> </list-property>
>>>
>>> <property name="resultSetColumn">Column Binding</property>
>>>
>>> </data>
>>>
>>> </page-footer>
>>>
>>> </simple-master-page>
>>>
>>> </page-setup>
>>>
>>> <body>
>>>
>>> <table id="8">
>>>
>>> <property name="pageBreakAfter">avoid</property>
>>>
>>> <property name="width">100%</property>
>>>
>>> <property name="dataSet">Data Set</property>
>>>
>>> <list-property name="boundDataColumns">
>>>
>>> <structure>
>>>
>>> <property name="name">ORDERNUMBER</property>
>>>
>>> <expression name="expression">dataSetRow["ORDERNUMBER"]</expression >
>>>
>>> <property name="dataType">integer</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="name">PRODUCTCODE</property>
>>>
>>> <expression name="expression">dataSetRow["PRODUCTCODE"]</expression >
>>>
>>> <property name="dataType">string</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="name">QUANTITYORDERED</property>
>>>
>>> <expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
>>>
>>> <property name="dataType">integer</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="name">PRICEEACH</property>
>>>
>>> <expression name="expression">dataSetRow["PRICEEACH"]</expression>
>>>
>>> <property name="dataType">float</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="name">ORDERLINENUMBER</property>
>>>
>>> <expression name="expression">dataSetRow["ORDERLINENUMBER"]</expression >
>>>
>>> <property name="dataType">integer</property>
>>>
>>> </structure>
>>>
>>> <structure>
>>>
>>> <property name="name">Aggregation</property>
>>>
>>> <expression name="expression">dataSetRow["QUANTITYORDERED"]</expression >
>>>
>>> <property name="dataType">integer</property>
>>>
>>> <property name="aggregateFunction">SUM</property>
>>>
>>> </structure>
>>>
>>> </list-property>
>>>
>>> <column id="37"/>
>>>
>>> <column id="38"/>
>>>
>>> <column id="39"/>
>>>
>>> <column id="40"/>
>>>
>>> <column id="41"/>
>>>
>>> <header>
>>>
>>> <row id="9">
>>>
>>> <property name="style">headerfooter</property>
>>>
>>> <cell id="10">
>>>
>>> <label id="11">
>>>
>>> <text-property name="text">ORDERNUMBER</text-property>
>>>
>>> </label>
>>>
>>> </cell>
>>>
>>> <cell id="12">
>>>
>>> <label id="13">
>>>
>>> <text-property name="text">PRODUCTCODE</text-property>
>>>
>>> </label>
>>>
>>> </cell>
>>>
>>> <cell id="14">
>>>
>>> <label id="15">
>>>
>>> <text-property name="text">QUANTITYORDERED</text-property>
>>>
>>> </label>
>>>
>>> </cell>
>>>
>>> <cell id="16">
>>>
>>> <label id="17">
>>>
>>> <text-property name="text">PRICEEACH</text-property>
>>>
>>> </label>
>>>
>>> </cell>
>>>
>>> <cell id="18">
>>>
>>> <label id="19">
>>>
>>> <text-property name="text">ORDERLINENUMBER</text-property>
>>>
>>> </label>
>>>
>>> </cell>
>>>
>>> </row>
>>>
>>> </header>
>>>
>>> <detail>
>>>
>>> <row id="20">
>>>
>>> <method name="onCreate"><![CDATA[importPackage(Packages.java.lang)
>>>
>>>
>>> var tmp = this.getRowData().getColumnValue("QUANTITYORDERED");
>>>
>>> var tmp2 = testvar;
>>>
>>>
>>> testvar = Integer.parseInt(tmp) + Integer.parseInt(tmp2);]]></method>
>>>
>>> <property name="style">detail</property>
>>>
>>> <cell id="21">
>>>
>>> <data id="22">
>>>
>>> <property name="resultSetColumn">ORDERNUMBER</property>
>>>
>>> </data>
>>>
>>> </cell>
>>>
>>> <cell id="23">
>>>
>>> <data id="24">
>>>
>>> <property name="resultSetColumn">PRODUCTCODE</property>
>>>
>>> </data>
>>>
>>> </cell>
>>>
>>> <cell id="25">
>>>
>>> <data id="26">
>>>
>>> <property name="resultSetColumn">QUANTITYORDERED</property>
>>>
>>> </data>
>>>
>>> </cell>
>>>
>>> <cell id="27">
>>>
>>> <data id="28">
>>>
>>> <property name="resultSetColumn">PRICEEACH</property>
>>>
>>> </data>
>>>
>>> </cell>
>>>
>>> <cell id="29">
>>>
>>> <data id="30">
>>>
>>> <property name="resultSetColumn">ORDERLINENUMBER</property>
>>>
>>> </data>
>>>
>>> </cell>
>>>
>>> </row>
>>>
>>> </detail>
>>>
>>> <footer>
>>>
>>> <row id="31">
>>>
>>> <property name="style">headerfooter</property>
>>>
>>> <cell id="32"/>
>>>
>>> <cell id="33"/>
>>>
>>> <cell id="34">
>>>
>>> <data id="63">
>>>
>>> <method name="onCreate"><![CDATA[testvar2 =
>>> this.getRowData().getColumnValue("Aggregation");//this.getValue();]] ></method>
>>>
>>> <property name="resultSetColumn">Aggregation</property>
>>>
>>> </data>
>>>
>>> </cell>
>>>
>>> <cell id="35"/>
>>>
>>> <cell id="36"/>
>>>
>>> </row>
>>>
>>> </footer>
>>>
>>> </table>
>>>
>>> <grid id="45">
>>>
>>> <property name="masterPage">lastpage</property>
>>>
>>> <property name="pageBreakBefore">avoid</property>
>>>
>>> <property name="width">100%</property>
>>>
>>> <column id="46"/>
>>>
>>> <column id="47"/>
>>>
>>> <column id="48"/>
>>>
>>> <row id="49">
>>>
>>> <cell id="50"/>
>>>
>>> <cell id="51"/>
>>>
>>> <cell id="52"/>
>>>
>>> </row>
>>>
>>> <row id="53">
>>>
>>> <cell id="54"/>
>>>
>>> <cell id="55"/>
>>>
>>> <cell id="56"/>
>>>
>>> </row>
>>>
>>> <row id="57">
>>>
>>> <cell id="58"/>
>>>
>>> <cell id="59"/>
>>>
>>> <cell id="60"/>
>>>
>>> </row>
>>>
>>> </grid>
>>>
>>> </body>
>>>
>>> </report>
>>>
>>>
>>> Steve Nell wrote:
>>>> Jason,
>>>>
>>>> We are still in the evaluation stage and have tested BIRT with about 10
>>>> of our key reports. This is one of the last unresolved issues. We've
>>>> discussed ways of working around it, but those come with their own set
>>>> of costs. We are open to other approaches even if they are not easy.
>>>>
>>>> We've considered modifying the birt engine, or doing some post
>>>> processing on the pdf file. Any thoughts/ideas you might have are
>>>> appreciated.
>>>>
>>>> thanks again,
>>>> Steve
>>>>
>>>>
>>>>
>>>>
>>>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>>>> news:ff5lt6$sic$1@build.eclipse.org...
>>>>> Steve,
>>>>>
>>>>> I do not know of an easy way to do this.
>>>>>
>>>>> Jason
>>>>>
>>>>> Steve Nell wrote:
>>>>>> Jason,
>>>>>>
>>>>>> That did work nicely, but now I have discovered that some of the
>>>>>> footer block needs to include data from the dataset. I have read
>>>>>> that pagemasters cannot interact w/ the data -- so now my question
>>>>>> becomes:
>>>>>>
>>>>>> Is there a way to force a table group footer to align to the bottom
>>>>>> of the available space on a page? ( or perhaps expand to fill the
>>>>>> available space on the page )
>>>>>>
>>>>>> thank you,
>>>>>> Steve
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> "Jason Weathersby" <jasonweathersby@alltel.net> wrote in message
>>>>>> news:ff2udn$4es$1@build.eclipse.org...
>>>>>>> Steve,
>>>>>>>
>>>>>>> I believe there is a bug for this already in bugzilla, but you may
>>>>>>> want to try adding an additional master page. On one have nothing
>>>>>>> and on the second have the footer you want. Add a grid at the
>>>>>>> bottom of the report and set it to your footer master page.
>>>>>>>
>>>>>>> Jason
>>>>>>>
>>>>>>> Steve Nell wrote:
>>>>>>>> I want to print a page footer only on the last page of my report.
>>>>>>>> I see several postings about this and have tried a few approaches,
>>>>>>>> but no success so far. Anyone know if it is possible? Does anyone
>>>>>>>> know if it is not possible?
>>>>>>>>
>>>>>>>> many thanks,
>>>>>>>> Steve Nell
>>>>>>>>
>>
|
|
| |
Goto Forum:
Current Time: Thu Apr 25 09:07:01 GMT 2024
Powered by FUDForum. Page generated in 0.03294 seconds
|