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++.
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:
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:
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.