MariaAux

Display Find Results in a Portal

12 posts in this topic

Hi There,

I did a google search to learn more about displaying find results in a portal i.e. perform a find and only those resluts should be displayed within a portal and I found a couple of ideas. One was the concept of multi-key fields but I noticed the video was done with an older version of Filemaker. With FM 11, we have the ability to do a filter within a portal based on a calcualtion and I wonder whether there isn't an easier way now with FM11 to use this portal filter functionality to produce a portal with only the find results?

Is Multi-keys still the best way or is there a better way with Portal filters?

Thanks so much for your advice and time.

Maria

Share this post


Link to post
Share on other sites

A portal filter doesn't have any "awareness" of the found set, so it can't really help you there. A multi-key field seems like the way to do it.

Share this post


Link to post
Share on other sites

Why do you want to display find results in a portal? What's wrong with displaying them in list view?

Share this post


Link to post
Share on other sites

Is Multi-keys still the best way or is there a better way with Portal filters?

Hi Maria,

It is usually best to use relational filter instead of portal filter because portal filters have to evaluate all records before constraiining the results. This is great stress on your system when you have a lot of records. And since either way, you would need to collect the IDs of the record-set, it is best to use multi-line (global or calculation) in new relationship to the portal. Check out this thread for gathering IDs from a found set: http://fmforums.com/forum/topic/61394-found-set/page__hl__agn%C3%A8s__fromsearch__1

Hi Dan,

Sometimes it helps (when viewing a form layout of multiple records) to see a portal on the side of those same records. It acts as an visual index and can allow click-jumping to specific records within the found set. :)

Share this post


Link to post
Share on other sites

I would qualify that statement about portal filters; you can do both.

If the potential set of unfiltered records is large, then the relationship should be designed as the first filter. Portal filtering can then be used as a secondary filter.

The portal filter calculation will operate on the entire record set of values presented by the relationship. The portal filter calc operates on these records strictly in creation order, independent of how the relationship definition or portal definition sorts them.

Share this post


Link to post
Share on other sites

Thanks, Bruce. Yes, many times we further portal-filter a relationally filtered relationship. Whew! That was a bite-full!

The portal filter calc operates on these records strictly in creation order, independent of how the relationship definition or portal definition sorts them.

I did not know this! I thought this was interesting but wait ... it would not really matter since all of the related records must be walked through by the filter anyway, would it? Where might knowing that sorts are ignored by portal filters, be important? After all, we are talking about filtering and not calculating, right? Thanks for stepping in.

Share this post


Link to post
Share on other sites

Depends on what you are trying to do with the filter calc.

For instance, assume a sorted relationship to a people table, sorted by last name; where the relation uses a global field to match on City.

Set the filter field to "Seattle". Say there are 2000 Seattle people; 75 whose last names begin with "A".

Have a script that sets variable $$names to empty and then does a refresh.

The portal filter uses this calc:

Let( $$names = List( $$names; People::LastName); Left( People::LastName; 1) = "A")

What will the portal show?

(Only the 75 Seattle people whose last names start with "A"; sorted by last name).

What will $$names contain?

(The list of all 2000 Seattle last names; unsorted.)

Share this post


Link to post
Share on other sites

Or consider this variation for the filter calc:

case( Left( People::LastName; 1) = "A";

Let( $$names = List( $$names; People::LastName); 1)

)

Now $$names contains the list of Seattle last names beginning with "A"; but it is unsorted.

If instead you collected the record ID values into the variable, you might have assumed it represented a sorted list. But it won't.

Share this post


Link to post
Share on other sites

Thank you all so much for your invlauable advice. Got me where I wanted to be! Thanks a million

Share this post


Link to post
Share on other sites

Hi Dan, Sometimes it helps (when viewing a form layout of multiple records) to see a portal on the side of those same records. It acts as an visual index and can allow click-jumping to specific records within the found set. :)

I'd never heard of this interface technique before; sounds interesting. I couldn't see any practial use of displaying find results in a portal, so thanks for pointing this out.

Now you got my gears turning though... This could possibly be an alternative to using a filtered portal. It would take a lot more work on the developers end, but it would allow for greater flexability for the users 'filters'.

The portal filter calculation will operate on the entire record set of values presented by the relationship. The portal filter calc operates on these records strictly in creation order, independent of how the relationship definition or portal definition sorts them.

Interesting detail. like LaRetta, I failed to see the relevance of this at first, but your examples were interesting. I can see how this aspect of the portal filter could possibly be levereged for some cool custom feature.

Share this post


Link to post
Share on other sites

Kinda reviving an old topic but I found this intresting. I have a layout that show work orders on the left, on a portal that filter by the work order status, on the right it shows the whole record that is selected on the left portal. All good.

I also have a list layout simple because the search found most of the time contain many records and my users like to visualize all the records and find the one they need, as they usualy dont have the very exact work order ID when they need to use the search, so, using the same layout design that filters the work orders by status, but filtering to show only the found set records is actualy very usefull.

Many records found showing on a list on the left, and the whole record showing all the fields on the right.

 

Share this post


Link to post
Share on other sites

Hey Morenomdz,

Wasn't sure if you had a question there (seemingly not), but your revival of the thread provides a great opportunity to point out that, since the time of the original thread, there have been some significant advances in the area of "Master-Detail" (portal-plus-detail) layouts. See, for example, Todd Geist's Master-Detail and Master-Detail 2.0 techniques at Modular FileMaker, which build upon Bruce's Virtual List technique.

(Also reminds me that it's been a while since I last checked to see what's new at Modular FileMaker—I notice that Dan Smith's got a recent entry—so I guess I know what I'm going to be doing this morning.)

hth,

Mark

1 person likes this

Share this post


Link to post
Share on other sites

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

  • Similar Content

    • Find in progress. Processing query... - going slow for only ONE portal
      By jraquel
      Hi,
      New to this so not sure what is needed to help me. I have several portals in my database and they all have filter and sort settings. All the settings are the same on each portal (just pulling from different layouts). Each portal has a button with a script in it that has it "go to the related record." All of my portals and go to related things work great and quick an no issues.
      Yesterday, I added a new portal and a new go to related and updated my relationships, etc. everything mimics the same settings on all my other portals. BUT for some reason this one portal and go to related are lagging big time and everytime I do anything that affects that portal I get the "find in progress. processing query..." and it takes several minutes to process.
      I do not get this my other portals and I'm a bit confused and feeling frustrated that I'm having trouble with JUST the one portal. HELP! What do you all need from me to help me with this? 
    • Portals content in email as table
      By Christopher Michael Binks
      Hi I'm pretty novice at FileMaker but have as solution pretty much operational internally.  
      My company is all based on running bookings with external clients and provider all through email. 
      Currently it's all done manually the admin assistant copies the booking from the booking sheet to a email templat in a table and then sends this out one table to the client, another to the provider of which there can be many.  
      The bookings are trotted up in a portal on the clients page with a new line for each product.  Can I export the portal to a html table to email out generating a new table row for each matching portal row?
      I presume I'm not the only one generating lists of items for email but can't get a handle on how to achieve this without a fixed table and substitution line by line have looked through all the documentation I can find  
      Assistance greatly appreciated
       
    • Conditional Value List in Portal with multiple field values
      By dav1089
      Hello,
      I am trying to create a daily sales call log, for that I have used Portal for which I am using "company" table in which I have "contact 1" to "contact 12" separate fields for each record (company)
      Now, on the portal, I was able to fetch contact names dynamically based on chosen company using conditional value list relationship and creating new text field with auto-enter calculation of List(contact1,....,contact12), but how can I fetch contact number for selected contact name for that company? I created a new field to auto-enter calculation of contact numbers like the same way but it seems like I am going in wrong direction
      It would be great if anyone can tell me as I am learning FM.
      Or is there any other way of doing the same?
      Here is my relationship diagram and layout:


    • Crashing with filter formula
      By sal88
      Hi all
      Since upgrading to FM14 we've experienced crashing (errors 1000 and 1026 in the error log). I thought perhaps it was to do with version 14 or .net or my scriptmaster plugin.
      However it appears to be to do with a filter that I had in place for a portal. It was probably just a coincidence that I had so many records that it was referring to by the time I did the FM14 upgrade.
      I can probably do without the portal altogether really, but was just curious as to what the problem might have been.
      The filter formula was: Cases Closed::Closed_TimeStamp > (Get(CurrentDate) - 30)
      The Cases Closed table has around 22,000 records.
      Any ideas what's wrong with this?
      Thanks
    • Portal exported to excel spreadsheet only contains one related field once, other fields are empty
      By justakid
      Hi All,
      Sorry if the title is a bit confusing, I wasn't sure how to explain it.
      Basically I've got a layout that contains a portal to another table. abc0198_cpa_v002 and xyz0570_cpa_v0008 are the link to the other table (linked to the table by the first 6 characters)

      the problem I have is when I export this I get the following in Excel. I was hoping that the empty fields beneath abc0198_cpa_v002 would be filled with abc0198_cpa_v002.

      I can get it to work by going to the related table, searching for those records (abc0198 & xyz0570), but I will fall into the same problem when I receive multiple records that relate to the same record in the other table. IE I might receive abc0198_cpa_v002 and abc0198_cpa_v005 etc.
      I hope this makes sense and thanks in advance for any help.