cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Tomato_Pie
Regular Visitor

Lookup() label text vanishes a moment after loading

Hi everyone. I'm new to Power Apps, and am wondering if any of you can help me with this strange little bug I'm experiencing.

 

I have an edit form with a datacard that displays a barcode value from a sharepoint list. The value of the datacard can be changed by the user, either by typing, or by using the built-in barcode scanner functionality, then submitted if desired. All this works great, the barcode is in the datacard value box.

 

Within that same datacard, I have a label that grabs the datacard value, and uses the LookUp() function on the sharepoint list to retrieve and display the title associated with the barcode. It uses the function below in it's "text" property:

 

LookUp('List of Devices', OData__dlc_BarcodeValue=DataCardValue37.Text).Title

     (where DataCardValue37 contains the barcode)

 

This all works great within the app editor, but gets weird when fully run in the browser or on my android phone. Sometimes these lookup() labels work, but sometimes they load and display for a moment, then immediately disappear. I find that it happens more often on my phone. Updating the barcode field by backspacing and retyping the last number causes the lookup() label to reload and display properly again.

 

Strangely, I have the exact same lookup() label setup on a detail form, and it works just fine every time.

 

Any ideas of what's going on? Why does this work on a detail form but not an edit form? Is there any way I can force the labels to refresh themselves a moment after the page loads so that their text reappears? Any help you might able to provide would be highly appreciated.

 

Thanks!

problem.png

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hi WarrenBelz, thanks again so much for your help.

 

I like that idea, except this title also needs to respond to users manually typing barcodes into the barcode edit form box. Is there a way to make the variable detect and respond to when a user has typed in a textbox?

 

In other words this variable needs to perform its lookup on the most recently updated of the following: The default barcode value (what it was set to before the edit screen was loaded), the value from the barcode scanner, and the user's typing input into the edit form's barcode DataCardValue. Referencing this DataCardvalue is what seems to cause all these issues.

View solution in original post

15 REPLIES 15
WarrenBelz
Super User
Super User

Hi @Tomato_Pie ,

This could be a calculation timing issue - try this OnScan of the scanner

Set(
   varTitle,
   LookUp(
      'List of Devices', 
       OData__dlc_BarcodeValue=Self.Value
   ).Title
)

then set your label to varTitle

 

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.

Hm, no luck.

 

I put your code in the OnScan, and set the label to varTitle. This of course makes the label blank until the scanner button is pressed, so I changed it to:

 

If(IsBlank(varTitle),LookUp('List of Devices', OData__dlc_BarcodeValue=DataCardValue36.Text).Title,varTitle)

 

This produced the same problematic behaviour as before, where the label immediately goes blank upon page load and does not refill itself until the barcode datacard value is updated (either by typing, or by scanning a barcode with or without the code you provided in the OnScan).

 

Is it possible the label is calculating itself before the app has fully loaded the datacard barcode values from the sharepoint list? But then why does it often display the correct info for a moment then immediately disappear? Could it be somehow bringing text over prom the previous detail form page? Maybe I should look into somehow implementing a timer that writes to the label a moment after the page loads, undoing whatever shenanigans is happening at the start? Not exactly an elegant solution though.

 

Any other ideas you guys might have would be highly appreciated!

 

@Tomato_Pie ,

Very strange as 

If(
   IsBlank(varTitle),
   LookUp(
      'List of Devices', 
      OData__dlc_BarcodeValue=DataCardValue36.Text
   ).Title,
   varTitle
)

should simply give your the lookup on the value in DataCardValue36 (you might have a read of the first section of this blog of mine in regard to this name). I am assuming there is data in this control that can be referenced?

 

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.

Sorry yes, DataCardValue36, DataCardValue37, ...38, etc are all part of similar datacards in an edit form (you can see the first few in the image I posted). Each datacard's value box by default displays barcode from a sharepoint list as part of the edit form, and I've put a label right beside it that looks up the associated item's title in another sharepoint list. I used number 37 in my original post, and 36 in my reply - both datacards & their lookup labels are set up in identical ways and are experiencing the same issue. I should have been consistent, my bad!

Hi @Tomato_Pie ,

The control referenced does not matter if it contains a barcode value from your list. My point was that the formula should display the Title of either that record or the scanned barcode. There is something else missing here.

 

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.

Hi WarrenBelz,

 

Thank you so much for your kind replies, your help is tremendously appreciated - I've been struggling with this issue for a while now!

 

I'm not sure if I understand what you're referencing. Displaying the title associated with the barcode is the entire intended function. The DataCardValues are indeed populated with the barcodes from when the page loads onwards.

 

I use the lookup function instead of ThisItem.Title for example because there are two different sharepoint lists - 'List of Devices' is not the same list as the one associated with the edit form.

 

I still don't know why my lookup label blanks out even though the barcode is there from the start. No other controls interact with the label.

OK @Tomato_Pie ,

A bit of basic debugging - if you put this on a label, does it always contain the Title when there is data to reference in DataCardValue36 ?

LookUp(
   'List of Devices', 
   OData__dlc_BarcodeValue=DataCardValue36.Text
).Title

 

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.

Hi WarrenBelz,

 

No - DataCardVaue36 is always populated by data, but the label does not always display the title.

 

Upon page load, the title in the label sometimes displays for a moment, then disappears. Sometimes it never displays. Sometimes it displays without issue. It has a mind of it's own! DataCardValue36 always has data though.

 

Refreshing DataCardValue36 in any way, such as backspacing the last digit of it's barcode and retyping it, will cause the title in the label to reappear. Going backwards to the last screen then returning to the problematic screen can also fix things. It's mostly upon visiting the screen for the first time upon opening the app that the titles disappear.

@Tomato_Pie ,

I think you have a corruption somewhere. Try putting another card on the screen based on the field that DataCardValue36 has, then reference that will the Lookup.

 

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.

Helpful resources

Announcements
Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on August 17, 2022 at 8am PDT.

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Users online (4,770)