acumatica
Расширение списка объектов, поддерживаемых задачами, событиями и действиями
Поиск…
Вступление
В этом разделе вы узнаете, как расширить поле «Описание связанного объекта» с помощью настраиваемого объекта для «Задачи, события и действия».
Добавление заданий тестовой работы в поле Описание связанного объекта
Предположим, вы уже создали специальный экран « Заказы на тестовые задания» для управления заказами на тестовые работы в вашем приложении 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 к селектору связанных объектов , вы должны выполнить следующие шаги:
Для
PXNoteAttribute
в TestWorkOrder.NoteID установитеShowInReferenceSelector
свойстваShowInReferenceSelector
значение True и определите выражение BQL для выбора записей данных, отображаемых в поиске Entity :[PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>))] public virtual Guid? NoteID { get; set; }
Украсьте ЦАП
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
тестовых работ» в данном примере.Украсьте поля
TestWorkOrder
с помощьюPXFieldDescriptionAttribute
. Эти значения полей будут объединены в одну текстовую метку, представляющую ссылочный тестовый порядок работы в поле « Связанное сущность» :... [PXFieldDescription] public virtual string OrderNbr { get; set; } ... [PXFieldDescription] public virtual String Status { get; set; } ... [PXFieldDescription] public virtual string POOrderNbr { get; set; }
Определите список столбцов, отображаемых в поиске 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 должны полностью поддерживаться полем « Связанное сущность» в «Задачи, события и действия»