acumatica
Extension de la liste des entités prises en charge par les tâches, les événements et les activités
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:
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:
Pour ajouter l'entité Test Work Order au sélecteur de description d'entité associée , procédez comme suit:
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; }
Décorez le DAC
TestWorkOrder
avec lePXCacheNameAttribute
et lePXPrimaryGraphAttribute
:[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 DACTestWorkOrder
( ordre de travail de test dans ce cas), qui sera disponible dans la liste déroulante Type . L'attributPXPrimaryGraph
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é.Décorez certains champs
TestWorkOrder
avecPXFieldDescriptionAttribute
. 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; }
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 surPXUIVisibility.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.