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:

introduzca la descripción de la imagen aquí

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:

introduzca la descripción de la imagen aquí

Para agregar la entidad Orden de trabajo de prueba al selector Descripción de entidad relacionada , debe completar los siguientes pasos:

  1. Para el PXNoteAttribute en el campo TestWorkOrder.NoteID, establecer ShowInReferenceSelector 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; }
    
  1. Decore el DAC de TestWorkOrder con el PXCacheNameAttribute y el PXPrimaryGraphAttribute :

    [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 el TestWorkOrder DAC ( Orden de trabajo de prueba en este caso), que estará disponible en el menú desplegable Tipo . El atributo PXPrimaryGraph 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.

  2. Decore algunos campos de TestWorkOrder con el PXFieldDescriptionAttribute . 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; }
    
  3. 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 en 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; }
    

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

introduzca la descripción de la imagen aquí



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow