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> { }

屏幕上的结果: