Link to home
Start Free TrialLog in
Avatar of OTAdmin
OTAdminFlag for United States of America

asked on

Parent/Child/Grandchild Portal and filtering the grandchildren help needed

Database setup (relevant fields)

Client  (parent)
- client ID
- g_Selected Date (global field to pass date to another layout)

Department (child; many depts linked to one client)
- dept ID
- client ID (linked to client table)

KPI  (grandchild; many KPIs to one department, one for each date)
- dept ID
- KPI date
- KPI 1
- KPI 2

I setup a layout (based on client table) with a portal (based on department table).  The fields in the portal are the four listed in the KPI table.

The Problem:  How do I limit the portal to only show KPIs with a date based on a variable passed to the layout (actually, the global field in the Client table)?  I've tried to use the Filter option in the portal using the following calculation:

KPI::KPI Date = Client::g_Selected_Date

The filter will not display anything.  If I turn the filter off, I see all the KPIs (all days) for all the departments under that client ID.

Not sure how to limit the portal.

Reminder - the portal is based on the Department table, not the KPI table.  I think that is the problem.  The filter I want to do is to limit entries from the KPI table, but the portal is based on the Department table.

Example Entries in KPI table:

Record 1
DeptID:  1
KPI Date:  12/20
KPI1:  5

Record 2
DeptID:  2
KPI Date:  12/20
KPI1:  9

Record 3
DeptID:  1
KPI Date:  12/22
KPI1:  7

Record 4
DeptID:  2
KPI Date:  12/22
KPI1:  5

So, lets say that I have the date set to 12/22.  I only want to see records 3 and 4.  Without the filter, only the first two records appear no matter how many are in the KPI table.
Avatar of Andy Bogus
Andy Bogus
Flag of United States of America image

I will admit first that I am NOT a FileMaker Pro person. My comments are simply data base design related and might spur a solution within the limits of your environment.

With that said... Since I live in a SQL world, this would be handled with a serious of cascading joins. Each referencing from the last.

I am concerned that the KPI's are not truly associated to the Client.

If I am reading your structure correctly, you have a date from the client, which connects to a department which  has a KPI, but that KPI could be associated to several clients... is that okay? Or am I missing something?

Again, not knowing the world of FileMaker, can you assign a date as a local variable to use as a parameter down the line? Since the date is not directly associated, can you say something like:

@KPIDate =  Client::g_Selected_Date

And then down the line, use that @KPIDate as a filter?

KPI::KPI_Date = @KPIDate

Would something like that work?
Avatar of OTAdmin


The KPIs are associated with a department if (one dept to many KPIs that are date driven).  The depts (many) are then associated with a client (one).  The global date field is a FM Pro trick to work with layouts.
Avatar of North2Alaska
If g_Selected Date is a global field, it may not matter in which table it lives.  Can you push it down to the department table and then build the relationship from there?

Here is a little sample that works for the problem you described, but I don't know if it will work for your overall solution.
Avatar of OTAdmin



I just checked this and although it works, we are running into the problem of displaying the department name in the filtered list.  Take a look at the file (it is a FMP 12 file, can you read that?  If you can't, you can recreate what I did...see below.)

I added Dept name to the Dept table.  Then I added the Dept Table:Dept Name to the filtered list.  You will notice that Dept Name repeats and is not displaying the linked department name properly.

Unfortunately, displaying the department name in the filtered list is needed...and the names can change slightly, so placing it in the KPI table isn't really an option.

Yes, I can do FMP 12 as well.  Did you forget to attach the file?
Avatar of ozbigben

I think that was the file from a different question ;-)

There are a couple of ways of linking clients to multiple departments, the practicality of which will partly depend on how many departments you have. The attached sample uses a repeating field which is easy for a small number of departments.  

To get the department name to display correctly, the deptID has to be linked to the KPI: deptID
Avatar of OTAdmin
Flag of United States of America image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
As in the sample provided above ;-)
Avatar of OTAdmin


Determined it based on other research I did.