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определяет удобное имя дляTestWorkOrderDAC ( тестовый рабочий заказ в этом случае), который будет доступен в раскрывающемся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 должны полностью поддерживаться полем « Связанное сущность» в «Задачи, события и действия»


