RPG (limbaj de programare)

limbaj de programare
Acest articol se referă la limbajul de programare RPG. Pentru alte sensuri, vedeți RPG (dezambiguizare).

Limbajul de programare RPG a fost creat la începutul anilor 1960 de către compania IBM pentru a răspunde necesității companiilor de a crea rapoarte. RPG este un acronim de la expresia engleză Report Program Generator, generator de programe pentru rapoarte.

La început RPG era utilizat doar pentru generarea și tipărirea de rapoarte.

În prezent RPG este un limbaj de programare procedural și este utilizat în principal pentru crearea de aplicații în domeniul economic.

Programul RPG utilizează 3 tipuri de structuri:

  • structuri secvențiale
  • structuri condiționale
  • structuri repetitive

Un exemplu de program RPG modificare

Programul afișează ecranul ECRAN02. Ecranul va fi afișat până se apasă tasta F3. Se introduce numărul matricol în câmpul din ecran și se caută valoarea în fișierul FMATRG. Dacă înregistrarea nu se găsește, se va afișa un mesaj. Dacă înregistrarea este găsită, se afișează numărul matricol precum și numele și prenumele studentului.

    HDEBUG
    F*----------------------------------------------------------
    F*       FISIERE
    F*----------------------------------------------------------
    FECRAN02   CF   E             WORKSTN
    FFMATRG    UF A E           K DISK
    F*
    D*----------------------------------------------------------
    D*      DATE
    D*----------------------------------------------------------
    D*
    DERR              S              1S 0
    DXNRMATR          S             10A
    D*---------TEXTE PENTRU MESAJE -----------------------------
    DTXTMS1           C                   'INTRODUCETI NUMARUL MATRICOL!!'
    DTXTMS2           C                   'NUMAR MATRICOL INEXISTENT' 
    D*
    C*-------------INCEPUTUL PROGRAMULUI------------------------
    C*-------BUCLA PRINCIPALA: SE EXECUTA PANA SE APASA F3-------
    C                   DOU       *IN03=*ON
    C                   EXFMT     RCHEIE
    C                   IF        *IN06=*ON
    C*
    C                   IF        NRMATR=*BLANK
    C                   EVAL      MESAJ1=TXTMS1
    C                   EVAL      MESAJ2=*BLANK
    C                   EXFMT     WMESAJE
    C                   ITER
    C                   ENDIF
    C*
    C                   IF        *IN06='1'
    C     NRMATR        CHAIN     RFMATRG
    C*
    C                   IF        %FOUND
    C                   EVAL      MESAJ1='NUMAR MATRICOL '+NRMATR
    C                   EVAL      MESAJ2=%TRIM(NUME)+' '+%TRIM(PRENUME)
    C                   EXFMT     WMESAJE
    C                   ELSE
    C                   EVAL      MESAJ1=TXTMS2
    C                   EVAL      MESAJ2=*BLANK
    C                   EXFMT     WMESAJE
    C                   ENDIF
    C*
    C                   ENDIF
    C*
    C                   ENDIF
    C*
    C                   ENDDO
    C*******************SFARSITUL PROGRAMULUI**************************
    C                   SETON                                           LR
    C*****************************************************************