Bug 212049 - [Improve Report Layout Capabilities] Need ability to align group footer to bottom of available space on page
Summary: [Improve Report Layout Capabilities] Need ability to align group footer to bo...
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: BIRT (show other bugs)
Version: 2.2.0   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: Future   Edit
Assignee: Wei Yan CLA
QA Contact: Xiaoying Gu CLA
URL:
Whiteboard:
Keywords: plan
Depends on:
Blocks:
 
Reported: 2007-12-05 13:10 EST by Steve Nell CLA
Modified: 2010-12-10 19:20 EST (History)
5 users (show)

See Also:


Attachments
example of issue using sample database (25.38 KB, application/xml)
2007-12-05 13:10 EST, Steve Nell CLA
no flags Details
example to demostrate one group one page (26.18 KB, application/xml)
2009-02-05 22:28 EST, Wei Yan CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Nell CLA 2007-12-05 13:10:21 EST
Created attachment 84554 [details]
example of issue using sample database

Build ID: I20070625-1500

Steps To Reproduce:
Several of our reports consist of a series of workorders.  On each workorder, we have the need to include a group footer that contains signature lines and various names that are drawn from the dataset.  This 'signature block' really needs to be at the bottom of the page, but I have not found a way to accomplish this in BIRT.

thanks,
Steve Nell



More information:

Below is an example using the sample database that should give a rough visual indication of what I am trying to do.  The block I want to align to the bottom of the page is outlined in blue.

------ START
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.14" id="1">
    <property name="createdBy">Eclipse BIRT Designer Version 2.2.1.r221_v20070924 Build &lt;2.2.0.v20070924-1550></property>
    <property name="units">in</property>
    <property name="comments">Copyright (c) 2007</property>
    <html-property name="description">Creates a blank report with no predefined content.</html-property>
    <text-property name="displayName">Blank Report</text-property>
    <property name="iconFile">/templates/blank_report.gif</property>
    <property name="layoutPreference">auto layout</property>
    <data-sources>
        <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="SAMPLE" id="6">
            <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="DS1" id="7">
            <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">ORDERDATE</property>
                        <property name="dataType">date</property>
                    </structure>
                    <structure>
                        <property name="position">3</property>
                        <property name="name">REQUIREDDATE</property>
                        <property name="dataType">date</property>
                    </structure>
                    <structure>
                        <property name="position">4</property>
                        <property name="name">SHIPPEDDATE</property>
                        <property name="dataType">date</property>
                    </structure>
                    <structure>
                        <property name="position">5</property>
                        <property name="name">STATUS</property>
                        <property name="dataType">string</property>
                    </structure>
                    <structure>
                        <property name="position">6</property>
                        <property name="name">COMMENTS</property>
                        <property name="dataType">string</property>
                    </structure>
                    <structure>
                        <property name="position">7</property>
                        <property name="name">CUSTOMERNUMBER</property>
                        <property name="dataType">integer</property>
                    </structure>
                    <structure>
                        <property name="position">8</property>
                        <property name="name">ORDERNUMBER_8</property>
                        <property name="dataType">integer</property>
                    </structure>
                    <structure>
                        <property name="position">9</property>
                        <property name="name">PRODUCTCODE</property>
                        <property name="dataType">string</property>
                    </structure>
                    <structure>
                        <property name="position">10</property>
                        <property name="name">QUANTITYORDERED</property>
                        <property name="dataType">integer</property>
                    </structure>
                    <structure>
                        <property name="position">11</property>
                        <property name="name">PRICEEACH</property>
                        <property name="dataType">float</property>
                    </structure>
                    <structure>
                        <property name="position">12</property>
                        <property name="name">ORDERLINENUMBER</property>
                        <property name="dataType">integer</property>
                    </structure>
                    <structure>
                        <property name="position">13</property>
                        <property name="name">CONTACTFIRSTNAME</property>
                        <property name="dataType">string</property>
                    </structure>
                    <structure>
                        <property name="position">14</property>
                        <property name="name">CONTACTLASTNAME</property>
                        <property name="dataType">string</property>
                    </structure>
                </list-property>
            </structure>
            <property name="dataSource">SAMPLE</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">ORDERDATE</property>
                    <property name="nativeName">ORDERDATE</property>
                    <property name="dataType">date</property>
                    <property name="nativeDataType">91</property>
                </structure>
                <structure>
                    <property name="position">3</property>
                    <property name="name">REQUIREDDATE</property>
                    <property name="nativeName">REQUIREDDATE</property>
                    <property name="dataType">date</property>
                    <property name="nativeDataType">91</property>
                </structure>
                <structure>
                    <property name="position">4</property>
                    <property name="name">SHIPPEDDATE</property>
                    <property name="nativeName">SHIPPEDDATE</property>
                    <property name="dataType">date</property>
                    <property name="nativeDataType">91</property>
                </structure>
                <structure>
                    <property name="position">5</property>
                    <property name="name">STATUS</property>
                    <property name="nativeName">STATUS</property>
                    <property name="dataType">string</property>
                    <property name="nativeDataType">12</property>
                </structure>
                <structure>
                    <property name="position">6</property>
                    <property name="name">COMMENTS</property>
                    <property name="nativeName">COMMENTS</property>
                    <property name="dataType">string</property>
                    <property name="nativeDataType">12</property>
                </structure>
                <structure>
                    <property name="position">7</property>
                    <property name="name">CUSTOMERNUMBER</property>
                    <property name="nativeName">CUSTOMERNUMBER</property>
                    <property name="dataType">integer</property>
                    <property name="nativeDataType">4</property>
                </structure>
                <structure>
                    <property name="position">8</property>
                    <property name="name">ORDERNUMBER_8</property>
                    <property name="nativeName">ORDERNUMBER</property>
                    <property name="dataType">integer</property>
                    <property name="nativeDataType">4</property>
                </structure>
                <structure>
                    <property name="position">9</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">10</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">11</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">12</property>
                    <property name="name">ORDERLINENUMBER</property>
                    <property name="nativeName">ORDERLINENUMBER</property>
                    <property name="dataType">integer</property>
                    <property name="nativeDataType">5</property>
                </structure>
                <structure>
                    <property name="position">13</property>
                    <property name="name">CONTACTFIRSTNAME</property>
                    <property name="nativeName">CONTACTFIRSTNAME</property>
                    <property name="dataType">string</property>
                    <property name="nativeDataType">12</property>
                </structure>
                <structure>
                    <property name="position">14</property>
                    <property name="name">CONTACTLASTNAME</property>
                    <property name="nativeName">CONTACTLASTNAME</property>
                    <property name="dataType">string</property>
                    <property name="nativeDataType">12</property>
                </structure>
            </list-property>
            <property name="queryText">select o.*,od.*, c.contactfirstname, c.contactlastname 

from orders o
inner join orderdetails od on o.ordernumber=od.ordernumber 
inner join customers c on c.customernumber=o.customernumber
where o.ordernumber &lt; 10121
</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">
            <property name="leftMargin">1in</property>
            <property name="bottomMargin">1in</property>
            <property name="rightMargin">1in</property>
            <property name="backgroundPositionY">0%</property>
            <property name="headerHeight">0.5in</property>
        </simple-master-page>
    </page-setup>
    <body>
        <table id="45">
            <property name="fontSize">14pt</property>
            <property name="canShrink">true</property>
            <property name="height">2.8333333333in</property>
            <property name="width">8.0520833333in</property>
            <property name="dataSet">DS1</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">Column Binding</property>
                    <expression name="expression">dataSetRow["CONTACTFIRSTNAME"]+' '+dataSetRow["CONTACTLASTNAME"]</expression>
                    <property name="dataType">any</property>
                </structure>
            </list-property>
            <column id="74">
                <property name="width">1.9166666667in</property>
            </column>
            <column id="75">
                <property name="width">2.1041666667in</property>
            </column>
            <column id="76">
                <property name="width">1.71875in</property>
            </column>
            <column id="78">
                <property name="width">0.4479166667in</property>
            </column>
            <header>
                <row id="46">
                    <cell id="47"/>
                    <cell id="49"/>
                    <cell id="51"/>
                    <cell id="55"/>
                </row>
            </header>
            <group id="79">
                <property name="groupName">ORDERGROUP</property>
                <property name="interval">none</property>
                <property name="sortDirection">asc</property>
                <expression name="keyExpr">row["ORDERNUMBER"]</expression>
                <structure name="toc">
                    <expression name="expressionValue">row["ORDERNUMBER"]</expression>
                </structure>
                <property name="repeatHeader">true</property>
                <property name="hideDetail">false</property>
                <property name="pageBreakAfter">always</property>
                <property name="pageBreakBefore">auto</property>
                <property name="pageBreakInside">auto</property>
                <header>
                    <row id="460">
                        <property name="borderBottomStyle">solid</property>
                        <property name="borderBottomWidth">thin</property>
                        <cell id="461">
                            <label id="466">
                                <text-property name="text">ORDER NUMBER:</text-property>
                            </label>
                        </cell>
                        <cell id="462">
                            <data id="467">
                                <property name="resultSetColumn">ORDERNUMBER</property>
                            </data>
                        </cell>
                        <cell id="463"/>
                        <cell id="465"/>
                    </row>
                    <row id="80">
                        <cell id="81">
                            <property name="colSpan">1</property>
                            <property name="rowSpan">1</property>
                            <label id="97">
                                <property name="textUnderline">underline</property>
                                <text-property name="text">ProductCode</text-property>
                            </label>
                        </cell>
                        <cell id="94">
                            <label id="98">
                                <property name="textUnderline">underline</property>
                                <text-property name="text">Quantity</text-property>
                            </label>
                        </cell>
                        <cell id="95">
                            <label id="99">
                                <property name="textUnderline">underline</property>
                                <text-property name="text">Price</text-property>
                            </label>
                        </cell>
                        <cell id="85"/>
                    </row>
                </header>
                <footer>
                    <row id="86">
                        <property name="height">0.2916666667in</property>
                        <property name="borderTopStyle">solid</property>
                        <property name="borderTopWidth">thin</property>
                        <cell id="87">
                            <property name="colSpan">4</property>
                            <property name="rowSpan">1</property>
                            <grid id="387">
                                <property name="borderBottomColor">blue</property>
                                <property name="borderBottomStyle">solid</property>
                                <property name="borderLeftColor">blue</property>
                                <property name="borderLeftStyle">solid</property>
                                <property name="borderRightColor">blue</property>
                                <property name="borderRightStyle">solid</property>
                                <property name="borderTopColor">blue</property>
                                <property name="borderTopStyle">solid</property>
                                <property name="height">1.2291666667in</property>
                                <property name="width">5.7083333333in</property>
                                <column id="388">
                                    <property name="width">2.3020833333in</property>
                                </column>
                                <column id="417">
                                    <property name="width">0.2in</property>
                                </column>
                                <column id="389">
                                    <property name="width">2.35in</property>
                                </column>
                                <column id="390">
                                    <property name="width">0.40625in</property>
                                </column>
                                <row id="391">
                                    <cell id="392">
                                        <label id="407">
                                            <text-property name="text">Customer Representative:</text-property>
                                        </label>
                                    </cell>
                                    <cell id="413"/>
                                    <cell id="393">
                                        <property name="colSpan">2</property>
                                        <property name="rowSpan">1</property>
                                        <data id="452">
                                            <property name="resultSetColumn">Column Binding</property>
                                        </data>
                                    </cell>
                                </row>
                                <row id="395">
                                    <cell id="396">
                                        <label id="453">
                                            <text-property name="text">Signature:</text-property>
                                        </label>
                                    </cell>
                                    <cell id="414"/>
                                    <cell id="397">
                                        <property name="colSpan">2</property>
                                        <property name="rowSpan">1</property>
                                        <label id="423">
                                            <property name="borderBottomColor">#000000</property>
                                            <property name="borderBottomStyle">solid</property>
                                            <property name="borderBottomWidth">1px</property>
                                        </label>
                                    </cell>
                                </row>
                                <row id="399">
                                    <cell id="400">
                                        <label id="432">
                                            <text-property name="text">Date:</text-property>
                                        </label>
                                    </cell>
                                    <cell id="415"/>
                                    <cell id="401">
                                        <label id="433">
                                            <property name="borderBottomColor">#000000</property>
                                            <property name="borderBottomStyle">solid</property>
                                            <property name="borderBottomWidth">1px</property>
                                        </label>
                                    </cell>
                                    <cell id="402"/>
                                </row>
                                <row id="403">
                                    <cell id="404"/>
                                    <cell id="416"/>
                                    <cell id="405"/>
                                    <cell id="406"/>
                                </row>
                            </grid>
                        </cell>
                    </row>
                </footer>
            </group>
            <detail>
                <row id="57">
                    <cell id="58">
                        <data id="61">
                            <property name="resultSetColumn">PRODUCTCODE</property>
                        </data>
                    </cell>
                    <cell id="60">
                        <data id="63">
                            <property name="resultSetColumn">QUANTITYORDERED</property>
                        </data>
                    </cell>
                    <cell id="62">
                        <data id="65">
                            <property name="resultSetColumn">PRICEEACH</property>
                        </data>
                    </cell>
                    <cell id="66"/>
                </row>
            </detail>
            <footer>
                <row id="68">
                    <property name="height">0.3333333333in</property>
                    <cell id="69"/>
                    <cell id="70"/>
                    <cell id="71"/>
                    <cell id="73"/>
                </row>
            </footer>
        </table>
    </body>
</report>

---- END
Comment 1 Wei Yan CLA 2007-12-12 02:03:25 EST
need support "float" property in BIRT.
Comment 2 Steve Nell CLA 2008-06-11 15:41:12 EDT
Any hope of activity on this bug in a future release?
thanks
Steve
Comment 3 Wei Yan CLA 2009-02-05 22:28:28 EST
Created attachment 124917 [details]
example to demostrate  one group one page

If each group only contains one page, we can use the following report design to archive the effect:

list
  group - order-number
     group header
        grid (height:page height - footer height)
           table
        grid (height:footer height)

see the attached example.
Comment 4 Wei Yan CLA 2009-05-18 02:02:31 EDT
defer to 2.5.2 for resource issue.
Comment 5 Wenfeng Li CLA 2009-09-16 19:46:55 EDT
schedule to 2.6 to allow more time to work on this enhancement.