( 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