( Wg1 : Wage; Wg2 : Wage; GroupItem : Word; Mask : LongInt)
Odečítá proměnné typu Wage podle skupin. To znamená, že oba parametry v proceduře musí být tohoto typu. Rozdíl se uloží do parametru Wg2:
Wg2 := Wg2 - Wg1
Odečítají se všechny numerické položky.
Jestliže bude některý z parametrů GroupItem nebo Mask roven nule, nebude brán v úvahu.
Jestliže bude výsledek operace vkládán do mzdové věty M, nebudou upraveny položky s příznakem ruční opravy. Napřed by je bylo nutno funkcí _HandRepWage smazat.
Jak systém pracuje v případě identu mzdové věty:
dim W, W1 : Wage; SubWage(M, W, 0, 0); { W[dbIdent] := M[dbIdent]; } SubWage(W1, W, 0, 0); { W[dbIdent] := W1[dbIdent]; } SubWage(W, M, 0, 0); { M[dbIdent] := bude nezměněn !! }
Pozor ! Bude-li mzdová věta 'M' zamčena (nastaven bit číslo 15 v attributu) pak platí:
dim WW : Wage SubWage(WW, M, 0, 0); { není povoleno, bude chyba makra } WW := M; { je povoleno } SubWage(M, WW, 0, 0); { je povoleno } M := WW; { není povoleno, bude chyba makra }
Podívejte se na:Mzdy