c# - 在 acumatica 中,如何获取选择器的值并使用它来填充另一个字段?
问题描述
如下图所示,我想尝试将 Selector 的值传递给 Attention 字段。我正在努力做到这一点,以便每当我选择一个新的选择器值时,Attention 字段都将使用选择器的值进行更新。
上图中的联系人选择器是一个自定义字段,所以我试图通过它的扩展来访问它。但是,我似乎无法让它工作。
这是显示字段设置方式的数据访问屏幕:
这是代码,因此您可以在需要时获取它:
[PXDBString(50)]
[PXUIField(DisplayName="Contact")]
[PXSelector(typeof(Search2<Contact.displayName,
LeftJoin<BAccount, On<BAccount.bAccountID, Equal<Contact.bAccountID>>>,
Where<Contact.contactType, Equal<ContactTypesAttribute.person>>>))]
[PXRestrictor(typeof(
Where<Current<PMContact.customerID>,
Like<Contact.bAccountID>>), "")]
以下是我尝试获取扩展名的两次尝试。我尝试在各种事件中使用这些代码;RowSelected、RowUpdated、FieldUpdated。似乎没有任何效果,这显然意味着我没有正确抓住扩展,但我不确定还有什么可以尝试的。
尝试 1
protected void PMContact_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{
var row = (PMContact)e.Row;
if (row == null) return;
PMContactExt rowExt = row.GetExtension<PMContactExt>();
if (rowExt != null) {
row.Attention = rowExt.UsrContactSelect;
}
}
尝试 2
protected void PMContact_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{
var row = (PMContact)e.Row;
if (row == null) return;
PMContact items = (PMContact)Base.ItemSettings.Current;
var itemExt = PXCache<PMContact>.GetExtension<PMContactExt>(items);
row.Attention = itemExt.UsrContactSelect;
}
这次尝试给了我关于 ItemSettings 部分的错误:
\App_Code\Caches\ProjectEntry.cs(43):错误 CS1061:“ProjectEntry”不包含“ItemSettings”的定义,并且找不到接受“ProjectEntry”类型的第一个参数的可访问扩展方法“ItemSettings”(你是缺少 using 指令或程序集引用?)
我有点坚持我还能尝试什么来实现这一点。
你有什么其他的建议?:)
解决方案
非常感谢@Hugues 和@Robert 的帮助!
正如 Hugues 所提到的,我的自定义字段有 CommitChanges=False,所以我将其更改为 true,瞧,它起作用了!
使用 RowSelected 事件效果很好,但我接受了 Robert 的建议并将其更改为 FieldUpdated 以确保我做的事情更合适。
这是我在触发事件时使用的代码:
protected void PMContact_UsrContactSelect_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
var row = (PMContact)e.Row;
if (row == null) return;
PMContactExt rowExt = row.GetExtension<PMContactExt>();
if (rowExt != null) {
row.Attention = rowExt.UsrContactSelect;
}
}
再次非常感谢!这个问题一直很顽固:D
推荐阅读
- logging - SAS:创建具有对数关系的图形
- botframework - skype bot 模拟真人
- node.js - 网络空闲 15-20 分钟后调用 sendTransaction 失败
- python - 如何访问另一个RDD中的RDD?
- android - 颤动 - 当我更改 textFormField 上的文本时,光标移动开始
- reactjs - 添加计数器以显示在 ap 标签中单击按钮的次数
- python-3.x - 输入单词时如何从 Tkinter 文本框中获取输入单词?
- julia - 保持 Julia 中的数据结构易于管理
- hibernate - 表单未正确提交:由于被认为是客户端错误,服务器无法或不会处理请求
- android - 能够滚动无休止的循环回收器视图,但无法单击特定列表项