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++.
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:
- Actualizați valoarea dimensiunii financiare din codul X++ în Dynamics 365
- Visual Studio se blochează la pornire în timpul încărcării proiectelor recente
- Adăugați o metodă de afișare sau de editare prin extensie în Dynamics 365
