Mike Owen Posted December 31, 2007 Posted December 31, 2007 Can one stop lines of text being shaved when printing portals across page boundaries? I am trying to print a directory of departments with department members appearing in a portal below each department field. All fields slide up to produce a continuous list and the 'Allow part to break across page boundaries' is checked. On some pages the top of a portal row prints at the foot of one page (the top of the characters), and the bottom appears on the next page. It appears FM does not know how to deal with widows and orphans. Preventing the part breaking is not an answer as this will mean some pages are only half full (where the following portal has many rows and is forced onto the next page). I'd be grateful for any help on this.
Fenton Posted December 31, 2007 Posted December 31, 2007 This has always been a limitation of portals. FileMaker can't seem to figure out exactly where the rows end when printing. The standard answer to your question is, "Print from a line items table layout." You can always access "parent" data from the line item. You can sort by the parent, putting its fields in a Subsummary part, in order to "group" the data. The only time this becomes a problem is if you have portals from different tables on the parent layout, and want to print them all; since they'd be pointing to different line item tables. If you have FileMaker Pro Advanced, there are custom functions which can transform portal (related) data into a calculation text field, such as GetRows(). But you don't appear to have FileMaker Pro Advanced, so you can't use that technique.
Mike Owen Posted December 31, 2007 Author Posted December 31, 2007 Fenton Thanks for this. I do in fact have 8.5 Advanced (i thought I'd checked this but obviously not!) - could you tell me more about the custom functions that could be used? Many thanks Mike Owen
IdealData Posted December 31, 2007 Posted December 31, 2007 Even a large text block will still have problems when it is spread across multiple pages. It's much better in 8.5 but I have struggled for years to get a decent "fit" on the page. The GetRows() custom function can be found on Brian Dunning's web site, and it also needs the GetNthRow() - all can be found at http://www.briandunning.com Thanks for the heads up by Fenton - I never realised there were so many custom functions around.
Fenton Posted December 31, 2007 Posted December 31, 2007 I've sometimes found that putting the field on the layout as a Merge field helps. The GetRows() Custom Function has a somewhat unique syntax. Example: Let ( N = Count ( Invoice Line::Item_num ); GetRows ( "Invoice Line::Manufacturer ¶ Invoice Line::Item_num ¶ Invoice Line::Product Name"; N ; Tab ) ) You put return-separated fields AS TEXT into it. Because it wants the field names, not the values in the field. This means that those field names are hard-coded, so don't change the names afterwards. The Tab at the end is just a Custom Function where I pasted a real tab character into. This allowed me to use tabs in the calculation result to separate the fields. Looks like: 1
Mike Owen Posted January 1, 2008 Author Posted January 1, 2008 Thanks to both of you - plenty of ideas to find a solution from. Mike Owen
Recommended Posts
This topic is 6171 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now