Поиск…


Вступление

В этом разделе вы узнаете, как расширить поле «Описание связанного объекта» с помощью настраиваемого объекта для «Задачи, события и действия».

Добавление заданий тестовой работы в поле Описание связанного объекта

Предположим, вы уже создали специальный экран « Заказы на тестовые задания» для управления заказами на тестовые работы в вашем приложении Acumatica ERP:

введите описание изображения здесь

В поле NoteID уже NoteID поле TestWorkOrder , которое управляется на экране « TestWorkOrder тестовых работ» :

[Serializable]
public class TestWorkOrder : IBqlTable
{
    ...

    #region NoteID
    public abstract class noteID : IBqlField { }
    [PXNote]
    public virtual Guid? NoteID { get; set; }
    #endregion


    ...
}

и для свойства ActivityIndicator установлено значение True для контейнера PXForm верхнего уровня:

<px:PXFormView ID="form" runat="server" ActivityIndicator="true" DataSourceID="ds" Style="z-index: 100" DataMember="ITWO" Width="100%" >

Однако, когда для задания тестовой работы создается новая задача, событие или действие, элемент управления связанным объектом всегда пуст:

введите описание изображения здесь

Чтобы добавить объект Test Work Order к селектору связанных объектов , вы должны выполнить следующие шаги:

  1. Для PXNoteAttribute в TestWorkOrder.NoteID установите ShowInReferenceSelector свойства ShowInReferenceSelector значение True и определите выражение BQL для выбора записей данных, отображаемых в поиске Entity :

    [PXNote(
        ShowInReferenceSelector = true,
        Selector = typeof(Search<TestWorkOrder.orderNbr>))]
    public virtual Guid? NoteID { get; set; }
    
  1. Украсьте ЦАП TestWorkOrder с PXCacheNameAttribute и PXPrimaryGraphAttribute :

    [PXLocalizable]
    public static class Messages
    {
        public const string Opportunity = "Test Work Order";
    }
    
    [Serializable]
    [PXCacheName(Messages.Opportunity)]
    [PXPrimaryGraph(typeof(TestWorkOrderEntry))]
    public class TestWorkOrder : IBqlTable
    {
        ...
    }
    

    PXCacheName определяет удобное имя для TestWorkOrder DAC ( тестовый рабочий заказ в этом случае), который будет доступен в раскрывающемся TestWorkOrder Тип . PXPrimaryGraph определяет страницу ввода, на которую пользователь перенаправляется для редактирования рабочего PXPrimaryGraph на тестирование, который является экраном « PXPrimaryGraph тестовых работ» в данном примере.

  2. Украсьте поля TestWorkOrder с помощью PXFieldDescriptionAttribute . Эти значения полей будут объединены в одну текстовую метку, представляющую ссылочный тестовый порядок работы в поле « Связанное сущность» :

    ...
    [PXFieldDescription]
    public virtual string OrderNbr { get; set; }
    
    ...
    [PXFieldDescription]
    public virtual String Status { get; set; }
    
    ...
    [PXFieldDescription]
    public virtual string POOrderNbr { get; set; }
    
  3. Определите список столбцов, отображаемых в поиске Entity , выбрав один из следующих подходов:

    а. Используйте свойство PXNoteAttribute.FieldList (получает наивысший приоритет):

    public abstract class noteID : IBqlField { }
    [PXNote(
        ShowInReferenceSelector = true,
        Selector = typeof(Search<TestWorkOrder.orderNbr>),
        FieldList = new Type[]
        {
            typeof(TestWorkOrder.orderNbr),
            typeof(TestWorkOrder.orderDate),
            typeof(TestWorkOrder.status),
            typeof(TestWorkOrder.poOrderNbr)
        })]
    public virtual Guid? NoteID { get; set; }
    

    б. Заимствуйте список столбцов, определенных для поиска OrderNbr :

    public abstract class orderNbr : IBqlField { }
    [PXDBString(15, IsKey = true, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC")]
    [PXDefault()]
    [PXUIField(DisplayName = "ITWO Nbr.", Visibility = PXUIVisibility.SelectorVisible)]
    [PXSelector(typeof(Search<TestWorkOrder.orderNbr>),
        typeof(TestWorkOrder.orderNbr),
        typeof(TestWorkOrder.orderDate),
        typeof(TestWorkOrder.status),
        typeof(TestWorkOrder.poOrderNbr))]
    [PXFieldDescription]
    public virtual string OrderNbr { get; set; }
    

    с. Показать все поля TestWorkOrder с видимостью, установленной для PXUIVisibility.SelectorVisible :

    ...
    [PXUIField(DisplayName = "ITWO Nbr.", Visibility = PXUIVisibility.SelectorVisible)]
    public virtual string OrderNbr { get; set; }
    
    ...
    [PXUIField(DisplayName = "Order Date", Visibility = PXUIVisibility.SelectorVisible)]
    public virtual DateTime? OrderDate { get; set; }
    
    ...
    [PXUIField(DisplayName = "Status", Visibility = PXUIVisibility.SelectorVisible)]
    public virtual String Status { get; set; }
    
    ...
    [PXUIField(DisplayName = "Purchase Order", Visibility = PXUIVisibility.SelectorVisible)]
    public virtual string POOrderNbr { get; set; }
    

После того, как вы выполнили 4 шага выше, Test Work Orders должны полностью поддерживаться полем « Связанное сущность» в «Задачи, события и действия»

введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow