Acumatica и Dashboard Параметры и Селектор и PKID - PullRequest
1 голос
/ 04 марта 2020

Мы пытаемся иметь параметр, который имеет опцию селектора для всплывающего списка пользователей. Когда выбран этот параметр, мы хотим, чтобы PKID заполнял поле параметра. Затем мы будем использовать это поле параметра во всех фильтрах виджетов.

Я не могу найти объекты / поля схемы, которые дают желаемый конечный результат.

Мы попробовали OwnerID из CROpportunity безрезультатно.

enter image description here

Мы пытаемся получить элемент управления селектором для отображения PKID и имени пользователя во всплывающем окне селектора, а после выбора значения PKID должен go в качестве поля ввода и показать результат. Для этого я создал несвязанное поле в Users DA C и написал селектор для него.

[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

1 Ответ

1 голос
/ 04 марта 2020

Проблема, по-видимому, заключается в точном определении того, что вы хотите показать в селекторе.

Мы пытаемся создать параметр, который имеет опцию селектора для всплывающего списка пользователей

Я понимаю это как представление данных 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> { }

Результат на экране: enter image description here

...