如何在Acumatica界面中对非管理员用户隐藏Tools下拉按钮?
解决Acumatica非管理员用户隐藏Tools按钮的问题
在Acumatica里,Tools按钮通常不会直接在ASPX文件中配置显示规则,而是通过权限配置或代码逻辑实现针对性隐藏,具体操作方法如下:
方法1:通过角色权限配置
- 先找到目标界面的屏幕ID,可在界面右上角帮助图标旁查看
- 进入系统管理 > 权限 > 角色,打开需要设置的非管理员角色
- 在屏幕权限标签页,定位到对应屏幕,展开后找到
Access to Tools或类似命名的权限项,取消勾选该权限 - 保存角色配置,用户重新登录后,Tools按钮会自动隐藏
方法2:通过代码扩展控制显示
如果权限配置中没有对应选项,可在界面的Graph扩展里添加逻辑:
- 创建继承自目标界面Graph的扩展类
- 在
Initialize方法中,判断当前用户角色,非管理员则隐藏Tools按钮:
public class TargetGraphExtension : PXGraphExtension<TargetBaseGraph> { public override void Initialize() { base.Initialize(); // 校验当前用户是否为管理员 bool isAdmin = PXAccess.GetRoles().Any(r => r.RoleName == "Administrator"); if (!isAdmin) { // 定位Tools按钮并设置隐藏 PXToolBarButton toolsBtn = Base.Toolbar.Tools.OfType<PXToolBarButton>().FirstOrDefault(t => t.Text == "Tools"); if (toolsBtn != null) { toolsBtn.Visible = false; } } } }
- 将扩展类部署到Acumatica实例,重启应用后生效
注意事项
- 部分Acumatica版本中,Tools按钮的显示可能和屏幕的
Full Access权限绑定,需确认角色的屏幕权限级别 - 若为自定义界面,需确保Toolbar中Tools按钮设置了明确ID,方便代码定位
内容的提问来源于stack exchange,提问作者Stephen Hadinjoto
相关产品推荐
相关产品推荐

