Jump to content
Server Maintenance This Week. ×

Layout field overlapping edge of layout part


Courtney

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

Recommended Posts

We've just completed updating to FM 12 from FM 11. Some of our report layouts have a very tiny subsummary part, so that the client name (which is how the layout is sorted) appears next to the first project, instead of above it. This was just to make our reports fewer pages, as printing a report with every project can be a real tree-eater.

 

I believe I read something about how FM 12 handles this, but I can't find it now, and it looks like if I have a field on a layout which overlaps between two parts - it just doesn't appear at all. :sad:

 

Is there a way I can make that field appear in full without taking up so much space?

 

To summarize, I'd like the report to look like this, roughly:

 

Client A...........Project 1

.......................Project 2

Client B...........Project 1

.......................Project 2

 

Instead of:

 

Client A

.....................Project 1

.....................Project 2

Client B

.....................Project 1

.....................Project 2

 

Is this still possible? (Dots are just for spacing purposes and would not appear on the actual report layout. :) )

Link to comment
Share on other sites

UPDATED!

 

This was a trick that we used to be able to use in FM 11. Unfortunately this technique no longer works now since objects do not render outside of the container they are a part of.  I suspect this was in preparation for WebDirect so that things would have mirrored behaviors between Client and WebBrowser.

 

You can accomplish this using a looping script to capture the ID of the first record for each break and store it in a global variable.  In FM12 you can then use conditional formatting to change the text color to 'hide' it.  In 13 you can actually hide the object completely.

The calc used to hide the data would be:

 

IsEmpty ( Filtervalues ( $$ListToSearch ; MyTable::RecordID ))

 

Now as for how you would accomplish this in your script:

 

Set Variable[$$ListToSearch;""]

SortRecords[Restore;NoDialog] (ClientID;Project)

Go To Record/Request/Page[First]

Loop

     If [ isempty($ClientID) or $ClientID ≠ MyTable::ClientID ]

          Set Variable [ $ClientID ; Value:MyTable::ClientID ]

          Set Variable [ $$ListToSearch; Value:List($$ListToSearch;MyTable::RecordID) ]

     End If

     Go to record/Request/Page [Next;Exit after last]

End Loop

Edited by Brian C
Link to comment
Share on other sites

 a looping script (or a replace all) to mark the first record for each break.

 

As Wim would say: OY! NO! You never ever want to do such thing. This is a complete no-no in a multi-user scenario and bad practice in all scenarios. And it's completely unnecessary, since you can tell that a project is NOT the first in a group by client by looking at =

Projects::ClientID = GetNthRecord ( Projects::ClientID ; Get (RecordNumber) - 1 )

and format the field conditionally using this formula.

 

 

In FM12 you can use conditional formatting to change the text color to 'hide' it.  In 13 you can actually hide the object completely.

 

I believe in v.12 you can still set the font size to 500 - which will cause the text to be "rendered" outside the field's boundaries, i.e. disappear.

Link to comment
Share on other sites

  • 1 month later...

Hiding the field based on whether it's the first of its group works well, however since the field is now part of the Body layout part, the part will expand if the field does. This results in a space between items:

 

Screen%20Shot%202014-08-18%20at%2012.33.

 

The "1 pixel subsummary part" hack allowed the field to expand across multiple body elements, while keeping the body elements evenly spaced:

 

Screen%20Shot%202014-08-18%20at%2012.38.

 

Is there any way to achieve this behavior post FM12, or are we going to need to redesign these reports?

 

Thanks for any input,

Nate

Link to comment
Share on other sites

This topic is 3552 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.