cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Lacoste
Helper II
Helper II

Hide gallery item based on selected value

Hi Community,

can you help me on which code i can use in powerapps,

in fact i have two screens and each screen has a gallery, each person has a certain tasks associated, so for example: if David has maximum 3 tasks and if you checked them via checkbox in screen 2 and click on save button, then on screen 1 David will be hidden in the gallery in screen 1 but if you checked only like 2 tasks (not the maximum i.e. as long it still one left task for him) then in screen 1 David will still appearing i.e. David will not be hidden. 

i.e. David in gallery in screen 1 will be hidden only when all his tasks have been checked.

Thank you guys.

 

SCREEN 1.jpg

 

SCREEN 2.jpg

2 ACCEPTED SOLUTIONS

Accepted Solutions
BCBuizer
Super User
Super User

Hi @Lacoste ,

 

If you filter your gallery on screen 1 for Blank() values in that specific column, it will only show those. If David's tasks are all assigned, there will be none left to show, hence his name will not show:

 

Filter(YourDataSource, IsBlank(YourColumn))


Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

View solution in original post

BCBuizer
Super User
Super User

Hi @Lacoste ,

 

The _OpenTasks column is temporarily created as part of the query, so you don't have to make any changes to your data sources.

 

There are two NameColumns mentions in the formula: One in the data source for screen 1 and one for the data source for screen2. Basically I used this fictional name to indicate refer to the relation between the two data sources:

 

All of the items in the column that has the names (like David) in data source 1 are matched against the column that has the names for unchecked items in data source 2.

 

If it's easier for you, please use the below formula with the following replacements:

AAAAA -> The name of the column in the data souce for screen 1 that has the names, for example: "David"

ZZZZZZ -> The name of the column in the data souce for screen 1 that has the names, for example: "David"

 

Filter(
    //Adds a column to 'datasource for screen 1' that holds a boolean that indicates if there are unchecked tasks in the 'datasource2 for screen 2'. true for open tasks
	AddColumns(
        'datasource for screen 1';
        "_OpenTasks";
        !IsBlank(
			LookUp(
				'datasource2 for screen 2'; 
				ZZZZZZ =  'datasource for screen 1'[@AAAAA] And IsBlank('column for Tasks')
			)
		)
	);
    StartsWith(column1;TextInput1.Text);
    column2=TextInput2.Text;
	//Filtering for the _OpenTasks column. Since this is a boolean, no additional code is required for this condition
    _OpenTasks
)


Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

View solution in original post

19 REPLIES 19
BCBuizer
Super User
Super User

Hi @Lacoste ,

 

I'd suggest to add a column to your data source and link that to the checkbox, let's say it changes the value of the column when clicking the checkbox. You can then use that column to filter out any checked items in the gallery on screen 1.



Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

Hi @BCBuizer ,

I have a column in my data source in sharepoint when you checked any corresponding checkbox it save the value as YES and if you did not checked the box it mark it a blank.

on screen 1 is just a gallery with only a list of people with their names and screen 2 it s all about tasks and one person can be assigned 3 or 4 tasks (like David has 3 tasks: task 1, task 2 and task 3), so i want if checked all his tasks and save to sharepoint list , then in my screen 1, the name David will be hidden but if not checked all his tasks then name David in screen 1 will still appearing,

i do not know how i can write a such code?

Thanks.

BCBuizer
Super User
Super User

Hi @Lacoste ,

 

If you filter your gallery on screen 1 for Blank() values in that specific column, it will only show those. If David's tasks are all assigned, there will be none left to show, hence his name will not show:

 

Filter(YourDataSource, IsBlank(YourColumn))


Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

Hi @BCBuizer

Thanks, in fact your code works well but i want if on screen 2 for example if david has 3 tasks only and you checked only 1 task or two tasks then his name will not be hidden in screen 1, but if all his tasks have been checked then his name in screen 1 will be hidden or just disappear.

In general i mean if all tasks associated to a person have not been checked then his name should still visible in screen 1.

 

Thanks. 

 

BCBuizer
Super User
Super User

Hi @Lacoste ,

 

That part should be taken care of by updating the data source whenever an item is (un)checked in screen 2. Any changes in screen 2 should then reflect in screen 1 automatically.

 

 



Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

Hi @BCBuizer 

Thanks a lot, the code works well, i have a last issue, actually as the code should be written in Items property for Gallery in screen 1, but in Items property for Gallery in screen 1, i have already another function filter:

 

Filter(datasource for screen 1; StartsWith(column1;TextInput1.Text);column2=TextInput2.Text)

and the other code is the below one,

Filter(datasource for screen 2; IsBlank(column for Tasks))

 

so how can i combine or write all those two filter in one Items property Gallery in screen 1?

 

BCBuizer
Super User
Super User

Hi @Lacoste ,

 

To merge the both conditions within the filter statement, you can just type a ";" and add the new condition. This will be treated as a logical And:

 

Filter(datasource for screen 1; StartsWith(column1;TextInput1.Text);column2=TextInput2.Text; IsBlank(YourColumn))

 



Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

Hi @BCBuizer ,

Thanks again for your feedback, i´m getting an error because i have two different datasource i.e. in screen1 i have datasource1 and in screen2 i have another datasource2, so that´s why the column of tasks is not recognized in screen1.

Filter(datasource1 for screen 1; StartsWith(column1;TextInput1.Text);column2=TextInput2.Text)

and the other code is the below one,

Filter(datasource2 for screen 2; IsBlank(column for Tasks))

BCBuizer
Super User
Super User

Hi @Lacoste ,

 

Got it. Try:

 

Filter(
    //Adds a column to 'datasource for screen 1' that holds a boolean that indicates if there are unchecked tasks in the 'datasource2 for screen 2'. true for open tasks
	AddColumns(
        'datasource for screen 1';
        "_OpenTasks";
        !IsBlank(
			LookUp(
				'datasource2 for screen 2'; 
				NameColumn =  'datasource for screen 1'[@NameColumn] And IsBlank('column for Tasks')
			)
		)
	);
    StartsWith(column1;TextInput1.Text);
    column2=TextInput2.Text;
	//Filtering for the _OpenTasks column. Since this is a boolean, no additional code is required for this condition
    _OpenTasks
)

 

 



Did you like my post? Please give it a thumbs up! Did I resolve your issue? Please click Accept as Solution to close the topic and so other members of the community can find solutions more easily.

Helpful resources

Announcements
October Events

Mark Your Calendars

So many events that are happening this month - don't miss out!

Ignite 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Users online (3,836)