acumatica
Ampliación de la lista de entidades apoyadas por tareas, eventos y actividades
Buscar..
Introducción
En este tema, aprenderá cómo ampliar el campo Descripción de entidad relacionada con una entidad personalizada para tareas, eventos y actividades.
Agregar órdenes de trabajo de prueba al campo de descripción de entidad relacionada
Supongamos que ya ha creado la pantalla de órdenes de trabajo de prueba personalizadas para administrar las órdenes de trabajo de prueba en su aplicación Acumatica ERP:
Ya NoteID
campo NoteID
declarado en el DAC de TestWorkOrder
, administrado en la pantalla de órdenes de trabajo de prueba :
[Serializable]
public class TestWorkOrder : IBqlTable
{
...
#region NoteID
public abstract class noteID : IBqlField { }
[PXNote]
public virtual Guid? NoteID { get; set; }
#endregion
...
}
y la propiedad ActivityIndicator
se establece en True para el contenedor PXForm
nivel PXForm
:
<px:PXFormView ID="form" runat="server" ActivityIndicator="true" DataSourceID="ds" Style="z-index: 100" DataMember="ITWO" Width="100%" >
Sin embargo, cuando se crea una nueva tarea, evento o actividad para una orden de trabajo de prueba, el control Descripción de la entidad relacionada está siempre vacío:
Para agregar la entidad Orden de trabajo de prueba al selector Descripción de entidad relacionada , debe completar los siguientes pasos:
Para el
PXNoteAttribute
en el campo TestWorkOrder.NoteID, establecerShowInReferenceSelector
propiedad en True y definir la expresión BQL para seleccionar registros de datos que se muestran en las operaciones de búsqueda Entidad:[PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>))] public virtual Guid? NoteID { get; set; }
Decore el DAC de
TestWorkOrder
con elPXCacheNameAttribute
y elPXPrimaryGraphAttribute
:[PXLocalizable] public static class Messages { public const string Opportunity = "Test Work Order"; } [Serializable] [PXCacheName(Messages.Opportunity)] [PXPrimaryGraph(typeof(TestWorkOrderEntry))] public class TestWorkOrder : IBqlTable { ... }
El atributo
PXCacheName
define el nombre fácil de usar para elTestWorkOrder
DAC ( Orden de trabajo de prueba en este caso), que estará disponible en el menú desplegable Tipo . El atributoPXPrimaryGraph
determina la página de entrada donde se redirige al usuario para editar una orden de trabajo de prueba, que es la pantalla de Órdenes de trabajo de prueba en el ejemplo dado.Decore algunos campos de
TestWorkOrder
con elPXFieldDescriptionAttribute
. Esos valores de campo se concatenarán en una sola etiqueta de texto, que representa la orden de trabajo de prueba referenciada dentro del campo Descripción de la entidad relacionada :... [PXFieldDescription] public virtual string OrderNbr { get; set; } ... [PXFieldDescription] public virtual String Status { get; set; } ... [PXFieldDescription] public virtual string POOrderNbr { get; set; }
Definir la lista de columnas que se muestran en las operaciones de búsqueda Entidad por la elección de uno de los enfoques siguientes:
a. Use la propiedad
PXNoteAttribute.FieldList
(obtiene la prioridad más alta):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; }
segundo. Pida prestada la lista de columnas definidas para la búsqueda 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; }
do. Mostrar todos los campos de
TestWorkOrder
con la visibilidad establecida enPXUIVisibility.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; }
Después de completar los 4 pasos anteriores, las Órdenes de Trabajo de Prueba deben ser totalmente compatibles con el campo Descripción de la Entidad Relacionada en Tareas, Eventos y Actividades