Wykonywanie raportów > OnCommand - podprogram

Drukuj

OnCommand - podprogram symp

Podprogram standardowo nazwany OnCommand (istotna jest składnia, a nie nazwa, ale najczęściej zachowana jest również nazwa) jest używana w raportach do kontroli działania okna dialogowego, po jego wyświetleniu poleceniem ExecForm. Podprogram powinien zostać zdefiniowany zgodnie z potrzebami okna dialogowego, a następnie podany jako parametr polecenia ExecForm. Sposób wykonania został zaprezentowany w przykładzie do tego opisu.

 

Przykład

Int ch1, ch2, id2, id3, id4, id5
//Zdefiniowanie podprogramu OnCommand z obsługą poleceń Save i Load
Int Sub OnCommand(int id, int msg)
//Zapisanie do zmiennych stanu widocznego w dialogu
If id == id4 Then Save
//Ustawienie stanu elementów dialogu zgodnie ze stanem zmiennych
If id == id5 Then Load
EndSub
//Wyświetlenie dialogu z prezentacją działania poleceń
Form "Zastosowanie poleceń Save i Load", 448, 288
//Pola wyboru do pokazu stanu zmiennych
id2 = ChkBox "Pole wyboru nr 1", ch1, 50, 30, 250, 24
id3 = ChkBox "Pole wyboru nr 2", ch2, 50, 60, 250, 24
//Pole wyboru uruchamiające zapisanie do zmiennych stanu widocznego w dialogu
id4 = Button "&Zapamiętaj stan elementów", 132, 112, 200, 24, 1
//Przycisk uruchamiające ustawienie stanu elementów na podstawie zmiennych
id5 = Button "&Ładuj dane ze zmiennych", 132, 152, 200, 24, 1
Button "&Anuluj", 296, 204, 100, 24, -1
Button "O&K", 72, 204, 100, 24, 2
Int wyjdz = ExecForm OnCommand
//Zakończenie raportu bez prezentowania wyników
If wyjdz != 2 Then Error ""
//Prezentacja wyników do wydruku
If ch1 == 1 then
Print "Pole wyboru nr 1 zostało zaznaczone",LF
Else
Print "Pole wyboru nr 1 nie zostało zaznaczone",LF
EndIf
If ch2 == 1 then
Print "Pole wyboru nr 2 zostało zaznaczone",LF
Else
Print "Pole wyboru nr 2 nie zostało zaznaczone",LF
EndIf