cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Yahya
Kudo Kingpin
Kudo Kingpin

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
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Top Kudoed Authors
Users online (2,129)