我正在尝试在案例屏幕(CR306000)中的“TAKE CASE”旁边添加一个新的工具栏按钮。我已经定制了CRCaseMaint DAC,但仍然没有出现按钮。任何人都可以建议。
答案 0 :(得分:0)
您需要执行以下步骤:
1.创建类库(CL)
2.参考从Acumatica文件夹创建的CL dll,从PX开始。*
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。请注意,TakeCase中的那种情况和takeCase问题。也很重要PXAction
5.建立CL
6.将CL的引用添加到您的Acumatica项目中。
答案 1 :(得分:0)
这是另一个原因。在基础图中有代码
public PXAction<CRCase> takeCase;
[PXUIField(DisplayName = "Take Case", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select)]
[PXButton]
public virtual IEnumerable TakeCase(PXAdapter adapter)
Acumatica本身有按钮TakeCase,可以阻止按钮TakeCase。你需要了解,为什么你需要另一个按钮Take Case,因为Acumatica团队已经实现了它。你确定要替换吗?
答案 2 :(得分:0)
复制了这个并且问题和解决方案是PXAction应该是公开的。在上面的示例中标记为私有。
代码如下:
public class CaseExtension : PXGraphExtension<CRCaseMaint>
{
public PXAction<CRCase> Change2;
[PXButton(CommitChanges=true)]
[PXUIField(DisplayName="Change Me")]
protected virtual void change2()
{
}
}