Wykonywanie raportów > Select Case ... EndSelect - struktura

Drukuj

Select Case ... EndSelect - struktura symp

Struktura Select Case umożliwia wykonanie warunkowe bloku poleceń w zależności od wartości wyrażenia testowego. Wartość test jest porównywana kolejno z wartościami podanymi po słowach kluczowych Case i w przypadku równości wyrażeń lub prawdziwości porównania jest wykonywany blok wyrażeń występujący bezpośrednio po wartościach porównywanych, a kończący się następnym Case lub EndSelect. Specjalne wyrażenie Case Else, które może wystąpić tylko raz jako ostatni Case umożliwia wykonanie bloku poleceń w przypadku, gdy wszystkie pozostałe warunki nie zostały spełnione. W poleceniu tym zawsze wykonywany jest tylko jeden blok poleceń, nawet wtedy, gdy kilka wyrażeń jest prawdziwych. W takim przypadku wykonywany jest zawsze pierwszy w kolejności blok poleceń.

 

Składnia

Select Case test
Case wartosc
        blok_polecen_1
 
Case wartosc_1, wartosc_2
        blok_polecen_2
 
Case Is relacja wartosc
        blok_polecen_3
        . . . . . . .
 
Case Else
        blok_polecen_n
EndSelect

 

Argumenty

Typ

Nazwa

Opis

 

test

Dowolne wyrażenie typu prostego.

 

wartosc

Dowolne wyrażenie lub lista wyrażeń oddzielonych przecinkami, porównywanych z wyrażeniem test.

 

relacja

Dowolne wyrażenie relacyjne, np. < > != == porównujące test i wartosc. Słowo kluczowe Is odpowiada tutaj wartości wyrażenia test.

 

Wartość zwracana

Nie zwraca wartości.

 

Przykład

Int ch1, id2, id4
Int Sub OnCommand(int id, int msg)
If id == id4 Then Save
EndSub
Form "Zastosowanie poleceń Save", 400, 170
id2 = ChkBox "Testowane pole wyboru nr 1", ch1, 150, 30, 250, 24
id4 = Button "&Zapamiętaj stan elementu", 100, 62, 200, 24, 1
Button "O&K", 150, 100, 100, 24, -2
ExecForm OnCommand
//Określenie warunku wykonania bloku poleceń
Select Case ch1
//Komunikat o niezaznaczeniu pola testowego
Case 0
Message "Pole wyboru nie było zaznaczone"
Case Else
//Komunikat o zaznaczeniu pola testowego
Message "Pole wyboru było zaznaczone"
EndSelect
Error ""