Recherche…


Introduction

Dans cette rubrique, vous apprendrez comment étendre le champ Description de l'entité associée avec une entité personnalisée pour les tâches, les événements et les activités.

Ajout d'ordres de travail de test au champ de description d'entité associée

Supposons que vous avez déjà créé l'écran personnalisé Test Work Orders pour gérer les ordres de travail de test dans votre application Acumatica ERP:

entrer la description de l'image ici

Il existe déjà NoteID champ NoteID déclaré dans le DAC TestWorkOrder , géré sur l'écran Test Work Orders :

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

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


    ...
}

et ActivityIndicator propriété ActivityIndicator est définie sur True pour le conteneur PXForm niveau PXForm :

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

Toutefois, lorsque de nouvelles tâches, événements ou activités sont créés pour un ordre de travail de test, le contrôle Description de l'entité associée est toujours vide:

entrer la description de l'image ici

Pour ajouter l'entité Test Work Order au sélecteur de description d'entité associée , procédez comme suit:

  1. Pour le PXNoteAttribute on TestWorkOrder.NoteID , définissez la propriété ShowInReferenceSelector sur True et définissez l'expression BQL pour sélectionner les enregistrements de données affichés dans la recherche d' entité :

    [PXNote(
        ShowInReferenceSelector = true,
        Selector = typeof(Search<TestWorkOrder.orderNbr>))]
    public virtual Guid? NoteID { get; set; }
    
  1. Décorez le DAC TestWorkOrder avec le PXCacheNameAttribute et le PXPrimaryGraphAttribute :

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

    L'attribut PXCacheName définit un nom convivial pour le DAC TestWorkOrder ( ordre de travail de test dans ce cas), qui sera disponible dans la liste déroulante Type . L'attribut PXPrimaryGraph détermine la page d'entrée où un utilisateur est redirigé pour modifier un bon de travail de test, qui est l'écran Test Work Orders dans l'exemple donné.

  2. Décorez certains champs TestWorkOrder avec PXFieldDescriptionAttribute . Ces valeurs de champ seront concaténées en une seule étiquette de texte, représentant l'ordre de travail de test référencé dans le champ Description de l'entité associée :

    ...
    [PXFieldDescription]
    public virtual string OrderNbr { get; set; }
    
    ...
    [PXFieldDescription]
    public virtual String Status { get; set; }
    
    ...
    [PXFieldDescription]
    public virtual string POOrderNbr { get; set; }
    
  3. Définissez la liste des colonnes affichées dans la recherche d' entité en choisissant l'une des approches ci-dessous:

    une. Utilisez la propriété PXNoteAttribute.FieldList (obtient la plus haute priorité):

    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; }
    

    b. Empruntez la liste des colonnes définies pour la recherche 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; }
    

    c. Afficher tous les champs TestWorkOrder avec Visibility défini sur 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; }
    

Après avoir effectué les 4 étapes ci-dessus, les ordres de travail de test doivent être entièrement pris en charge par le champ Description de l'entité associée des tâches, des événements et des activités.

entrer la description de l'image ici



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow