在“案例”屏幕上的顶部工具栏中添加按钮

时间:2015-05-05 11:50:30

标签: acumatica

我正在尝试在案例屏幕(CR306000)中的“TAKE CASE”旁边添加一个新的工具栏按钮。我已经定制了CRCaseMaint DAC,但仍然没有出现按钮。任何人都可以建议。

3 个答案:

答案 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()
    {

    }
}