Filtering inline list in a form

  • have your choice component writing to a User Specific column
  • use the value in that user specific column to form a multi-relation
  • display the results of the multi-relation in your inline list component

Edit: I just noticed that you’re doing this in a form. To use the method I described you’d need to abandon the native form and build your own custom form

2 Likes

Thanks @Darren_Murphy !!
Indeed, it doesn’t work in a native form but it works perfectly in a custom form.

1 Like

Hi @Darren_Murphy,
Hitting you up in yet another topic :slight_smile:
I have a similar setup, inside a custom form of course.
I’m stuck at allowing the user to also see all options. I’ll explain a bit more:

  1. We have a “type” sheet which lists all the client types (lead, active client, etc).
  2. On the screen in which we list the clients, there’s a choice component is asking if the user would like to filter by a specific client type
  3. Once they select a type, the list is filtered perfectly.
  4. How do we make it that the list will show all clients if the user hasn’t selected anything?
    This is something like an opt-in selection, in which if the user doesn’t opt-in a type, all types are shown.
    One idea that I had is adding two inline lists:
  5. All types - visible if user didn’t select a specific type
  6. Specific type - visible only once a specific type has been selected

but wait, there’s another layer for this challenge:
Another filter we need to apply is the client status. Similar setup here as well, i.e. status sheet, each row in clients sheet has a column for status, etc.
How do we drill down here? Specifically, there are the following scenarios for the clients screen:

  1. User didn’t select anything, so we show him everything
  2. User selected a client type, but haven’t selected a client status. We show him all clients from that type, regardless of their status
  3. User selected both type and status, we show him only those clients that match both selections.

It’s probably a lot longer to explain than to solve. I’m sure your solution will be very simple, and elegant, as always :slight_smile:
Thanks

This looks fairly straight forward. I’m out at the moment, I’ll come back to you a bit later with an option.

Okay, so here is what I would suggest. Note that this assumes that you have both Client Type and Client Status columns in your Clients table.

You will need to add 3 columns to your Clients table.

  • The first two columns will be Single Value columns, with each one taking one of the User Specific column values that each of your choice components are writing to.
  • The 3rd column will be where a little bit of magic happens :wink: This should be an if-then-else column, that will resolve to a boolean type. If it resolves to true, that means the associated row will be filtered (not shown). Configure it as follows:
    – If single value Client.type is empty, then empty
    – If single value Client.status is empty, then empty
    – If single value Client.type is not Client.type, then true
    – If single value Client.status is not Client.status, then true
    – Else empty

NB. “empty” above means exactly that. Empty, no value, nil, nothing, blank.

Now you just need a single inline list on your form screen that uses your Clients table as the source. And the filter condition on that should be "where if-then-else column is not true"

I haven’t tested the above, but I’m fairly confident it should work, if I’ve understood your use case correctly.

1 Like

Hola de nuevo @test_test

What you need is a Filter based on a “logical OR” and this new method to have dynamic filters can help you:

Saludos!

1 Like

Hola amigo,
As @Darren_Murphy said in his comment inside the topic you shared: this is very sophisticated logic and it’s truly impressive.
If I understand correctly, I believe that actually logical AND suits my case better, no?
We have three tiers/levels of filter:
First level - Account manager
Here we have two ways to select the filter:

  1. Switch (Boolean) for “show my accounts”. This is meant to be used by, you guessed it, the account managers. Very easy for them to narrow down to their client list.
  2. If Switch is false, we show a choice list of all account managers to choose from.
    I have added an ITE column to properly mark the account manager: either “current user” or the name selected in the choice list

Second level - type
We have three options: Lead, Client, Inactive client. User will choose on a sliding choice.
This should be narrowed down to only the client types the account manager has. i.e. he/she might have just clients so there’s no point in showing them a slider with leads and inactive clients. I am using the filter option for the screen component and I think it’s working fine.

Third level - status
Each client type has its own list of possible statuses. Again, using filter inside the components to show only the statuses relevant based on the two previous levels.

I’ve tried your AND logic (brilliant), but it’s not working for me. Tried to copy 100% of the logic from your demo, but no luck :frowning:
Any thoughts?
PS - Sorry I cannot share the app, it’s confidential.

Did you try the option that I gave you?

The option presented by @gvalero could be used, and I’m sure it would work fine if setup correctly. But honestly, I think it’s overkill for your use case.

Hola!
I am out using my phone and reply a full answer is hard but what part of my demo/logic doesn’t work for you?

As soon as I come back I will help you better.

Bye

Overkill!!!

I read “overkill” and always think about Men at Work inevitably :rofl::rofl:

Nothing beats this cover so far and its video:

:muscle::muscle:

1 Like

They were one of my favourite Aussie bands. Saw them live once, more than 30 years ago (showing my age :rofl::crazy_face:)

1 Like

Could you please explain?
I’m all for minimalistic approach, but one that can serve best for the given scenario, and (who knows) easily scalable for other scenarios.

Good song, no doubt.

Yes, tried it earlier today and couldn’t get it to work. Moved on to the 2nd idea from @gvalero, which didn’t work as well. Now circled back to your idea and, not surprisingly, it’s still not working for me.
Don’t get me wrong, I’m sure both ideas are perfect and the fault is on my side.

um… overkill. It means “using way more force than is necessary”, eg…

  • swatting a fly with a sledgehammer
  • killing two birds with one small thermonuclear device
  • creating an elaborate series of complex computed columns, when only a handful are needed to get the job done

:wink:

Not bad. Perhaps we can turn your sense of humor to an app… :moneybag:

Hi,
Still struggling making this happen:

Here’re the filter columns


The text ones get input from choice component. The If is as follows:
image

Then I implement your solution (I think… :P)
image

image

image


image

And on the Client list screen we filter

Would be grateful if you can point out to what I missed.
Thanks!

That all looks okay. In what way does it not work?

Well, it simply doesn’t filter anything right. The inline list does change (not always) but these changes have nothing to do with the filter selections :frowning:

So the if-then-else column returns blank (false) for all rows, regardless of the filter options selected?

It’s difficult for me to debug without having it in front of me, but the way I would approach this is to work backwards, progressively eliminating each condition as the source of the issue.

I think this will need to be broken down into several IF columns. One for each filter to return true if the filter is empty (not selected) for that particular column, else return true if the filter matches the value in that row, else return false. Then set up a final IF column that checks all other IF columns. If any one of the other IF columns is false, then return false, else return true. Set your filter to only show rows with a final IF value of true.