Uzmeklēšanas lauka izveide finanšu dimensijai programmā Dynamics 365
Publicēts: 2025. gada 16. februāris 11:33:53 UTC
Pēdējo reizi atjaunināts: 2026. gada 12. janvāris 08:56:11 UTC
Šajā rakstā ir paskaidrots, kā izveidot finanšu dimensijas uzmeklēšanas lauku pakalpojumā Dynamics 365 for Operations, tostarp ir sniegts X++ koda piemērs.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Šajā ierakstā sniegtā informācija ir balstīta uz Dynamics 365 for Operations, taču lielākā daļa tās darbosies arī ar Dynamics AX 2012 (skatīt tālāk).
Nesen man tika uzdots izveidot jaunu lauku, kurā vajadzētu būt iespējai norādīt vienu finanšu dimensiju, šajā gadījumā — Produktu. Protams, jaunajam laukam vajadzētu būt arī iespējai meklēt šīs dimensijas derīgās vērtības.
Tas ir nedaudz sarežģītāk nekā parasta meklēšana tabulā, bet, ja zināt, kā to izdarīt, patiesībā tas nav tik traki.
Par laimi, standarta lietojumprogramma nodrošina ērtu meklēšanas formu (DimensionLookup), ko var izmantot šim nolūkam, vienkārši norādot, kuru dimensijas atribūtu meklēt.
Vispirms ir jāizveido pats formas lauks. Tas var būt balstīts uz tabulas lauku vai rediģēšanas metodi, tam nav nozīmes pašai meklēšanai, taču vienā vai otrā veidā tam ir jāizmanto paplašinātais datu tips DimensionValue.
Pēc tam laukam ir jāizveido OnLookup notikumu apstrādātājs. Lai izveidotu notikumu apstrādātāju, ar peles labo pogu noklikšķiniet uz lauka OnLookup notikuma un pēc tam izvēlieties "Kopēt notikumu apstrādātāja metodi". Pēc tam varat ielīmēt tukšu notikumu apstrādātāja metodi klasē un rediģēt to no turienes.
Piezīme: Lielākā daļa no šī darbosies arī ar Dynamics AX 2012, taču notikumu apstrādātāja izveides vietā varat ignorēt veidlapas lauka uzmeklēšanas metodi.
Notikumu apstrādātājam ir jāizskatās apmēram šādi (vajadzības gadījumā nomainiet formas nosaukumu un lauka nosaukumu):
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);
}
Papildu lasāmviela
Ja jums patika šī ziņa, jums varētu patikt arī šie ieteikumi:
- Visual Studio karājas starta laikā, ielādējot jaunākos projektus
- Atjauniniet finanšu dimensijas vērtību no X++ koda programmā Dynamics 365
- Ieslēdziet Dynamics 365 FO Virtual Machine Dev vai Test uzturēšanas režīmā
