You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by adupper <ad...@wesbank.co.za> on 2008/03/10 16:20:56 UTC

fop 0.94 table-row keep-with-next bug

The fo below should only keep the rows together where it is specified and the
totals row, but instead it keeps the entire table on one page. This is a
test table, but I will have much larger tables that run over the page if
they do not split after totals.

As a second question, should sequential "keep-with-next" rows exceed the
length of the page, how do I force a split instead of letting it run off the
page?

<fo:table border-collapse="collapse" table-layout="fixed" width="100%"
                         border="1pt solid black"
                         font-family="Times Roman"
                         id="bkId1">
                  <fo:table-column column-width="40%"/>
                  <fo:table-column column-width="40%"/>
                  <fo:table-column column-width="20%"/>
                  <fo:table-header>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell border="0.5pt solid black"
number-columns-spanned="3">
                           <fo:block font-weight="bold"
text-align="center">Top Exceptions</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell border-bottom="0.5pt solid black"
padding-left="3pt">
                           <fo:block font-weight="bold"
text-align="left">Cost Centre</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border-bottom="0.5pt solid black"
padding-left="3pt">
                           <fo:block font-weight="bold"
text-align="left">Description</fo:block>
                        </fo:table-cell>
                        <fo:table-cell border-bottom="0.5pt solid black"
padding-left="3pt">
                           <fo:block font-weight="bold"
text-align="left">Exceptions</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                  </fo:table-header>
                  <fo:table-body>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell padding-left="3pt">
                           <fo:block>DIVISIONAL OFFICE</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>INACTIVE CARD</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>3</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell padding-left="3pt">
                           <fo:block/>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>NO FILL-UP ON THESE DAYS</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>1</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row>
                        <fo:table-cell padding-left="3pt">
                           <fo:block/>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block text-align="right"
font-weight="bold">Total:</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block font-weight="bold">4</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell padding-left="3pt">
                           <fo:block>CAR ALLOWANCE SCHEME</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>INACTIVE CARD</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>3</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell padding-left="3pt">
                           <fo:block/>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>NO FILL-UP ON THESE DAYS</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>1</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell padding-left="3pt">
                           <fo:block/>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>MULTIPLE TRANSACTIONS</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>1</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row keep-with-next="always">
                        <fo:table-cell padding-left="3pt">
                           <fo:block/>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>TANK CAPACITY EXCEEDED</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block>1</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                     <fo:table-row>
                        <fo:table-cell padding-left="3pt">
                           <fo:block/>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block text-align="right"
font-weight="bold">Total:</fo:block>
                        </fo:table-cell>
                        <fo:table-cell padding-left="3pt">
                           <fo:block font-weight="bold">6</fo:block>
                        </fo:table-cell>
                     </fo:table-row>
                  </fo:table-body>
               </fo:table>

Thanks for your help
-- 
View this message in context: http://www.nabble.com/fop-0.94-table-row-keep-with-next-bug-tp15950811p15950811.html
Sent from the FOP - Dev mailing list archive at Nabble.com.


Re: fop 0.94 table-row keep-with-next bug

Posted by Vincent Hennebert <vi...@anyware-tech.com>.
Hi,

(Redirecting to the fop-users@ mailing where such questions are 
discussed.)

adupper wrote:
> The fo below should only keep the rows together where it is specified and the
> totals row, but instead it keeps the entire table on one page. This is a
> test table, but I will have much larger tables that run over the page if
> they do not split after totals.

This is a bug in FOP 0.94 that has been fixed in the Trunk, and the fix 
will be available in the upcoming 0.95 release.


> As a second question, should sequential "keep-with-next" rows exceed the
> length of the page, how do I force a split instead of letting it run off the
> page?

Theoretically, by giving an integer to the strength of the keep, instead  
of “always” (e.g., keep-with-next.within-page="100"). Unfortunately FOP 
doesn’t currently support any other values than “auto” and “always”. 
I can’t think of any workaround, sorry. That said, if each “Total” 
sub-section is smaller than a page you shouldn’t have any problem.


> <fo:table border-collapse="collapse" table-layout="fixed" width="100%"
>                          border="1pt solid black"
>                          font-family="Times Roman"
>                          id="bkId1">
>                   <fo:table-column column-width="40%"/>
>                   <fo:table-column column-width="40%"/>
>                   <fo:table-column column-width="20%"/>
>                   <fo:table-header>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell border="0.5pt solid black"
> number-columns-spanned="3">
>                            <fo:block font-weight="bold"
> text-align="center">Top Exceptions</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell border-bottom="0.5pt solid black"
> padding-left="3pt">
>                            <fo:block font-weight="bold"
> text-align="left">Cost Centre</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell border-bottom="0.5pt solid black"
> padding-left="3pt">
>                            <fo:block font-weight="bold"
> text-align="left">Description</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell border-bottom="0.5pt solid black"
> padding-left="3pt">
>                            <fo:block font-weight="bold"
> text-align="left">Exceptions</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                   </fo:table-header>
>                   <fo:table-body>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>DIVISIONAL OFFICE</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>INACTIVE CARD</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>3</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block/>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>NO FILL-UP ON THESE DAYS</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>1</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block/>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block text-align="right"
> font-weight="bold">Total:</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block font-weight="bold">4</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>CAR ALLOWANCE SCHEME</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>INACTIVE CARD</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>3</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block/>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>NO FILL-UP ON THESE DAYS</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>1</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block/>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>MULTIPLE TRANSACTIONS</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>1</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row keep-with-next="always">
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block/>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>TANK CAPACITY EXCEEDED</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block>1</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                      <fo:table-row>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block/>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block text-align="right"
> font-weight="bold">Total:</fo:block>
>                         </fo:table-cell>
>                         <fo:table-cell padding-left="3pt">
>                            <fo:block font-weight="bold">6</fo:block>
>                         </fo:table-cell>
>                      </fo:table-row>
>                   </fo:table-body>
>                </fo:table>
> 
> Thanks for your help


HTH,
Vincent


-- 
Vincent Hennebert                            Anyware Technologies
http://people.apache.org/~vhennebert         http://www.anyware-tech.com
Apache FOP Committer                         FOP Development/Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org