Ustvarjanje iskalnega polja za finančno dimenzijo v Dynamics 365
Objavljeno: 16. februar 2025 ob 11:34:06 dop. UTC
Nazadnje posodobljeno: 12. januar 2026 ob 8:56:16 dop. UTC
V tem članku je pojasnjeno, kako ustvariti iskalno polje za finančno dimenzijo v storitvi Dynamics 365 for Operations, vključno s primerom kode X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Informacije v tej objavi temeljijo na programu Dynamics 365 for Operations, vendar bo večina delovala tudi za Dynamics AX 2012 (glejte spodaj).
Pred kratkim sem dobil nalogo, da ustvarim novo polje, v katerem bi moralo biti mogoče določiti eno samo finančno dimenzijo, v tem primeru Izdelek. Seveda bi moralo novo polje omogočati tudi iskanje veljavnih vrednosti te dimenzije.
To je nekoliko bolj zapleteno kot običajno iskanje v tabeli, ampak če veste, kako, pravzaprav ni tako hudo.
Na srečo standardna aplikacija ponuja priročen obrazec za iskanje (DimensionLookup), ki ga lahko uporabite za ta namen, če le določite, kateri atribut dimenzije naj poišče.
Najprej morate ustvariti samo polje obrazca. To lahko temelji na polju tabele ali metodi urejanja, ni pomembno za samo iskanje, vendar mora na tak ali drugačen način uporabljati razširjeni podatkovni tip DimensionValue.
Nato morate za polje ustvariti rutino za obravnavo dogodkov OnLookup. Če želite ustvariti rutino za obravnavo dogodkov, z desno tipko miške kliknite dogodek OnLookup za polje in nato izberite »Kopiraj metodo rutine za obravnavo dogodkov«. Prazno metodo rutine za obravnavo dogodkov lahko nato prilepite v razred in jo tam uredite.
Obvestilo: Večina tega bo delovala tudi za Dynamics AX 2012, vendar lahko namesto ustvarjanja rutine za obravnavo dogodkov prepišete metodo iskanja v polju obrazca.
Obdelovalec dogodkov mora izgledati nekako takole (po potrebi zamenjajte ime obrazca in ime polja):
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);
}
Nadaljnje branje
Če vam je bila ta objava všeč, vam bodo morda všeč tudi ti predlogi:
- Posodobite vrednost finančne razsežnosti iz kode X++ v Dynamics 365
- Prestavite Dynamics 365 FO Virtual Machine Dev ali Test v način vzdrževanja
- Visual Studio se obesi ob zagonu med nalaganjem nedavnih projektov
