Hello,
I am having a little problem with my galleries. While in power apps studio i can see the labels display text and images correctly. But once i am in Preview mode the text and labels disappear.
My gallery is pulling its data from a collection.
In studio mode i see the following
But once i click the play button i see this
I did do a little research before posting and found that some had suggested disabling the Explicit column selection option in the app settings. I have disabled this in my app but it hasn't made a difference.
Please let me know if any additional information is needed.
Solved! Go to Solution.
Thank you for you help.
I have managed to get this working. To solve it i have to go back to the code that collects the data and puts it into the collection i.e a button that when pressed collects the data.
For anyone else interested in knowing the solution here is the code i used.
//Collect Tab Group
ClearCollect(
colSS,
Filter(
colAll,
Division.Value = "SS"
)
);
If(
!IsBlank(
Filter(
colSS,
JobTitle = "Director, Internal Controls & Policy",
JobTitle = "BCR/CAFR Manager",
JobTitle = "Deputy Director, Financial Reporting",
JobTitle = "CAFR Manager"
)
),
Collect(
colSS,
{
FullName: "Vacant",
JobTitle: "Director, Internal Controls & Policy"
},
{
FullName: "Vacant",
JobTitle: "BCR/CAFR Manager"
},
{
FullName: "Vacant",
JobTitle: "Deputy Director, Financial Reporting"
},
{
FullName: "Vacant",
JobTitle: "CAFR Manager"
}
)
);
To break this down a little
ClearCollect(
colSS,
Filter(
colAll,
Division.Value = "SS"
)
);
This is filtering our main collection that contains a data dump from a sharepoint list. It is filtering it and returning only the records that match the division.value of SS. It puts all these returned results in the collection colSS.
If(
!IsBlank(
Filter(
colSS,
JobTitle = "Director, Internal Controls & Policy",
JobTitle = "BCR/CAFR Manager",
JobTitle = "Deputy Director, Financial Reporting",
JobTitle = "CAFR Manager"
)
),
Here we are checking the newly created colSS to see if there are records that are not blank containing the different JobTitles.
Collect(
colSS,
{
FullName: "Vacant",
JobTitle: "Director, Internal Controls & Policy"
},
{
FullName: "Vacant",
JobTitle: "BCR/CAFR Manager"
},
{
FullName: "Vacant",
JobTitle: "Deputy Director, Financial Reporting"
},
{
FullName: "Vacant",
JobTitle: "CAFR Manager"
}
)
);
If any do come back blank then new records are added to the collection adding the JobTitle and the FullName "Vacant".
Hope that makes sense 🙂
How are you creating the Collections? Could it be that they aren't being populated when you are in the Live client?
Hi @Pstork1 ,
I have checked the collection and can see it is populating with data. This is also shown in other galleries, where the labels and images are being populated from the collection data.
The only difference between those galleries and this particular one is that those have a matching record, whereas this particular one doesn't.
I have an IF statement on these labels that is suppose to display alternative text or images if it cannot find a record in the collection.
If
(
!IsBlank(ThisItem.FullName),
ThisItem.FullName,
"Vacant"
)
So if ThisItem is blank it is suppose to display the text Vacant. If the Item has a record it will display the Fullname. This code is attached to the text property on the labels.
I have a similar one on the images by which it checks if the user has a profile picture and displays that, otherwise if they don't it displays a generic image.
Could the issue be because there is no record? The !IsBlank section in my mind is true, but not because the column is empty but because there is no matching record. If this is the case, is there a better way to display some text if a record cannot be found /matched?
But you aren't testing ThisItem, you are testing a field in ThisItem called FullName. So if there is no matching record then ThisItem doesn't exist and FullName isn't Blank, its not there to be tested. I think that's your problem. I'm not sure how you would test whether an matching record exists or not.
@Pstork1 That makes perfect sense. What i am thinking i might need to do is define a set of hard coded items into the gallery item property and have a function that first checks the collection for a record. If there is no record then it will use the Hard coded values.
I think this might be possible by doing IF this record doesn't not exist then use these values.
What do you think?
I've done something similar when a gallery has No records. But if I'm following you then this would be for a gallery that has records coming from two data sources, where there might not be a match on the second data source. Am I interpreting this correctly?
There is only one datasource for this gallery which is a collection. I do have multiple galleries on the screen but they are all pulling data from just one datasource. I apologize if i confused things a little.
If you are using only one data source then what is your Items property set to? How would you tell it to load a record that doesn't exist?
I've run across wierdness like this in building my apps. 1.) Do you have any hidden objects in the same area where labels/images are not appearing in live mode? Regardless of what the object ordering appears to be in the item list there can be interference here.
Even if you do not, I have found that sometimes if you cut the object that is not appearing correctly in live mode and re-paste it (making it the most recent object added to the app), it will re-order things, and in my case, my labels came back. Form some reason they were simply obscured by some confusion within the app regarding object ordering.
In any case, something easy to try, just in case ...
Eddie
@Pstork1 So the gallery item property is set to
LookUp(colSS,JobTitle="Manager FSS AR TCAS")
It does a lookup in the collection colSS to match the jobtitle "Manager FSS AR TCAS". Normally this would return a result. However the position became vacant before someone new has taken the position. This means that the collection currently will not have a record matching that jobtitle.
So the idea is to have placeholder text in the event that if there is not a record in the collection something will still be displayed.
I hope this makes sense.
User | Count |
---|---|
125 | |
87 | |
86 | |
75 | |
69 |
User | Count |
---|---|
215 | |
180 | |
139 | |
97 | |
83 |