Miklix

Aggiungere il metodo di visualizzazione o modifica tramite estensione in Dynamics 365

Pubblicato: 16 febbraio 2025 alle ore 11:55:38 UTC
Ultimo aggiornamento: 12 gennaio 2026 alle ore 08:57:20 UTC

In questo articolo spiego come utilizzare un'estensione di classe per aggiungere un metodo di visualizzazione a una tabella e a un modulo in Dynamics 365 for Operations, inclusi esempi di codice X++.


Questa pagina è stata tradotta automaticamente dall'inglese per renderla accessibile al maggior numero di persone possibile. Purtroppo, la traduzione automatica non è ancora una tecnologia perfezionata, quindi possono verificarsi degli errori. Se preferite, potete consultare la versione originale in inglese qui:

Add Display or Edit Method via Extension in Dynamics 365

Sebbene pianificare di utilizzare metodi di visualizzazione o modifica in Dynamics sia qualcosa che in genere dovrebbe farti considerare se potresti progettare la tua soluzione in un modo diverso, a volte questi metodi rappresentano la soluzione migliore.

Nelle versioni precedenti di Dynamics e Axapta era molto semplice creare metodi di visualizzazione o modifica su tabelle e moduli, ma quando di recente mi è capitato di dover creare il mio primo metodo di modifica in Dynamics 365, ho scoperto che la procedura per farlo è leggermente diversa.

Esistono evidentemente diversi approcci validi, ma quello che trovo migliore (sia in termini di intuitività che di estetica del codice) è l'utilizzo di un'estensione di classe. Sì, è possibile utilizzare le estensioni di classe per aggiungere metodi ad altri tipi di elementi oltre alle classi - in questo caso una tabella, ma funziona anche per i form.

Per prima cosa, crea una nuova classe. Puoi chiamarla come preferisci, ma per qualche motivo deve avere il suffisso "_Extension". Supponiamo che tu debba aggiungere un metodo di visualizzazione a CustTable, potresti ad esempio chiamarla MyCustTable_Extension.

La classe deve essere decorata con ExtensionOf per far sapere al sistema cosa si sta estendendo, in questo modo:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

Ora puoi semplicemente implementare il tuo metodo di visualizzazione in questa classe, come avresti fatto direttamente sulla tabella nelle versioni precedenti di Dynamics: "this" fa addirittura riferimento alla tabella, così puoi accedere ai campi e ad altri metodi.

Ad esempio, una classe con un metodo di visualizzazione semplice (e completamente inutile) che restituisce semplicemente il numero di conto del cliente potrebbe apparire così:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

Ora, per aggiungere il metodo di visualizzazione a un modulo (o a un'estensione del modulo, se non è possibile modificare direttamente il modulo), è necessario aggiungere manualmente un campo al modulo e assicurarsi di utilizzare il tipo corretto (stringa in questo esempio).

Quindi, sul controllo imposterai DataSource su CustTable (o qualunque sia il nome della tua origine dati CustTable) e DataMethod su MyCustTable_Extension.displayAccountNum (assicurati di includere il nome della classe, altrimenti il compilatore non riuscirà a trovare il metodo).

E il gioco è fatto :-)

Aggiornamento: non è più necessario includere il nome della classe di estensione quando si aggiunge il metodo di visualizzazione a un modulo, ma al momento della pubblicazione originale lo era. Lascio qui le informazioni nel caso in cui alcuni lettori utilizzino ancora versioni precedenti.

Ulteriori letture

Se ti è piaciuto questo post, potrebbero piacerti anche questi suggerimenti:


Condividi su BlueskyCondividi su FacebookCondividi su LinkedInCondividi su TumblrCondividi su XCondividi su LinkedInAggiungi su Pinterest

Mikkel Christensen

Sull'autore

Mikkel Christensen
Mikkel è il creatore e proprietario di miklix.com. Ha oltre 20 anni di esperienza come programmatore di computer/sviluppatore di software ed è attualmente impiegato a tempo pieno in una grande azienda IT europea. Quando non scrive sul blog, dedica il suo tempo libero a una vasta gamma di interessi, hobby e attività, che in qualche modo si riflettono nella varietà di argomenti trattati in questo sito.