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.
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:
- Tilføj visnings- eller redigeringsmetode via udvidelse i Dynamics 365
- Visual Studio hænger ved opstart under indlæsning af seneste projekter
- Sæt Dynamics 365 FO Virtual Machine Dev eller Test i vedligeholdelsestilstand
