_ShiInterval

(    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.

Popis parametrů:

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