Miklix

Skep 'n opsoekveld vir 'n finansiële dimensie in Dynamics 365

Gepubliseer: 16 Februarie 2025 om 11:36:17 UTC

Hierdie artikel verduidelik hoe om 'n opsoekveld vir 'n finansiële dimensie in Dynamics 365 for Operations te skep, insluitend 'n X++-kodevoorbeeld.


Hierdie bladsy is masjienvertaal uit Engels om dit vir soveel mense moontlik toeganklik te maak. Ongelukkig is masjienvertaling nog nie 'n volmaakte tegnologie nie, dus kan foute voorkom. As jy verkies, kan jy die oorspronklike Engelse weergawe hier sien:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Die inligting in hierdie pos is gebaseer op Dynamics 365 for Operations, maar die meeste daarvan sal ook vir Dynamics AX 2012 werk (sien hieronder).

Ek is onlangs opdrag gegee om 'n nuwe veld te skep waarin dit moontlik moet wees om 'n enkele finansiële dimensie, in hierdie geval Produk, te spesifiseer. Natuurlik moet die nuwe veld ook die geldige waardes van hierdie dimensie kan opsoek.

Dit is 'n bietjie meer ingewikkeld as 'n gereelde opsoek in 'n tabel, maar as jy weet hoe, is dit eintlik nie te sleg nie.

Gelukkig bied die standaardtoepassing 'n gerieflike opsoekvorm (DimensionLookup) wat vir die doel gebruik kan word, as jy dit net vertel watter dimensie-kenmerk om op te soek.

Eerstens moet u die vormveld self skep. Dit kan gebaseer wees op 'n tabelveld of 'n wysigingsmetode, maak nie saak vir die opsoek self nie, maar op een of ander manier moet dit die DimensionValue uitgebreide datatipe gebruik.

Jy moet dan 'n OnLookup-gebeurtenishanteerder vir die veld skep. Om 'n gebeurtenis hanteerder te skep, klik met die rechtermuisknop op die OnLookup gebeurtenis vir die veld, kies dan "Kopieer gebeurtenis hanteerder metode". Jy kan dan 'n leë gebeurtenis hanteerder metode in 'n klas plak en dit van daar af wysig.

Kennisgewing: Die meeste hiervan sal ook vir Dynamics AX 2012 werk, maar in plaas daarvan om 'n gebeurtenishanteerder te skep, kan jy die vormveld se opsoekmetode ignoreer.

Die gebeurtenishanteerder moet so iets lyk (vervang vormnaam en veldnaam soos nodig):

[
    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);
}
Deel op BlueskyDeel op FacebookDeel op LinkedInDeel op TumblrDeel op XDeel op LinkedInSpeld op Pinterest

Mikkel Bang Christensen

Oor die skrywer

Mikkel Bang Christensen
Mikkel is die skepper en eienaar van miklix.com. Hy het meer as 20 jaar ondervinding as 'n professionele rekenaarprogrammeerder/sagteware-ontwikkelaar en is tans voltyds in diens van 'n groot Europese IT-korporasie. Wanneer hy nie blog nie, spandeer hy sy vrye tyd aan 'n groot verskeidenheid belangstellings, stokperdjies en aktiwiteite, wat tot 'n mate weerspieël kan word in die verskeidenheid onderwerpe wat op hierdie webwerf gedek word.