Knižnica EvalLib.

Vyhodnocovanie výrazov zadaných užívateľom do reťazcovej premennej, filtrovanie tabuliek, užívateľské rozhranie ...

Download Download Exe demo Cenník Platobné podmienky Detailný popis knižnice Zoznam funkcií
 
Sada komponentov Eval slúži na vylepšenie práce v databázových aplikáciách písaných v Delphi. Tieto komponenty majú uľahčiť, resp. umožniť nasledujúce skutočnosti :

Problémy :

  1. Filtre v komponente TDataSet. Štandardné filtre Delphi majú niekoľko nevýhod:
  2. Vypočítané polia(calculated fields) sa ťažko používajú, pokiaľ neviete dopredu vzorec pre ich výpočet. Niekedy nastáva situácia, ža tento vzorec prográtor nepozná, ten je známy až pri prevádzke, resp. môže sa aj meniť. Navyše práca s mnohými vypočítanými poľami Delphi program veľmi spomaľuje, pretože tieto polia sa počítajú relatívne často.
  3. Delphi neobsahuje žiadny užívateľský editor výrazov a filtrov, ako má napr. Excel.

Riešenia:

Nami ponúkaná sada komponentov EVAL rieši z veľkej časti tieto drobné nedostatky Delphi. Základom je komponent TEval, ktorý slúži na run-time vyhodnocovanie výrazov zadaných v stringovej premennej. Tento komponent obsahuje výkonné jadro, ktoré string po jeho zadaní raz analyzuje (zistí prípadné syntaktické chyby) a potom ho opakovane vyhodnocuje. Podporuje pritom prevažnú časť štandardných funkcií Delphi a navyše má niekoľko veľmi silných funkcií, ktoré sú zabudované priamo v komponente TEval.
  1. Filtrovanie tabuliek je možné riešiť dvoma spôsobmi:
    1. Rozšíriť množinu funkcií pomocou komponentu TEval spolu s použitím udalosti OnFilterRecord pre TDataSet. Takto môžeme vytvárať veľmi všestranné filtre, bez obmedzenia na množinu funkcií, dokonca aj s užívateľským editorom podmienok.
    2. Farebne odlíšiť tie riadky tabuľky, ktoré vyhovujú filtru. Napr. v DBGride použijeme udalosť OnCellParams na vyhodnotenie podmienky cez TEval, a ak podmienka=true, dáme BackgroundColor=clYellow. Vidíme tu síce všetky riadky tabuľky, ale máme zvýraznené to, čo by sme videli pri použití bodu 1. Navyše sme získali na rýchlosti, pretože sa nevyhodnocuje celá množina, ale vždy len to, čo je vidieť na obrazovke. Použitím komponentu TEvalDBNavigator môžeme zabezpečiť posun len po tých riadkoch, ktoré vyhovujú podmienke.
  2. Vypočítané polia môžeme definovať priamo počas behu programu, resp. aj pridávať nové polia. Prepojením udalosti OnGetText pre TField a komponentu TEval môžeme zabezpečiť zobrazovanie výsledku. Pri použití knižnice EVAL sa počíta premenná iba vtedy, keď je potrebná jej hodnota.
  3. Na editáciu výrazov a filtrov slúži komponent TEvalPanel, ktorý dovoľuje užívateľovi vyberať si z množiny funkcií a ich parametrov a tak zostaviť výraz alebo filter. Počas zadávania môže koncový užívateľ kontrolovať výsledok priamo v tomto paneli. Pre zábudlivých alebo pohodlných obsahuje tiež History combo box, kde si môžete vybrať zo starších podmienok a filtrov, resp. ukladať nové výrazy a filtre.
  4. Balík komponentov EVal obsahuje tiež komponenty, pomocou ktorých môžete zostaviť vlastné užívateľské rozhranie tak, aby spĺňalo Vaše predstavy.
  5. Knižnica EVAL rozširuje Delphi o množstvo funkcií, ktoré sú pre užívateľa potrebné, napr. porovnávanie textu s chybami, test reťazcov podľa zvukovej zhody, operácie s dátumami, prevod meny na text a pod.
  6. Poskytuje funkcie, ktoré bežne Delphi nepozná, napr. určitý integrál.
  7. Ak zakúpite verziu so zdrojovým kódom, môžete veľmi ľahko pridávať vlastné funkcie.

Nevýhody komponentov EVAL:

Keďže ide o vyhodnocovanie výrazu, ktorý je definovaný až za behu programu, trvá jeho vyhodnotenie dlhšie ako kompilovaný kód. Podľa merania, ktoré je zabudované v demo programe ku knižnici EVAL je priamy kompilovaný kód asi 8x rýchlejší ako vyhodnotenie knižnicou EVAL.