Miklix

Vytvorenie vyhľadávacieho poľa pre finančnú dimenziu v Dynamics 365

Publikované: 16. februára 2025 o 11:34:04 UTC
Posledná aktualizácia: 12. januára 2026 o 8:56:15 UTC

Tento článok vysvetľuje, ako vytvoriť vyhľadávacie pole pre finančnú dimenziu v systéme Dynamics 365 for Operations vrátane príkladu kódu X++.


Táto stránka bola strojovo preložená z angličtiny, aby bola prístupná čo najväčšiemu počtu ľudí. Žiaľ, strojový preklad ešte nie je dokonalá technológia, takže sa môžu vyskytnúť chyby. Ak chcete, môžete si pozrieť pôvodnú anglickú verziu tu:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Informácie v tomto príspevku sú založené na systéme Dynamics 365 for Operations, ale väčšina z nich bude fungovať aj pre systém Dynamics AX 2012 (pozri nižšie).

Nedávno som dostal za úlohu vytvoriť nové pole, v ktorom by malo byť možné zadať jeden finančný rozmer, v tomto prípade Produkt. Nové pole by samozrejme malo byť schopné vyhľadávať aj platné hodnoty tohto rozmeru.

Je to trochu zložitejšie ako bežné vyhľadávanie v tabuľke, ale ak viete ako, nie je to vlastne až také zlé.

Našťastie štandardná aplikácia poskytuje pohodlný vyhľadávací formulár (DimensionLookup), ktorý sa dá na tento účel použiť, ak jej len poviete, ktorý atribút dimenzie má vyhľadávať.

Najprv musíte vytvoriť samotné pole formulára. Môže byť založené na poli tabuľky alebo metóde úprav, pre samotné vyhľadávanie to nezáleží, ale v istom zmysle musí používať rozšírený dátový typ DimensionValue.

Potom musíte pre pole vytvoriť obslužný program udalosti OnLookup. Ak chcete vytvoriť obslužný program udalosti, kliknite pravým tlačidlom myši na udalosť OnLookup pre pole a potom vyberte možnosť „Kopírovať metódu obslužného programu udalosti“. Prázdnu metódu obslužného programu udalosti potom môžete vložiť do triedy a odtiaľ ju upravovať.

Upozornenie: Väčšina z toho bude fungovať aj pre Dynamics AX 2012, ale namiesto vytvorenia obslužného programu udalosti môžete prepísať metódu vyhľadávania poľa formulára.

Obsluha udalosti musí vyzerať nejako takto (podľa potreby nahraďte názov formulára a názov poľa):

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

Ďalšie čítanie

Ak sa vám tento príspevok páčil, možno sa vám budú páčiť aj tieto návrhy:


Zdieľať na BlueskyZdieľať na FacebookuZdieľať na LinkedInZdieľať na TumblrZdieľať na XZdieľať na LinkedInPripnúť na Pintereste

Mikkel Christensen

O autorovi

Mikkel Christensen
Mikkel je tvorcom a majiteľom miklix.com. Má viac ako 20 rokov skúseností ako profesionálny počítačový programátor/vývojár softvéru a v súčasnosti pracuje na plný úväzok pre veľkú európsku IT korporáciu. Keď práve nepíše blog, venuje svoj voľný čas širokej škále záujmov, koníčkov a aktivít, čo sa môže do istej miery odrážať v rôznorodosti tém na tejto webovej lokalite.