acumatica
Estensione dell'elenco di entità supportate da attività, eventi e attività
Ricerca…
introduzione
In questo argomento imparerai come estendere il campo Descrizione entità correlate con un'entità personalizzata per Attività, Eventi e Attività.
Aggiunta di ordini di lavoro di prova al campo Descrizione entità correlate
Supponiamo che tu abbia già creato la schermata degli ordini di lavoro di prova personalizzati per gestire gli ordini di lavoro di prova nell'applicazione ERP Acumatica:
Esiste già NoteID
campo NoteID
dichiarato nel DAC TestWorkOrder
, gestito nella schermata Test degli ordini di lavoro :
[Serializable]
public class TestWorkOrder : IBqlTable
{
...
#region NoteID
public abstract class noteID : IBqlField { }
[PXNote]
public virtual Guid? NoteID { get; set; }
#endregion
...
}
e la proprietà ActivityIndicator
è impostata su True per il contenitore PXForm
livello PXForm
:
<px:PXFormView ID="form" runat="server" ActivityIndicator="true" DataSourceID="ds" Style="z-index: 100" DataMember="ITWO" Width="100%" >
Tuttavia, quando viene creata una nuova attività, evento o attività per un ordine di lavoro di prova, il controllo Descrizione entità relativa è sempre vuoto:
Per aggiungere l'entità Ordine di lavoro di prova al selettore Descrizione entità associata , è necessario completare i seguenti passaggi:
Per il campo
PXNoteAttribute
sul campo TestWorkOrder.NoteID , impostare la proprietàShowInReferenceSelector
su True e definire l'espressione BQL per selezionare i record di dati visualizzati nella ricerca Entity :[PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>))] public virtual Guid? NoteID { get; set; }
Decora il DAC
TestWorkOrder
conPXCacheNameAttribute
ePXPrimaryGraphAttribute
:[PXLocalizable] public static class Messages { public const string Opportunity = "Test Work Order"; } [Serializable] [PXCacheName(Messages.Opportunity)] [PXPrimaryGraph(typeof(TestWorkOrderEntry))] public class TestWorkOrder : IBqlTable { ... }
L'attributo
PXCacheName
definisce il nome user-friendly per il DACTestWorkOrder
( Test Work Order in questo caso), che sarà disponibile nel menu a discesa Type . L'attributoPXPrimaryGraph
determina la pagina di ingresso in cui un utente viene reindirizzato per la modifica di un ordine di lavoro di prova, che è la schermata Test degli ordini di lavoro nell'esempio fornito.Decorare alcuni campi
TestWorkOrder
conPXFieldDescriptionAttribute
. Tali valori di campo saranno concatenati in un'unica etichetta di testo, che rappresenta l'ordine di lavoro di test referenziato nel campo Descrizione entità correlate :... [PXFieldDescription] public virtual string OrderNbr { get; set; } ... [PXFieldDescription] public virtual String Status { get; set; } ... [PXFieldDescription] public virtual string POOrderNbr { get; set; }
Definire l'elenco di colonne visualizzate nella ricerca Entità scegliendo uno dei seguenti approcci:
un. Usa la proprietà
PXNoteAttribute.FieldList
(ottiene la massima 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. Prendere in prestito l'elenco di colonne definite per la ricerca 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. Mostra tutti i campi
TestWorkOrder
con Visibility impostato suPXUIVisibility.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; }
Dopo aver completato i 4 passaggi sopra, gli ordini di lavoro di prova devono essere pienamente supportati dal campo Descrizione entità correlate su Attività, Eventi e Attività