Miklix

Dodajte način prikaza ali urejanja prek razširitve v Dynamics 365

Objavljeno: 16. februar 2025 ob 11:56:06 dop. UTC

V tem članku razlagam, kako uporabiti razširitev razreda za dodajanje metode prikaza v tabelo in obrazec v Dynamics 365 for Operations, vključno s primeri kode X++.


Ta stran je bila strojno prevedena iz angleščine, da bi bila dostopna čim večjemu številu ljudi. Žal strojno prevajanje še ni popolna tehnologija, zato lahko pride do napak. Če želite, si lahko izvirno angleško različico ogledate tukaj:

Add Display or Edit Method via Extension in Dynamics 365

Medtem ko je načrtovanje uporabe metod prikaza ali urejanja v Dynamicsu nekaj, zaradi česar bi morali na splošno razmisliti, ali bi morda lahko oblikovali svojo rešitev drugače, so občasno najboljši način.

V prejšnjih različicah Dynamics in Axapta je bilo zelo enostavno ustvariti metode za prikaz ali urejanje v tabelah in obrazcih, ko pa sem pred kratkim moral ustvariti svojo prvo metodo za urejanje v Dynamics 365, sem ugotovil, da je postopek za to nekoliko drugačen.

Očitno obstaja več veljavnih pristopov, vendar se mi zdi najboljši (tako v smislu intuitivnosti kot lepote kode) uporaba razširitve razreda. Da, razširitve razreda lahko uporabite za dodajanje metod drugim vrstam elementov kot razredom - v tem primeru tabeli, vendar deluje tudi za obrazce.

Najprej ustvarite nov razred. Lahko ga poimenujete kakor koli želite, vendar mora biti iz neznanega razloga pripona "_Razširitev". Recimo, da morate v CustTable dodati metodo prikaza, lahko jo na primer poimenujete MyCustTable_Extension.

Razred mora biti okrašen z ExtensionOf, da sistem ve, kaj razširjate, takole:

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

Zdaj lahko samo implementirate svojo metodo prikaza v tem razredu, kot bi to storili neposredno na tabeli v prejšnjih različicah Dynamics – »to« se celo sklicuje na tabelo, tako da lahko dostopate do polj in drugih metod.

Na primer, razred s preprosto (in popolnoma neuporabno) metodo prikaza, ki samo vrne številko računa stranke, bi lahko izgledal takole:

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

        return this.AccountNum;
    }
}

Zdaj, če želite obrazcu (ali razširitvi obrazca, če obrazca ne morete urejati neposredno), dodati način prikaza, morate ročno dodati polje v obrazec in se prepričati, da uporabljate pravilno vrsto (v tem primeru niz).

Nato bi na kontrolniku nastavili DataSource na CustTable (ali kakor koli že je ime vašega vira podatkov CustTable) in DataMethod na MyCustTable_Extension.displayAccountNum (prepričajte se, da ste vključili ime razreda, sicer prevajalnik ne more najti metode).

In končali ste :-)

Posodobitev: Ni več treba vključiti imena razširitvenega razreda, ko obrazcu dodajate metodo prikaza, vendar je bilo v prvotnem času objave. Informacije puščam tukaj, če nekateri bralci še vedno uporabljajo starejše različice.

Delite na BlueskyDelite na FacebookuDelite na LinkedInuDelite na TumblrDelite na XDelite na LinkedInuPripni na Pinterest

Mikkel Bang Christensen

O avtorju

Mikkel Bang Christensen
Mikkel je avtor in lastnik spletne strani miklix.com. Ima več kot 20 let izkušenj kot profesionalni računalniški programer/razvijalec programske opreme in je trenutno za polni delovni čas zaposlen v veliki evropski IT korporaciji. Kadar ne piše bloga, svoj prosti čas posveča številnim interesom, hobijem in dejavnostim, kar se do neke mere odraža v raznolikosti tem na tem spletnem mestu.