将按钮添加到案例屏幕上的顶部工具栏
Add button to the top toolbar on Case screen
我正在尝试在案例屏幕 (CR306000) 的 "TAKE CASE" 旁边添加一个新的工具栏按钮。我已经自定义 CRCaseMaint DAC,但按钮仍然没有出现。谁能给个建议。
您需要执行以下步骤:
1.创建class库(CL)。
2. 从 PX 开始的 Acumatica 文件夹中创建的 CL dll 中的引用。*
3. 在 CL 中添加新的 class 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 中的 case 和 takeCase 很重要。也很重要 PXAction
5. 构建 CL
6. 将对 CL 的引用添加到您的 Acumatica 项目中。
还有一个原因。在基础图中有代码
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 团队已经实现了它。您确定要更换它吗?
复制了这个,问题和解决方案是 PXAction 应该是 public。在上面的示例中,它被标记为私有。
代码如下:
public class CaseExtension : PXGraphExtension<CRCaseMaint>
{
public PXAction<CRCase> Change2;
[PXButton(CommitChanges=true)]
[PXUIField(DisplayName="Change Me")]
protected virtual void change2()
{
}
}
我正在尝试在案例屏幕 (CR306000) 的 "TAKE CASE" 旁边添加一个新的工具栏按钮。我已经自定义 CRCaseMaint DAC,但按钮仍然没有出现。谁能给个建议。
您需要执行以下步骤:
1.创建class库(CL)。
2. 从 PX 开始的 Acumatica 文件夹中创建的 CL dll 中的引用。*
3. 在 CL 中添加新的 class 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 中的 case 和 takeCase 很重要。也很重要 PXAction
5. 构建 CL
6. 将对 CL 的引用添加到您的 Acumatica 项目中。
还有一个原因。在基础图中有代码
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 团队已经实现了它。您确定要更换它吗?
复制了这个,问题和解决方案是 PXAction 应该是 public。在上面的示例中,它被标记为私有。
代码如下:
public class CaseExtension : PXGraphExtension<CRCaseMaint>
{
public PXAction<CRCase> Change2;
[PXButton(CommitChanges=true)]
[PXUIField(DisplayName="Change Me")]
protected virtual void change2()
{
}
}