Jump to content
View in the app

A better way to browse. Learn more.

FMForums.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Search via multi-criteria relationship

Featured Replies

I'm enjoying the power and simplicity of "searching" a database using a few value-list checkbox fields, a multi-criteria relationship, and a portal in which to show results. It's much more satisfyig and immediate than FindMode / PerformFind for iteratively refining criteria. I don't know what people call this technique; I stumbled across it by accident. I'd like to learn more about it.

The problem I'm having is in implementing the "any" criterion. Let me describe the database first:

The "Meetings" table has records containing searchable fields Location, Day, Time, and Qualifiers. Each of these fields is value-listed; Location/Day/Time each take exactly one value, and Qualifier may take zero or more values.

To specify "any" for the first three fields, I simply store the entire value list into the global fields that holds the match criteria (there's an "any" button beneath the checkboxes that does just that). But for Qualifier, this won't work - because Qualifier is not required to contain a value at all.

I thought about adding the value "Any" to the value list for Qualifiers, and then making sure that every Meeting record's Qualifier field contained, at minimum, the value "Any". But it's a bit of a hack, and would require more hackery to hide it from the end user.

Has anyone encountered and solved this problem?

Thanks,

Chap

Since the relationship can't match on blank values, you need to use a calculated key on both the parent and the child side. On the child side, the key would be something like:

cMatchField (calculation, text result) = field & "zzzAll"

and on the parent side, the key would be something like:

cParentFilter (calculation, text result) = case(isempty(gFilterField); "zzzAll"; gFilterField)

  • Author

So that's what a "filtered portal" is!

Great! Thanks so much. Works exactly like I wanted.

Create an account or sign in to comment

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.