Walczę z listami płac, mianowicie próbuję wyliczyć listę płac dla właściciela, i zauważyłem że wychodzi mi 0 dla składników np. rentowa właściciela > FR_W.
FR_W ma definicję:
- Kod: Zaznacz wszystko
iif(Osoby('SO')='W'.and.Kariera('CZYRENT'),PODS_W*(Stala('FRp')/100)+PODS_W*(Stala('FRz')/100),0)
Nie wiem jak testujecie funkcje jeżeli macie problemy, ja po prostu wpierw 0 zmieniam na coś innego - wtedy wiem że nie spełnia iif-a - tutaj osoba spełnia iifa.
Następnie zmieniłem mnożenie na sumę, w ten sposób wiem że każdy składnik jest 0, stałą ogarniam, nie ogarniam natomiast PODS_W.
PODS_W ma definicję:
- Kod: Zaznacz wszystko
iif(DM_W=0,0,(Stala('MPS')/DM_W)*DMP_W)
I tutaj są schody, bo zmieniam drugie zero na 9, przeliczam i mam 0 -> czyli DM_W zwraca coś co nie jest równe 0, przez co zwraca mi coś co nie jest 9 którą tam wpisałe,.
Nie umiem inaczej tego sprawdzić jak zamieniając FR_W
- Kod: Zaznacz wszystko
iif(Osoby('SO')='W'.and.Kariera('CZYRENT'),DM_W,1)
żeby zobaczyć co zwraca DM_W, przeliczam i dostaje 0... czyli DM_W jednak zwraca zero.... mimo iż nie zwraca... to samo robi DMP_W też robi zero. Jedynie Stala('MPS') zwraca poprawną wartośc tutaj wpisana.
Może ktoś pomoże lub nakieruje ?
EDIT:
Natomiast pisujać w definicje FR_W:
- Kod: Zaznacz wszystko
DniKal()
zwraca mi na kwiecień 30, czyli poprawnie.... ja nie wiem to chyba czarna magia ?!
Wpisuje w FR_W: DniKal(), zwraca mi 30, DniAbs(), zwraca 0, DniKal()-DniAbs(), zwraca mi 30, wpisuje w definicji: DM_W, zwraca 0, wpisuje DMP_W, zwraca zero.
DM_W w formule ma DniKal()
DMP_W w formule ma DniKal()-DniAbs()
Czy coś ze mną nie tak ? czy trzeba to zapisywać w innej formule ? Zrobiłem też reindeksacje na wszelki, bez zmian.
Edit2, zmieniają definicje FR_W na :
- Kod: Zaznacz wszystko
iif(Osoby('SO')='W'.and.Kariera('CZYRENT'),(iif(DniKal()=0,0,(Stala('MPS')/DniKal())*(DniKal()-DniAbc())))*(Stala('FRp')/100)+(iif(DniKal()=0,0,(Stala('MPS')/DniKal())*(DniKal()-DniAbc())))*(Stala('FRz')/100),0)
czyli defacto cofając się wymieniając zmienne na ich pierwotną funkcję, dla których zwraca 0, liczy mi poprawnie.
Czy Windows11 nie radzi sobie ? czy brakuje mi jakiegoś ustawienia ? czy brakuje jakiejś biblioteki ?