我正在尝试在屏幕上添加一个新的工具栏按钮(CR306000)。我已经自定义了Crcasemaint DAC,但仍然没有显示按钮。任何人都可以建议。
复制了这一点,问题和解决方案是pxAction应该是公开的。在上面的样本中标记为私人。
代码如下:
public class CaseExtension : PXGraphExtension<CRCaseMaint>
{
public PXAction<CRCase> Change2;
[PXButton(CommitChanges=true)]
[PXUIField(DisplayName="Change Me")]
protected virtual void change2()
{
}
}
这是另一个原因。在基础图中有代码
public PXAction<CRCase> takeCase;
[PXUIField(DisplayName = "Take Case", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select)]
[PXButton]
public virtual IEnumerable TakeCase(PXAdapter adapter)
Acumatica本身具有button takecase,可以阻止您的按钮takecase。您需要了解,为什么需要另一个按钮采用Case,因为Acumatica团队已经实施了它。您确定要替换它吗?
您需要以下步骤:
1.创建类库(CL)。
2.从px开始的Acumatica文件夹中创建的Cl dll中的参考。*
3.在CL添加新类crcasemaintext中,具有这样的成员takecase:
public class CRCaseMaintExt : PXGraphExtension<CRCaseMaint>
{
private PXAction<CRCase> TakeCase2;
[PXButton]
[PXUIField(DisplayName = "Take Case")]
public virtual IEnumerable takeCase2(PXAdapter adapter)
{
//your custom code
return adapter.Get();
}
}
4。请注意,该案例在Bakecase和Bakecase Matter中。也很重要
5.构建Cl
6.将CL引用到您的Acumatica项目中。