PowerApps – enhance Combo Box search functionality

Even out of the box PowerApps is a great tool that provides lots of functionality. Way more than InfoPath could. However, most of the time with very few adjustments it is possible to achieve even more. A great example would be a Combo Box and its search ability. Let's create a SharePoint list with a Choice column and these values: It doesn't really have to be a Choice column, you might as well use a Lookup column. When a PowerApps form is created, the studio creates a Data Card and a Combo Box control associated with that Choice field. Let's see how the search in that Combo Box works and why it is limited in its current state. Note how it finds BK but doesn't find Black. The search has a StartsWith behavior. What if it is necessary to search for a word regardless of its position. Well, that's very easy…

Continue Reading

PowerApps – 3 different ways to implement currency input mask

As far as I know at the time of this post PowerApps doesn't have an Input Mask (currency mask in this particular case) feature. It is possible to mimic that feature using Text function but implementing it is not really straightforward and gets even more complicated if you are dealing with PowerApps integrated with SharePoint. In this post I will show you 3 different ways of implementing a workaround for a currency input mask, each has its own pros and cons: The currency mask formatting is not visible until you submit the form (the simplest). You can see the mask formatting even before submitting your form but you need to click away from the field to see the formatting (medium complexity). The currency formatting is applied real time as you type in the numbers (the most complicated but the most natural way of working with currency). Let's create a testprice…

Continue Reading

PowerApps form in SharePoint – create a configurable auto-incrementing column without Flow

If you search for SharePoint auto-incrementing column or SharePoint counter column you will notice that most of the examples use the old Workflow or Microsoft Flow to achieve that. In this blog post I will explain how to use PowerApps to do the same and even better. The benefits of using this method are: Configurable counter (if you would like to skip or reserve some numbers, you can adjust the counter to anything). That counter list can have many configuration items for other custom lists and applications. No Microsoft Flow runs are used. Further customization is possible (e.g. reserved numbers). The only downside I could find so far, when several users submit the form at once (literally within the same second), one of them will get an error message. So I'd recommend catching that error and let a user know to retry saving the form. Please note that in this…

Continue Reading

PowerApps form in SharePoint – show values of Created and Created By before item submission

I am huge advocate of using as few columns as possible when building PowerApps forms in SharePoint. Let's take a look at a very simplified example - a custom Requests SharePoint list.  It surely has to have fields like: Requested By (a user name here) Requested On (a date and time here). So rather than creating two more columns and populating them with values, I would highly recommend using columns that already exist in SharePoint - Created and Created By. The downside of these columns is they don't have values until a user submits the request. Because of this it might be not the cleanest user experience if you decide to use and show those fields. There is a simple way to prepopulate those fields with values that will be exact (user name) or very close (date and time) to the ones that will appear after submission. Let's create a…

Continue Reading

PowerApps – using Checkbox controls with Multi-Valued Choice columns

At some point Microsoft PowerApps Team added support for fields with multiple values through a Combo Box control. However, as of this moment (2/3/2019) there is still no native support for Checkbox controls even when you configure your Choice column in SharePoint to have Checkboxes (allow multiple selections). There is a good article (https://powerapps.microsoft.com/en-us/blog/multivaluedchoicesinforms/) published by Carlos Figueira from PowerApps Team that shows how to implement Checkbox controls. The downside of it was using a Text column that imitates a Choice column. It's been a while since that article was published, so it's hard to say if anyone has done it differently. In this post I will explain how to pair Checkbox controls with a true Multi-Valued Choice column. Please note, in my example I will be using a PowerApps Form rather than PowerApps App; however, it shouldn't make any difference. Let's create a SharePoint List, name it TestList, add a TestListColors Choice column.…

Continue Reading

Add on-screen numeric pad to simplify user experience

If by design your PowerApps app is not supposed to have any text input but numbers then it might be a good idea to "disable" a native phone keyboard and add buttons as an on-screen numeric pad. The only downsides of this method are a bit of additional code and taking screen estate. However, it creates a smooth and consistent user experience. To disable the keyboard all text input fields should have DisplayMode set to: DisplayMode.Disabled A rough preview: The OnSelect code for each numeric button would be (example for button "1"): UpdateContext({varTicketInput: varTicketInput & "1"}) TextInput1 Default value must be set to: varTicketInput X button (to start over) OnSelect code: UpdateContext({varTicketInput: ""}) OK button OnSelect code: Set( TicketNum, TextInput1.Text ) That TicketNum global variable can be used later on any screen. NICE TO HAVE To make your app even better I would recommend disabling some buttons at certain conditions:…

Continue Reading

Create and customize animation for controls and objects in PowerApps

Creating a functional PowerApps app is one thing. Making an app look good is another, which always happens to be time consuming. So let's try to make an app look better by adding some animation to one of the objects. My example app has two screens - InputScreen and SuccessScreen. On InputScreen I have a "Submit" button that makes a transition from InputScreen to SuccessScreen.  ButtonSubmit > OnSelect value: Navigate(SuccessScreen,ScreenTransition.None) One might say that ScreenTransition.Fade will do the trick and show SuccessScreen and its objects smoothly. That is true; however, a control you are willing to animate does not have to be tied to a loading screen. On top of that, ScreenTransition.Fade affects the whole screen. So here I use ScreenTransition.None on purpose. SuccessScreen has Label1, Icon1, and Circle1 objects. Let's add some smooth animation to that circle object and make that animation work as soon as SuccessScreen is visible. To…

Continue Reading
Close Menu