Recently came across a requirement where the user expected the currency formatting at runtime.
Power Apps does not inherently support any currency input for a text box.
We currently have the input formats as Number and Text as represented below:
We need to keep the input text field format as Number to prevent the user from inserting non-numeric values in the said field.
Now the question arises as how we can display formatting at runtime.
Option 1 :
From the text box input , the event that we can capture is the OnChange , so while tabbing out the formatting is enabled and user can see the formatted value in the text box itself.
For this we need to set a variable with the formatted value on the OnChange Event as shown:
Code :
Set(
FormattedCurrency,
Text(
Value(txtUnitPrice.Text),
"$#,##0.00",
Language()
)
)
We need to do one additional step, i.e set this Variable - FormattedCurrency defined above as the Default attribute of the TextBox input.
This enables near runtime formatting, with the formatting enabled on the tab event.
Options 2 :
If the user is expecting formatting while typing itself and not willing to wait for the tabbed event,
we can add a label adjacent the text box and set its Text property as below :
Code :
Text(
Value(txtUnitPrice.Text),
"$#,##0.00",
Language()
)
With these settings we can generate our desired output :
Step 1 : While typing the numbers in the Currency text box field :
Step 2 : OnTabbing out
You can replace the textbox controls with the data card controls in case you are working in an integrated SharePoint PowerApps solution.
Top comments (0)