( Mode : Integer; ... ) : xxxx
Tato funkce umožňuje práci s historickými intervaly směn. Její funkce, vstupní parametry i vracený parametr se mění podle parametru Mode.
Mode | Parametry | Popis |
sintModeDejIdentyObdobi |
...
UvazekId : Longint; Mes : Integer; Rok : Integer; PohledMes : Integer; PohledRok : Integer; dim F : File) : Byte |
Vrací stream F, který bude obsahovat platné identy intervalů pro období Rok/Mes z pohledu období PohledRok/PohledMes. Stream F musí být otevřen. Vrací počet nalezených identů. Nula tedy znamená, že pro dané období neexistuje žádný interval. |
sintModeDejIntervalDleId |
...
IntervalId : Longint; dim PlatiOd : DateTime; dim PlatiDo : DateTime; dim Zalozeno : Date; dim UvazekId : Longint; dim CisloSkup : Longint; dim SmenaId : Longint; dim Doklad : String; dim Pozn : String) : Byte |
Podle identu intervalu IntervalId vrací ostatní parametry intervalu. Jestliže bude interval nalezen, vrací funkce true, jinak false. |
sintModeAddInterval |
...
PlatiOd : DateTime; PlatiDo : DateTime; Zalozeno : Date; UvazekId : Longint; SmenaId : Longint; Doklad : String; Pozn : String; dim Chyba : String) : Longint |
Přidá jeden interval. Jestliže vše dopadne dobře, vrací ident nového intervalu. Jestliže se vyskytne chyba, vrací nulu a naplní se parametr Chyba. |
sintModeModInterval |
...
IntervalId : Longint; PlatiOd : DateTime; PlatiDo : DateTime; Zalozeno : Date; SmenaId : Longint; Doklad : String; Pozn : String; dim Chyba : String) : Longint |
Upraví interval jehož ident je IntervalId. Jestliže bude období Zalozeno v nalezeném intervalu shodné s parametrem Zalozeno, bude interval upraven a uložen do databáze. Jestliže nebude období intervalu Zalozeno shodné s parametrem Zalozeno, vytvoří se nová, pokračující věta, která bude vidět z následných období.
Období intervalu Zalozeno musí být menší nebo rovno s parametrem Zalozeno. Jestliže vše dopadne dobře, vrací ident nového nebo původního intervalu. Jestliže se vyskytne chyba, vrací nulu a naplní se parametr Chyba. |
sintModeDelInterval |
...
IntervalId : Longint; Zalozeno : Date; dim Chyba : String) : Byte |
Smaže interval jehož ident je IntervalId. Jestliže bude období Zalozeno v nalezeném intervalu shodné s parametrem Zalozeno, bude interval smazán z databáze. Jestliže nebude období intervalu Zalozeno shodné s parametrem Zalozeno, vytvoří se nová, pokračující věta s atributem smazáno, která bude eliminovat viditelnost původního intervalu z následných období.
Období intervalu Zalozeno musí být menší nebo rovno s parametrem Zalozeno. Jestliže vše dopadne dobře, vrací true. Jestliže se vyskytne chyba, vrací false a naplní se parametr Chyba. |
Podívejte se na: Procedury a funkce - System
Příklad
procedure Test_DejObdobi dim F : File; dim W : Integer; SRewrite(F, "", true); if(_ShiInterval(sintModeDejIdentyObdobi, 132, 2, 2018, 2, 2018, F) > 0)then if _SFirst(F, W) then repeat call Test_DejInterval(_SGet(F, W)); until _SNext(F, W) = 0; endif endif endproc { Test_DejObdobi } procedure Test_DejInterval( nIntervalId : Longint) dim odtPlatiOd : DateTime; dim odtPlatiDo : DateTime; dim dtZalozeno : Date; dim nUvazekId : Longint; dim nCisloSkup : Longint; dim nSmenaId : Longint; dim lsDoklad : String; dim lsPozn : String; if(_ShiInterval(sintModeDejIntervalDleId, nIntervalId, odtPlatiOd,odtPlatiDo,dtZalozeno,nUvazekId,nCisloSkup,nSmenaId,lsDoklad,lsPozn))then Trace(nIntervalId, ",", odtPlatiOd, ",", odtPlatiDo, ",", dtZalozeno, ",",
nUvazekId, ",", nCisloSkup, ",", nSmenaId, ",", lsDoklad, ",", lsPozn); else Trace("Nebyla nalezen ident intervalu: " + _Str(nIntervalId)); endif endproc { Test_DejInterval } procedure Test_AddInterval dim sChyba : String; dim Id : Longint; Id := _ShiInterval(sintModeAddInterval, _DateTime(5,1,2018,8,0,0), _DateTime(10,1,2018,8,0,0),
_Date(1,1,2018), O[dbIdent], 99, "", "", sChyba); Trace(Id," ",sChyba); endproc procedure Test_ModInterval dim sChyba : String; dim Id : Longint; Id := _ShiInterval(sintModeModInterval, Id, _DateTime(7,1,2018,8,0,0), _DateTime(10,1,2018,8,0,0),
_Date(1,2,2018), 99, "", "", sChyba); Trace(Id," ",sChyba); endproc procedure Test_DelInterval dim sChyba : String; dim Id : Longint; Id := _ShiInterval(sintModeDelInterval, 23,_Date(1,2,2018), sChyba); Trace(Id," ",sChyba); endproc