acumatica - 行选择不执行
问题描述
我使用 RowSelecting 事件来执行 BQL 查询。我选择此事件,因为不建议在 RowSelected 事件中添加 BQL。我的目的是分配一个非数据库绑定字段(布尔值),用于启用/禁用字段。在 RowSelected 事件期间,读取该值,并根据该值启用/禁用特定字段。
在使用调试器时,我注意到第一次打开表单时不会触发 RowSelecting 事件。取消按钮会触发事件。然后我注意到 api 文档...RowSelected 和 FieldSelecting 事件发生在事件序列期间 - 记录显示。没有提到行选择。
我的目标是禁用基于某些 BQL 的字段。执行 BQL 和禁用该字段的最佳方法是什么?我应该使用 RowSelected 吗?文档说要避免它。就我而言,我指的是 SO 发票输入表格……特别是 SOInvoice DAC。
解决方案
您可以在图表中扩展 DAC 以添加 PXUIEnabled 属性来执行此操作。
我更新了我的示例以包含一个控制启用和禁用另一个字段的非数据绑定字段。
在 SOInvoiceExt DAC 扩展中,我有...
public class SOInvoiceExt : PXCacheExtension<PX.Objects.SO.SOInvoice>
{
#region UsrExtRefNbrDisabled
[PXBool]
[PXUIField(DisplayName = "ExtRefNbr Disabled?")]
public virtual bool? UsrExtRefNbrDisabled { get; set; }
public abstract class usrExtRefNbrDisabled : PX.Data.BQL.BqlBool.Field<usrExtRefNbrDisabled> { }
#endregion
}
然后我将新的自定义字段添加到屏幕上。确保将 CommitChanges 设置为 True。
然后在 Graph Extension 中,我将 PXUIEnabled 属性与 CachedAttached 事件合并
[PXUIEnabled(typeof(Where<SOInvoiceExt.usrExtRefNbrDisabled, NotEqual<True>>))]
[PXMergeAttributes(Method = MergeMethod.Merge)]
protected virtual void SOInvoice_ExtRefNbr_CacheAttached(PXCache cache)
{ }
我能够选中/取消选中该框并启用/禁用该字段。
这是关于该主题的旧博客文章:https ://asiablog.acumatica.com/2016/11/pxuienabled-and-pxuirequired-attributes.html
推荐阅读
- arrays - 如何在 Reactjs 中使用 clickHandler 和 useState 更新对象数组
- json - 如何在 Swift 中处理 json null 值?
- css - 如何使用 purescript-css 将 CSS 边距属性设置为自动?
- node.js - 如何修复“验证错误:用户验证失败:名称:需要路径‘名称’。” 蒙古错误?
- javascript - 如何通过我在 https 上托管的 reactjs-app 向我在 http 上托管的 rest-api 提出上诉来解决错误
- java - 如何以最小顺序从反馈列表中找到每个用户给出的最新反馈?
- cassandra - 在 cassandra 中禁用读取修复
- ruby-on-rails - Rails/React/Yarn:如何从应用程序的根目录运行“yarn start”
- r - 避免嵌套循环但使用 (l)apply 迭代 2 个值?
- c# - 从单独的类中查看 ThreadStatic 变量