Miklix

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

Objavljeno: 16. veljače 2025. u 11:37:12 UTC

Ovaj članak objašnjava kako stvoriti polje pretraživanja 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 Dynamics 365 for Operations, ali većina će također raditi za Dynamics AX 2012 (pogledajte dolje).

Nedavno sam dobio zadatak kreirati novo polje u kojem bi trebalo biti moguće specificirati jednu financijsku dimenziju, u ovom slučaju Proizvod. Naravno, novo polje također bi trebalo moći tražiti valjane vrijednosti ove dimenzije.

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

Srećom, standardna aplikacija nudi praktičan obrazac za traženje (DimensionLookup) koji se može koristiti u tu svrhu ako mu samo kažete koji atribut dimenzije treba tražiti.

Najprije morate izraditi 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. Da biste stvorili rukovatelja događajem, desnom tipkom miša kliknite događaj OnLookup za polje, zatim odaberite "Kopiraj metodu rukovatelja događajima". Zatim možete zalijepiti praznu metodu rukovatelja događajima u klasu i urediti je od tamo.

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.

Rukovatelj događajima 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);
}
Podijeli na BlueskyPodijelite na FacebookuPodijelite na LinkedInuPodijelite na TumblrPodijeli na XPodijelite na LinkedInuPrikvači na Pinterest

Mikkel Bang Christensen

O autoru

Mikkel Bang 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.