Creació d'un camp de cerca per a una dimensió financera al Dynamics 365
Publicat: 5 de març del 2025, a les 19:29:03 UTC
Última actualització: 12 de gener del 2026, a les 8:56:53 UTC
Aquest article explica com crear un camp de cerca per a una dimensió financera al Dynamics 365 for Operations, incloent-hi un exemple de codi X++.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
La informació d'aquesta publicació es basa en el Dynamics 365 for Operations, però la major part també funcionarà per al Dynamics AX 2012 (vegeu més avall).
Recentment m'han encarregat la creació d'un camp nou en què hauria de ser possible especificar una única dimensió financera, en aquest cas Producte. Per descomptat, el nou camp també hauria de poder cercar els valors vàlids d'aquesta dimensió.
Això és una mica més complicat que una cerca normal en una taula, però si saps com fer-ho, en realitat no està tan malament.
Afortunadament, l'aplicació estàndard proporciona un formulari de cerca pràctic (DimensionLookup) que es pot utilitzar per a aquest propòsit, si només li indiqueu quin atribut de dimensió ha de cercar.
Primer, heu de crear el camp del formulari. Aquest pot estar basat en un camp de taula o en un mètode d'edició, no importa per a la cerca en si, però d'una manera o altra ha d'utilitzar el tipus de dades ampliat DimensionValue.
Continuació, heu de crear un controlador d'esdeveniments OnLookup per al camp. Per crear un controlador d'esdeveniments, feu clic amb el botó dret a l'esdeveniment OnLookup per al camp i, a continuació, trieu "Copia el mètode del controlador d'esdeveniments". A continuació, podeu enganxar un mètode de controlador d'esdeveniments buit en una classe i editar-lo des d'allà.
Avís: La major part d'això també funcionarà per al Dynamics AX 2012, però en comptes de crear un controlador d'esdeveniments, podeu substituir el mètode de cerca del camp de formulari.
El controlador d'esdeveniments ha de tenir un aspecte semblant a aquest (substituïu el nom del formulari i el nom del camp segons calgui):
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);
}
Lectures addicionals
Si t'ha agradat aquesta publicació, també et poden agradar aquests suggeriments:
- El Visual Studio es bloqueja a l'inici mentre carrega els projectes recents
- Afegiu un mètode de visualització o d'edició mitjançant l'extensió al Dynamics 365
- Actualitzeu el valor de la dimensió financera del codi X++ al Dynamics 365
