(    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