Miklix

Hakukentän luominen taloudelliselle ulottuvuudelle Dynamics 365:ssä

Julkaistu: 16. helmikuuta 2025 klo 11.33.41 UTC

Tässä artikkelissa kerrotaan, kuinka luodaan hakukenttä taloudelliselle ulottuvuudelle Dynamics 365 for Operationsissa, mukaan lukien X++-koodiesimerkki.


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).

Sain äskettäin tehtäväksi luoda uusi kenttä, jossa pitäisi olla mahdollista määrittää yksi taloudellinen ulottuvuus, tässä tapauksessa Tuote. Tietysti uuden kentän pitäisi pystyä myös etsimään tämän ulottuvuuden kelvolliset arvot.

Tämä on hieman monimutkaisempi kuin tavallinen haku taulukosta, mutta jos tiedät kuinka, se ei itse asiassa ole liian huono.

Onneksi vakiosovellus tarjoaa kätevän hakulomakkeen (DimensionLookup), jota voidaan käyttää tähän tarkoitukseen, jos vain kerrot sille, mikä ulottuvuusmäärite haetaan.

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

Tämän jälkeen sinun on luotava kentälle OnLookup-tapahtumakäsittelijä. Voit luoda tapahtumakäsittelijän napsauttamalla hiiren kakkospainikkeella kentän OnLookup-tapahtumaa ja valitsemalla sitten "Kopioi tapahtumakäsittelijän menetelmä". Voit sitten liittää tyhjän tapahtumakäsittelijän menetelmän luokkaan ja muokata sitä sieltä.

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

Tapahtumakäsittelijän tulee näyttää 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);
}
Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Bang Christensen

Kirjoittajasta

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