Filtrování číselníků

Data číselníků lze filtrovat podle speciálních parametrů nebo podle obecných pravidel. Při filtrování podle speciálních parametrů se danému číselníku nastaví parametry jmen platných jen pro daný číselník. Tyto parametry mohou nabývat jen dohodnutých hodnot. Podrobně jsou jména těchto parametrů a jejich použití popsány zvlášť u každého číselníku v části "Filtrovací podmínky".

Při filtrování podle obecných pravidel se data filtrují podle klíčů zobrazovaného číselníku. Při filtrování se používají dále uvedené řídící znaky, které se zadají do parametru číselníku. Parametr má syntaxi "řídící znaky=filtrovací hodnoty". Podrobné použití obecných pravidel bude vysvětleno na příkladech.

Povolené řídící znaky:

Znaky uvozují název klíče.
Filtrování podle regulárního výrazu.
Filtrace za výčet hodnot. Jednotlivé hodnoty se oddělují středníkem.
Negace. Jsou zobrazeny všechny věty, které nevyhovují filtrovacím hodnotám.
Filtrováním se vynechají záznamy se zadaným vnitřním ID.
Zafiltrování jen za záznamy se zadaným vnitřním ID.

Použití ukážeme na číselníku skladových karet:

V příkladu se zobrazí všechny skladové karty začínající na "S".

Set mApplication = CreateObject("AbraOLE.Application")
If mApplication.Login("Supervisor", "") Then' Vytvoření číselníku skladových karet
  Set mRoll = mApplication.GetRoll("S3WZQKDB5FDL342M01C0CX3FCC", 0)' Zadání filtrační podmínky - regulárního výrazu
  mRoll.Params.Add "@@^Code=^S*" 'Příkaz zafiltruje všechny skladové karty s kódem začínajícím na "S".
  ' Znak ^ před rovnítkem umožňuje filtrovat podle masky 
  ' Znak @ uvozuje jméno klíče, podle kterého se bude číselník filtrovat
  ' Znak ^ za rovnítkem znamená vyhledání následujícího znaku na začátku kódu 
  ' Znak * znamená libovolný počet opakování znaku 
  mOID = mRoll.SelectDialog2(True, "")' Zobrazení interního ID vybrané karty
  MsgBox mOID
End If

Další příklady filtračních podmínek pro skladové karty:

  1. Negace

    Zafiltrování všech skladových karet s kódem nezačínajícím na "S".

    mRoll.Params.Add "@!^Code=^S*"
  2. Filtrování za seznam hodnot.

    Znak # umožňuje zadat seznam hodnot klíčů. Řídící znaky lze kombinovat. Zafiltrování karet s kódem začínajícím na S nebo na 1.

    mRoll.Params.Add "@#^Code=^S*;^1*"

    Zafiltrování karet s kódy S01,S02 a 12.

    mRoll.Params.Add "@#Code=S01;S02;12"
  3. Negace seznamu hodnot.

    V seznamu zafiltrovaných skladových karet se neobjeví karty s kódy S01,S02 a 12.

    mRoll.Params.Add "@#!Code=S01;S02;12"
  4. Zafiltrování všech skladových karet s kódem začínajícím na "0" a vynechání karet s vnitřním ID 3100000101 a 4100000101.

    mRoll.Params.Add "@^Code=^0*"
    mRoll.Params.Add "_Excluded=3100000101;4100000101"
  5. Zafiltrování jen za skladové karty s vnitřním ID 3100000101 a 4100000101.

    mRoll.Params.Add "_Allowed=3100000101;4100000101"