如何将使用以下代码创建的PXActionButton放在Acumatica的顶部导航栏中。
public override void Initialize()
{
if (!String.IsNullOrEmpty(Base.PrimaryView))
{
Type primaryViewItemType = Base.Views[Base.PrimaryView].Cache.GetItemType();
PXAction action = PXNamedAction.AddAction(Base, primaryViewItemType, "SubmitTicket", "Submit Ticket", TestClick);
}
}
public IEnumerable TestClick(PXAdapter adapter)
{
throw new PXException("Button clicked from graph" + Base.GetType().Name);
}
我试图在“框架”页面的Menu.aspx中进行编辑。但这似乎不是正确的选择。
是否可以通过PXGraphExtension中的代码在添加按钮的同时选择顶部导航作为容器?
答案 0 :(得分:1)
不能像其他常规屏幕(例如项目“ PM301000”)一样使用Acumatica项目编辑器自定义常规查询。这适用于所有后缀为“ PL”的屏幕。
编辑Menu.ASPX超出自定义范围,强烈建议不要这样做。为了实现您想要的功能,我将使用模板“ Grid(Grid View)”创建一个新的“自定义查询”屏幕,该模板在功能上等效于“ PM3010PL”。由于该屏幕将是“自定义查询”而不是“通用查询”,因此您可以像其他所有屏幕一样扩展图形和屏幕以对其进行自定义。
使按钮显示在顶部的技巧是用'PXProcessButton'属性而不是'PXButton'装饰动作事件处理程序:
public class ProjectEntry_Extension : PXGraphExtension<ProjectEntry>
{
public PXAction<PMProject> testBill;
[PXUIField(DisplayName = "Test Bill", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select)]
[PXProcessButton(Tooltip = "Test Bill")]
public virtual IEnumerable TestBill(PXAdapter adapter)
{
return adapter.Get();
}
}
然后,您在“自定义”屏幕(按钮操作->“编辑ASPX”)中声明该操作,这是您可以在常规屏幕上执行但不能在“一般查询”中执行的部分:
编辑: 对于最顶部的导航栏(屏幕截图中的蓝色),这完全超出了自定义范围。我猜您可以在ASP中解决问题,但是不能打包到定制中,将被定制认证过程拒绝。