Položky v oddělení osobním a pamu mohou mít tzv historii. Historie je speciální databáze, do které se v časovém sledu ukládají hodnoty položek. Protože historie musí být definována časově, je nutno při změnách historických položek zadávat i datum od kdy hodnota platí a kdy byla zadána. Zobrazení položek v editoru položek automaticky vybírá příslušnou hodnotu vzhledem k zadanému skutečnému měsíci a systémovému roku. Po historické databázi lze krokovat pomocí makrofunkcí _HstFirst, _HstLast, _HstValid, _HstNext a _HstPrev. Pro tyto funkce se historie jednoho zaměstnance jeví jako sled vět seřazených podle datumu platnosti historické věty (DP) a podle datumu založení (DZ).
Historické věty jedné položky jednoho zaměstnance ¸÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ç Ë Skupina jednoho Ë Ë datumu platnosti Ë ¸÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ç Ë ËJedna Ë Ë Ëvěta Ë Ë ¸÷÷÷÷÷ç Ë Ë DP=datum od kdy hist.pol. ¸÷÷ö÷÷ë÷÷ö÷÷ë÷÷ö÷÷ç¸÷÷ö÷÷ë÷÷ö÷÷ç¸÷÷ö÷÷ë÷÷ö÷÷ç platí ËDPËDZËDPËDZËDPËDZËËDPËDZËDPËDZËËDPËDZËDPËDZË DZ=datum, kdy byla hist.pol. Ë 1Ë 1Ë Ë 5Ë Ë 6ËË 3Ë 3Ë Ë 5ËË 5Ë 5Ë Ë 8Ë založena î÷÷ô÷÷ë÷÷ô÷÷ë÷÷ô÷÷¶î÷÷ô÷÷ë÷÷ô÷÷¶î÷÷ô÷÷ë÷÷ô÷÷¶ Ë Ë î Toto najde _HstLast Ë Ë Ë î÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ Toto najde _HstValid pro Ë DP=1 Ë î÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ Toto najde _HstFirst Algoritmus pro získání historické položky z historické databáze DRef := _LastDate(_ActMonth,_SysYear) ; referenční datum DSep := _LastDate(_LastMonth,_LastYear) ; oddělovací datum DP ; datum platnosti v hst větě DZ ; datum založení v hst větě 1) v historické databázi najdi pro danou položku větu, která splňuje: DP /= DRef 2) jestliže pak bude splněno: //÷÷÷÷÷÷÷÷÷÷÷ç DZ /= DSep Ë nahraj tuto větu z historické databáze Ë 3) jinak vyhledej bezprostředně předchozí větu a: ¶ · Oddělovací datum se nastavuje automaticky po zvýšení _LastMonth a _LastYear, nebo lze použít speciální proceduru HstSetSep. · POZOR na údaje v budoucnosti! Budoucnost se chová jinak než minulost! Příklad: - Aktuální měsíc je 6. Vyšetřovaná položka je P[100]. - V měsíci 5 je hodnota 500 platná: 1/5 zadaná: 1/5 - V měsíci 6 je hodnota 600 platná: 1/6 zadaná: 1/6 - V měsíci 7 je hodnota 700 platná: 1/7 zadaná: 1/7 ! Při přepnutí do měsíce 5 (_SetActMonth(5)): P[100] = 500 Při přepnutí do měsíce 7 (_SetActMonth(7)): P[100] = 600 !! Na příkladu je vidět, že přepnutím do minulosti vrací systém hodnoty v minulosti zadané protože oddělovací datum je vždy menší než datum zadání položky. Protože v příkladu je oddělovací datum v měsíci 6, vrací tedy systém, po přepnutí do měsíce 7, hodnotu z měsíce 6! Lze říci, že systém vždy vrací hodnoty z pohledu měsíce, ve kterém je oddělovací datum. Je-li potřeba zobrazit budoucnost tak jak byla zadána, použijte proceduru HstSetSep na posunutí oddělovacího datumu.Blíže se o historii a jejím dopadu na hlavní databáze dozvíte v popisu hlavních databází.