Naliczanie obciążeń w module czynszowym systemu Gw-Max realizowane jest za pomocą mechanizmu kalkulacji funkcji na słowniku elementów składników czynszu.
Wyliczona wartość składnika czynszowego w danym miesiącu jest ilością na kartotece obciążeń (naliczeń czynszu) lokalu.
Liczona jest w kontekście lokalu/nieruchomości i zarządcy na którym występuje.
Używając specjalistycznego dialektu języka programowania możemy dowolnie wpływać na wyliczoną ilość danego składnika czynszu.
Definicja zapisów w formule kalkulacji jest w postaci tekstowej, używając wbudowanych funkcji przeprowadzamy kalkulacje i końcowa ilość (wynik działania kalkulacji) jest brana jako ilość do zapisu na kartotece.
Dokumentacji możliwości języka programowania formuł kalkulacji pokaże w formie prezentacji przykładów, od najprostszych w kierunku bardziej zaawansowanych.
Mamy do dyspozycji operatory arytmetyczne: + dodawanie, - odejmowanie, ***** mnożenie, / dzielenie, % reszta z dzielenia
oraz operator łączenia łańcuchów znakowych (konkatenacji) &
Wartości dziesiętne reprezentujemy z użyciem kropki (przykład: 12.87)
przykłady:
( 5 * 5 ) + (10 * 2) / 4
Jest to formuła wyliczająca stałą ilość 125
_mc * 2
Jest to formuła wyliczająca ilość mnożąc numer miesiąca (od 1 do 12) razy 2
Choose( _mc = 5, 0, 1) * 100
Jest to przykład użycia funkcji warunkowej Choose, która sprawdza czy wynik pierwszego argumentu jest równy 5 (miesiąc naliczenia maj) i jeśli tak zwraca 0 w przeciwnym przypadku 1.
Wynik 1 lub 0 jest mnożony razy 100 i daje to funkcjonalność taką że formuła będzie zwracała ilość w każdym miesiącu prócz maja.
W tym przykładzie używamy operatorów logicznych.
Mamy do dyspozycji następujące operatory logiczne: = równy, > większy, >= większy lub równy, < mniejszy, <= mniejszy lub równy, <> różny
można łączyć warunki logiczne operatorami AND i OR, jest też operator jedno-argumentowy NOT
W porównaniu łańcuchów znakowych duże i małe litery są rozróżniane.
Choose( (_mc = 5) OR (_mc = 12) , 0, 1) * 100
Użyłem tutaj operatora OR (lub) co daje nam funkcjonalność że formuła zwróci wartość w wszystkie miesiące prócz 5 i 12 (czyli Maj i Grudzień)
Do lepszej przejrzystości użyłem nawiasów.
Program w formule kalkulacji może być bardzo rozbudowany i wywoływać wiele funkcji łącząc różne do wyliczenia.
LC('IloscOsob') * 100
Przykład użycia wbudowanej funkcji zwracającej wartość charakterystyki lokalu oznaczonej symbolem 'IloscOsob'. Przykład pokazuje jak podajemy argumenty funkcji w postaci łańcucha znaków.
Taki łańcuch znaków może być wypracowany poprzez połączenie dwóch za pomocą operatora łączenia (konkatenacji) znaków.
LC('Ilosc' & 'Osob' ) * 100
Wynik działania jest taki sam tylko jak widać argument funkcji jest łączony z 'Ilosc' i 'Osob'
Można wykonywać konwersje liczby na łańcuch znaków w prosty sposób używając operatora &
LC( 'MC: ' & _mc ) * 100
To jest przykład gdzie na lokalu mamy charakterystyki osobne dla każdego miesiąca ('MC: 1', 'MC: 2', .....)
Użycie znaków _podkreślenia_ w nazwie argumentu (lub pochylenia) oznacza że argument funkcji jest opcjonalny.
_MC - funkcja zwracająca liczbę numer miesiąca dla którego jest naliczane obciążenie pokaż szczegóły użycia
_ROK - funkcja zwracająca liczbę numer roku dla którego jest naliczane obciążenie pokaż szczegóły użycia
_RWN - funkcja zwracająca wartość narastająco naliczenia dla danego lokalu pokaż szczegóły użycia
LC( Symbol, Co) - Funkcja służy do pobierania wartości elementów charakterystyki dla bieżącego lokalu pokaż szczegóły użycia
LLicznik( Symbol, Rodzaj, ZakresMc, Co ) - funkcja zwraca wartość licznika przypiętego do składnika naliczenia lokalu pokaż szczegóły użycia
LKartoteka( Symbol, Rodzaj, ZakresOdMc, ZakresDoMc, Co ) - Funkcja zwraca sumę z kartoteki naliczeń lokalu dla wybranego składnika pokaż szczegóły użycia
LSC( Co) - Funkcja zwraca wartość bieżącego składnika naliczenia pokaż szczegóły użycia
LK( Symbol, ZakresOdMc, ZakresDoMc) - Funkcja zwraca wartość klucza rozliczeniowego lokalu pokaż szczegóły użycia
LKZ( Symbol, Mc, Wartosc) - Funkcja zapisuje wartość i zwraca wartość klucza rozliczeniowego lokalu pokaż szczegóły użycia
NC( Symbol, Co) - Funkcja służy do pobierania wartości elementów charakterystyki bieżącej nieruchomości pokaż szczegóły użycia
NLicznik( Symbol, ZakresMc, Co ) - funkcja zwraca wartość licznika przypiętego do składnika naliczenia nieruchomości pokaż szczegóły użycia
NKartoteka( Symbol, ZakresOdMc, ZakresDoMc, Co ) - Funkcja zwraca sumę z kartoteki naliczeń wszystkich lokali danej nieruchomości dla wybranego składnika pokaż szczegóły użycia
NK( Symbol, ZakresOdMc, ZakresDoMc) - Funkcja zwraca wartość klucza rozliczeniowego nieruchomości pokaż szczegóły użycia
NKZ( Symbol, Mc, Wartosc) - Funkcja zapisuje wartość i zwraca wartość klucza rozliczeniowego nieruchomości pokaż szczegóły użycia
ZK( Symbol, ZakresOdMc, ZakresDoMc) - Funkcja zwraca wartość klucza rozliczeniowego zarządcy pokaż szczegóły użycia
ZKZ( Symbol, Mc, Wartosc) - Funkcja zapisuje wartość i zwraca wartość klucza rozliczeniowego zarządcy pokaż szczegóły użycia
Choose( Warunek, Wynik-Prawda, Wynik-Fałsz) - funkcja na podstawie wartości logicznej warunku zwraca Wynik-Prawda lub Wynik-Fałsz pokaż szczegóły użycia
Choose( Liczba, Wynik-1, Wynik-2, Wynik-3, ...) - funkcja na podstawie wartości Liczba zwraca wynik pokaż szczegóły użycia
Round( Wartosc, Dokładność) - funkcja zaokrąglająca pokaż szczegóły użycia
Nic( Wyrażenie) - Funkcja służy pominięcia zwrócenia wyniku wykonania wyrażenia pokaż szczegóły użycia
DR( Co, P1) - Funkcja zwraca różne operacyjne wartości pokaż szczegóły użycia
SQL( Nazwa, IleP, P1, P2, P3, P4) - Funkcja zwraca wynik działania procedury składowej SQL pokaż szczegóły użycia
Kom( Komunikat) - Funkcja służy wyświetlenia wartości komunikat pokaż szczegóły użycia
Log( Komunikat) - Funkcja służy do zapisu w dzienniku kalkulacji pokaż szczegóły użycia