如何解决属性 ID 选择器确定自定义字段 Acumatica 中的字段值
我在 AP303000 表单中创建了一个行级字段,我需要有属性 ID 选择器
namespace MidayaCustomizations
{
public class APTranExt : PXCacheExtension<PX.Objects.AP.APTran>
{
#region UsrAttributeSelection
[PXDBString(250)]
[PXUIField(displayName = "Attribute ID")]
[PXSelector(typeof(Search<CSAttribute.attributeID>),typeof(CSAttribute.attributeID),typeof(CSAttribute.description),typeof(CSAttribute.controlType))]
public virtual string UsrAttributeSelection { get; set; }
public abstract class usrAttributeSelection : PX.Data.BQL.BqlString.Field<usrAttributeSelection> { }
#endregion
#region UsrAttributeValues
[PXDBString(250)]
[PXUIField(displayName = "Attribute Values")]
public virtual string UsrAttributeValues { get; set; }
public abstract class usrAttributeValues : PX.Data.BQL.BqlString.Field<usrAttributeValues> { }
#endregion
}
}
我需要从该字段和 UsrAttributeValues 字段中获取属性 ID,应该填充来自该特定属性的值(例如,属性 ID“CSS”是一个下拉字段,在 UsrAttributeValues 字段中,这些值列表应该可供选择)。
namespace MidayaCustomizations
{
public class APInvoiceEntry_Extension : PXGraphExtension<APInvoiceEntry>
{
#region Event Handlers
protected void APTran_UsrAttributeSelection_FieldSelecting(PXCache cache,PXFieldSelectingEventArgs e)
{
APTran row = (APTran)e.Row;
if (row == null) return;
var rowExt = PXCache<APTran>.GetExtension<APTranExt>(row);
List<string> allowedValues = new List<string>();
List<string> allowedLabels = new List<string>();
foreach (CSAttributeDetail objCSAttributeDetail in PXSelect<CSAttributeDetail,Where<CSAttributeDetail.attributeID,Equal<required<APTranExt.usrAttributeSelection>>>>.Select(Base,rowExt.UsrAttributeSelection))
{
allowedValues.Add(objCSAttributeDetail.ValueID);
allowedLabels.Add(objCSAttributeDetail.Description);
}
e.ReturnState = PXStringState.CreateInstance(e.ReturnState,10,true,typeof(APTranExt.usrAttributeValues).Name,false,-1,string.Empty,allowedValues.ToArray(),allowedLabels.ToArray(),null);
}
#endregion
}
}
目前正在尝试使用字段选择事件处理程序从属性中获取值,但我遇到了错误,任何帮助将不胜感激。
解决方法
我附上一个示例项目供您测试。如果它适合你,我也会提供 VS 项目。
简而言之,我不是 100% 确定为什么您的代码会抛出错误。我的技术非常相似。唯一的区别是我将 Attributes 限制为 Combo 和 MultiSelect Combo 控件类型。同样在屏幕中,您必须在相关网格和列上打开矩阵模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。