Software Venture Consulting

FileMaker Pro downloads & Resources
FileMaker Custom Functions
FileMaker Web Viewer Examples
FileMaker Pro & Lasso Consulting
FileMaker Books
FileMaker Articles
FileMaker Error Reference

Free Web Tools
Free FileMaker Tools

Personal Pages

Shopping Cart
Shopping Cart


Free Newsletter


Privacy Policy

FileMaker is a registered trademark of FileMaker, Inc. in the U.S. and other countries.


 FileMaker Pro Custom Functions

List  |  Show Random  |  Upload  |  Add This to Your Site

FilteredPortalList ( fieldObjectName ; startingPortalRow )

Rate this function:  

  Average rating: 4.5  (31 votes)
  Discuss this Custom Function

Howard Schlossberg, FM Professional Solutions

Returns a field from each row of a FILTERED portal, up to the first blank row

Sample Input:
FilteredPortalList ( personID ; 1 )

(where there are 100 related records but the portal is filtered to only show 3 records)
Sample Output:

 Then copy & paste into FileMaker Advanced's Edit Custom Function window.


This shouldn't have alluded me for as long as it has, but I was happy to find this on FM Forums, written by Ron Cates in a thread of self-help.

Other functions that I've seen here display all VISIBLE rows in a portal, but this one displays ALL ROWS in a portal that has filters applied...although only up until the first blank row.

The reason it shows only up to the first blank row is that there is currently no way to determine how many total filtered portal rows there actually are; stopping at the first blank is the best assumption we can make. This works fine for the intended purpose, however, which assumes the field being gathered is the primary ID of the related record (from which you can use ExecuteSQL() or perhaps other functions to determine the content of other related fields).

Note: these functions are not guaranteed or supported by Please contact the individual developer with any questions or problems.

This is my Custom Function and I want to edit it


5 most recent comments | Show all 8 comments

Unfortunately that doesn't work. By using the "left" attribute, you only retrieve info for the visible rows of the portal.

Also, I was not so much concerned about getting a compacted list as with knowing when the function should stop walking the portal rows.

We really need getLayoutObjectAttribute to be fixed so that it can know when it has run out of portal rows.

So you probably need to go back to your original function but advise users that your function stops on the first empty value, either because the object is actually empty or because it is referring to a row that doesn't exist.

Bruce Robertson, Redmond WA
May 27, 2013 11:30am

Ugh, right. I should have tested more than just a dozen rows in a large sample portal. I've now reverted it back to its original, which is to display up until the first blank row. Thanks, Bruce!

Howard Schlossberg, Los Angeles, CA
May 27, 2013 11:56am

Does anyone know if this can also get field data that is not being displayed in the portal? Does the field have to be in the portal to get pulled in?

Stephen, Wyckoff, NJ
September 12, 2013 2:15pm

No, it only shows fields that are in the portal and that are given an object name. But that field can be sized at 1x1 pixel and prohibit entry, etc.

Howard, Los Angeles
September 12, 2013 2:23pm

Here is a means of getting data from all the rows of a filtered portal - thanks to Andrew Duncan and Daniel Woods

Close to your method Howard but using the context of the filtered portal to inform the GetLayoutObjectAttribute with the correct values - which also provides an easy method of getting the filtered portal rec found count using wordcount(recIDs).

Does this compute with you? It seems to work for me.

Cheers Nick

Nick Lightbody, Sussex UK
October 11, 2014 3:56am

Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:

Your Name:
characters left. If you paste in more than 1500 characters, it will be truncated. Discuss the function - advertisements and other useless posts will be deleted.
Answer 2 + 9 =
Search for Custom Functions:

Custom Functions Widget
Download the Custom Function Dashboard Widget for OS X
Keep all the latest Custom Functions right at your fingertips!

Newest Custom Functions:

1. HexUUIDToNum_cf (_uuid)
  (Sat, Jun 16, 1:55pm)
2. httpResponseCode ( responseHeaders )
  (Tue, Jun 12, 10:40pm)
3. FindDuplicateCharacters ( string )
  (Fri, Jun 08, 5:01pm)
4. FieldRepetitionLast ( field ; maxRepetition )
  (Wed, Jun 06, 6:05pm)
5. CountModifiedRecords ( NameTimestampField ; StartTimestamp ; EndTimestamp )
  (Mon, May 28, 8:23am)
6. JSONArrayLength ( JSONArrayStr )
  (Fri, May 25, 7:46am)
7. interpolation (y1; y2; y3; x1; x2; x3; x1y1; x2y1; x1y2; x2y2; rnd)
  (Sat, May 19, 3:55am)
8. @JSONFormatElements ( json )
  (Tue, May 15, 3:31am)

RSS Feed of Custom Functions