Przejdź do głównej zawartości

Jak sterować przepływem zdarzeń, korzystając z instrukcji warunkowej „if … else …”?

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.

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 { }.
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, 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ęć.

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.
[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] != „”.

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.
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”.

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.