Merged multiple pages into one dynamic panel and logic is no longer working

advanced-prototyping

#1

I had created a prototype with each screen being a different page in the RP file. Then, I had to combine all pages within the prototype into one dynamic panel. After doing this, all buttons are working but the logic is no longer functioning. The logic and global variables have been checked multiple times and I cannot figure out why it is no longer working.

Any insight as to why the logic no longer works within the singular dynamic panel?

Unfortunately I cannot upload the file for NDA reasons within the competition the prototype is being submitted to, but I can give additional information to aid in this request! Thank you!


#2

Guessing what problems might exist is hard to impossible without seeing the RP file. Any way you could create a dummy file with basic example and/or extracting/redacting all confidential information? Or maybe show screenshots of the interaction code only, or provide any more information about “the logic”?

In general, from what you’ve presented here, you can think of your problem this way: You used to proceed from screen to screen by loading a new page. Now, you proceed from screen to screen by changing the dynamic panel’s state. So, you need to know whatever happened when each of the old pages loaded, and recreate it when the dynamic panel changes states. It will probably help if you name the dynamic panel’s states to match the (old) page names.

if you have a working file–with screens on separate pages–look at the Page Loaded event on each page. That is a common place to process global variables and change things based on those values. If there is code there, (e.g., "If OnLoadVariable > 1 Show SomeWidget; Set Text of SomeWidget to value of OnLoadVariable ; etc.") you’ll want to copy that code to your “one page” version, and place it in your “one” dynamic panel’s Panel State Changed event, creating a set of conditional “If …Else If” cases. Something like this:

If state of This equals Page1
(do the things that “Page 1” did)
Else if state of This equals Page2
(do the things that “Page 2” did)
Else if …

It is also possible for individual widgets, groups, or dynamic panels to have code in their Loaded events, which would get triggered when the page loads. So, if transferring all the Page Loaded interaction code doesn’t solve everything, you’ll need to investigate down to the widget level on each page. You should have some good clues for which widgets/groups to look at based on what’s not working in your new version.