Reports: Invoice Detail section height expand to fill page

37 views
Skip to first unread message

Derek Day

unread,
May 1, 2013, 5:18:18 PM5/1/13
to intersys...@googlegroups.com

I am writing a Zen Report to output PDF invoices (Using Apache FOP and 2013.1.0). I need the detail section to always fill up the page even if there are only one or two items on that page of the invoice.

 

I do not see a good way to make the space beneath line item 26 appear. Do I have to hardcode the height of this section?

I believe the Remit section is always on the last page, and the Logo and full header is only on the first page.

 

The Full header with customer address will expand or contract based on the customer, so a static height would be difficult.

 

Thanks,

Derek

 

Hopefully this will work reasonably well (the spacing was done using the default font on my mail client (Calibri 11pt)):

 

InterSystems Logo                                      Invoice

Partner                                                         Invoice Reference

Address

Here

                                                                 Total Due ##,###.##

----------------------------------------------------------------

| Item | Description                                    | Amount         |

----------------------------------------------------------------

|       25| Coolness Factor                           | #,###.##     |

|           |                                                            |                         |

|       26| Coolness Factor   X10                | #,###.##     |

|           |                                                            |                         |

|           |                                                            |                         |

|           |                                                            |                         |

|           |                                                            |                         |

|           |                                                            |                         |

----------------------------------------------------------------

Remit To                                              Taxes #,###.##

    Remit                                                 Total Due ##,###.##

     Instructions

     Here

 

 

       Footer Address Telephone Legal Name Footer

 

Jonathan Levinson

unread,
May 1, 2013, 5:24:32 PM5/1/13
to intersys...@googlegroups.com

Have you tried non-breakable space,    ?  It looks like a space but the usual space-stripping rules do not apply to it.

 

Best Regards,

Jonathan

--
You received this message because you are subscribed to the Google Groups "InterSystems: Zen Community" group.
To post to this group, send email to InterSys...@googlegroups.com
To unsubscribe from this group, send email to InterSystems-Z...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/InterSystems-ZEN?hl=en
Zen Community Terms and Conditions: http://groups.google.com/group/InterSystems-ZEN/web/community-terms-and-conditions
---
You received this message because you are subscribed to the Google Groups "InterSystems: Zen Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to intersystems-z...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Derek Day

unread,
May 1, 2013, 5:35:15 PM5/1/13
to intersys...@googlegroups.com

I can add spaces, but I’m not sure how I would extend the table height. Do I need to count lines or something?

 

In CSS for HTML I would specify top and bottom positions.

 

Hmm, perhaps I could put the border on the region-start, region-after, region-before, and region-end instead of on the table itself. Then my line items would be 100% width (of the region body, and I would only style the top, bottom and inner borders. Does that make sense? I’d just need to figure out how to put content in region-before and region-end. Does that work? Will content cause each region to expand leaving the remainder of the space for the body?

 

Thanks!

Derek

Jonathan Levinson

unread,
May 1, 2013, 6:06:41 PM5/1/13
to intersys...@googlegroups.com

An xsl-fo table has a height attribute.  You would specify it using xslfostyle on the table attribute for instance:

 

<table xslfostyle=”height:9.5in;”

 

In style or xslfostyle you could specify table borders.  If height is friendly it will create a table of the appropriate height.

 

I haven’t tried this though.

 

If you add spaces you need to count lines.

 

The border on region-XXX sounds interesting.  I haven’t tried it myself.  Look at pageheader, pagefooter, pagestartsidebar, and pageendsidebar (the latter two are left and right extent areas.)  They won’t expand as you put content in them.  Rather you define their geometry and content is flowed into them.  You need to use document attributes to control their geometry.  Relevant are headerHeight, footerHeight, startSidebarLength, endSidebarLength.  Look in the document class for more details on more attributes.

Jonathan Levinson

unread,
May 1, 2013, 6:15:31 PM5/1/13
to intersys...@googlegroups.com

I just tried:

 

<table xslfostyle="height:9in;border:2pt solid black">
<item value="dummy"/>
</table>

 

And the border shrunk to fit the data.  No joy with height.

 

It looks like a FOP limitation: http://stackoverflow.com/questions/11014047/xsl-fo-table-fixed-height

Reply all
Reply to author
Forward
0 new messages