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.
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:
- Aseta Dynamics 365 FO Virtual Machine Dev tai Test ylläpitotilaan
- Visual Studio roikkuu käynnistyksen yhteydessä, kun se lataa viimeaikaisia projekteja
- Lisää näyttö- tai muokkausmenetelmä Dynamics 365:n laajennuksen kautta
