U každé položky oddělení O, P nebo M, lze zadat 64 bitovou masku směrů (Mask) a číslo skupiny (GroupItem). Směry a skupiny jsou ukládány do tabulky XITEM_MASK pro každý rok a každou položku .
Směrů a skupin používají makro procedury a funkce pracující s položkami: _Sum, ClrWage, AddWage, SubWage, _WageCache.
Směry a skupiny lze zadat pomocí makrofunkce SetItem(7,10). Jestliže věta v tabulce XITEM_MASK pro ukládaný rok nebude existovat, bude automaticky založena.
Směry a skupiny lze číst makrofunkcí GetInfoItem(7,10). Test na existenci věty pro aktuálně nastavený rok lze makrofunkcí GetInfoItem(57).
Masky a skupiny potřebné pro položkovy z oddělení O,P a M jsou uloženy v databázi. Každá položka má větu masek a skupin pro každý rok uloženu samostatně. V případě, kdy je proveden dotaz na masku nebo skupinu (třeba makrofunkcí _Sum) je postup tento:
Použitelné konstanty směrů (Mask):
| smeRunAlg3 | $00000001 | Po opravě spusť mzd.přepočet |
| smeCopyItemsZam | $00000040 | Kopírovat při kopírování zaměstnance |
| smeCopyItmZamAll | $00000080 | Kopíruje kompletní historii položky |
| smeNoSjPolItem | $00001000 | Nesjednocovat se systémem |
| smePripHstPrep | $00002000 | Připraví pro hist.přepočet mezd |
| smeNulujMinMes | $00004000 | Smaž při mazání přepočtu do minula |
| smeSmazOdch | $00008000 | Vymaž při ukončení PP |
| smeExIm | $00200000 | Sjednocování údajů o zaměstnancích |
| smeImpPeodesy | $01000000 | Peodesy |
| smeRunAlg3 | $00000001 | Po opravě spusť mzd.přepočet |
| smeMoveToM | $00000002 | Přenášet do mezd |
| smeMoveToKrDoch | $00000004 | Při přenosu do mezd krátit o docházku |
| smeMoveToKrUvaz | $00000008 | Při přenosu do mezd krátit o úvazek |
| smePamDoPravPrum | $00000010 | Kč do pravděpod. průměru na dovolenou |
| smePamDoPravPND | $00000020 | Kč do pravděpodobného průměru na ND |
| smeCopyItemsZam | $00000040 | Kopírovat při kopírování zaměstnance |
| smeCopyItmZamAll | $00000080 | Kopíruje kompletní historii položky |
| smeNoSjPolItem | $00001000 | Nesjednocovat se systémem |
| smePripHstPrep | $00002000 | Připraví pro hist.přepočet mezd |
| smeNulujMinMes | $00004000 | Smaž při mazání přepočtu do minula |
| smeSmazOdch | $00008000 | Vymaž při ukončení PP |
| smeExIm | $00200000 | Sjednocování údajů o zaměstnancích |
| smeImpPeodesy | $01000000 | Peodesy |
| smePrDovHod | $00000001 | Hodiny do průměru na dovolenou |
| smePrDov | $00000002 | Kč do průměru na dovolenou |
| smePrNemDny | $00000004 | Dny do průměru na nemoc |
| smePrNem | $00000008 | Kč do průměru na nemoc |
| smeNahrDobDny | $00000010 | Dny náhradní doby |
| smeNahrDob | $00000020 | Kč náhradní doby |
| smeZaklDan | $00000040 | Základ pro daň |
| smeZaklSocPoj | $00000080 | Základ pro sociální pojištění |
| smeZaklZdrPoj | $00000100 | Základ pro zdravotní pojištění |
| smeOsvobOdDan | $00000200 | Osvobozeno od daně |
| smeKDodaneni | $00000400 | K dodanění |
| smePorVzSocZdr | $00000800 | Celkem příjem pro porovnání VZ |
| smeNoSjPolItem | $00001000 | Nesjednocovat se systémem |
| smeZahrExpert | $00002000 | Daň - zahraniční expert. |
| smeNuluj | $00004000 | Nuluj před přepočtem |
| smeHrubaProDan | $00008000 | Do hrubé mzdy pro porovnání daně |
| smeCompPol | $00010000 | Hist.porovnání pol.pro výpis |
| smeRecommendedFill | $00010000 | Doporučeno vyplnit - upozornění |
| smeOdbory | $00020000 | Odborový příspěvek |
| smeRequiredFill | $00020000 | Povinně vyplnit - chyba |
| smeZakZakPl | $00040000 | Zakázky: základní plat |
| smeZakOstDoPoj | $00080000 | Zakázky: ostatní do pojištění |
| smeZakOstNePoj | $00100000 | Zakázky: ostatní bez pojištění |
| smeExIm | $00200000 | Sjednocování údajů o zaměstnancích |
| smeZaklSrDI | $00400000 | Do základu pro srážkovou daň I. |
| smeZaklSrDII | $00800000 | Do základu pro srážkovou daň II. |
| smeZaklSrDIII | $01000000 | Do základu pro srážkovou daň III. |
| smeZokNa1KcUp | $02000000 | Zaokrouhlovat na celé Kč nahoru |
| smeNeDoZarucMzd | $04000000 | Vyloučit z výpočtu dohodnuté čisté |
| smeHandChange | $08000000 | Dovolit ruční opravu položky |
| smeDolniOprava | $10000000 | Položky v opravné větě 'dolní' |
| smeArcibPrDot | $20000000 | Položky Průměry dotované |
| smeArcibZdrDot | $40000000 | Položky Zdravotní dotované |
| smeArcibSocDot | $80000000 | Položky Sociální dotované |
| smeDoRozdNakladu | $00000001 | Rozdělení nákladů - položky, které lze rozdělit |
| smeDoRNRezie | $00000002 | Rozdělení nákladů - všechny režijní položky i nerozdělované |
| smeDoRNSumWage | $00000004 | Rozdělení nákladů - kopírované ze sumární věty do základní v případě přepočtu z minula |
Jestliže bude některý z parametrů GroupItem nebo Mask roven nule, nebude brán v úvahu.
Berou se v úvahu položky, která vyhoví podmínce:
(Mask=0 or (PolSmer land Mask <> 0)) and (GroupItem=0 or PolGroupItem = GroupItem)
Příklad:
dim Suma : Real; Suma := _Sum(dbtM, 0, $00000001);
Sečte všechny položky, které mají ve směrech aktuálně nastaveného období nastaven první bit (hodnota $00000001). Skupina nebude brána v úvahu, protože je 0.