Miklix

Stvaranje polja pretraživanja za financijsku dimenziju u sustavu Dynamics 365

Objavljeno: 16. veljače 2025. u 11:37:12 UTC
Zadnje ažuriranje: 12. siječnja 2026. u 08:56:32 UTC

Ovaj članak objašnjava kako stvoriti polje za pretraživanje za financijsku dimenziju u sustavu Dynamics 365 for Operations, uključujući primjer X++ koda.


Ova je stranica strojno prevedena s engleskog kako bi bila dostupna što većem broju ljudi. Nažalost, strojno prevođenje još nije usavršena tehnologija pa se mogu pojaviti pogreške. Ako želite, izvornu englesku verziju možete pogledati ovdje:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Informacije u ovom postu temelje se na sustavu Dynamics 365 for Operations, ali većina će funkcionirati i za Dynamics AX 2012 (vidi dolje).

Nedavno sam dobio zadatak da stvorim novo polje u kojem bi trebalo biti moguće navesti jednu financijsku dimenziju, u ovom slučaju Proizvod. Naravno, novo polje bi također trebalo moći pretraživati valjane vrijednosti ove dimenzije.

Ovo je malo kompliciranije od običnog pretraživanja u tablici, ali ako znate kako, zapravo nije tako loše.

Srećom, standardna aplikacija pruža praktičan obrazac za pretraživanje (DimensionLookup) koji se može koristiti u tu svrhu, ako joj samo kažete koji atribut dimenzije treba pretražiti.

Prvo morate kreirati samo polje obrasca. To se može temeljiti na polju tablice ili metodi uređivanja, nije važno za samo pretraživanje, ali na ovaj ili onaj način mora koristiti prošireni tip podataka DimensionValue.

Zatim morate stvoriti rukovatelj događajima OnLookup za polje. Za stvaranje rukovatelja događajima, desnom tipkom miša kliknite događaj OnLookup za polje, a zatim odaberite "Kopiraj metodu rukovatelja događajima". Zatim možete zalijepiti praznu metodu rukovatelja događajima u klasu i tamo je urediti.

Napomena: Većina ovoga će raditi i za Dynamics AX 2012, ali umjesto stvaranja rukovatelja događajima, možete nadjačati metodu pretraživanja polja obrasca.

Obrađivač događaja mora izgledati otprilike ovako (po potrebi zamijenite naziv obrasca i naziv 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);
}

Dodatno čitanje

Ako vam se svidio ovaj post, možda će vam se svidjeti i ovi prijedlozi:


Podijeli na BlueskyPodijelite na FacebookuPodijelite na LinkedInuPodijelite na TumblrPodijeli na XPodijelite na LinkedInuPrikvači na Pinterest

Mikkel Christensen

O autoru

Mikkel Christensen
Mikkel je kreator i vlasnik miklix.com. Ima više od 20 godina iskustva kao profesionalni računalni programer/razvijač softvera i trenutno je zaposlen na puno radno vrijeme za veliku europsku IT korporaciju. Kada ne piše blog, svoje slobodno vrijeme provodi na široku lepezu interesa, hobija i aktivnosti, što se u određenoj mjeri može odraziti na različite teme obrađene na ovoj web stranici.