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

OTAdmin
OTAdmin used Ask the Experts™
on
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.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
corvetteguruDBA/Systems Analyist

Commented:
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:

DECLARE @KPIDate
@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?

Author

Commented:
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.
North2AlaskaSenior Engineer

Commented:
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.
KPI-Selector.fp7
Bootstrap 4: Exploring New Features

Learn how to use and navigate the new features included in Bootstrap 4, the most popular HTML, CSS, and JavaScript framework for developing responsive, mobile-first websites.

Author

Commented:
Thanks.

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.

Thoughts?
North2AlaskaSenior Engineer

Commented:
Yes, I can do FMP 12 as well.  Did you forget to attach the file?

Commented:
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
KPI-portal.fmp12
Commented:
The solution ended up being adding a copy of the dept table "downstream" of the KPI table.  THis allowed us to properly display the department names and still base the portal on the KPI table.

Commented:
As in the sample provided above ;-)

Author

Commented:
Determined it based on other research I did.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial