I have an Edit form with a DataCard including a Drop Down (Allowed Entries). When I create a new record I can select an entry from the drop down (which displays DiscountName) and the correct ID (DiscountID) is stored in the table. But when I open an existing record, the DropDown always shows the first entry in the drop down instead of the correct entry for that record.
How to get the drop down to display the entry relating to the selected record?
Setup:
Form is bound to table OrderHeader which contains a field OrderDiscountID.
An OrderDiscountID data card is added to the form and set to AllowedEntries (so a Drop Down is displayed)
The DataCard is named: DataCardPayOrderOrderDiscountID
The DropDown is named: DropDownPayOrderOrderDiscountID
DataCard settings for DataCardPayOrderOrderDiscountID
DataField: "OrderDiscountID"
DisplayName: "OrderDiscountID"
Required: False
Default: ThisItem.OrderDiscountID
Update: DropDownPayOrderOrderDiscountID.Selected.OrderDiscount
AllowedValues: DataSourceInfo('[Order].[OrderDiscount]', DataSourceInfo.AllowedValues, "OrderDiscountID")
DropDown settings for DropDownPayOrderDiscountID
Items: Sort('[Order].[OrderDiscount]',OrderDiscountName)
Value: OrderDiscountName
Default: Parent.Default
Solved! Go to Solution.
Ah - just figured it out!
The Default property for the drop down (the last line on my post above) needs to be a LookUp which takes the OrderDiscountID for the current item and uses it to look up the OrderDiscountName, like so:
LookUp('[Order].[OrderDiscount]',OrderDiscountID = ThisItem.OrderDiscountID,OrderDiscountName)
As someone with a background in Access this is really confusing. The Drop Down is 'sort of' bound in that when you select a DiscountName from the drop down, PowerApps does the work in the background to actually store the DiscountID. But when you are displaying an existing record, PowerApps doesn't bother to work out what DiscountName belongs to the DiscountID - you have to put in a LookUp yourself to do that.
Is it just me, or is that really counter-intuitive?
Ah - just figured it out!
The Default property for the drop down (the last line on my post above) needs to be a LookUp which takes the OrderDiscountID for the current item and uses it to look up the OrderDiscountName, like so:
LookUp('[Order].[OrderDiscount]',OrderDiscountID = ThisItem.OrderDiscountID,OrderDiscountName)
As someone with a background in Access this is really confusing. The Drop Down is 'sort of' bound in that when you select a DiscountName from the drop down, PowerApps does the work in the background to actually store the DiscountID. But when you are displaying an existing record, PowerApps doesn't bother to work out what DiscountName belongs to the DiscountID - you have to put in a LookUp yourself to do that.
Is it just me, or is that really counter-intuitive?
How in the world did you figure this out? I've spent weeks on this problem. My background was Access first and then MS SQL. I've been expecting some sort of defined relationship creating the "bound" values. This is a feature that really needs to be worked on. I feel like a lot of people would be wanting to build forms from relational databases at the 3rd normal form.
Thanks for coming back and posting the answer!
THIS IS SUPER COUNTER-INTUITIVE! THANK YOU SO MUCH for persevering and then coming back to share. I have tried everything and just about decided it was impossible!!!
We program in a lot of languages, and I've never seen anything quite like this.
Thank you!
Yes, this is dumb. Can't believe that it hasn't been fixed yet.
The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.
This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.
User | Count |
---|---|
184 | |
51 | |
47 | |
34 | |
32 |
User | Count |
---|---|
258 | |
88 | |
78 | |
68 | |
67 |