Miklix

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

Publicat: 16 februarie 2025 la 11:34:02 UTC
Ultima actualizare: 12 ianuarie 2026 la 08:56:15 UTC

Acest articol explică cum se creează 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 majoritatea vor funcționa și pentru Dynamics AX 2012 (vedeți mai jos).

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

Este puțin mai complicat decât o căutare obișnuită într-un tabel, dar dacă știi cum, nu e chiar atât de rău.

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

Mai întâi, trebuie să creați câmpul formularului în sine. Acesta poate fi bazat 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ă utilizeze 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 „Copiați metoda handlerului de evenimente”. Apoi, puteți lipi o metodă de handler de evenimente goală într-o clasă și o puteți edita de acolo.

Notificare: Majoritatea acestor elemente vor funcționa și pentru Dynamics AX 2012, dar în loc să creați un handler de evenimente, puteți suprascrie metoda de căutare a câmpului formularului.

Rubrica de tratare a evenimentelor trebuie să arate cam așa (înlocuiți numele formularului și numele câmpului, după cum este necesar):

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

Lectură suplimentară

Dacă ți-a plăcut această postare, s-ar putea să-ți placă și aceste sugestii:


Distribuie pe BlueskyDistribuie pe FacebookDistribuie pe LinkedInDistribuie pe TumblrDistribuie pe XDistribuie pe LinkedInPin pe Pinterest

Mikkel Christensen

Despre autor

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