9.4 Filtr połączenia

 

Jednym z parametrów akcji AsbaseOpen i AsbseNavigate (w wariancie $Filter) jest filtr pozwalający wybrać dane, które mają być użyte w połączeniu. Filtry można też stosować w obiekcie Tabela Asbase.

Składnia filtru jest zgodna z klauzulą WHERE języka SQL z dodatkowymi, opcjonalnymi rozszerzeniami pozwalającymi na wstawianie do tej klauzuli wartości zmiennych procesowych oraz ograniczeń czasowych. Słowa WHERE nie podaje się w definicji filtru. Istnieje też możliwość dodania do składni filtru klauzuli ORDER BY w celu uporządkowania danych.

Z reguły w definicji filtru używa się odwołań do pól zdefiniowanych  w zestawie archiwizacji lub grupie receptur. Aby wartość pola zestawu rejestracji, receptury lub historii ładowań mogła być użyta jako element filtru, to identyfikator tego pola należy poprzedzić przedrostkiem "V_". W przypadku archiwum zestawu rejestracji, z każdą wartością pola może być związany status wartości oraz stempel czasowy tej wartości. Aby skorzystać z tych elementów, należy identyfikator pola zestawu rejestracji poprzedzić przedrostkiem "S_" lub "T_". W przypadku receptur przeliczanych można się odwołać do pola wartości procentowej w rekordzie załadowania stosując przedrostek "VP_”.

AsbaseOpen(conn1, $Archive, Farby, FarbyDgr, null, null, ”V_Akt=1” )

W powyższym przykładzie zastosowany filtr powoduje pobranie tylko tych danych z zestawu rejestracji Farby, dla których wartość pola o identyfikatorze Akt jest równa 1.

W przypadku połączeń typu relacyjnego, w których używane jest również podrzędne źródło danych, odwołania do pól źródeł danych należy dodatkowo uzupełnić o prefiks m dla pól źródła głównego (master) lub o prefiks d dla źródła podrzędnego (detail), np. „m.V_Akt=1”.

Oprócz odwołań do wartość pól definiowanych przez projektanta aplikacji, można również używać nazw stałych pól tabel AsBase, tj. takich pól, które zawsze są obecne w tabeli. Pola stałe opisuje poniższa tabela.

Tab. Pola stałe tabel AsBase'a.

Nazwa

Znaczenie

LOCALTIME

Lokalny czas zapisu rekordu lub załadowania receptury

UTCTIME

Czas UTC  zapisu rekordu lub załadowania receptury

STATUS

Status operacji załadowania receptury

SOURCE

Źródło pochodzenia rekordu rejestracji

NAME

Nazwa receptury

LOADBY

Określa kto załadował recepturę

TARGET

Miejsce załadowania receptury

CREATEDBY

Autor receptury

BATCH

Wartość wsadu dla załadowania receptury przeliczanej.