archiver
Funkce
Archivuje požadovaná data buď do standardního databázového souboru ve formátu dBase III nebo do libovolného databázového systému přes rozhraní ODBC. Strukturu záznamu lze uživatelsky podle
potřeby definovat. Archivní soubory mohou vznikat jednorázově nebo periodicky podle časového období
zachyceného v jednom archivním souboru. Lze také definovat jejich historii, respektive počet souborů
uchovávaných na disku nebo v databázích.
Syntax
archiver archiver_name;
rem = string;
bubble = string;
timer = timer_name;
owner = owner_name;
position = integer, integer, integer, integer;
win_disable = [ identifier, . . . ];
win_title = string;
access = integer;
tab_select = integer;
send_same_data;
driver_exception = driver_name;
file_name = string;
file_type = identifier;
file_length = integer;
file_start = integer, integer, integer, integer;
file_history = integer;
file_name_type = identifier;
file_mask_expression = real_expression;
file_delete = boolean_expression;
cache = integer;
condition = boolean_expression;
output = boolean_dataelement;
date_item
name = string;
expression = real_expression;
disable;
end_date_item;
time_item
name = string;
expression = real_expression;
disable;
end_time_item;
odbc
enable;
dsn = string;
user_name = string;
password = string;
file_extension = string;
end_odbc;
item
name = string;
type = identifier;
length = integer;
dec_places = integer;
expression = any_expression;
end_item;
item
...;
end_item;
colors
text = color;
background = color;
top_shadow = color;
bottom_shadow = color;
select = color;
button_up_background = color;
button_up_top_shadow = color;
button_up_bottom_shadow = color;
button_down_background = color;
button_down_top_shadow = color;
button_down_bottom_shadow = color;
end_colors;
end_archiver;
Specifické parametry přístroje
Podrobný popis parametrů pro definici archivních souborů je uveden v kapitole Databáze a archivace dat.
- file_name
Název, maska nebo znaky pro identifikaci archivních souborů.
- file_type
Způsob zakládání souboru.
- file_length
Délka časového období zachyceného v relativním nebo absolutním souboru.
- file_start
Datum a čas zakládání nového absolutního souboru
- file_name_type
Způsob kódování jména relativního a absolutního souboru.
- file_history
Počet udržovaných relativních a absolutních archivních souborů na disku nebo v databázi.
- file_mask_expression
Numerický výraz jehož vyhodnocením je získána hodnota pro vytvoření jména permanentního souboru.
- file_delete
Pokud je výsledkem tohoto logického výrazu hodnota true, bude permanentní soubor smazán.
- cache
Určuje, kolik záznamů má být udržováno ve vyrovnávacím bufferu. Zápis do souboru je tedy proveden až po naplnění bufferu.
- condition
Logický výraz, jehož splnění znamená povolení archivování. Není-li uveden, archivuje se vždy.
- output
Jméno proměnné nebo výstupního kanálu typu boolean, který bude nastavován na hodnotu true po každém zápisu záznamu do souboru.
- date_item a end_date_item
Ohraničení sekce datumové položky
- name
Jméno položky v záznamu pro datum. Standardně je pužito DATE.
- expression
Výraz pro externí datum. Výsledek musí být číslo reprezentující datum ve tvaru rrrrmmdd. Pokud je datum neplatné, je záznam zapsán do chybového souboru. Pokud není tento výraz nadefinován, bude použito systémové datum.
- disable
Bude-li tento parametr uveden, pak ve struktuře záznamu nebude datumová položka.
- time_item end_time_item
Ohraničení sekce pro definici časové položky
- name
Jméno položky v záznamu pro čas. Standardně je pužito TIME.
- expression
Výraz pro externí čas. Výsledek musí být číslo udávající počet milisekund ve dni. Pokud je čas neplatný, je záznam zapsán do chybového souboru. Pokud není tento výraz nadefinován, bude použit systémový čas.
- disable
Bude-li tento parametr uveden, pak ve struktuře záznamu nebude položka pro čas.
- odbc a end_odbc
Ohraničení sekce pro definici připojení přes rozhraní ODBC.
- enable
Povolení archivace přes rozhraní ODBC.
- dsn
Soubor DSN (Data source name), který obsahuje parametry nutné pro připojení ke zdroji dat databáze.
- user_name
Přihlašovací jméno uživatele do databáze.
- password
Heslo uživatele pro přístup do databáze.
- file_extension
Přípona archivního souboru.
- item a end_item
Klíčová slova uzavírající vždy všechny parametry týkající se jedné položky záznamu.
- name
Jméno položky v záznamu.
- type
Typ databázové položky:
character - pro textové položky
numeric - pro numerické hodnoty
logical - pro hodnoty typu boolean
- length
Délka (velikost) databázové položky
- dec_places
Počet desetinných míst numerické položky.
- expression
Výraz, jehož vyhodnocením je získána archivovaná hodnota. Musí být stejného typu jako je typ databázové položky.
- colors
Seznam prvků přístroje, kterým lze nastavit barvy:
text - text
background - pozadí
top_shadow - horní stín
bottom_shadow - spodní stín
select - orámování při vybrání přístroje
button_up_background - barva pozadí tlačítka
button_up_top_shadow - barva horního stínu tlačítka
button_up_bottom_shadow - barva spodního stínu tlačítka
button_down_background barva pozadí stisknutého tlačítka
button_down_top_shadow - barva horního stínu stisknutého tlačítka
button_down_bottom_shadow - barva spodního stínu stisknutého tlačítka
Poznámky
Postup při vykonávání funkcí přístroje
- u permanentního souboru vyhodnotí file_delete a případně ho smaže
- pokud je definována podmínka pro archivování, vyhodnotí ji; je-li výsledek true, pokračuje v činnosti
- vyhodnotí všechny výrazy a získané hodnoty zapíše do nového záznamu
- nastaví output na true
- u relativních a absolutních souborů provede korekci počtu souborů na disku
- přidá záznam do archivního souboru
Vzhled a ovládání archiveru
Při vložení samotného archiveru do aplikace se zobrazí v podobě uvedené na obrázku:
Bude mít tlačítko a prostor pro zobrazování názvu právě aktuálního archivního souboru.
Kliknete-li myší na tlačítko (ikona pro otevření souboru), zobrazí se dialogové okno,
ve kterém jsou zobrazeny dostupné archivní soubory. Data vybraného souboru lze prohlížet
nebo zpracovávat dostupnými DataView nebo soubor zkopírovat do jiného adresáře nebo
jej uložit pod jiným jménem.
Některé parametry mají implicitní nastavení
position = 0, 0, 150, 28;
access = <none>
tab_select = <none>
file_type = relative;
file_length = hour;
file_start = 0, 0, 1, 1;
file_history = 10;
file_name_type = new_code;
cache = 1;
date_item
name = 'DATE';
end_date_item;
time_item
name = 'TIME';
end_time_item;
colors
text = black;
background = lgray;
top_shadow = dgray;
bottom_shadow = white;
select = black;
button_up_background = lgray;
button_up_top_shadow = white;
button_up_bottom_shadow = dgray;
button_down_background = lgray;
button_down_top_shadow = dgray;
button_down_bottom_shadow = white;
end_colors;
Příklad
Příklad nastavení přístroje:
archiver Archiver1;
timer = 0.1;
owner = background;
position = 40, 45, 174, 28;
win_title = 'Archiver';
file_type = absolute;
file_length = day;
file_start = 0, 6, 0, 0;
file_name = B;
file_history = 7;
condition = B1_archive_enabled;
output = B1_output;
item
name = QUANTITY;
type = numeric;
length = 6;
dec_places = 2;
expression = 10 * sin( second / 60 );
end_item;
end_archiver;
Nativní procedury přístroje
DoArchive()
Provede archivaci nadefinovaných dat.
FlushBuffer()
V případě, že je definován buffer (parametr cache), dojde při zavolání této metody k zápisu dat z bufferu do souboru na disk a k jeho vyprázdnění.
Show()
Zobrazení skrytého přístroje.
Hide()
Skrytí viditelného přístroje.
Událostní procedury přístroje
Přístroj může volat standardní událostní procedury:
OnActivate()
OnMouseDown( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean )
OnMouseDoubleClick( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean )
OnMouseUp( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean )
OnMouseMove( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean )
OnSelect()
OnDeselect()
OnShow()
OnHide()
OnNewPosition( RectX, RectY, RectW, RectD : integer )
OnWindowMinimize()
OnWindowMaximize()
OnWindowRestore( WasMinimized, WasMaximized : boolean )
OnWindowClose()
Podrobnější informace k těmto procedurám lze nalézt v kapitole
Programování a procedury.