Jump to content

Text splitting across page boundaries


Mike Owen

This topic is 5957 days old. Please don't post here. Open a new topic instead.

Recommended Posts

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

Inventory_wCF.png

  • Like 1
Link to comment
Share on other sites

This topic is 5957 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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.