cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
rajkumar88
Level: Powered On

back to initial request-disable buttons based up on the user from the column

Hello Everyone,

 

I got help from good friends of this cummunity earlier and everythign seems to be working fine. However Now the game changed and need to add more into that and I am unscussedful in doing that.

 

I have a timer on the screen and on timeend property I have :

If(
!IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo)).ManagerEmail),
Navigate(ManagerHomeScreen, ScreenTransition.None),
Navigate(EmpHomescreen, ScreenTransition.None)
)

 

// What I am achieveing by doing above is that is user is in Manager column then he/she will be redirected to Manager screen if not to Employee scree.

 

Now the fun part is that, there are several users under "Employee" column and these users should also be directed to "Manager screen" and for only these users, I don't want to show "two buttons" on my Manager screen. Those buttons are "button1" and button2" . can this be added to aove code?

 

And for all others users who are part of MANAGER column can able to see those buttons which the initial setup.

 

Any help in making employee column users to be navigated to Manager screen but not showing up those two buttons? Advance thanks and thanks to the community.

 

@RandyHayes @yashag2255 @v-bacao-msft , I thougth you guys can weigh in as I always got response from you guys quickly and you already know my powerapp setup.

28 REPLIES 28
Super User
Super User

Re: back to initial request-disable buttons based up on the user from the column

Hi @rajkumar88 

 

You can set the visibility of the buttons as below expression:
 
!IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo)).ManagerEmail)
 
Hope this Helps!
 
If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!
rajkumar88
Level: Powered On

Re: back to initial request-disable buttons based up on the user from the column

@yashag2255 ,

 

to confirm it again. as per your suggeestion, if user is not present in that column then it won't show the button? 

 

sorry I am bit confused. 

 

scenario here: 1. right now if user is not present in Manager column then they should be able to view the button -- working

2.  if user is part of Manager column then also it shows the button-- which is good. that's what I want . 

 

3. If a user is part of "Employee" column then they should not be able to view the button. but for above two conditions it should show the button. 

 

 

Super User
Super User

Re: back to initial request-disable buttons based up on the user from the column

@rajkumar88 

If you think you will find yourself looking at the logic for if the user is a manager or not, you might want to consider using a global variable and then just work from that.

Set(_isManager, 
    !IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo)).ManagerEmail)
)

Then, whenever you need to determine if they are a manager or not, you can use that variable.

So, in your button controls, you can set the Visible property to : _IsManager if you only want to display the button if they are a manger.

And you can also change the main formula you have to the following:

Set(_isManager, 
     !IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo)).ManagerEmail)
);
If(_isManager,
   Navigate(ManagerHomeScreen, ScreenTransition.None),
   Navigate(EmpHomescreen, ScreenTransition.None)
)

The above should be what you can use.

 

BONUS:

Variables are overused though, so, you can also consider "keying" off of another control.

Many times we will want to "display" the fact that a person is a manager.  So, perhaps there is an icon we put n the screen to display that fact.  It's visible if they are, and not visible if they are not.  Let's call that control, _icnManager

In the Visible property of _icnManager, we have the following Formula : !IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo)).ManagerEmail) 

Now, for other places like a button we only want for a manager to see, we set the Visible property to : _icnManager.Visible

If the icon for the manager is visible, then so will be the button.

What I like about the above is that, if you ever change the "logic" of who is a manager, you pretty much know that you would look at the logic for the Manager Icon - very easy to recall.  Plus, you have one less variable to deal with now.

When these formulas get put in OnStart's, Timer OnEnd's, OnVisible's etc. it's very hard to find where the "logic" is in case you want to change it.  

 

Hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
Super User
Super User

Re: back to initial request-disable buttons based up on the user from the column

@rajkumar88 

In regard to your last point #3, does your EmailList have a record for everyone, employee and manager and both?

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
rajkumar88
Level: Powered On

Re: back to initial request-disable buttons based up on the user from the column

@RandyHayes ,

 

May be I will refer column Names in a different way sot hat we will be clear here.

 

1. My list (emailList) has two columns, one for ManagerEmail and one for "PeopleManagerEMail". I dont have a column for everyone. 

2. as per the function that you have sugegstion in previous posts is that " If manageremail=user.email then navigate to Manager screen and for all others to Employee Screen. which is working brilliantly. 

3. Now as per my POINT1. I want to "if user is from managerEMail or if user is from PeopleManagerEmail" navigate to Manager Screen and for all  others to Employee screen. Can use below one? sorry I am bit dumb here

 

If(
!IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo)).ManagerEmail); !IsBlank(LookUp(EmailList, Lower(PeopleManagerEmail) = Lower(userinfo)).PeopleManagerEmail),
Navigate(ManagerHomeScreen, ScreenTransition.None),
Navigate(EmpHomescreen, ScreenTransition.None))

4. 
right now I have enabled the two buttons to be visible because I want both Managers and others to see them However if user is from "PeopleManagerEmail" column then those two buttons should be disabled. // this is my other request. 

Super User
Super User

Re: back to initial request-disable buttons based up on the user from the column

@rajkumar88 

That formula isn't going to work for you...here's what I would suggest.  Keep it simple by reducing the formulas where possible.

Set(_isManager, 
     !IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo), ManagerEmail))
);
Set(_isPeopleManager, 
!IsBlank(LookUp(EmailList, Lower(PeopleManagerEmail) = Lower(userinfo), PeopleManagerEmail))
)

For your first logic formula:

If(_isManager || _isPeopleManager,
   Navigate(ManagerHomeScreen, ScreenTransition.None),
   Navigate(EmpHomescreen, ScreenTransition.None)
)

For your button Visible property:

Button should be enabled if a manager or people manager
_isManager || _isPeopleManager

Button should be enabled only for manager
_isManager

Button should be enabled only for people manager
_isPeopleManager

Button should be enabled only for a manager and a people manager
_isManager && _isPeopleManager

Does this logic makes sense for you?  If unclear or more help needed...just post back.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
rajkumar88
Level: Powered On

Re: back to initial request-disable buttons based up on the user from the column

@RandyHayes ,

 

thanks for your quick response. 

1. Do I need to add it on App Start of below function? 

Set(_isManager, 
     !IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo), ManagerEmail))
);
Set(_isPeopleManager, 
!IsBlank(LookUp(EmailList, Lower(PeopleManagerEmail) = Lower(userinfo), PeopleManagerEmail))
)

 2. I think this can be added to my previous setup. SO no confustion here. Thanks.

3. For Button Visible property → I want that to be hide only for "PeopleManagerEmail" for all others it should be visible. So I can set as _ispeopleManager,false ? 

Super User
Super User

Re: back to initial request-disable buttons based up on the user from the column

@rajkumar88 

1. Do I need to add it on App Start of below function? 

Set(_isManager, 
     !IsBlank(LookUp(EmailList, Lower(ManagerEmail) = Lower(userinfo), ManagerEmail))
);
Set(_isPeopleManager, 
!IsBlank(LookUp(EmailList, Lower(PeopleManagerEmail) = Lower(userinfo), PeopleManagerEmail))
)

You could...you could add it there or OnVisible or, if you follow my "Bonus Section" in my previous reply, you could add it to a control.  I'd say for now, to get you going, just put it in the OnStart.

 2. I think this can be added to my previous setup. SO no confustion here. Thanks.

Okay

3. For Button Visible property → I want that to be hide only for "PeopleManagerEmail" for all others it should be visible. So I can set as _ispeopleManager,false ? 


If you want to show a control (button) for the opposite of the logic, then choose one of these logic bits for your Visible formula:

Button should be enabled if a manager or people manager
_isManager || _isPeopleManager

Button should be enabled only for manager and NOT a people manager
_isManager && !_isPeopleManager

Button should be enabled only for people manager and NOT a manager
_isPeopleManager && !_isManager

Button should be enabled only for a manager and a people manager
_isManager && _isPeopleManager

Button should be enabled only for someone that is NOT a manager and is NOT a people manager
!_isManager && !_isPeopleManager

See where that gets you...

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
rajkumar88
Level: Powered On

Re: back to initial request-disable buttons based up on the user from the column

@RandyHayes,

 

Thanks Randy.

 

with respect to visibile property. I  have an existing rule on my button visible property : can I add in this way?

 

the line is to hide is there an item already created by that person and hide if the date is more than 25

If(
CountRows(Filter(Gallery3.AllItems,Lower('Created By'.Email)=Lower(userinfo)))<1 &&

Today()<Date(2019,07,25); !_ispeoplemanager, true,false

)

Helpful resources

Announcements
firstImage

Watch Sessions On Demand!

Continue your learning in our online communities.

Top Community Contributors for July 2019

Top Community Contributors for July 2019

Let's thank our top community contributors

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

FirstImage

Power Platform World Tour

Coming to a city near you

thirdimage

PowerApps Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

FourthImage

Join PowerApps User Group!!

Connect, share, and learn with your peers year-round

FifthImage

Dynamics 365 and Power Platform April 2019 Release notes

Features releasing from April 2019 through September 2019!

Users Online
Currently online: 223 members 4,744 guests
Please welcome our newest community members: