cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ejules
Advocate I
Advocate I

How to set a pre-populated default value of a Dropdown in EditScreen for a SharePoint Choice field?

Hi Everybody,

 

I'm currently trying to simply set the Default value of a Dropdown in an Edit Form (Form is opened and the Dropdown should have a pre-selection). Even though I did extensive research I couldn't find a solution for a Sharepoint choice field (as I don't know how to find the ID's of those choices and how to reference it?

I have the DropDown with the Selections from Sharepoint ("Inland", "Ausland") and would like to be the Default for a blank form to be "Inland".

  PowerApps1.JPGPowerApps2.JPG

 

Thank you so much for your help.

 

Regards,

ejules

76 REPLIES 76

@GraemeNZ - You're on the right track. A couple observations and suggestions... 

 

Your label (LabelCustomerValue) is a great tool for you to see what value is present in the variable, but you're adding another step with referencing it when you can just use the variable name. IE - your gallery formula above can use the variable directly:

SortByColumns(Filter('testManufacturers List', Customer.Value = isSpring), "Title")

 

Now, where I was going with the last message was taking that one step further to simplify things. Instead of creating separate variables based on the SP list, use one variable and set the value based on the SP list to identify the logged in user of which you can then filter your gallery for that user in one statement (no switch). However, it appears you have two types of users - approvers and customers. If so, you can identify the customer for filtering the gallery when a customer is logged in and leave it unfiltered when an approver is logged in. 

 

Let's say you have a global variable called gvCurrentUser and you set it this way on the app start (note, my syntax may not be exact as I'm just typing it out freehand).

 

//Identify if current user is approver or customer
If(!IsBlank(LookUp('Ing & Mfr Security', Title = "FIW Approvers"), Set(gvCurrentUser, "FIW Approver"), Set(gvCurrentUser, LookUp(First('Ing & Mfr Security')).Title);
//Set customer variable
Switch(gvCurrentUser,
"Spring Users", 
Set(gvCustomer, "Spring Sheep"),
"NuMega Users",
Set(gvCustomer, "NuMega"))

 

With these variables set you can then filter your gallery based on the logged in user. If it's an approver you don't filter the list and if it is a customer you filter by the customer name:

//If current user is approver show all
If(gvCurrentUser = "FIW Approver",
SortByColumns('testManufacturers List', "Title"),
//Else filter the data based on the customer logged in
SortByColumns(Filter('testManufacturers List', Customer.Value = gvCustomer), "Title")
)

 

Again, syntax may not be precise but it's the basic formulas. 

Hi @vwyankee 

I'll digest the second part later, but to respond to the first part, the reason I can't reference the variable directly is because the variable isSpring returns true or false, but the text entry needs to be "Spring Sheep". Unless you can think of a way to change isSpring to a text string?

Cheers, GraemeNZ

@GraemeNZ - That's precisely what I'm walking you through - creating a variable that results in the customer name you use for filtering. 😎

oh, woops. The 'I didn't read it all before answering' error 🙄 

@GraemeNZ - I also meant to add that you don't need that label to prevent user input on the field. Just set the display mode of the data card to be in view mode unless it is a new form. IE, if your form name is RawMaterialsForm - Set Customer_DataCard2.DisplayMode: 

If(RawMaterialsForm.Mode = FormMode.New, Parent.DisplayMode, DisplayMode.View)

Hi @vwyankee I'm having trouble working out what the correct syntax should be. This is what I have so far, but I can't work out the last bit.

I've manually added formatting to try and make it clear.

GraemeNZ_0-1637207011232.png

 

 

@GraemeNZ - Apologies for the misguidance, as I wasn't thinking that LookUp isn't used along with the First operator. I've made some test lists to be sure and here's the formula for your App OnStart. I added in to set the gvCustomer variable to blank if it is not one of the customers as well.

//Identify if current user is approver or customer
If(
    !IsBlank(
        LookUp(
            'Ing & Mfr Security',
            Title = "FIW Approvers"
        )
    ),
    Set(
        gvCurrentUser,
        "FIW Approver"
    ),
    Set(
        gvCurrentUser,
        First('Ing & Mfr Security').Title
    )
);
//Set customer variable
Switch(
    gvCurrentUser,
    "Spring Users",
    Set(
        gvCustomer,
        "Spring Sheep"
    ),
    "NuMega Users",
    Set(
        gvCustomer,
        "NuMega"
    ),
    Set(
        gvCustomer,
        Blank()
    )
)

 

The formula I wrote out in a previous comment for the gallery works for me as expected as well. I added a label at the bottom just to show me what the variables are (you can always go to "View-> Variables" to see them in the designer as well). The data shown is what's reflected in the SP list based on customer logged in.

vwyankee_0-1637264637445.png

 

vwyankee_1-1637264684149.png

 

vwyankee_2-1637264735891.png

 



Hi @vwyankee - I really want this to work but it just doesn't for me. I have no syntax errors showing in my formula, but the two new variable don't exist on my variable lists even after running OnStart multiple times. 

I wondered about the syntax of the comments - I found one post that said "//" should be used at the end of the line, so I moved all the comments to the end of the lines - no joy. I found a post that said a block comment can be added by bracketing the block of code with "/*" at the start and "*/" at the end, so I tried block-commenting sections to trouble-shoot - no joy.
In frustration I deleted all your code and returned to what I had, and it worked first pop.
It may not be the most elegant of solutions, but it is my first App and the SP List will probably have a maximum of about 100 items, so it will suffice for what we need it to do. 
Thanks for your helpful suggestions, I really don't know why it doesn't work for me.

Cheers, GraemeNZ

vwyankee
Helper V
Helper V

@GraemeNZ - There shouldn't be any reason that doesn't work to create variables. You put the formula in the App.OnStart? It was only in the recent months MS added in the property "StartScreen" to the App, which the App now defaults to - a bit annoying, IMO. Perhaps you had it there instead of the OnStart property?

 

vwyankee_0-1637336233818.png

 

You could also create a button to test and put the formula in the OnSelect property to try. The syntax for commenting is correct. If it were not you would see a bunch of red underlines in the code. Yes, you can also surround code with the commenting syntax - /* example text or code commented out */.

I know there's no reason, it makes no sense at all. It was definitely in OnStart, the syntax was exact, but it didn't work. I tried clearing my browser cache, I tried shutdown/restart... Again, thanks for your help, you helped me a lot.

Helpful resources

Announcements
Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Top Kudoed Authors
Users online (1,824)