Miklix

Crearea unui câmp de căutare pentru o dimensiune financiară în Dynamics 365

Publicat: 16 februarie 2025 la 11:34:02 UTC

Acest articol explică cum să creați un câmp de căutare pentru o dimensiune financiară în Dynamics 365 for Operations, inclusiv un exemplu de cod X++.


Această pagină a fost tradusă automat din limba engleză pentru a o face accesibilă cât mai multor persoane. Din păcate, traducerea automată nu este încă o tehnologie perfecționată, astfel încât pot apărea erori. Dacă preferați, puteți vizualiza versiunea originală în limba engleză aici:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Informațiile din această postare se bazează pe Dynamics 365 for Operations, dar cea mai mare parte va funcționa și pentru Dynamics AX 2012 (vezi mai jos).

Recent am fost însărcinat să creez un nou domeniu în care să fie posibilă specificarea unei singure dimensiuni financiare, în cazul de față Produs. Desigur, noul câmp ar trebui să poată căuta și valorile valide ale acestei dimensiuni.

Acest lucru este puțin mai complicat decât o căutare obișnuită într-un tabel, dar dacă știți cum, de fapt nu este prea rău.

Din fericire, aplicația standard oferă un formular de căutare convenabil (DimensionLookup) care poate fi folosit în acest scop, dacă îi spuneți ce atribut de dimensiune să căutați.

În primul rând, trebuie să creați propriul câmp de formular. Aceasta se poate baza pe un câmp de tabel sau pe o metodă de editare, nu contează pentru căutarea în sine, dar într-un fel sau altul trebuie să folosească tipul de date extins DimensionValue.

Apoi, trebuie să creați un handler de evenimente OnLookup pentru câmp. Pentru a crea un handler de evenimente, faceți clic dreapta pe evenimentul OnLookup pentru câmp, apoi alegeți „Copy event handler method”. Puteți apoi să lipiți o metodă de gestionare a evenimentelor goală într-o clasă și să o editați de acolo.

Notă: Cele mai multe dintre acestea vor funcționa și pentru Dynamics AX 2012, dar în loc să creați un handler de evenimente, puteți înlocui metoda de căutare a câmpului formularului.

Managerul de evenimente trebuie să arate cam așa (înlocuiți numele formularului și numele câmpului după caz):

[
    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);
}
Distribuie pe BlueskyDistribuie pe FacebookDistribuie pe LinkedInDistribuie pe TumblrDistribuie pe XDistribuie pe LinkedInPin pe Pinterest

Mikkel Bang Christensen

Despre autor

Mikkel Bang Christensen
Mikkel este creatorul și proprietarul miklix.com. El are peste 20 de ani de experiență ca programator de calculatoare/dezvoltator software profesionist și este în prezent angajat cu normă întreagă pentru o mare corporație europeană de IT. Atunci când nu scrie pe blog, își petrece timpul liber cu o gamă largă de interese, hobby-uri și activități, care se pot reflecta într-o anumită măsură în varietatea de subiecte abordate pe acest site.