Hi all experts.
I have earlier used InfoPath a lot, and wtached a video with Shane Young about using a collection and a gallery in the same way. The video os very good and it works like a charm, I'm only having a problem with two drop down controls in the galery.
When I press the save icon to save data to the collection and create a new row, it sort of resets all the rows to a default, and not only the new row. I have tried everything, but cannot figure out how to avoid this behavior. The data is saved in the collection, so that part is okay, but from a user perspective it looks crazy when all the lines in the tables is beeing reset. This is only happening with the drop down controls, the text input fields are working okay.
The save icon has this code attached:
Patch(Rekvisition; ThisItem; {AVarelinie: DropdownVarelinje.Selected.Value; BMængde: TextInputMaengde.Text; CEnhed: DropdownEnhed.Selected.Value});; Collect(Rekvisition; {AVarelinie: ""; BMængde: ""; CEnhed: ""})
The two drop down fields has no default value, because the fields are a lookup in a SharePoint list. I have done this many times, and it works great, but just not when I'm creating a new collection
Hope anyone has a solution to help me reach my goal.
/Frank Nielsen
Denmark
Could you share a screenshot or two, and perhaps tell a little about the way that your solution is build? I think it will help a lot.
/Frank
For anyone else that may have a similar problem as I have... It turned out to be a pretty simple solution after getting insight from Microsoft support. I had a different issue and while on the call I asked about this one and you have to use the same schema as your datasource. The simpler way to put it - if your datasource for your dropdown/combobox is specifying a column and/or filters to grab the values for the choices you need to use the same lookup to get the correct value to show back in the field after it's saved to the collection. Because we're working with tables/records (whether it's a SharePoint list, SQL table, Excel file, etc) we need to use the DefaultSelectedItems property instead of the Default property. Okay, time for examples to clarify.... I'm going to call the repeating table fields that are drop-downs or comboboxes choice fields for simplicity.
If you're using the method from Shane Young's Repeating Table videos where you're adding a new collection input row after saving the first row you'll want to set the DefaultSelectedItems property to filter the the datasource using the collection value as the equalizer. If we have a choice field pointing to a SharePoint list with the name Units of Measure, the Items property is set to: 'Units of Measure'.Title so we can get all the values in the Title column as our choices, right? Right. In this case our DefaultSelectedItems property needs to lookup to that same data source and find the choice that's been saved to the collection (named MyCollection) with the collection column name of ColUM. The formula to get this value: Filter('Units of Measure', Title = ThisItem.ColUM)
Translated in layman's terms: Filter the data source 'Units of Measure' where Title is equal to the value saved for this item/row in the ColUM column. It's the same using SQL and Excel data sources. A SQL example formula: Filter('[dbo].[Units of Measure]', Title = ThisItem.ColUM)
See below, if you're using the method of separate (non-connected) input controls and a gallery to show the results (like my redesign) so that the top row is always the input "form" and you see the results in the gallery and then put the gallery/collection row back in the top line for editing... maybe I should make a YouTube video of that to compliment Shane's?
It's a little different since you need to specify the gallery item selected (vs ThisItem in a collection): Filter('Units of Measure', Title = MyGallery.Selected.ColUM)
I've found that in this design you can either the collection or the gallery as the equalizer. In other words, this formula for the same thing works too where GalUM is the name of the label control within MyGallery: Filter('Units of Measure', Title = MyGallery.Selected.GalUM.Text)
Of course, with all that explained I still have two fields from a SharePoint list data source that I can't get to work with the same method because they have multiple results and the distinct and first functions don't seem to be helping me. It's a back and forth love/hate relationship with PowerApps... I'll update when I get that sorted!
For lookups where there may be multiple results you need to use the Distinct function with a Result for your logical test. If the above example had multiple rows with the same values in the Title field we would make the formula: Filter(Distinct('Units of Measure'.Title, Title), Result = MyGallery.Selected.ColUM)
Translated in layman's terms: Filter the data source 'Units of Measure' where Title is equal to the value saved for this item/row in the ColUM column and show me just one result value if there are multiple matches.
@JR-BejeweledOne wrote:I have been trying to accomplish something similar myself. It does not appear that you can use the Visible attribute or use Rules to set the Item's mode property using ThisItem to affect a single instance in a gallery.
I am still playing with it though.
Can you provide a link to the specific Shane video about the visibility? I haven't seen that one yet.
Part 3 of his repeating tables series
He shows setting a variable with the OnChange property of the text box and then using that variable for the Visible property of the button(s). I haven't used rules yet myself as I haven't been in a situation where I needed them with using variables for visibility.
@JR-BejeweledOne wrote:In your data source what type of column are you bringing into the combo box?
I'm using a few that are looking to other SharePoint lists for the data and a few that are looking at a specific column in a SQL database table.
Can you provide a link to the specific Shane video about the visibility? I haven't seen that one yet.
In your data source what type of column are you bringing into the combo box?
I have been trying to accomplish something similar myself. It does not appear that you can use the Visible attribute or use Rules to set the Item's mode property using ThisItem to affect a single instance in a gallery.
I am still playing with it though.
@sscarcella wrote:None of these solutions work for me either. I have a gallery used as a repeating table and a text field and a button. when the text field is < 1 or blank I want the button to be hidden. It works for the first row but any newly added rows will show the button as set from the previous row no matter what I set the default value to.
Why do they not have a repeating table control yet after 2+ years. This was so easy in infopath.
Working with button visibility on gallery collections is a little tricky because of the "repeating-like" fields in each row that all contribute to the single property. Shane Young gives some good examples on row button visibility and it took me a bit to get a similar concept to where the buttons reacted based on the row but I want to say it was utilizing "ThisItem" along with variables. *Edit* - After looking back on my app that I created following Shane's video I see that we're controlling the visibility of the buttons for each line by a collection column value. See around the 7 minute mark on this video where he starts that part.
As for this being easy in InfoPath.... yes, as well as with Nintex forms, but with both of those getting the data out of the repeating table is a pretty big pain and involves parsing and more steps that I care to deal with that we have seen issues with the data accuracy. At least with PowerApps you're creating the data directly on a separate list / database so you don't need to go parsing it out later to work with it. I'd much rather this than the actual repeating table containers in the older products. That said, I do wish working with different field types was easier like the subject of what we're discussing here. Similarly it can be confusing when you're dealing with different data types and variables (records vs text for example).
None of these solutions work for me either. I have a gallery used as a repeating table and a text field and a button. when the text field is < 1 or blank I want the button to be hidden. It works for the first row but any newly added rows will show the button as set from the previous row no matter what I set the default value to.
Why do they not have a repeating table control yet after 2+ years. This was so easy in infopath.
I have the same issue and can't seem to remedy it. I've found a couple threads, including this one, indicating that I need to use "ThisItem.collectioncolumn" or "{value: collectioncolumn}" but neither are working for me. I get an error if I just use ThisItem.collectioncolumn saying it expects table values and the rule produces text values (see screenshot).
With either (or just using the collection column as the default value) I have a warning that "This formula uses scope, which is not presently supported for evaluation." I'm unable to find any examples with this warning and the issue I'm seeing. Some of my comboboxes are using a SharePoint list as a lookup data source while others are using a SQL database. The text boxes are fine but every combobox is reset after adding a new row.
WarrenBelz
791
Most Valuable Professional
MS.Ragavendar
410
Super User 2025 Season 2
mmbr1606
275
Super User 2025 Season 2