首页 > 解决方案 > Acumatica 和仪表板参数以及选择器和 PKID

问题描述

我们正在尝试使用一个具有选择器选项的参数来弹出用户列表。选中后,我们希望 PKID 填充参数字段。然后,我们将在所有小部件过滤器中使用该参数字段。

我找不到任何产生所需最终结果的模式对象/字段。

我们尝试了 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> { }

使用上面的代码,我在选择器弹出窗口中得到了我需要的东西,但是在选择值之后我得到了错误:

无法将参数值从字符串转换为 Guid

标签: acumatica

解决方案


问题似乎是准确识别您要在选择器中显示的内容。

我们正在尝试使用具有选择器选项的参数来弹出用户列表

我将其理解为页面中的UserList数据视图Users(SM201010)。

该数据视图中的选择器字段是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> { }

屏幕上的结果: 在此处输入图像描述


推荐阅读