Nazwy zmiennych zwracają mi 0, natomiast ich funkcje liczą

Nazwy zmiennych zwracają mi 0, natomiast ich funkcje liczą

Postprzez /dev/null » 18.05.2024 14:45

Witam,
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 ?
---- Wszędzie dobrze, ale w ~ najlepiej ----
Awatar użytkownika
/dev/null
 
Postów: 24
Dołączył: 21.01.2021 01:08

Re: Nazwy zmiennych zwracają mi 0, natomiast ich funkcje lic

Postprzez gumek » 15.01.2025 17:37

Witam po długim czasie.
Kiedyś próbowałem uporządkować trochę forum i utworzyc taki post, który zajmowałby sie definiowaniem, żeby nie było to w różnych tematach.
Nieskromnie to ja pisałem te formuły i działaja poprawnie.
Zawsze trzeba ustawic poprawnie dane wejsciowe, żeby otrzymac prawidłowe wyniki.
1/ stałe roczne i miesięczne
2/ kariera, okresy w karierze
3/ dane ludków- daty urodzenia, płeć etc. (korzystamy z różnych danych to tworzenia formuł

Odpowiedz, czy rozumiesz ten zapis:

iif(Osoby('SO')='W'.and.Kariera('CZYRENT'),PODS_W*(Stala('FRp')/100)+PODS_W*(Stala('FRz')/100),0)

jeżeli Status osoby=Właściciel oraz ustawienie w karierze czy ludek podlega ubezpieczeniu rentowemu ,(prawda) to podstawa ubezpieczeń społecznych*Stała FRp(pracownika)/100+to podstawa ubezpieczeń społecznych*Stala FRz (zakładu)/100,
jesli (fałsz) zwraca 0-zero) tyle. Pytaj dalej, jeśli masz wszystko OK a nie działa nadal. :)
gumek
 
Postów: 130
Dołączył: 22.04.2008 09:55


Powróć do Kadry

Kto jest online

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość