Jak sterować przepływem zdarzeń, korzystając z instrukcji warunkowej „if … else …”?
Wprowadzenie
W artykule przedstawiamy zasady korzystania z instrukcji warunkowej „if … else …„. Instrukcja ta służy do sterowania przepływem lub kolejnością wykonania akcji w przebiegu reguły. Umożliwia ona wykonanie akcji typu: jeżeli jakiś warunek jest spełniony, to rób to, w przeciwnym przypadku zrób coś innego.
Instrukcja warunkowa „if … else …”
Składnia instrukcji warunkowej wygląda następująco:
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:
- obligatoryjne 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;
- skrypt do wykonania, gdy warunek nie jest spełniony. Skrypt ten objęty jest nawiasami klamrowymi { }.
Przykład praktyczny nr 1
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, różne od;
- > ( 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ład praktyczny nr 2
[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) – 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 nr 3
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.