Miklix

Magdagdag ng Display o Edit Method sa pamamagitan ng Extension sa Dynamics 365

Nai-publish: Marso 19, 2025 nang 9:35:55 PM UTC

Sa artikulong ito, ipinapaliwanag ko kung paano gumamit ng extension ng klase upang magdagdag ng paraan ng pagpapakita sa isang talahanayan at isang form sa Dynamics 365 for Operations, kasama ang mga halimbawa ng X++ code.


Ang pahinang ito ay isinalin sa makina mula sa Ingles upang gawin itong naa-access sa pinakamaraming tao hangga't maaari. Sa kasamaang palad, ang pagsasalin ng makina ay hindi pa isang perpektong teknolohiya, kaya maaaring mangyari ang mga error. Kung gusto mo, maaari mong tingnan ang orihinal na bersyong Ingles dito:

Add Display or Edit Method via Extension in Dynamics 365

Habang plano mong gamitin ang mga display o edit method sa Dynamics, ito ay isang bagay na karaniwang magpapaisip sa iyo kung maaari mo bang idisenyo ang iyong solusyon sa ibang paraan, ngunit paminsan-minsan, sila ay ang pinakamahusay na paraan.

Sa mga naunang bersyon ng Dynamics at Axapta, madali lang gumawa ng mga display o edit method sa mga talahanayan at form, ngunit nang ako ay kamakailan lang na kailangan gumawa ng aking unang edit method sa Dynamics 365, natuklasan ko na ang proseso para dito ay medyo naiiba.

Ayon sa mga ebidensya, may ilang mga valid na paraan, ngunit ang nakita kong pinakamaganda (pareho sa aspeto ng intuwisyon at kaakit-akit na code) ay ang paggamit ng class extension. Oo, maaari kang gumamit ng class extensions upang magdagdag ng mga method sa iba pang uri ng mga elemento bukod sa mga klase - sa kasong ito, isang table, ngunit gumagana rin ito para sa mga form.

Una, gumawa ng bagong klase. Maaari mo itong pangalanan ng kahit anong nais mo, ngunit sa ilang kadahilanan, dapat itong magtapos sa "_Extension". Sabihin nating kailangan mong magdagdag ng display method sa CustTable, maaari mo itong pangalanan halimbawa na MyCustTable_Extension.

Ang klase ay kailangang magkaroon ng ExtensionOf upang ipaalam sa sistema kung ano ang iyong ina-extend, tulad nito:

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

Ngayon, maaari mo nang ipatupad ang iyong display method sa klase na ito, tulad ng ginagawa mo nang direkta sa table sa mga naunang bersyon ng Dynamics - "this" ay tumutukoy pa sa table, kaya maaari mong ma-access ang mga field at iba pang method.

Halimbawa, ang isang klase na may simpleng (at ganap na walang silbing) display method na nagbabalik lang ng account number ng customer ay maaaring ganito ang itsura:

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

        return this.AccountNum;
    }
}

Ngayon, upang idagdag ang display method sa isang form (o form extension, kung hindi mo maaaring i-edit ang form nang direkta), kailangan mong manu-manong magdagdag ng field sa form at siguraduhing gamitin ang tamang uri (string sa halimbawa na ito).

Pagkatapos, sa control, itatakda mo ang DataSource sa CustTable (o kung anuman ang pangalan ng iyong CustTable data source) at DataMethod sa MyCustTable_Extension.displayAccountNum (siguraduhing isama ang pangalan ng klase, kung hindi ay hindi matatagpuan ng compiler ang method).

At tapos na :-)

Update: Hindi na kinakailangan na isama ang pangalan ng extension class kapag nagdaragdag ng display method sa isang form, ngunit noong unang panahon ng pag-publish, kinakailangan ito. Iiwan ko ang impormasyong ito dito sakaling may mga mambabasa pa na gumagamit ng mas lumang bersyon.

Ibahagi sa BlueskyIbahagi sa FacebookIbahagi sa LinkedInIbahagi sa TumblrIbahagi sa XIbahagi sa LinkedInI-pin sa Pinterest

Mikkel Christensen

Tungkol sa May-akda

Mikkel Christensen
Si Mikkel ang lumikha at may-ari ng miklix.com. Siya ay may higit sa 20 taong karanasan bilang isang propesyonal na computer programmer/software developer at kasalukuyang nagtatrabaho ng full-time para sa isang malaking European IT corporation. Kapag hindi nagba-blog, ginugugol niya ang kanyang bakanteng oras sa isang malawak na hanay ng mga interes, libangan, at aktibidad, na maaaring sa ilang lawak ay makikita sa iba't ibang mga paksang sakop sa website na ito.