I received a question about the 500 record limit in a nested gallery (nested galleries are based on GroupBy which only returns 500 records - details on creating nested galleries with GroupBy here https://youtu.be/ZzQ1t2sQvj8).
Now, scrolling through 500 records is not great from a UI perspective, but remember this is a nested gallery and that we can expand/collapse the content of the nested gallery (see my video on that https://youtu.be/VNnaymeBN7g) - so you could imagine a scenario where each 'header' record might have 10 or more 'detail' records which would mean only scrolling through 50 headers. In such a scenario, increasing the number of header records the user can access is quite reasonable.
With this solution, you will only get 500 records at a time in the gallery, but you can 'page' back and forth so you can access any number of records.
Furthermore, you may have need of a gallery/sub-gallery where the base data set as way more than 500 records, but you will be applying filters and need to return results that exist outside the first 500 rows. This video will show you how to do that too.
Check out my video for a solution to overcoming the 500 record limit: https://youtu.be/eiZ9_EWSuBk
We appreciate your contribution on the community and hope your sharing would be seen by more users!
I watched your video to the end and I was inspired to build upon the nested Gallery idea--thank you very much!
I'll be posting a similar idea soon for CDS except the focus will be how to maintain the data "live" inside the nested gallery to perform aggregate functions on it.
I have used your (@PaulD1) tutorial to create an app. It would work perfectly except that my data source is in SharePoint and the "in" operator is not delegable in SharePoint. However, the "in" operator is delegable with a collection. So I created a Collection using the GroupBy function as follows:
ClearCollect(Collection1,GroupBy(tblBankruptcyPA, "MyFilterField", "grp"))
This creates a collection with a group called grp that has several fields in it. One of the fields in it is LastName.
I created a gallery whose Items property is Collection1 and a nested gallery whose iItems property is ThisItem.grp. On the nested gallery, I have a label whose text is set to ThisItem.LastName. This all works fine.
But I am trying to filter the gallery to only show those records whose LastName has the word entered by the user in it. So I have changed the source of the parent gallery to:
Filter(Collection1, TxtInput.Text in grp.LastName)
I don't get any error messages, but no records are displayed even if I input a last name exactly as it appears in the colleciton.
Can you help me with this? I would be so grateful!
Your tutorial is awesome, by the way!
I'm not able to test it at the moment, but I think you want to put the filter on Collection1, something like this:
ClearCollect(Collection1,GroupBy(Filter(tblBankruptcyPA,TxtInput.Text in LastName),"MyFilterField","grp"))
So your main gallery will only show 'header' records that have a LastName matching your filter, and your 'child' gallery will only list the LastNames matching your filter.
Let me know how that works out for you...
Where are you putting your ClearCollect command? It will need to go on an action (like OnSelect of a button or OnVisible of a screen). As it creates a collection, you can't put it in the Item property of a Gallery.
You either need to set your combined GroupBy(Filter...) as the Item or have an action populate your Collection and then set the Collection name in your Item property.
Hope I have understood correctly and the above makes sense.
I am making progress with your suggestions @PaulD1, but...
First I tried putting your suggestion in the OnSelect property of a button and got the dreaded blue dot indicating I am only getting the first 500 records. This is the code I tried:
ClearCollect(Collection2,GroupBy(Filter(tblBankruptcyPA,"1350" in Business_x0020_Address),"MyFilterField","grp"))
Note that I really want to work with the Business_x0020_Address field that is in the table, tblBankruptcyPA.
So then I changed the OnSelect property of the button to:
Now I don't get the blue dot. So I created a parent Gallery whose Items property is as follows:
Filter(Collection2, "1350" in grpSW.Business_x0020_Address)
Then I created a nested gallery whose Items property is set to ThisItem.grpSW with a Label whose Text property is set to ThisItem.Business_x0020_Address
I get no error messages, but no records are shown even though one of the addresses is 1350 JACK RABBIT RD, BELTON, TX 76513. However, if I change the parent Gallery's Items property to:
Filter(Collection2, "1350 JACK RABBIT RD, BELTON, TX 76513" in grpSW.Business_x0020_Address)
It works. So apparently the "in" operator is not working. It is only finding exact matches. Do you have any other suggestions?
Thank you so much for your assistance!
Well, as it turns out, nothing in my previous post is working either. The collection I was creating does not contain all 14,000 records from my list. I have tried and tried, and I can't create a collection that contains more than 500 records.
Continue your learning in our online communities.
Features releasing from October 2019 through March 2020
Coming to a city near you
Fill out a quick form to claim your user group badge now!
Connect, share, and learn with your peers year-round
Register by September 5 to save $200