Miklix

Uzmeklēšanas lauka izveide finanšu dimensijai programmā Dynamics 365

Publicēts: 2025. gada 16. februāris 11:33:53 UTC
Pēdējo reizi atjaunināts: 2026. gada 12. janvāris 08:56:11 UTC

Šajā rakstā ir paskaidrots, kā izveidot finanšu dimensijas uzmeklēšanas lauku pakalpojumā Dynamics 365 for Operations, tostarp ir sniegts X++ koda piemērs.


Šī lapa tika mašīntulkota no angļu valodas, lai padarītu to pieejamu pēc iespējas vairāk cilvēkiem. Diemžēl mašīntulkošana vēl nav pilnīga tehnoloģija, tāpēc tajā var rasties kļūdas. Ja vēlaties, oriģinālo versiju angļu valodā varat apskatīt šeit:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Šajā ierakstā sniegtā informācija ir balstīta uz Dynamics 365 for Operations, taču lielākā daļa tās darbosies arī ar Dynamics AX 2012 (skatīt tālāk).

Nesen man tika uzdots izveidot jaunu lauku, kurā vajadzētu būt iespējai norādīt vienu finanšu dimensiju, šajā gadījumā — Produktu. Protams, jaunajam laukam vajadzētu būt arī iespējai meklēt šīs dimensijas derīgās vērtības.

Tas ir nedaudz sarežģītāk nekā parasta meklēšana tabulā, bet, ja zināt, kā to izdarīt, patiesībā tas nav tik traki.

Par laimi, standarta lietojumprogramma nodrošina ērtu meklēšanas formu (DimensionLookup), ko var izmantot šim nolūkam, vienkārši norādot, kuru dimensijas atribūtu meklēt.

Vispirms ir jāizveido pats formas lauks. Tas var būt balstīts uz tabulas lauku vai rediģēšanas metodi, tam nav nozīmes pašai meklēšanai, taču vienā vai otrā veidā tam ir jāizmanto paplašinātais datu tips DimensionValue.

Pēc tam laukam ir jāizveido OnLookup notikumu apstrādātājs. Lai izveidotu notikumu apstrādātāju, ar peles labo pogu noklikšķiniet uz lauka OnLookup notikuma un pēc tam izvēlieties "Kopēt notikumu apstrādātāja metodi". Pēc tam varat ielīmēt tukšu notikumu apstrādātāja metodi klasē un rediģēt to no turienes.

Piezīme: Lielākā daļa no šī darbosies arī ar Dynamics AX 2012, taču notikumu apstrādātāja izveides vietā varat ignorēt veidlapas lauka uzmeklēšanas metodi.

Notikumu apstrādātājam ir jāizskatās apmēram šādi (vajadzības gadījumā nomainiet formas nosaukumu un lauka nosaukumu):

[
    FormControlEventHandler(formControlStr( MyForm,
                                            MyProductDimField),
                            FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup(  FormControl _sender,
                                                FormControlEventArgs _e)
{
    FormStringControl   control;
    Args                args;
    FormRun             formRun;
    DimensionAttribute  dimAttribute;
    ;

    dimAttribute    =   DimensionAttribute::findByName('Product');
    args            =   new Args();
    args.record(dimAttribute);
    args.caller(_sender);
    args.name(formStr(DimensionLookup));
    formRun         =   classFactory.formRunClass(args);formRun.init();
    control         =   _sender as FormStringControl;
    control.performFormLookup(formRun);
}

Papildu lasāmviela

Ja jums patika šī ziņa, jums varētu patikt arī šie ieteikumi:


Kopīgojiet pakalpojumā BlueskyKopīgot FacebookKopīgojiet vietnē LinkedInKopīgojiet vietnē TumblrKopīgot vietnē XKopīgojiet vietnē LinkedInPiespraust vietnē Pinterest

Mikkel Christensen

Par autoru

Mikkel Christensen
Mikels ir miklix.com radītājs un īpašnieks. Viņam ir vairāk nekā 20 gadu pieredze kā profesionālam programmētājam/programmatūras izstrādātājam, un pašlaik viņš strādā pilna laika darbu lielā Eiropas IT korporācijā. Kad viņš neraksta blogus, viņš pavada brīvo laiku, pievēršoties dažādām interesēm, hobijiem un aktivitātēm, kas zināmā mērā var atspoguļoties šajā tīmekļa vietnē aplūkoto tēmu daudzveidībā.