Opprette et oppslagsfelt for en økonomisk dimensjon i Dynamics 365
Publisert: 16. februar 2025 kl. 11:33:54 UTC
Sist oppdatert: 13. september 2025 kl. 22:52:55 UTC
Denne artikkelen forklarer hvordan du oppretter et oppslagsfelt for en finansdimensjon i Dynamics 365 for Operations, inkludert et X++-kodeeksempel.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Informasjonen i dette innlegget er basert på Dynamics 365 for Operations, men det meste vil også fungere for Dynamics AX 2012 (se nedenfor).
Jeg fikk nylig i oppgave å lage et nytt felt der det skulle være mulig å spesifisere en enkelt økonomisk dimensjon, i dette tilfellet Produkt. Det nye feltet skal selvfølgelig også kunne slå opp de gyldige verdiene for denne dimensjonen.
Dette er litt mer komplisert enn et vanlig oppslag i en tabell, men hvis du vet hvordan, er det faktisk ikke så ille.
Heldigvis gir standardapplikasjonen et praktisk oppslagsskjema (DimensionLookup) som kan brukes til formålet, hvis du bare forteller det hvilket dimensjonsattributt som skal slås opp.
Først må du opprette selve skjemafeltet. Dette kan være basert på et tabellfelt eller en redigeringsmetode, spiller ingen rolle for selve oppslaget, men på en eller annen måte må det bruke den utvidede datatypen DimensionValue.
Deretter må du opprette en OnLookup-hendelsesbehandling for feltet. Hvis du vil opprette en hendelsesbehandling, høyreklikker du på OnLookup-hendelsen for feltet, og deretter velger du «Kopier hendelsesbehandlingsmetode». Du kan deretter lime inn en tom hendelsesbehandlingsmetode i en klasse og redigere den derfra.
Bemerke: Det meste av dette fungerer også for Dynamics AX 2012, men i stedet for å opprette en hendelsesbehandling, kan du overstyre skjemafeltets oppslagsmetode.
Hendelsesbehandlingen må se omtrent slik ut (erstatt skjemanavn og feltnavn etter 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);
}
Videre lesing
Hvis du likte dette innlegget, kan du også like disse forslagene:
- Oppdater økonomisk dimensjonsverdi fra X++-kode i Dynamics 365
- Legg til visnings- eller redigeringsmetode via utvidelse i Dynamics 365
- Sett Dynamics 365 FO Virtual Machine Dev eller Test i vedlikeholdsmodus