Acumatica 和仪表板参数和选择器以及 PKID
Acumatica and Dashboard Parameters and Selector and PKID
我们正在尝试使用一个参数,该参数具有用于弹出用户列表的选择器选项。选择后,我们希望 PKID 填充参数字段。然后我们将在所有小部件过滤器中使用该参数字段。
我无法找到产生所需最终结果的任何模式object/fields。
我们尝试了 CROpportunity 中的 OwnerID,但无济于事。
我们正在尝试实现一个选择器控件以在选择器弹出窗口中显示 PKID 和用户名,并且在选择值时,PKID 应该作为输入字段并显示结果。为此,我在用户 DAC 中创建了一个未绑定字段并为其编写了选择器。
[PXUIField(DisplayName="Associate")]
[PXSelector(typeof(Search<Users.pKID>), new Type[] { typeof(Users.pKID), typeof(Users.displayName) },
SubstituteKey = typeof(Users.pKID), DescriptionField = typeof(Users.displayName))]
public virtual Guid? UsrKWInput { get; set; }
public abstract class usrKWInput : PX.Data.BQL.BqlGuid.Field<usrKWInput> { }
使用上面的代码,我在选择器弹出窗口中得到了我需要的东西,但是在选择值之后出现错误:
Failed to convert parameter value from a String to a Guid
问题似乎在于准确识别您要在选择器中显示的内容。
We are trying to have a parameter that has a selector option to popup
a list of users
我将此理解为 Users
页面 (SM201010) 中的 UserList
数据视图。
该数据视图中的选择器字段是 Users.Username
:
public abstract class username : PX.Data.BQL.BqlString.Field<username> { }
protected string _username;
[PXDBString(64, IsKey = true, IsUnicode = true, InputMask = "")]
[PXDefault]
[PXUIField(DisplayName = "Login", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<Users.username, Where<Users.isHidden, Equal<False>>>))]
[PXFieldDescription]
public virtual String Username
{
get { return _username; }
set { _username = value != null ? value.Trim() : null; }
}
编辑:
要在数据库中保留 PKID 并在选择器中同时显示 PKID 和 DisplayName,试试这个:
[PXDBGuid]
[PXUIField(DisplayName = "User", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<Users.pKID, Where<Users.isHidden, Equal<False>>>), DescriptionField = typeof(Users.displayName))]
[PXFieldDescription]
public virtual Guid? UsrUser { get; set; }
public abstract class usrUser : PX.Data.BQL.BqlGuid.Field<usrUser> { }
屏幕上的结果:
我们正在尝试使用一个参数,该参数具有用于弹出用户列表的选择器选项。选择后,我们希望 PKID 填充参数字段。然后我们将在所有小部件过滤器中使用该参数字段。
我无法找到产生所需最终结果的任何模式object/fields。
我们尝试了 CROpportunity 中的 OwnerID,但无济于事。
我们正在尝试实现一个选择器控件以在选择器弹出窗口中显示 PKID 和用户名,并且在选择值时,PKID 应该作为输入字段并显示结果。为此,我在用户 DAC 中创建了一个未绑定字段并为其编写了选择器。
[PXUIField(DisplayName="Associate")]
[PXSelector(typeof(Search<Users.pKID>), new Type[] { typeof(Users.pKID), typeof(Users.displayName) },
SubstituteKey = typeof(Users.pKID), DescriptionField = typeof(Users.displayName))]
public virtual Guid? UsrKWInput { get; set; }
public abstract class usrKWInput : PX.Data.BQL.BqlGuid.Field<usrKWInput> { }
使用上面的代码,我在选择器弹出窗口中得到了我需要的东西,但是在选择值之后出现错误:
Failed to convert parameter value from a String to a Guid
问题似乎在于准确识别您要在选择器中显示的内容。
We are trying to have a parameter that has a selector option to popup a list of users
我将此理解为 Users
页面 (SM201010) 中的 UserList
数据视图。
该数据视图中的选择器字段是 Users.Username
:
public abstract class username : PX.Data.BQL.BqlString.Field<username> { }
protected string _username;
[PXDBString(64, IsKey = true, IsUnicode = true, InputMask = "")]
[PXDefault]
[PXUIField(DisplayName = "Login", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<Users.username, Where<Users.isHidden, Equal<False>>>))]
[PXFieldDescription]
public virtual String Username
{
get { return _username; }
set { _username = value != null ? value.Trim() : null; }
}
编辑: 要在数据库中保留 PKID 并在选择器中同时显示 PKID 和 DisplayName,试试这个:
[PXDBGuid]
[PXUIField(DisplayName = "User", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<Users.pKID, Where<Users.isHidden, Equal<False>>>), DescriptionField = typeof(Users.displayName))]
[PXFieldDescription]
public virtual Guid? UsrUser { get; set; }
public abstract class usrUser : PX.Data.BQL.BqlGuid.Field<usrUser> { }
屏幕上的结果: