Dillik

GetLayoutObjectAttribute gives incorrect results in "Current Table" portal

Discussion created by Dillik on Aug 10, 2018
Latest reply on Aug 16, 2018 by TSGal

Product: FileMaker Pro Advanced 17.0.2.205

OS: macOS 10.13.6

Description: Using GetLayoutObjectAttribute with a fourth parameter to specify a portal row number returns correct results for a named object in a traditional relationship-based portal, but trying to use it on a "Current Table" portal introduced in FMPA17 can produce incorrect results for certain attributes.

 

Problem 1: If GetLayoutObjectAttribute has a portalRowNumber parameter of 0 or unspecified, position coordinates (top, left, bounds, etc.) return the position of the instance in the row matching the current record. (This may be a feature rather than a bug?) However, if a portalRowNumber > 0 is specified, the result is always blank unless you happen to be asking for the row that matches the current record.

Workaround: If you're trying to determine the Y-coordinate of the Nth instance of a portal-bound object, either go to that record first (with portalRowNumber unspecified) or base the portal on a relationship (perhaps a dummy portal out of the bounds of the layout).

 

Problem 2: Regardless of the portalRowNumber parameter, the "isObjectHidden" attribute causes the function to return 1 if the named object is hidden in the row matching the current record (the portalRowNumber parameter is ignored).

Workaround: If you need to determine whether an object is visible across the found set, base its visibility on a calculation field, then reference that output in a list-based summary field.

 

Other attributes I've tested seem to return reasonable results ("containsFocus" works as expected with the portalRowNumber parameter, for example).

Outcomes