Miklix

Afegiu un mètode de visualització o d'edició mitjançant l'extensió al Dynamics 365

Publicat: 5 de març del 2025, a les 19:28:53 UTC

En aquest article, explico com utilitzar una extensió de classe per afegir un mètode de visualització a una taula i un formulari al Dynamics 365 for Operations, exemples de codi X++ inclosos.


Aquesta pàgina es va traduir automàticament de l'anglès per tal de fer-la accessible al màxim de persones possible. Malauradament, la traducció automàtica encara no és una tecnologia perfeccionada, de manera que es poden produir errors. Si ho prefereixes, pots veure la versió original en anglès aquí:

Add Display or Edit Method via Extension in Dynamics 365

Tot i que la planificació d'utilitzar mètodes de visualització o edició a Dynamics és una cosa que en general us hauria de fer pensar si potser podríeu dissenyar la vostra solució d'una manera diferent, de vegades són la millor manera d'aconseguir.

En versions anteriors de Dynamics i Axapta, era molt fàcil crear mètodes de visualització o edició a taules i formularis, però quan fa poc vaig haver de fer el meu primer mètode d'edició al Dynamics 365, vaig descobrir que el procediment per fer-ho és una mica diferent.

Evidentment, hi ha diversos enfocaments vàlids, però el que trobo millor (tant pel que fa a la intuïtivitat com a la bellesa del codi) és utilitzar una extensió de classe. Sí, podeu utilitzar extensions de classe per afegir mètodes a altres tipus d'elements que no siguin classes, en aquest cas una taula, però també funciona per a formularis.

Primer, creeu una nova classe. Podeu anomenar-lo com vulgueu, però per alguna raó ha de tenir el sufix "_Extensió". Suposem que heu d'afegir un mètode de visualització a CustTable, per exemple podeu anomenar-lo MyCustTable_Extension.

La classe ha d'estar decorada amb ExtensionOf perquè el sistema sàpiga què esteu ampliant, així:

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

Ara només podeu implementar el vostre mètode de visualització en aquesta classe, com hauríeu fet directament a la taula en versions anteriors de Dynamics: "això" fins i tot fa referència a la taula, de manera que podeu accedir als camps i altres mètodes.

Per exemple, una classe amb un mètode de visualització senzill (i completament inútil) que només retorna el número de compte del client podria tenir aquest aspecte:

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

        return this.AccountNum;
    }
}

Ara, per afegir el mètode de visualització a un formulari (o extensió de formulari, si no podeu editar el formulari directament), heu d'afegir un camp al formulari manualment i assegureu-vos d'utilitzar el tipus correcte (cadena en aquest exemple).

Aleshores, al control establiríeu DataSource a CustTable (o el que sigui el nom de la vostra font de dades CustTable) i DataMethod a MyCustTable_Extension.displayAccountNum (assegureu-vos d'incloure el nom de la classe, en cas contrari el compilador no pot trobar el mètode).

I ja has acabat :-)

Actualització: ja no és necessari incloure el nom de la classe d'extensió en afegir el mètode de visualització a un formulari, però en el moment original de la publicació, sí. Deixo la informació aquí per si alguns lectors encara fan servir versions anteriors.

Comparteix a BlueskyComparteix a FacebookComparteix a LinkedInComparteix a TumblrComparteix a XComparteix a LinkedInPin a Pinterest

Mikkel Bang Christensen

Sobre l'autor

Mikkel Bang Christensen
Mikkel és el creador i propietari de miklix.com. Té més de 20 anys d'experiència com a programador/desenvolupador de programari informàtic professional i actualment treballa a temps complet per a una gran corporació informàtica europea. Quan no fa blocs, dedica el seu temps lliure a una gran varietat d'interessos, aficions i activitats, que fins a cert punt es poden reflectir en la varietat de temes tractats en aquest lloc web.