Miklix

Megjelenítési vagy szerkesztési módszer hozzáadása a Dynamics 365 bővítményen keresztül

Megjelent: 2025. február 16. 11:55:35 UTC

Ebben a cikkben elmagyarázom, hogyan használható osztálybővítmény megjelenítési metódus hozzáadásához egy táblázathoz és egy űrlaphoz a Dynamics 365 for Operations alkalmazásban, X++ kódpéldákkal együtt.


Ezt az oldalt angolból gépi fordítással készítettük, hogy minél több ember számára elérhető legyen. Sajnos a gépi fordítás még nem tökéletes technológia, ezért előfordulhatnak hibák. Ha szeretné, itt megtekintheti az eredeti angol nyelvű változatot:

Add Display or Edit Method via Extension in Dynamics 365

Bár a Dynamics megjelenítési vagy szerkesztési módszereinek használatának tervezése általában megfontolandó, hogy esetleg más módon is megtervezheti-e a megoldást, esetenként ezek a legjobb megoldások.

A Dynamics és az Axapta korábbi verzióiban nagyon könnyű volt megjeleníteni vagy szerkeszteni metódusokat táblákon és űrlapokon, de amikor nemrégiben véletlenül meg kellett csinálnom az első szerkesztési módszeremet a Dynamics 365-ben, rájöttem, hogy ennek az eljárása némileg eltér.

Nyilvánvalóan több érvényes megközelítés létezik, de a legjobbnak (mind az intuitivitás, mind a kód csinossága szempontjából) az osztálykiterjesztést találom. Igen, az osztálybővítmények segítségével az osztályokon kívül más elemtípusokhoz is hozzáadhat metódusokat - jelen esetben táblát, de ez az űrlapoknál is működik.

Először hozzon létre egy új osztályt. Bármilyennek nevezheti, de valamilyen oknál fogva "_Extension" utótaggal kell ellátni. Tegyük fel, hogy hozzá kell adnia egy megjelenítési metódust a CustTable-hoz, például elnevezheti MyCustTable_Extension néven.

Az osztályt ExtensionOf-fal kell díszíteni, hogy a rendszer tudja, mit bővít, például:

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

Most már csak implementálhatja a megjelenítési metódust ebben az osztályban, ahogyan azt közvetlenül az asztalon tette volna a Dynamics korábbi verzióiban – "ez" még a táblázatra is hivatkozik, így elérheti a mezőket és más módszereket.

Például egy osztály egy egyszerű (és teljesen haszontalan) megjelenítési metódussal, amely csak az ügyfél számlaszámát adja vissza, így nézhet ki:

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

        return this.AccountNum;
    }
}

Most, hogy hozzáadja a megjelenítési metódust egy űrlaphoz (vagy űrlapkiterjesztéshez, ha nem tudja közvetlenül szerkeszteni az űrlapot), manuálisan kell hozzáadnia egy mezőt az űrlaphoz, és győződjön meg arról, hogy a megfelelő típust használja (a példában karakterlánc).

Ezután a vezérlőn a DataSource értéket CustTable értékre (vagy a CustTable adatforrás bármilyen nevére) állítsa, a DataMethod értéket pedig MyCustTable_Extension.displayAccountNum értékre (feltétlenül adja meg az osztály nevét, különben a fordító nem találja a metódust).

és kész :-)

Frissítés: A megjelenítési metódus űrlaphoz adásakor már nem szükséges megadni a kiterjesztési osztály nevét, de az eredeti közzétételkor igen. Itt hagyom az információkat, hátha néhány olvasó még régebbi verziókat használ.

Oszd meg a Bluesky-nOszd meg a FacebookonOszd meg a LinkedIn-enOszd meg a Tumblr-enOszd meg X-enOszd meg a LinkedIn-enPin a Pinteresten

Mikkel Bang Christensen

A szerzőről

Mikkel Bang Christensen
Mikkel a miklix.com létrehozója és tulajdonosa. Több mint 20 éves tapasztalattal rendelkezik, mint hivatásos számítógépes programozó/szoftverfejlesztő, és jelenleg teljes munkaidőben dolgozik egy nagy európai informatikai vállalatnál. Amikor nem blogol, szabadidejét érdeklődési körének, hobbijainak és tevékenységeinek széles skálájával tölti, ami bizonyos mértékig tükröződhet a weboldalon tárgyalt témák sokféleségében.