cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
AndKanPA
Resolver I
Resolver I

Filter dropdown

Hello community,

 

is there a way to create a dropown from all distinct/unique records?

Entity attribut is a text.
I want to create a dropdown with all different values across entity as a filter.

 

Example:
apple | red

apple | green
tomato | red

tomato | green

lemon | yellow

lemon | green

cherry | red

 

Filter dropown for color has entries:
red, green and yellow

 

Filter dropdown for fruits has entries:
apple, tomato, lemon and cherry.

 

Thanks for help,

AndKan.

1 ACCEPTED SOLUTION

Accepted Solutions

I make a solution with JS-manipulating DOM. In this workaround a dropdown/select is displayed insteed of checkboxes.
Quite simple so far.


But only filter values are useable, which are already defined in FetchXML filter.
Filter is defined as:

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
</filter>

 

Results in HTML:

 

<input type="checkbox" name="0" value="0">
<input type="checkbox" name="0" value="1">
<input type="checkbox" name="0" value="2">

 

 When first checkbox is clicked, it is submitted as:

 

metaFilter: "0=0"

 

You see 0=0
"0" is the number of filter condition in filter number 0 (first filter); in this case like red.

Submitting 0=3 is useless, because no fourth condition defined in filter.
When changing order of conditions in filter: 

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
</filter>

 

then 0=0 is now yellow.

A real filter, as I expected, isn't possible this way.

A definition:

 

<condition attribute="cr847_bstatus" operator="neq" value=" " />

 

gives exactly one checkbox and not all results, which not contain " "

 

Each condition defined in FetchXML filter becomes one option in portal. That's all.

I think Microsoft can do a lot to expand functionality of such a filter. Couldnt be so much complicated ...

 

My solution is now a combination of JS/Liquid fetch/Textfilter.
Works fine 🙂

View solution in original post

5 REPLIES 5
UlrikkeAkerbæk
Advocate I
Advocate I

Hello @AndKanPA.

 

You cannot set dynamic filters on text fields, but you can set up Attribute filter sets as dropdown. Then using text fields you will have to manually set up the filters you need and maintain the list as more values are added and deleted. Text Filter is also an option where you allow users to enter text strings as filter. 

 

Text Filter

For text fields I would use a "Text Filter" to allow users to filter results by entering text strings:

UlrikkeAkerbæk_0-1603269944957.png

This will display a text box where you can search for text values in a specific text field:

UlrikkeAkerbæk_1-1603270102949.png

 

Attribute filter sets

You can also set up Attribute Filter Sets on text fields to enable that drop down experience you wanted. Then you will have to maintain the options manually to make sure all possible options are found as a filter option.

 

attributefilterset.jpg

 

I used "check boxes" to easily display in this image - but choose drop down if you wish. 

UlrikkeAkerbæk_2-1603271427110.png

 

 

If you want to use dynamic filters you can have the colors and the fruit types as option sets or in a relational entity.

dynamicsets.png

Then the filters will automatically display the filter options that are available for your records.

dynamicresult.png

 

Hope this answer your question. If you gave more questions regarding filters the documentation might be helpful: https://docs.microsoft.com/en-us/powerapps/maker/portals/configure/entity-lists#entity-list-filter-c...

OOlashyn
Super User
Super User

Hi @AndKanPA ,

 

If we are talking about unique records inside entity set you can use "distinct=true" in your fetchxml in fetch node. It will return only unique records in the set. If you want to return all records that have a unique value in some field or get all possible unique values from that field I don't think it is possible.

----------------------------------------------------
If you find this post helpful consider marking it as a solution to help others find it.

Thanks you @OOlashyn .
I'll try "distinct"; sounds good for the first.


But I ever get checkboxes instead of a dropdown, when I use the FetchXML filter.

 

Any way to change from checkboxes to dropdown?

 

Thanks,

AndKan.

@UlrikkeAkerbæk , sorry, I didnt see your reply yesterday.
Thank you for your detailed answer.


I saw different option for other filters, but where is such an option, when I use FetchXML Filter

AndKanPA_0-1603516200604.png

?
Perhaps there is a little attribute adx:uitype or something.

Thank you,

AndKan.

I make a solution with JS-manipulating DOM. In this workaround a dropdown/select is displayed insteed of checkboxes.
Quite simple so far.


But only filter values are useable, which are already defined in FetchXML filter.
Filter is defined as:

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
</filter>

 

Results in HTML:

 

<input type="checkbox" name="0" value="0">
<input type="checkbox" name="0" value="1">
<input type="checkbox" name="0" value="2">

 

 When first checkbox is clicked, it is submitted as:

 

metaFilter: "0=0"

 

You see 0=0
"0" is the number of filter condition in filter number 0 (first filter); in this case like red.

Submitting 0=3 is useless, because no fourth condition defined in filter.
When changing order of conditions in filter: 

 

<filter type="or" adx:uiname="Color">
  <condition attribute="cr847_bstatus" operator="eq" value="yellow" />
  <condition attribute="cr847_bstatus" operator="eq" value="red" />
  <condition attribute="cr847_bstatus" operator="eq" value="green" />
</filter>

 

then 0=0 is now yellow.

A real filter, as I expected, isn't possible this way.

A definition:

 

<condition attribute="cr847_bstatus" operator="neq" value=" " />

 

gives exactly one checkbox and not all results, which not contain " "

 

Each condition defined in FetchXML filter becomes one option in portal. That's all.

I think Microsoft can do a lot to expand functionality of such a filter. Couldnt be so much complicated ...

 

My solution is now a combination of JS/Liquid fetch/Textfilter.
Works fine 🙂

View solution in original post

Helpful resources

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

secondImage

Demo Extravaganza is Back!

We are excited to announce that Demo Extravaganza for 2021 has started!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

Power Apps June 2021

June Power Apps Community Call

Did you miss the call? Check out the recording here!

Users online (17,406)