I have SharePoint List feeding a gallery in my PowerApp. I'm trying to add a fillter to only show user results but everytime I type anything into "Items" of my Gallery and adjust the name of the data source, the data source will immedietly switch to "No Data". If I reconnect the data, it blow out whatever formula I have typed in the Items. This was working yesterday.
I tried building a brand new app from scratch with a different list and the same thing happened, any ideas?
Solved! Go to Solution.
I ended up creating two galleries and then just displaying one or other based on the toggle switch in the visibilty property.
This is the syntax that ended up working..
For Gallery1:
SortByColumns(Filter('NameOfList', StudentEmail=User().Email, Status.Value="Interested"), "Modified", If(SortDescending1, Descending, Ascending))
For Gallery2:
SortByColumns(Filter('Prod Ops Tech Development', StudentEmail=User().Email, Not(Status.Value="Interested")), "Modified", If(SortDescending1, Descending, Ascending))
Hi @michaele124,
Could you share more information about your data in your SP source?
And the formula you try?
The Filter function finds records in a table that satisfy a formula. Use Filter to find a set of records that match one or more criteria and to discard those that don't.(From <https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-filter-lookup> )
You can Choose View->Data Source->Data->Remove and then Add the list to try.(Of course you should make sure the SP list has valid data)
I have made one list in SP and then test as the screnshots:
Fistly,create the SP list:20181217filterSPlist;
Secondly,gnerate the PowerApps and its Gallery's Filter as this:
SortByColumns(Filter('20181217filterSPlist', StartsWith(Title, TextSearchBox1.Text)), "Title", If(SortDescending1, Descending, Ascending))
Then thirdly,create one new screen and insert one gallery to test the filter;
Hope this can be helpful.
Best wishes,
xyz
Pretty basic list, 5 columns, either text or choice fields. I'm not having a problem creating a gallery and connecting it to a data source initially. The problem arises the second I try to manipulate the "Items" options such as adding a filter. As soon as I add anything to the formula bar, the data source changes from the connected SharePoint List to "No Data".
If you have incomplete syntax, I believe it will result in "No Data". Have you tried completing the filter to see if it still says "No Data"?
If you want to test, you can just type something like this (this is pretty much the equivalent of filtering with no filters (but once it's successful, you can replace the True syntax with an appropriate filter):
Filter('Prod Ops Develop Classes', True )
It seems to be a step in the right direction as completing the syntax at least made my data source return so hopefully the issue is with my syntax (which would not surprise me at all).
My goal is to have a gallery that displays a user's (aka Student) classes in two views based on a toggle switch. One view shows them classes they are interested in, the other view shows them classes they have requested, been scheduled for, or completed. Finally, I want to sort the gallery by when the item was modified.
Sort('ListNameHere', If(Toggle1.Value = true, Filter('ListNameHere', StudentEmail=()User.Email && Status="Interested"))), Filter('ListNameHere', StudentEmail=()User.Email && Status="Scheduled" & "Requested" & "Completed")))), If(SortDescending1, Descending, Ascending)
I ended up creating two galleries and then just displaying one or other based on the toggle switch in the visibilty property.
This is the syntax that ended up working..
For Gallery1:
SortByColumns(Filter('NameOfList', StudentEmail=User().Email, Status.Value="Interested"), "Modified", If(SortDescending1, Descending, Ascending))
For Gallery2:
SortByColumns(Filter('Prod Ops Tech Development', StudentEmail=User().Email, Not(Status.Value="Interested")), "Modified", If(SortDescending1, Descending, Ascending))
Hi
I create a SP list and try to test as what you want.
1.I add my email as one of the student's eamil, and the SP list as next;
2.set the gallery's screen.OnStart: Set(CurrentUserEmail,User().Email) and then I use one label to test whether that is the correct email,(after adding OnStart you need to close and reopen)
3.Gallery.Items:
SortByColumns(If(Toggle1.Value=true,Filter('20181218Can''t add filters without data disconnecting',StudentEmail=CurrentUserEmail,'Status'.Value="interested"),Filter('20181218Can''t add filters without data disconnecting',StudentEmail <> CurrentUserEmail,Status.Value<> "interested")),"Title",If(SortDescending1, Descending, Ascending))
On your side you can set the Gallery's Items:
SortByColumns(
If(Toggle1.Value=true,Filter('ListNameHere',StudentEmail=CurrentUserEmail,'Status'.Value="interested"),Filter('ListNameHere',StudentEmail <> CurrentUserEmail,Status.Value<> "interested")),
"Title",
If(SortDescending1, Descending, Ascending)
)
Hope this can be helpful.
Best Wishes,
xyz
Hi
I create a SP list and try to test as what you want.
1.I add my email as one of the student's eamil, and the SP list as next;
2.set the gallery's screen.OnStart: Set(CurrentUserEmail,User().Email) and then I use one label to test whether it will show the correct email (after adding OnStart you need to close and reopen the app)
3.Gallery.Items:
SortByColumns(
If(Toggle1.Value=true,Filter('20181218Can''t add filters without data disconnecting',StudentEmail=CurrentUserEmail,'Status'.Value="interested"),Filter('20181218Can''t add filters without data disconnecting',StudentEmail <> CurrentUserEmail,'Status'.Value<> "interested")),
"Title",
If(SortDescending1, Descending, Ascending)
)
On your side you can set the Gallery's Items:
SortByColumns(
If(Toggle1.Value=true,Filter('ListNameHere',StudentEmail=CurrentUserEmail,'Status'.Value="interested"),Filter('ListNameHere',StudentEmail <>(or "=" if you need ) CurrentUserEmail,'Status'.Value<> "interested")),
"Title",
If(SortDescending1, Descending, Ascending)
)
Hope this can be helpful.
Best Wishes,
xyz
Hi @michaele124,
I am sorry I don't know why it duplicate,hope this can't bring trouble to you.
Best wishes,
xyz
I'm glad that is working for you. If that is manageable then I would say that's a good solution. If you want to simplify to one gallery, you can probably do something like this though:
Gallery1.Items=
SortByColumns(Filter('Prod Ops Tech Development',
StudentEmail=User().Email,
If(Toggle1.Value=True,
Status.Value="Interested",
Status.Value<>"Interested"
),
"Modified", If(SortDescending1, Descending, Ascending)
)
User | Count |
---|---|
126 | |
87 | |
84 | |
75 | |
69 |
User | Count |
---|---|
214 | |
178 | |
140 | |
105 | |
83 |