要隐藏或显示操作按钮,您应该重新定义按钮的PXUIField属性的Visible参数 . 您可以使用以下方法之一更改操作按钮的属性:

在运行时动态地,在图形扩展的Initialize()方法中

静态地,通过覆盖图扩展中的操作属性

To Hide an Action Button at Run Time

在图表扩展中,添加以下代码 .

public override void Initialize()
{
base.Initialize();
Base.MyAction.SetVisible(false);
}

在添加的代码中,将MyAction替换为操作名称 .

To Hide or Show an Action Button Statically

要静态覆盖图形扩展中的操作属性,您应该声明PXAction类型的图形成员和委托 . 您应该在动作委托中附加一组新属性,并在图形扩展中声明 . 此外,您需要在基本图形操作上调用Press()方法 . 重新声明PXAction的成员后,您将阻止从无限循环执行操作委托 .

浏览原始操作声明并将声明复制到图表扩展 .

在操作声明中,将PXUIField属性的Visible参数设置为false,如以下代码段所示 .

... [PXUIField(...,Visible = false)] ......

使用以下代码模板替换操作委托 .

public virtual IEnumerable myAction(PXAdapter adapter){return Base.MyAction.Press(adapter); }

在代码模板中,将myAction和MyAction替换为相应的名称 .

在模板中,根据基本操作委托的签名重新定义操作委托参数和返回类型 .

如果您具有静态替换原始操作声明的自定义,则在将Acumatica ERP升级到新版本后,相同操作的新功能可能变得不可用 .

此外,如果在PXDataSource控件中声明了该按钮的回调命令,则可以通过自定义ASPX代码来隐藏该按钮 . 为此,在布局编辑器中,展开PXDataSource控件,选择适当的PXDSCallbackCommand元素,并将元素的Visible属性设置为False .