Miklix

Lisää näyttö- tai muokkausmenetelmä Dynamics 365:n laajennuksen kautta

Julkaistu: 16. helmikuuta 2025 klo 11.55.31 UTC

Tässä artikkelissa selitän, kuinka luokkalaajennuksella lisätään näyttömenetelmä taulukkoon ja lomakkeeseen Dynamics 365 for Operationsissa, mukaan lukien X++-koodiesimerkit.


Tämä sivu on käännetty koneellisesti englannista, jotta se olisi mahdollisimman monen ihmisen saatavilla. Valitettavasti konekääntäminen ei ole vielä täydellistä tekniikkaa, joten virheitä voi esiintyä. Voit halutessasi tarkastella alkuperäistä englanninkielistä versiota täällä:

Add Display or Edit Method via Extension in Dynamics 365

Vaikka näyttö- tai muokkausmenetelmien käytön suunnittelu Dynamicsissa on asia, jonka pitäisi yleensä saada harkitsemaan, voisitko ehkä suunnitella ratkaisusi eri tavalla, joskus ne ovat paras tapa edetä.

Dynamicsin ja Axaptan aikaisemmissa versioissa näyttö- tai muokkausmenetelmien luominen taulukoille ja lomakkeille oli erittäin helppoa, mutta kun äskettäin jouduin tekemään ensimmäisen muokkausmenetelmäni Dynamics 365:ssä, huomasin, että sen tekeminen on hieman erilainen.

Kelvollisia lähestymistapoja on ilmeisesti useita, mutta mielestäni paras (sekä intuitiivisuuden että koodin kauneuden kannalta) on käyttää luokkalaajennusta. Kyllä, luokkalaajennuksilla voit lisätä menetelmiä muihin elementtityyppeihin kuin luokkiin - tässä tapauksessa taulukkoon, mutta se toimii myös lomakkeille.

Luo ensin uusi luokka. Voit nimetä sen miksi haluat, mutta jostain syystä sen pääte on oltava "_Extension". Oletetaan, että sinun täytyy lisätä näyttötapa CustTable-taulukkoon, voit esimerkiksi nimetä sen MyCustTable_Extension.

Kurssi on koristeltava ExtensionOf:lla, jotta järjestelmä tietää, mitä jatkat, esimerkiksi:

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

Nyt voit vain toteuttaa näyttömenetelmäsi tässä luokassa, kuten olisit tehnyt suoraan taulukossa Dynamicsin aiemmissa versioissa - "tämä" viittaa jopa taulukkoon, joten voit käyttää kenttiä ja muita menetelmiä.

Esimerkiksi luokka, jossa on yksinkertainen (ja täysin hyödytön) näyttötapa, joka palauttaa vain asiakkaan tilinumeron, voisi näyttää tältä:

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

        return this.AccountNum;
    }
}

Nyt, jotta voit lisätä näyttötavan lomakkeeseen (tai lomakelaajennukseen, jos et voi muokata lomaketta suoraan), sinun on lisättävä lomakkeeseen kenttä manuaalisesti ja varmistettava, että käytät oikeaa tyyppiä (merkkijono tässä esimerkissä).

Tämän jälkeen säädät ohjausobjektissa DataSource-asetukseksi CustTable (tai mikä tahansa CustTable-tietolähteesi nimi) ja DataMethod-asetukseksi MyCustTable_Extension.displayAccountNum (muista lisätä luokan nimi, muuten kääntäjä ei löydä menetelmää).

Ja olet valmis :-)

Päivitys: Laajennuksen luokan nimeä ei enää tarvitse sisällyttää lisättäessä näyttötapaa lomakkeeseen, mutta alkuperäisessä julkaisussa se oli. Jätän tiedot tähän siltä varalta, että jotkut lukijat käyttävät edelleen vanhempia versioita.

Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Bang Christensen

Kirjoittajasta

Mikkel Bang Christensen
Mikkel on miklix.com-sivuston luoja ja omistaja. Hänellä on yli 20 vuoden kokemus ammattimaisena tietokoneohjelmoijana/ohjelmistokehittäjänä, ja tällä hetkellä hän työskentelee kokopäiväisesti suuressa eurooppalaisessa IT-yrityksessä. Kun hän ei ole bloggaamassa, hän käyttää vapaa-aikaansa monenlaisiin kiinnostuksen kohteisiin, harrastuksiin ja aktiviteetteihin, mikä saattaa jossain määrin heijastua tällä verkkosivustolla käsiteltävien aiheiden moninaisuuteen.