cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Super User
Super User

Value() Question

Hello,

I have an app that will need to make use of Imperial values for distance measurements.

Example: 1' 3 1/8" (one foot, three and one eighth inches)

  • Have a Dropdown Control for users to select 1/16" increments
    • Each value is set to text (surrounded by " ")
  • Need to perform math on the values
  • Interestingly, if I use 7/8 instead of "7/8", PowerApps converts to decimal
  • However, I am not able to access the fraction with Value("7/8") nor Value(fractionDropdown.Selected.Value)

How can I give the user the ability to select text fractions ("7/8", etc.) but perform math on their selection?

Ideally, I'd like to take things like "1/2" - "1/4" = "1/4" (NOT .25)

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Super User
Super User

Re: Value() Question

Wow. Just figured this one out. Hopefully useful to others. 

Set your trigger (OnStart/OnVisible/OnSelect/Etc.):

ClearCollect(colFracConvert,
    {imperial: "0", metric:0},
    {imperial: "1/16", metric:1/16},
    {imperial: "1/8", metric:1/8},
    {imperial: "3/16", metric:3/16},
    {imperial: "1/4", metric:1/4},
    {imperial: "5/16", metric:5/16},
    {imperial: "3/8", metric:3/8},
    {imperial: "7/16", metric:7/16},
    {imperial: "1/2", metric:1/2},
    {imperial: "9/16", metric:9/16},
    {imperial: "5/8", metric:5/8},
    {imperial: "11/16", metric:11/16},
    {imperial: "3/4", metric:3/4},
    {imperial: "13/16", metric:13/16},
    {imperial: "7/8", metric:7/8},
    {imperial: "15/16", metric:15/16}
);

Set Dropdown Control Items Property to: 

  • Two Dropdown Controls; Measurement 1 and Measurement 2.
  • Set both to:
colFracConvert.imperial

Insert a (hidden) helper Textbox Control with Text Property set to:

LookUp(colFracConvert, 
    measurement1.Selected.Value = imperial, metric
) - 
LookUp(colFracConvert, 
    measurement2.Selected.Value = imperial, metric
)

Special sauce:

Set the "Difference" Textbox Control Text Property to:

If(
    Value(hiddenHelper.Text) < 0,
        "-" & 
        LookUp(colFracConvert,
            Value(
                Last(
                    Split(hiddenHelper.Text,"-").Result
                ).Result) = metric, imperial
            ),
        "+" & //You could leave this line out if the "+" doesn't matter to your use case
        LookUp(colFracConvert,
            Value(hiddenHelper.Text) = metric, imperial
        )
)

Whew! Been chewing on that one for a couple days. First time really using text wranglers like Last(Split()).

Enjoy!

View solution in original post

1 REPLY 1
Super User
Super User

Re: Value() Question

Wow. Just figured this one out. Hopefully useful to others. 

Set your trigger (OnStart/OnVisible/OnSelect/Etc.):

ClearCollect(colFracConvert,
    {imperial: "0", metric:0},
    {imperial: "1/16", metric:1/16},
    {imperial: "1/8", metric:1/8},
    {imperial: "3/16", metric:3/16},
    {imperial: "1/4", metric:1/4},
    {imperial: "5/16", metric:5/16},
    {imperial: "3/8", metric:3/8},
    {imperial: "7/16", metric:7/16},
    {imperial: "1/2", metric:1/2},
    {imperial: "9/16", metric:9/16},
    {imperial: "5/8", metric:5/8},
    {imperial: "11/16", metric:11/16},
    {imperial: "3/4", metric:3/4},
    {imperial: "13/16", metric:13/16},
    {imperial: "7/8", metric:7/8},
    {imperial: "15/16", metric:15/16}
);

Set Dropdown Control Items Property to: 

  • Two Dropdown Controls; Measurement 1 and Measurement 2.
  • Set both to:
colFracConvert.imperial

Insert a (hidden) helper Textbox Control with Text Property set to:

LookUp(colFracConvert, 
    measurement1.Selected.Value = imperial, metric
) - 
LookUp(colFracConvert, 
    measurement2.Selected.Value = imperial, metric
)

Special sauce:

Set the "Difference" Textbox Control Text Property to:

If(
    Value(hiddenHelper.Text) < 0,
        "-" & 
        LookUp(colFracConvert,
            Value(
                Last(
                    Split(hiddenHelper.Text,"-").Result
                ).Result) = metric, imperial
            ),
        "+" & //You could leave this line out if the "+" doesn't matter to your use case
        LookUp(colFracConvert,
            Value(hiddenHelper.Text) = metric, imperial
        )
)

Whew! Been chewing on that one for a couple days. First time really using text wranglers like Last(Split()).

Enjoy!

View solution in original post

Helpful resources

Announcements
secondImage

New Return to Workplace

Reopen responsibly, monitor intelligently, and protect continuously with solutions for a safer work environment.

August 2020 CYST Challenge

Check out the winners of the recent 'Can You Solve These?' community challenge!

Experience what’s next for Power Apps

Join us for an in-depth look at the new Power Apps features and capabilities at the free Microsoft Business Applications Launch Event.

Check this Out

Helpful information

Featuring samples like Return to the Workplace and Emergency Response Applications

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Users online (5,346)