Free Format RPG Cheat Cheet

tiny-tool.de

tiny-tool.de

Befehl Beschreibung Syntax Beispiel
/FREE ... /END-FREE Kennzeichnet einen Free-Format-Codeblock /FREE ... /END-FREE
/FREE
  // Free-Format Code
/END-FREE
APPEND Fügt einen neuen Datensatz in eine Datei ein APPEND Datenstruktur Dateiname;
DCL-DS NeuerKunde;
NeuerKunde.Name = 'Max Mustermann';
APPEND NeuerKunde Kunden;
BEGSR / ENDSR Definiert einen internen Subroutinenblock (älter, aber noch gültig) BEGSR SubroutineName; ... ENDSR;
BEGSR Berechnungen;
  // Subroutinen-Code
  DSPLY 'Berechnungen';
ENDSR;
CHAIN Sucht einen Datensatz über einen Schlüssel in einer Datei CHAIN Schlüssel Dateiname;
CHAIN kundeSchluessel Kunden;
IF %FOUND(Kunden);
  DSPLY 'Datensatz gefunden';
ELSE;
  DSPLY 'Kein Datensatz';
ENDIF;
CLOSE Schließt eine geöffnete Datei CLOSE Dateiname;
CLOSE Kunden;
DCL-DS Deklaration einer Datenstruktur DCL-DS Name [QUALIFIED]; ... END-DS;
DCL-DS Kunde QUALIFIED;
  Name CHAR(50);
  Ort CHAR(50);
END-DS;
DCL-PI / END-PI Definition der Prozedur-Schnittstelle DCL-PI [Name]; ... END-PI;
DCL-PI MeineProc INT(10);
  a INT(10);
  b INT(10);
END-PI;
DCL-PROC / END-PROC Definition einer Prozedur DCL-PROC Name; ... END-PROC;
DCL-PROC MeineProzedur;
  // Prozedur-Code
END-PROC;
DCL-PR / END-PR Definition eines Prototyps für externe Prozeduren DCL-PR Name [Rückgabetyp]; ... END-PR;
DCL-PR AddNumbers INT(10);
  a INT(10);
  b INT(10);
END-PR;
DCL-S Deklaration einer Skalarvariable DCL-S Name Typ [INZ(Wert)];
DCL-S Counter INT(10) INZ(0);
DELETE Löscht einen Datensatz aus einer Datei DELETE Dateiname;
DELETE Kunden;
DOU Schleife, die wiederholt, bis eine Bedingung erfüllt ist (do until) DOU (Bedingung); ... ENDDO;
DOU (x = 10);
  DSPLY x;
  x += 1;
ENDDO;
DOW Schleife mit Bedingung DOW (Bedingung); ... ENDDO;
DOW (counter < 10);
  counter += 1;
ENDDO;
DSPLY Anzeige einer Nachricht oder eines Wertes DSPLY Ausdruck;
DSPLY 'Hallo Welt';
EXEC SQL Führt einen eingebetteten SQL-Befehl aus EXEC SQL ;
EXEC SQL SELECT * FROM Kunden;
EXSR Ruft einen internen Subroutine-Block auf EXSR SubroutineName;
EXSR Berechnungen;
FOR Wiederholung mit fester Anzahl FOR index = start TO limit BY step; ... ENDFOR;
FOR i = 1 TO 10 BY 1;
  DSPLY i;
ENDFOR;
IF Bedingte Anweisung IF (Bedingung); ... [ELSE; ...] ENDIF;
IF (x > 0);
  DSPLY 'Positiv';
ELSE;
  DSPLY 'Nicht positiv';
ENDIF;
ITER Nächste Iteration der Schleife überspringen ITER;
DOW (i < 10);
  IF (i = 5);
    ITER;
  ENDIF;
  DSPLY i;
  i += 1;
ENDDO;
LEAVE Schleife vorzeitig beenden LEAVE;
FOR i = 1 TO 10;
  IF (i = 5);
    LEAVE;
  ENDIF;
  DSPLY i;
ENDFOR;
LIKE Deklaration einer Variablen, die den Datentyp einer bestehenden Variablen übernimmt DCL-S NeueVar LIKE(BestehendeVar) [INZ(Wert)];
DCL-S altVar CHAR(20) INZ('Hallo');
DCL-S neuVar LIKE(altVar) INZ('Welt');
LIKEDS Deklaration einer Datenstruktur, die das Layout einer Datei oder bestehenden Datenstruktur übernimmt DCL-DS DSName LIKEDS(Dateiname);
DCL-DS Kunde LIKEDS(Kunden);
MONITOR Fehlerbehandlung (Try-Catch) MONITOR; ... ON-ERROR; ... ENDMON;
MONITOR;
  // Code, der Fehler verursachen kann
ON-ERROR;
  DSPLY 'Fehler aufgetreten';
ENDMON;
OPEN Öffnet eine Datei für die Verarbeitung OPEN Dateiname;
OPEN Kunden;
QUALIFIED Attribut, das erfordert, dass die Felder einer Datenstruktur nur über den Struktur-Namen angesprochen werden wird in DCL-DS verwendet: DCL-DS DSName QUALIFIED; ... END-DS;
DCL-DS Kunde QUALIFIED;
  Name CHAR(50);
  Ort CHAR(50);
END-DS;
READ Lesen eines Datensatzes aus einer Datei READ Dateiname [Variable];
READ Kunden;
READE Schlüsselsequentielles Lesen (weiterer Datensatz im Schlüsselbereich) READE Schlüssel Dateiname;
READE kundeSchluessel Kunden;
IF %FOUND(Kunden);
  DSPLY Kunde.Name;
ENDIF;
RETURN Beendet ein Programm oder eine Prozedur RETURN [Wert];
IF (error);
  RETURN -1;
ENDIF;
SELECT Bedingte Auswahl SELECT; WHEN (Bedingung); ... OTHER; ... ENDSELECT;
SELECT;
  WHEN (x = 1); DSPLY 'Eins';
  WHEN (x = 2); DSPLY 'Zwei';
  OTHER; DSPLY 'Andere';
ENDSELECT;
SETGT Setzt den Dateizeiger auf den ersten Datensatz oberhalb eines Schlüsselwerts SETGT Schlüssel Dateiname;
SETGT kundeSchluessel Kunden;
READ Kunden;
SETLL Setzt den Dateizeiger auf den Beginn eines Schlüsselbereichs SETLL Schlüssel Dateiname;
SETLL kundeSchluessel Kunden;
READ Kunden;
UPDATE Aktualisiert einen Datensatz in einer Datei UPDATE Datenstruktur Dateiname;
Kunde.Name = 'Neuer Name';
UPDATE Kunde Kunden;
WRITE Schreiben eines Datensatzes in eine Datei WRITE Dateiname;
WRITE Kunden;