Hi
Yes, because the lookup is passed back so it ends up working, but not so on your initial screen.
Can you share the Items properties of your Gallery
And the Item Property of the form on screen 1?
in these types of situations the best thing to do is write a literal action list in order
1. I loaded data into a gallery using XYZ for the Items
2. bla bla.
So that when you get to the point, where you say you go backwards, thats when we need to look at the varXXX you have and the code.
The most underused arsenal you have is Monitor.
1) start using trace statements in your code so you can track what actions happened and what ones didn't and to track what a variable holds in it
So you wouldn't write
Trace(variable)
You would write
Trace("VariableName=" & variable);
So if that trace just says the first part in the literal string you can go oh.. i need to figure out why its wiped out.
Also from screen to screen, the data is in a sense, refreshed for that one. You are saying, I believe
if I go from screen 1 to 2, 2 shows it fine, but when I go from 2 to 1 it doesn't.
Thats because going backwards at that point, you haven't refreshed the starting screen, but the other screens WERE refershed when you
loaded them for the first time.
I do not believe in using Global Variables in this case. I use Context variables to pass them, that there is no way your data is missing.
Example
Screen 1 to screen 2
Navigate(Screen2, Transition.WhateverOneYouWant, { _IDScreen1 = Gallery.Selected.ID (or wthaver) });
Then in screen 1 itself when someone clicks on a Row in the Gallery
UpdateContext(_ID = GalleryName.Selected.ID)
And so on. Either way you need to prove the data is there, and thats what you are missing to do. We cannot see it at all, so its up to you to put the proper Tracing in. then using Monitor to find it.
But what I said is what you will find, simply due to experience