acumatica - 带有扩展库的自定义按钮
问题描述
任何人都可以帮助我使用自定义按钮。我已经添加了它,但它不起作用。我做错了什么?
- 我创建了一个自定义项目“测试”
- 添加了具有以下代码的扩展库:
public class ProjectEntry_Extension : PXGraphExtension<ProjectEntry>
{
public const string TestMsg = "Hello World";
public static bool IsActive()
{
return true;
}
[PXUIField(DisplayName = "TestMethod")]
[PXButton]
public void TestMethod()
{
throw new PXException(TestMsg);
}
}
- 在屏幕上添加了一个按钮,并在我的测试方法 TestMethod 中添加了一个单击事件, 请参见此处的屏幕截图
- 发布项目
也许有人可以分享一份详细且易于理解的手册,说明如何使用扩展库添加按钮,或者可能是视频说明的链接。我查看了 Aсumatiсa 文档 - 但显然我误解了它。
解决方案
尝试将 PXAction 类型添加到您的扩展中,并使用 IEnumerable 作为方法返回类型。用于 PXAction 的类型将对应于屏幕的主 DAC。
public class ProjectEntry_Extension : PXGraphExtension<ProjectEntry>
{
public static bool IsActive() => true;
public const string TestMsg = "Hello World";
public PXAction<PMProject> testMethod;
[PXUIField(DisplayName = "TestMethod")]
[PXButton]
public virtual IEnumerable TestMethod(PXAdapter adapter)
{
throw new PXException(TestMsg);
// used to return on standard Actions
return adapter.Get();
}
}
对于放置在表单上的按钮,我不确定,但我相信您应该展开 AutoCallBack 部分并使用您的方法名称作为 Command 属性的值,而不是使用 click。您可能还需要将 AutoCallBack 目标值设置为 ds。
推荐阅读
- jquery - 模态中的select2不可聚焦
- python - 无法通过代码退出程序
- racket - SICP 练习 1.11 中的球拍错误
- javascript - 在 Angular2 和 Gridster2 中动态添加的元素上动态注入组件
- javascript - 如何在 JavaScript 中创建特殊的 OR 语句
- r - R markdown KableExtra 乳胶表 booktabs 不工作
- string - 使用多个用户输入的 VB 2010 计算器 - “从字符串到整数的转换无效”
- gensim - pyLDAvis 与 Mallet LDA 实现:LdaMallet 对象没有属性“推理”
- perl - 将文本文件解析为嵌套数据结构
- mysql - CakePHP 3.0:由名为 Group 的类引起的 Mysql 语法错误