Az SQR programozási nyelv

Alapvető SQR programstruktúra

Ahogyan a bevezetésben említettem egy SQR program alapvetően szekciókat (section) tartalmaz. Alapvetően 5 féle szekciót különböztetünk meg: program, setup, heading, footing és procedure szekciókról beszélünk. Azért, hogy megértsük az SQR programot alkotó szekciók értelmezését meg kell ismerkednünk az SQR program kimenetét jelentő SQR lapokkal, azaz a riportokkal.

SQR lap

Minden SQR program eredménye egy SQR lap, másnéven riport. Az eredmény kiírását a PRINT paranccsal kezdeményezhetjük, amely egy meghatározott pozícióba, vagy az aktuális sor pozícióra írja az eredményt. Az SQR lapok felépítését a következő ábra szemlélteti:

SQR lap

Az alapvető riport felépítést látva nyilvánvalóvá válik az SQR programok koncepciója. Az SQR programok felépítésüket tekintve a kimeneti riporthoz alkalmazkodnak, ezért megjelennek az alapvető riportkimeneti komponensek a program szekciókban. Ezen szekciók mellett megjelennek a más programnyelvekben ismert importálások, konstansok definiálása, amely a SETUP szekcióba kerülnek. Míg a főprogramot a komponens programoktól a BEGIN-PROGRAM, END-PROGRAM szekció megléte különbözteti meg. A végrehajtás eze a szekción indul (nyilván a SETUP szekciót kövvetően). Nézzük meg részletesebben ezeket a szekciókat:

SQR program szekciói

5 programszekcióról beszélhetünk, amely a követező ábrából leolvasható:

SQR program szekciók

Program szekció

Ez a legfontosabb szekció egy SQR program esetében, hiszen ez definiálja az SQR program futásának kezdetét és végét. A program végrehajtása soronként történik, szekvenciálisan.
BEGIN-PROGRAM

END-PROGRAM
Egy SQR programban pontosan egy ilyen szekció szerepelhet, de lehetőségünk van a komplexebb programok futását folyamatként több SQR programegyég futására felbontani.

Setup szekció

A SETUP szekció tartalmazza azokat a beállításokat, amelyeket az SQR program futása közben szeretnénk felhasználni. A SETUP szekció megadása opcionális, azonban ha megadjuk minden esetben a programunk elején kell a szekciót feltüntetni. A SETUP szekció kiértékelés fordítási időben történik, futási időben már nem értékelődik többet ki.
A következő parancsok szerepelhetnek a SETUP szekcióban:

Példa egy lehetséges SETUP szekcióra:
setup szekció

Heading szekció

A HEADING szekció futását a kimeneti riport lapdobásai határozzák meg. Minden esetben amikor a riport futása során egy új lap generálódik lefut a HEADING szekció. Lapdobást a programozó is kérhet a New-Page paranccsal.
A HEADING szekcióba jellemzően összesítő adatok, vagy a riport eredményét meghatározó szűrések szokta kerülni. A riport neve és dátuma is szintén ebben a szekcióban szokott megjelenni. Az itt definiált kiírató parancsok a riport kimenet fejlécébe íródnak

Footing szekció

A HEADING szekcióhoz hasonlóan az itt definiált programrészek is minden lapdobáskor lefutnak. Az itt kiadott kiírató parancsok az aktuális lap láblécébe íródnak. Jellemzően oldalszám, cégjegyzék, vagy azonosítók feltüntetését szokták ebbe a szekcióba elhelyezni

Procedure szekció

Ez a szekció az SQR program második legfontosabb szekciója. Ezekben a szekciókban definiálhatjuk a program futása során felhívott eljárásokat és függvényeket. Az eljárások és függvények meghívását a DO paranccsal kezdeményezhetjük, míg egy eljárás vagy függvény definiálását a következő séma szerint végezhetjük:

Pl.:
procedure szekció

Egy eljárás vagy függvény lehet globális vagy lokális. Lokális eljárások definiálását a az eljárás név után elhelyezett Local kulcsszó segítségével írhatunk. A két változat közötti legfontosabb különbség, hogy a bennük definiált változóknak mi a hatásköre. Globális eljárás, függvény esetében definiált változók a program egészére nézve globálisak és más programegységekben elérhetőek, felhasználhatóak. Minden olyan eljárás és függvény, amely paraméteres egyben lokálisnak tekintendő függetlenül attól, hogy szerepel-e vagy sem a Local kulcsszó

Fontos jellemzők a lokális eljárásokról, függvényekről