After selecting the value in the value list. Try running this one line script:
Refresh Window [Flush Cached Join Results]
If that successfully updates your portal, then you have most everything set up correctly and you just need to address the update problem.
You could set up the drop down list with a script trigger to perform this script, but this step can produce major screen update delays in some circumstances and there's an approach that eliminates the need for a script and script trigger:
I would guess that you have a relationship similar to this:
Temp::SomeFIeld x Equipment Lookups::SomeFIeld
That will list all records from Equipment Lookups until you add a portal filter to reduce the list shown.
If you modify your relationship to be:
Temp::g_Alpha x Equipment Lookups::SomeField
The portal should automatically update when you select or enter a different value in g_Alpha. You may need to click the layout background after selecting a letter in order to commit the layout's record before you see the update. And you can include both global drop down fields in this same relationship:
Temp::g_Alpha x Equipment Lookups::SomeField AND
Temp::g_Alpha2 x Equipment Lookups::SomeFIeld
You may find the search portals in this demo file of interest. They allow you to type text into a search field and the portals update with each keystroke to list fewer and fewer matching records. The portal rows themselves have been set up as buttons so that clicking a field in the portal row performs a script that uses the data in that portal row: https://www.dropbox.com/s/0pm1gdqcfi2ndpv/EnhancedValueSelection.fp7
If you are using FileMaker 12, open this file from the File menu to get a copy converted to the FMP12 file format.
Ok, I achieved what I was looking for with the relationship you specified and the following filter code for the portal:( If ( ( Left ( Equipment Lookups::Model ; 1 ) = Temp::g_Alpha ) ; 1 ; 0 ) and If ( ( Left ( Equipment Lookups::Manufacturer ; 1 ) = Temp::g_Alpha2 ) ; 1 ; 0 ) )or( If ( Temp::g_Alpha = "" ; 1 ; 0 ) and If ( ( Left ( Equipment Lookups::Manufacturer ; 1 ) = Temp::g_Alpha2 ) ; 1 ; 0 ) )or( If ( ( Left ( Equipment Lookups::Model ; 1 ) = Temp::g_Alpha ) ; 1 ; 0 ) and If ( Temp::g_Alpha2 = "" ; 1 ; 0 ) )Thanks for the help! Just curious, what's the difference here in using 'x' in the relationship vs. using '='?
X is the cartesian join operator. It matches any value in the match field in one table to all values in the other table. Thus, it enables you to display all records in your portal no matter what values are specified for the match fields. In fact, you can delete the match fields from your table and the relationship will still function.
But what we are exploiting here is some fairly undocumented behavior that the cartesian join automatically forces FileMaker to update the layout when a value in one of the match fields is changed. Thus, the value in the field does not affect what records match via the relationship, but the "save" event (as in OnObjectSave...) tripped by the editing of a match field in this relationship kicks off the needed update without scripting.