Miklix

Hakukentän luominen taloudelliselle ulottuvuudelle Dynamics 365:ssä

Julkaistu: 16. helmikuuta 2025 klo 11.33.41 UTC
Viimeksi päivitetty: 12. tammikuuta 2026 klo 8.56.07 UTC

Tässä artikkelissa selitetään, miten Dynamics 365 for Operationsissa luodaan hakukenttä taloushallinnon ulottuvuudelle, ja annetaan esimerkki X++-koodista.


Tämä sivu on käännetty koneellisesti englannista, jotta se olisi mahdollisimman monen ihmisen saatavilla. Valitettavasti konekääntäminen ei ole vielä täydellistä tekniikkaa, joten virheitä voi esiintyä. Voit halutessasi tarkastella alkuperäistä englanninkielistä versiota täällä:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Tämän viestin tiedot perustuvat Dynamics 365 for Operationsiin, mutta suurin osa niistä toimii myös Dynamics AX 2012:ssa (katso alla).

Minulle annettiin hiljattain tehtäväksi luoda uusi kenttä, johon pitäisi voida määrittää yksi taloudellinen ulottuvuus, tässä tapauksessa Tuote. Uuden kentän pitäisi tietenkin myös pystyä hakemaan tämän ulottuvuuden kelvolliset arvot.

Tämä on hieman monimutkaisempaa kuin tavallinen taulukon haku, mutta jos tiedät miten, se ei oikeastaan ole liian paha.

Onneksi vakiosovelluksessa on kätevä hakulomake (DimensionLookup), jota voidaan käyttää tähän tarkoitukseen, kunhan vain kerrot sille, mitä ulottuvuusattribuuttia haetaan.

Ensin sinun on luotava itse lomakekenttä. Tämä voi perustua taulukkokenttään tai muokkausmetodiin, sillä ei ole merkitystä itse haulle, mutta tavalla tai toisella sen on käytettävä laajennettua DimensionValue-tietotyyppiä.

Sen jälkeen sinun on luotava kentälle OnLookup-tapahtumankäsittelijä. Voit luoda tapahtumankäsittelijän napsauttamalla kentän OnLookup-tapahtumaa hiiren kakkospainikkeella ja valitsemalla sitten "Kopioi tapahtumankäsittelijän metodi". Voit sitten liittää tyhjän tapahtumankäsittelijän metodin luokkaan ja muokata sitä sieltä.

Huomautus: Suurin osa tästä toimii myös Dynamics AX 2012:ssa, mutta tapahtumankäsittelijän luomisen sijaan voit ohittaa lomakekentän hakumetodin.

Tapahtumankäsittelijän on näytettävä suunnilleen tältä (korvaa lomakkeen nimi ja kentän nimi tarvittaessa):

[
    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);
}

Lisälukemista

Jos pidit tästä postauksesta, saatat pitää myös näistä ehdotuksista:


Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Christensen

Kirjoittajasta

Mikkel Christensen
Mikkel on miklix.com-sivuston luoja ja omistaja. Hänellä on yli 20 vuoden kokemus ammattimaisena tietokoneohjelmoijana/ohjelmistokehittäjänä, ja tällä hetkellä hän työskentelee kokopäiväisesti suuressa eurooppalaisessa IT-yrityksessä. Kun hän ei ole bloggaamassa, hän käyttää vapaa-aikaansa monenlaisiin kiinnostuksen kohteisiin, harrastuksiin ja aktiviteetteihin, mikä saattaa jossain määrin heijastua tällä verkkosivustolla käsiteltävien aiheiden moninaisuuteen.