cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
mholdsworth2022
Frequent Visitor

Switch Function Used In A Copy Paste App

Hi All,

 

I have created an app that all and all works pretty seamlessly. I have a small bug that is holding the roll out of this app and I can't seem to figure out how to get past it. When a user presses a button it will than use the switch function to set it to a variable and add it to the input box to than be copied to the clipboard by the user. This all works correctly. The problem is that if the user decided to edit the text that is put into the text box and than continues to press buttons to add to the string it will than revert the text back the defaulted input. I am not sure if there is a fix for this but any assistance would be greatly appreciated. 

 

Before Alterations to the XX

mholdsworth2022_1-1657870053942.png

After Editing the XX's at the end of the string

mholdsworth2022_2-1657870117339.png

 

After clicking another button and it defaulting back

mholdsworth2022_3-1657870137546.png

 

Code used for switch function

 

mholdsworth2022_0-1657870319012.png

 

1 ACCEPTED SOLUTION

Accepted Solutions
mholdsworth2022
Frequent Visitor

WarrenBiz,

 

Thank you for getting me thinking outside the box. I couldn't of done it without you. I figured it out. 

 

Using the onchange of the input text box, combined with the switch function got it to work. 

 

Solution:

 

Select the onchange property of the input box and use the below

 

Switch(CopyTextVar,
Blank(),Set(CopyTextVar, Concatenate(input22_1.Value, CopyTextVar)), Set(CopyTextVar, Concatenate(input22_1.Value)))

View solution in original post

8 REPLIES 8
mholdsworth2022
Frequent Visitor

.

 

WarrenBelz
Super User
Super User

Hi @mholdsworth2022 ,

There are a couple of things you could do here to make this easier for you. Firstly, you could have each of those lists as vertical galleries with a button in them - example of Items for the first one

[
   "10 Minutes",
   "15 Minutes",
   "20 Minutes",
   "30 Minutes",
   "45 Minutes",
   "60 Minutes",
   "XX Minutes"
]

The Text of the button would be

ThisItem.Value

and the OnSelect of the button

Set(
   CopyTextVar, 
   If(
      !IsBlank(CopyTextVar), 
         CopyTextVar & ", "
   ) & 
   ThisItem.Value
);
UpdateContext({varMenu1: ThisItem.Value})

 Then the DisplayMode of the button (this was your question)

If(
   !IsBlank(varMenu1),
   DisplayMode.Disabled,
   DisplayMode.Edit
)

Also with the above you could play with the DisabledFill - the reason I used a value in the variable

If(
   ThisItem.Value = varMenu1,
   YourChosenColour,
   YourDisabledColour
)

You would reset all the variables at screen OnVisible and possibly also supply a Clear button to do this in case they made mistakes.

I see from your items you are in OZ possibly ?

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Visit my blog Practical Power Apps

WarrenBelz
Super User
Super User

Hi @mholdsworth2022 ,

Just checking if you got the result you were looking for on this thread. Happy to help further if not.

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Visit my blog Practical Power Apps

Hi WarrenBelz,

 

Sorry for the delayed response it has been a crazy couple of weeks. I have just tried your idea and it still isn't doing what I am needing it to do. The input box is still reverting back to the default text if a user adds or writes to the input box. 

 

It should be if a user clicks a box "10 Minutes" and another gallery or button XX Procedure and a third button Arrived at xx. These values show in the input box. The problem is when a user replaces the XX's for instance with another character and continues to click the third, fourth or fifth button it will not keep the modification done to the XX. So for example.

 

This is the start before editing

mholdsworth2022_0-1659246244860.png

This is after it is edited. 

mholdsworth2022_1-1659246290899.png

And this is what happens when I click another button to continue. Reverts the edited text back to XX

mholdsworth2022_2-1659246321672.png

 

And yes I am in Australia :). Melbourne. Thank you in advance for the assistance as my head has hit a dead end. It's almost like I need to create a variable if the text is edited and some how save that entire string to it. Not sure. 

 

Hi @mholdsworth2022 ,

This requires a different strategy - on each button (change variable for group number)

UpdateContext({varAdd1: "YourTextHere"});
Select(YourHiddenButtonName)

Then hide a button with this on it

UpdateContext({CopyTextvar: varAdd1 & varAdd2 & varAdd3 & varAdd4 & varAdd5})

You might put some spaces or comma etc between it you want and also need a clear button at also at screen OnVisible

UpdateContext(
   {
      varAdd1: Blank(),
      varAdd2: Blank(),
      varAdd3: Blank(),
      varAdd4: Blank(),
      varAdd5: Blank(),   
      CopyTextVar: Blank()
    }
)

I am probably a bit warmer than you at the moment - up in sunny Central Queensland.

 

Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider giving it Thumbs Up.

Visit my blog Practical Power Apps

Hi WarrenBiz,

 

Oh I am originally from QLD. I do miss it. We were nearly there with the above solution. 

 

First Button Pressed, before replacing XX/XX/XX

mholdsworth2022_0-1659618224831.png

Replaced The XX/XX/XX with date value for an example. 

 

mholdsworth2022_1-1659618267354.png

Continued workflow to second value and as you can see the first value I have just changed have reverted back to default. 

 

mholdsworth2022_2-1659618312728.png

 

The original app was java based and had security risks and didn't have scalability to roll it out easily. The business has asked if we can do this in powerapps which most of it can be done with a little help from CLI / copy to clipboard component. The java app worked the way I am explaining above because it was a send and listen. Once the button was pressed and sent the value to the text box that had a listener on it, the text box than lost the link and you could edit the text and continue to press button and it would save them edits.

 

The problem I am facing is that because this using variable no matter what I do I can't figure out a work around to save the edits while I continue to hit more buttons. The background is for a medical contact person to use this as they take a phone call from a patient fill in the DOB and other patient data that are placeholders with XX and continue to click buttons during the call. After the call is done they just hit a copy button with the edits they have done to easily paste that string into another medical program. 

 

I am starting to think this will not be possible with powerapps and could kill the entire project. :(. The only other way I am thinking is some how attach the input box to a timer and set it to update that string every millisecond and hide the 1st input box, than show the second input box with the new variable string. Though this is starting to get complex and wouldn't know how the performance would go. I am still struggling to believe that this can't be done in powerapps though lol. There must be a way.

mholdsworth2022
Frequent Visitor

I think I may be on to something here but still need some help to assist with my troubleshooting. I have figured out how to get it to save the modified text using the same principle but using the input box on change value. It now saves the changed Text but still performs a little unusual. It won't keep the right order after I press another button or as soon as I click off the input value. It feels very close.

 

First button hit no edit.

mholdsworth2022_5-1659621299067.png

Deleted the entire string and typed in Replaced The Text 
As soon as I clicked off the text box the default value still shows in front of the modified text.

 

mholdsworth2022_6-1659621427312.png

 

 

mholdsworth2022
Frequent Visitor

WarrenBiz,

 

Thank you for getting me thinking outside the box. I couldn't of done it without you. I figured it out. 

 

Using the onchange of the input text box, combined with the switch function got it to work. 

 

Solution:

 

Select the onchange property of the input box and use the below

 

Switch(CopyTextVar,
Blank(),Set(CopyTextVar, Concatenate(input22_1.Value, CopyTextVar)), Set(CopyTextVar, Concatenate(input22_1.Value)))

Helpful resources

Announcements
October Events

Mark Your Calendars

So many events that are happening this month - don't miss out!

Ignite 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Users online (2,705)