HstFill

 (    dbType   : Byte;
      Index    : Word;
      Value          ;
      DateFrom : Date;
      DateTo   : Date;
      DateCre  : Date;
      ZamIdent : LongInt[;
      ExData  : String[200] ])

Procedura plní historickou tabulku tak, že od datumu DateFrom do DateTo ukládá hodnotu Value tak, aby nedošlo ke zničení předchozích informací a přesto systém následně počítal s novými hodnotami. Použijete-li DateTo nulový, půjde historie do nekonečna.

dbType číslo databáze (dbtO, dbtP)
Index index historické položky
Value nová hodnota položky
DateFrom datum, od kterého změna platí
DateCre datum, do kterého změna platí
DCreate datum zadání nové hodnoty
ZamIdent ident zaměstnance
ExData Nepovinná extra data, která jsou 'přilepena' k historické položce. Tato data jsou zobrazena v seznamu historických položek až k oddělovači pipeline '|' a jestliže tento neexistuje, zobrazí se text celý.

Podívejte se na: Historie

Příklad:

Předpokládejme následující rozmístění vět v historické databázi pro určité oddělení, položku (Celé číslo) a zaměstnance:

Poznámka:

  1. ve spodním řádku tabulky je uvedena historická hodnota
  2. v horním řádku je X/Y, což znamená:
3/5 4/5 5/5 5/6 7/6
1 2 0 3 0

Po použití procedury (změna od začátku měsíce 4 do konce měsíce 7 z měsíce 7 na hodnotu 4):

HstFill(dbt, Idx, 4, _Date(1,4,Rok), _Date(1,8,Rok), _Date(1,7,Rok), Id)

se historie změní na:

3/5 4/5 4/7 5/5 5/6 5/7 7/6 7/7 8/7
1 2 4 0 3 4 0 4 2

Je-li požadavek na nekonečné trvání, použijte DateTo nulový. Pak bude předchozí příklad vypadat:

HstFill(dbt, Idx, 4, _Date(1,4,Rok), _Date(0,0,0), _Date(1,7,Rok), Id)

3/5 4/5 4/7 5/5 5/6 5/7 7/6 7/7
1 2 4 0 3 4 0 4

Příklad:

1/1
1

Po použití procedury (změna od začátku měsíce 3 do konce měsíce 3 z měsíce 3 na hodnotu 4):

HstFill(dbt, Idx, 4, _Date(1,3,Rok), _Date(1,4,Rok), _Date(1,3,Rok), Id)

se historie změní na:

1/1 3/3 4/3
1 4 1

Příklad:

 

Příklad:

Výchozí stav historie:

Platí od Založeno Hodnota
01.05.2007 01.05.2007 10
01.06.2007 01.06.2007 20
10.06.2007 01.06.2007 30

HstFill(dbt, Idx, 50, _Date(1,6,2007), _Date(11,6,2007), _Date(1,6,2007), Id)

Nový stav historie:

Hodnoty v 01.06. a 10.06. jsou přepsány novou hodnotou 50. V 11.06. pokračuje hodnota DO 01.06. tedy 10.

Platí od Založeno Hodnota
01.05.2007 01.05.2007 10
01.06.2007 01.06.2007 50
10.06.2007 01.06.2007 50
11.06.2007 01.06.2007 10

HstFill(dbt, Idx, 60, _Date(5,6,2007), _Date(11,6,2007), _Date(1,6,2007), Id)

Nový stav historie:

Doplněna věta 05.06. s hodnotou 60. Přepsána hodnota v 10.06 na 60.  Hodnota v 11.06. je nezměněna, protože tam již věta existovala a proto ji nebylo možno změnit!

Jestliže by věta 11.06. předtím neexistovala, byla by vložena hodnota DO 05.06. tedy 50.

Platí od Založeno Hodnota
01.05.2007 01.05.2007 10
01.06.2007 01.06.2007 50
05.06.2007 01.06.2007 60
10.06.2007 01.06.2007 60
11.06.2007 01.06.2007 10