Jak sterować przepływem zdarzeń, korzystając z instrukcji warunkowej „jeżeli”?
Instrukcja warunkowa „jeżeli” „if”
if ( warunek logiczny ) { ... wykonaj gdy warunek jest spełniony ... } else { ... wykonaj gdy warunek nie jest spełniony ... }
Prawidłowy zapis instrukcji warunkowej składa się z kilku stałych elementów
- słowo kluczowe if
- warunek logiczny umieszczony w nawiasach okrągłych ( )
- skrypt do wykonania, gdy warunek logiczny jest spełniony. Skrypt ten objęty jest nawiasami klamrowymi { }
W tym miejscu można zakończyć instrukcję warunkową, chyba że chcemy obsłużyć również sytuację, gdy warunek logiczny nie jest spełniony, wtedy dopisujemy
- słowo kluczowe else
- i skrypt do wykonania, gdy warunek nie jest spełniony. Skrypt ten objęty jest nawiasami klamrowymi { }
Przykład praktyczny
if ( [Kwota netto] >= 10000 ) { ForwardCase([Akceptujący],"Akceptacja finansowa"); } else { ForwardCase("Księgowość","Księgowanie"); }
Przeanalizujmy powyższy przykład instrukcji warunkowej
- występuje w nim słowo kluczowe if
- w nawiasach okrągłych ( ) umieszczono warunek logiczny, który sprawdza czy [Kwota netto] jest większa lub równa 10000.
- w nawiasach klamrowych { } umieszczono skrypt, który zostanie wykonany gdy warunek logiczny będzie spełniony. Jest to funkcja ForwardCase() z odpowiednimi parametrami
- zastosowano słowo kluczowe else, aby obsłużyć sytuację gdy warunek logiczny nie będzie spełniony
- w nawiasach klamrowych { } umieszczono skrypt, który zostanie wykonany gdy warunek logiczny nie będzie spełniony. Jest to również funkcja ForwardCase() z odpowiednimi parametrami
Warunek logiczny
Warunek logiczny, poprzez działania wykonane na swoich argumentach, przyjmuje w wyniku wartość logiczną true (prawda) lub false (fałsz). Przykładowo
1 == 2
- Wynikiem jest false, ponieważ jeden nie równa się dwa.
10 > 5
- Wynikiem jest true, ponieważ dziesięć jest większe od pięć
Operatory porównania w warunkach logicznych
Proszę zwrócić uwagę na operatory porównania. W skryptach AMODIT używamy następujących operatorów porównania.
-
- == ( podwójny znak równości ) – równe
- != ( wykrzyknik i znak równości ) – nierówne
- > ( znak większości) – większe od
- >= ( znak większości i znak równości ) – większe lub równe
- < ( znak mniejszości ) – mniejsze od
- <= ( znak mniejszości i znak równości ) – mniejsze lub równe
Przykłady praktyczne
[Miasto] == "Warszawa"
- warunek logiczny będzie spełniony gdy pole o nazwie [Miasto] będzie zawierało tekst „Warszawa”
[Osoba akceptująca] != ""
- często stosowana konstrukcja dla sprawdzenia czy pole nie jest puste, tzn czy zawiera jakąkolwiek wartość. Ten przykład sprawdza czy pole [Osoba akceptująca] nie jest puste.
W AMODIT ten sposób sprawdzenia !=””, czyli nie jest puste, jako ciąg znaków stosuje się do większości typów pól, nie tylko do pól tekstowych. Można tak sprawdzić np czy pole typu data nie jest puste [Data sprzedaży] != „”
Spójniki logiczne
Warunki logiczne mogą być łączone. Do tego celu służą spójniki logiczne. W Amodit stosujemy następujące spójniki logiczne:
- && ( podwójny znak ampersand, et) – spójnik logiczny i
- || ( podwójny znak pipe, kreska pionowa) spójnik logiczny lub
używamy również negacji
- ! ( wykrzyknik) – operator logiczny negacja
Przykład praktyczny
if ( [Kwota netto] >= 10000 || [Kontrahent] == "ABC sp. z o.o." ) { ForwardCase([Akceptujący],"Akceptacja finansowa"); } else { ForwardCase("Księgowość","Księgowanie"); }
- W tym przykładzie sprawa zostanie skierowana do akceptacji finansowej dla każdej faktury powyżej 10000 oraz zawsze gdy kontrahentem będzie spółka ABC (bez względu na kwotę) – użyto operatora lub ||
if ( ![Czy faktura korygująca?] ) { .... }
- w przykładzie użyto znaku ! jako negacji oraz pola na formularzu o nazwie [Czy faktura korygująca?], które jest typu „tak/nie”. Ten zapis należy czytać w następujący sposób „jeżeli nie jest to faktura korygująca”
Słowa kluczowe true, false
W AMODIT używane są słowa kluczowe oznaczające wartość logiczną
- true prawda
- false fałsz
Prześledźmy to na przykładzie
if ( [Czy faktura korygująca?] == true ) { ..... } |
if ( [Czy faktura korygująca?]) { ..... } |
Oba przykłady są tożsame. Warunek logiczny można zapisać jako [Czy faktura korygująca?] == true albo po prostu jako [Czy faktura korygująca?], ponieważ pole [Czy faktura korygująca?] jest polem typu „tak/nie” czyli już samo zwraca wartość logiczną true albo false.