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

GetLayoutID ( layout )

Rate this function:  

  Average rating: 4.2  (33 votes)
  Discuss this Custom Function

Ulf Carlsson, Studentlitteratur AB

Gets the layout ID of current or named layout

Sample Input:
GetLayoutID ( "current" )
Sample Output:

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

Click here to copy To Clip Manager if you have myFMbutler's Clip Manager installed


Use: Gets the Layout-ID of current layout if parameter layout="current" or of the layout which name is in parameter layout

Problem: You use some kind of navigation that want to switch to another layout when a button is pressed, but you want to be able to change both layout names and layout order without the solution breaks.

Solution: Use the function GetLayoutID in combination with the function GetLayoutNumberFromID to be able to do navigation between layouts without your application breaks if layouts change names or order.
In other words: Where you save which layout name or layout number to go to, save the layout id instead and then look up which number the layout has at the moment with function GetLayoutNumberFromID ( layoutID ).

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



Thanks for your function, but it is a little buggy.


LayoutNames="Compl aints Test¶Blabla¶Complaint"

Function will return the ID of the 1st value but should return the ID of the 3'd value.

replace: theLayoutNames = LayoutNames ( Get ( FileName ) );
with:theLayoutNames = "¶" & LayoutNames ( Get ( FileName ) ) & "¶";

replace:theLayout = If ( layout ="current" ; Get ( LayoutName ) ; layout );
with=theLayout = "¶" & If ( layout ="current" ; Get ( LayoutName ) ; layout ) & "¶";

replace:Position ( theLayoutNames ; theLayout ; 1 ; 1 ) ) ;
"¶" ) + 1 ;
with:Position ( theLayoutNames ; theLayout ; 1 ; 1 ) ) ;
"¶" ) ;


Robert, Berlin
September 30, 2010 4:06am

This function doesn't work, if you have a Layout named "Example1 Overview" and a Layout named "Example1". If you search for "Example1", the script step Position() will now the position of "Example1 Overview" and you get the wrong ID.
Solution: Check if the Layoutname is on the beginning or the end. Otherways search for ¶Layoutname¶. Like that you're sure the whole name is identical.

Roman Hofstetter, Zurich
August 30, 2011 1:05am

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 3 + 3 =
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. ExcludeValues(MyList ; Out)
  (Wed, Mar 21, 7:23am)
2. PreviousMonthEndDate ( myDate )
  (Wed, Mar 07, 3:35am)
3. PreviousMonthName (myDate)
  (Wed, Mar 07, 3:33am)
4. FmTableFields ( tableName ; fieldsInclude ; fieldsExclude ; classExclude ; typeExclude ; prefixExclude )
  (Fri, Mar 02, 6:32am)
5. sql.getTable ( fullyQualifiedFieldObject )
  (Thu, Feb 22, 8:36am)
6. sql.getField ( fullyQualifiedFieldObject )
  (Thu, Feb 22, 8:34am)
7. FilterOut ( ListA ; ListB )
  (Wed, Feb 21, 6:11pm)
8. Char0 ( )
  (Sun, Feb 18, 2:35am)

RSS Feed of Custom Functions