cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
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
Highlighted

Re: Referring to a Control via a formula?

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?

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Referring to a Control via a formula?

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.

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Referring to a Control via a formula?

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.

Highlighted
Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Referring to a Control via a formula?

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

Highlighted

Re: Referring to a Control via a formula?

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.

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Referring to a Control via a formula?

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"

Highlighted

Re: Referring to a Control via a formula?

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.

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Referring to a Control via a formula?

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
Community Conference

Power Platform Community Conference

Find your favorite faces from the community presenting at the Power Platform Community Conference!

Watch Now

Experience what’s next for Power Apps

See the latest Power Apps innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published applications.

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Top Kudoed Authors
Users online (5,179)