Rozdělení programu na části

Na tomto pokusu si vyzkoušejte rozdělení programu do částí pomocí příkazu FORM/ENDFORM a PERFORM. Využijeme jednoduchý kód s tabulkou SFLIGHT. S tím jsme tady začínali, jako prvním programem na začátku.

Toto byl zápis programu

REPORT ZTEST0001 .
TABLES: sflight.
DATA: BEGIN OF report OCCURS 3,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
seatsmax LIKE sflight-seatsmax,
END OF report. 
START-OF-SELECTION. 
SELECT * from SFLIGHT.
MOVE-CORRESPONDING SFLIGHT to report. 
append report. 
clear report. 
ENDSELECT. 
LOOP at REPORT. 
WRITE : / report-carrid , 
report-connid , 
report-fldate , 
report-seatsmax . 
ENDLOOP. 
 
 
 
 
 

nyní si program rozdělíme na části pomocí FORM a ENDFORM. Jedna část zajistí výběr dat, druhá výpis na obrazovku

REPORT ZTEST0001 .
 
*definice tabulky
TABLES: sflight.
DATA: BEGIN OF report OCCURS 3,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
seatsmax LIKE sflight-seatsmax,
END OF report. 
 
*start programu
START-OF-SELECTION. 
 
*volání procedur 
perform select_data.
perform write_data.
 
 
*procedury porgramu
FORM select_data. 
 
SELECT * from SFLIGHT.
MOVE-CORRESPONDING SFLIGHT to report. 
append report. 
clear report. 
ENDSELECT. 
 
ENDFORM.
 
FORM write_data.
LOOP at REPORT. 
WRITE : / report-carrid , 
report-connid , 
report-fldate , 
report-seatsmax . 
ENDLOOP. 
ENDFORM.

Výsledek programu je úplně stejný jako bychom příkazy FORM, ENDFORM a PERFORM nepoužili. Ve složitějších programech však
budeme potřebovat, aby byl program přehledný a nemuseli jsme psát opakující se příkazy vícekrát. Zavoláme prostě část programu
- FORM pomocí PERFORM . Zkuste přidat ješte jeden příkaz PERFORM write_data. Program znovu vypíše tabulku.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*