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

Referring to a Control via a formula?

Is this possible in PowerApps? 

 

For instance I have 2 screens, (named ScreenA and ScreenB) want to have same button in both screens, to navigate, is this possible?

 

On Select: Navigate (ScreenVAR,fade,done)

 

while onload for ScreenA has: Set (ScreenVAR, "ScreenA")

 

and onload for ScreenB has: Set (ScreenVAR, "ScreenB")

 

14 REPLIES 14
Eickhel
MVP

Hey, 

 

As far as I know, every screen has their own set of controls so an easy way could be just copying the button to each screen and then change their OnSelect or go your way:

 

ScreenA - OnVisible: Set(ScreenVAR, "ScreenB")

-- ButtonA: OnSelect: Navigate (ScreenVAR,fade,done)

 

ScreenB - OnVisible: Set(ScreenVAR, "ScreenA")

-- ButtonB: OnSelect: Navigate (ScreenVAR,fade,done)

 

Is this what you wanted to accomplish?

Hi @Eickhel, agreed they are 2 different buttons but i meant they have the same formula. 

 

The below does not seam to work because of the topic of this discussion: Referring to a control via a formula? is this possible?

 

If you look at my PowerApp screenshot, at the left, the side menu used to be buttons, but imagine buttons for +40 screens. I developed the menu eventually via a Gallery, and i was sucessful automate the formula to take me to the right screen via gallry on select.

 

this is a the on select formula for the menu gallery 

 

If(ThisItem.ecds_screenname="ScreenHome",Navigate(ScreenHome,ScreenTransition.Fade),If(ThisItem.ecds_screenname="ScreenProject",Navigate(ScreenProject,ScreenTransition.Fade),If(ThisItem.ecds_screenname="ScreenProjectDetails",Navigate(ScreenProjectDetails,ScreenTransition.Fade))))

 

As you see, it is manually done, and this covers 3 screens only. I know I can use excel Concatenate to buld the formula for all screens, but i was thiking use a column in the gallery so my formula would be then super easy:

 

ScreenHomeOn Visible: Set(CurrentScreen,"Home")

ScreenProject On Visible: Set(CurrentScreen,"Project")

etc.

 

Menu Gallery OnSelect: Navigate(CurrentScreen, Fade, none)

 

The issue is that OnSelect is not dealing with the variable CurrentScreen as ScreenName. I used Text(CurrentScreen), same.

I think this would work if a control has a Name property then a variable can be assigned. i will be happy if there is another way.

Hi @Eickhel, Thanks.

 

The problem is that in the proposed formula of 

 

Switch( ThisItem.Random,
"Screen1",Navigate(Screen1, Fade),
"Screen2",Navigate(Screen2, Fade),
"Screen3",Navigate(Screen3, Fade),
"Screen4",Navigate(Screen4, Fade)
)

 

I have to call ScreenName for each option. And my objective is to calling screenname via a formula, so i dont make the furmula very long.

 

But it does not seams to be working

True but what about the another proposed solution?

 

https://powerusers.microsoft.com/t5/General-Discussion/Navigate-to-screen-selecting-element-from-the...

 

It uses a collection of screens.

This might be the start to finda way, thanks for sharing! and thanks for being there..

 

link solution says

If you are using a dropdown or listbox control for the screen selection, please do the following:

 

    Dropdown1.Items = [Screen1, Screen2, Screen3]

    Dropdown1.OnChange = Navigate(Dropdown1.Selected.Value, Fade)

 

I tried the easy scenario for testing: 

the seconf line of the code gives an error: "The function 'Navigate' has some invalid arguments"

OK, I think I got a way. First I created a collection with all the screens of this test app (keep in mind the @):

 

ClearCollect(Screens,[[@FormScreen1],[@Screen1]])

Then I created a button with this code in the OnSelect:

Navigate(Last(Screens).Value, ScreenTransition.None)

It's working.

 

You need to change the logic for when or where to navigate... but I think this might work for you.

Hi again my friend @Eickhel. not seams to be working 😞

 

if you are sure can you package for me the test app?

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 (3,340)