Miklix

Oprettelse af et opslagsfelt for en finansiel dimension i Dynamics 365

Udgivet: 16. februar 2025 kl. 11.32.42 UTC
Sidst opdateret: 12. januar 2026 kl. 08.56.05 UTC

Denne artikel forklarer, hvordan du opretter et opslagsfelt for en finansiel dimension i Dynamics 365 for Operations, inklusive et X++-kodeeksempel.


Denne side er blevet maskinoversat fra engelsk for at gøre den tilgængelig for så mange mennesker som muligt. Desværre er maskinoversættelse endnu ikke en perfekt teknologi, så der kan forekomme fejl. Hvis du foretrækker det, kan du se den originale engelske version her:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Oplysningerne i dette indlæg er baseret på Dynamics 365 for Operations, men det meste af det vil også fungere til Dynamics AX 2012 (se nedenfor).

Jeg fik for nylig til opgave at oprette et nyt felt, hvor det skal være muligt at angive en enkelt finansiel dimension, i dette tilfælde Produkt. Det nye felt skal selvfølgelig også kunne slå de gyldige værdier for denne dimension op.

Dette er lidt mere kompliceret end et almindeligt opslag i en tabel, men hvis du ved hvordan, er det faktisk ikke så slemt.

Heldigvis tilbyder standardapplikationen en praktisk opslagsformular (DimensionLookup), der kan bruges til formålet, hvis du blot fortæller den, hvilken dimensionsattribut der skal slås op.

Først skal du oprette selve formularfeltet. Dette kan være baseret på et tabelfelt eller en redigeringsmetode, det er ligegyldigt for selve opslaget, men på en eller anden måde skal det bruge den udvidede datatype DimensionValue.

Du skal derefter oprette en OnLookup-eventhandler for feltet. For at oprette en eventhandler skal du højreklikke på OnLookup-eventet for feltet og derefter vælge "Kopier eventhandlermetode". Du kan derefter indsætte en tom eventhandlermetode i en klasse og redigere den derfra.

Bemærk: Det meste af dette vil også fungere for Dynamics AX 2012, men i stedet for at oprette en hændelseshandler kan du tilsidesætte formularfeltets opslagsmetode.

Hændelseshandleren skal se nogenlunde sådan ud (erstat formularnavn og feltnavn efter behov):

[
    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);
}

Yderligere læsning

Hvis du kunne lide dette indlæg, kan du måske også lide disse forslag:


Del på BlueskyDel på FacebookDel på LinkedInDel på TumblrDel på XDel på LinkedInFastgør på Pinterest

Mikkel Christensen

Om forfatteren

Mikkel Christensen
Mikkel er skaberen og ejeren af miklix.com. Han har over 20 års erfaring som professionel computerprogrammør/softwareudvikler og er i øjeblikket fuldtidsansat i en stor europæisk IT-virksomhed. Når han ikke blogger, bruger han sin fritid på en lang række interesser, hobbyer og aktiviteter, som i et vist omfang afspejles i de mange forskellige emner, der dækkes på dette websted.