acumatica - Acumatica - 复合主键选择器
问题描述
如何为复合主键创建单独的选择器...像 OrderNbr 和 Revision nbr ...我在从 Order Nbr 选择器中选择值时遇到问题,如果修订 nbr 字段是默认值,它会设置值,否则 Order nbr 选择器无法设置Revision nbr 字段中的值..如何在从任何选择器中选择值时设置这两个字段。
解决方案
解决方案是让一个选择器查询引用另一个关键字段。
使用两个选择器控件 OrderType 和 OrderNumber 的销售订单示例:
// User selects the OrderType first
[PXSelector(typeof(Search<SOOrderType.orderType>))]
// OrderNumber Selector reference current OrderType value in selector query
[PXSelector(typeof(Search<SOOrder.orderNbr,
Where<SOOrder.orderType, Equal<Current<this.orderType>>>>)]
您还需要将该AutoRefresh
属性设置为,True
以便选择器在每次重新打开选择器对话框时重新执行查询。这确保它在示例中按订单类型正确过滤。
<px:PXSelector ID="edOrderType" runat="server" DataField="OrderType"
AutoRefresh="True" CommitChanges="True" DataSourceID="ds">
<px:PXSelector ID="edOrderNbr" runat="server" DataField="OrderNbr"
AutoRefresh="True" CommitChanges="True" DataSourceID="ds">
严格不可能让单个选择器对话框选择需要多个字段唯一的记录。在这些特殊情况下,另一种解决方案是添加另一个唯一的字段并根据该字段选择记录。请注意,对于您的用例,最好使用两个选择器控件。
为了实现这个替代解决方案Identity
,在数据库中添加一个类型列作为唯一字段,并用PXDBIdentity
属性装饰匹配的 DAC 字段。保持其他键不变。身份字段将自动递增,并根据选择器正常运行所需的单个字段保证唯一性。
推荐阅读
- python - matplotlib图例标签下key?
- python - 将 grequest 与地址块一起使用或一次全部使用的区别?
- java - 如何设置每次出现通知时都会播放的自定义声音?
- javascript - Javascript 事件处理程序从头开始执行所有函数
- android - 如何在 FragmentA 中对 FragmentB 进行编程?
- python - 为什么我的 keras 代码没有显示准确度值?
- android - 完成下载图片任务前for循环,导致图片无序
- c# - join 使用 DefaultIfEmpty() 返回 0
- ansible - Ansible 合并 json 对象
- javascript - AJAX 发送空对象