web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / back to initial reques...
Power Apps
Unanswered

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

(0) ShareShare
ReportReport
Posted on by 397

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.

Categories:
  • yashag2255 Profile Picture
    24,769 Super User 2024 Season 1 on at

    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 Profile Picture
    397 on at

    @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. 

     

     

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @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.

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @rajkumar88 

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

  • rajkumar88 Profile Picture
    397 on at

    @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. 

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @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.

  • rajkumar88 Profile Picture
    397 on at

    @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 ? 

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @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...

     

  • rajkumar88 Profile Picture
    397 on at

    @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

    )

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @rajkumar88 

    No, your entire formula would need to evaluate to true or false.  That would not.  Try this instead:

    (
    CountRows(Filter(Gallery3.AllItems,Lower('Created By'.Email)=Lower(userinfo)))<1 && Today() < Date(2019,07,25) &&
    !_ispeoplemanager )

    Although I do caution that you have a hard coded date in that formula, but beyond that, this should make the button visible only if there are no records in the Gallery3 that were created by the user (Please verify that your "userinfo" is actually set to User().Email.  The name is not clear in this case - perhaps rename to userEmail) and today's date is less than 25 July, 2019 and the user is NOT a people manager.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 397 Super User 2026 Season 2

#2
Mohsin Ali Profile Picture

Mohsin Ali 354

#3
WarrenBelz Profile Picture

WarrenBelz 232 Most Valuable Professional

Last 30 days Overall leaderboard