You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Acumatica自定义Action无法隐藏主工具栏显示,求解决方法

Acumatica自定义Action无法隐藏主工具栏显示的解决思路

问题描述

我有一个用于启动自定义报表的Acumatica自定义Action,代码如下:

public PXAction<PMProject> projectRegDet;
[PXUIField(DisplayName = "Project Register Detailed")]
[PXButton(DisplayOnMainToolbar = false, CommitChanges = true, Category = "Reports")]
protected virtual void ProjectRegDet()
{
    PMProject proj = Base.Project.Current;

    if (proj.ContractCD != null)
    {
        Dictionary<string, string> parameters = new Dictionary<string, string>();
        parameters["ProjectID"] = proj.ContractCD;

        throw new PXReportRequiredException(parameters, "LFS99002", null);
    }
}

该功能运行正常,且已添加到操作菜单(椭圆按钮)的“Reports”分组,但无法使其不显示在主工具栏。尝试过代码中设置[PXButton(DisplayOnMainToolbar = false)]、自定义项目中设置Action可见性为false、ASPX中添加回调命令并设置可见性为false,所有操作均无效。

解决思路

  • 排查重复Action定义:确认自定义项目或基础项目中没有重复注册同名的projectRegDet Action,重复定义会导致属性设置被覆盖。
  • 修正ASPX页面配置:在ASPX文件中找到对应Action的<px:PXButton>标签,同时设置DisplayOnMainToolbar="False"和Visible="False",并检查父容器是否存在强制显示的配置。示例配置:
    <px:PXButton runat="server" ID="btnprojectRegDet" CommandName="projectRegDet" DisplayOnMainToolbar="False" Visible="False" />
    
  • 用PXOverride覆盖基础Action:如果该Action继承自基础图,通过PXOverride特性重写Action并重新设置DisplayOnMainToolbar属性,确保自定义配置生效。
  • 清除缓存并重新发布:清除Acumatica网站缓存、重新发布自定义项目,重启应用池后再测试,避免缓存导致配置未更新。
  • 检查报表自动注册逻辑:部分报表会自动在工具栏生成Action,排查是否有其他代码(如报表DAC扩展、图扩展)自动将该报表Action添加到主工具栏,修改相关逻辑。
  • 验证权限配置:检查用户角色的权限设置,确认没有权限规则强制显示该Action在主工具栏。

内容的提问来源于stack exchange,提问作者pmfith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:23:16