CT-Professional_100 + Help …

Das interaktive Lernsystem für ABAP® verbindet Theorie und Praxis durch eine Echtzeitkopplung an das SAP®-System oder dem ‘CT-Debug_Simulator’.

Kurs 1: Starten mit ABAP®, die Grundausstattung

Dieser Anfangskurs besteht aus einer Auswahl von ABAP®-Befehlen, die Ihnen schon in der Anfangsphase die Gelegenheit bieten, leichte Reports zu programmieren.

Auch innerhalb der Sprache ABAP® genügt es, zunächst wenige Befehle zu kennen um bereits einige Programmieranforderungen der Fachbereiche realisieren zu können. Voraussetzung allerdings ist, daß diese Sprachelemente auch wirklich verstanden und beherrscht werden.

Ein Fazit: Mit wenigen, aber auf Zweckmäßigkeit ausgerichteten Befehlen, bereits nach kurzer Zeit schon kleine ABAP®-Programme schreiben !

Wieviel Lerninformationen stehen im Kurs 1 zur Verfügung ?

Der Kurs 1 besteht aus ca. 2900 Textabschnitten mit insgesamt ca. 12000 Zeilen, insgesamt sind 134 Formal- und Beispiel-Reports enthalten. Die Reportbeispiele werden durch ca. 360 Overlay-Zeichnungen innerhalb der Syntaxerläuterungen und während der Debugging-Session zusätzlich illustriert. Die Einzelthemen des Info-Trees sind nachfolgend als Fließtext aufgelistet. Überwiegend sind dies die Überschriften zu den einzelnen Textelementen, sie geben einen Überblick über den Umfang und die Detailstruktur der Wissensbereiche.

Die Aufzählung der einzelnen Tree-Infos soll einen Eindruck über den Umfang und den Themenkreis der jeweiligen Kurse vermitteln. Natürlich sind diese Informationen im Kurs durch den INFO-Tree sauber geordnet. Die Bearbeitungsreihenfolge der Einzelthemen können Sie bestimmen. Sie entscheiden, ob Sie Reihenfolge anhand eines von uns vorgeschlagenen

  • “roten Faden oder learning path” vornehmen oder
  • in einen anderen Lernmodus verzweigen oder
  • im Direktzugriff einzelne Kursbereiche aufrufen oder
  • Textbausteine anzeigen lassen oder
  • auf Reportbeispiele zugreifen oder
  • den CT-DEBUG_Simulator einsetzen.

Eine detaillierte Aufzählung des Kursinhalts Wir haben die wesentlichen Inhalte des Info-Trees je Kursus nachfolgend als Fließtext angelistet, überwiegend sind dies die Überschriften zu den einzelnen Textelementen. Bitte beachten Sie den Umfang des jeweiligen Kurses (… zeigen Sie uns etwas Vergleichbares).

Die Aufzählung der einzelnen Tree-Infos soll einen Eindruck über den Umfang und den Themenkreis der jeweiligen Kurse vermitteln. Natürlich sind diese Informationen im Kurs durch den INFO-Tree hierarchisch geordnet.

Fließtext:

APPEND INITIAL LINE TO itab . SORTED BY v1. (ab 3.0) . APPEND work1 TO itab (Syntax – ab 3.0) . APPEND INITIAL LINE TO itab1 (Syntax – ab 3.0) . Allgemeiner Tabellenaufbau mit APPEND itab . Häufige Anwendung des Befehls APPEND itab . Die Tabellenkopfzeile . Aufgaben der “Tabellenkopfzeile” . Der Inhalt der Kopfzeile (Workbereich) . Das Hinzufügen der Kopfzeile zum . Das Verändern und Zurückschreiben der . “APPEND” und die Tabellenkopfzeile . Kopieren der Tabellenkopfzeile . Inhalt der Kopfzeile bleibt bestehen . APPEND itab SORTED BY v1 (Befehlsergänzung) . Geringe Anwendungshäufigkeit . Reihenfolge der Tabellenzeile (… SORTED BY v1) . Begrenzung der Tabelle durch OCCURS . Entfernen der letzten Tabellenzeile . Das Sortierfeld ‘v1’ (ab 3.0) . APPEND work1 TO itab (ab 3.0) . Die Tabellenkopfzeile von itab bleibt unverändert . Der Arbeitsbereich ‘work1’ . APPEND INITIAL LINE TO itab (ab 3.0) . Die Tabellenkopfzeile von itab bleibt unverändert . Eine Leerzeile im Datenbestand . Tabellenbearbeitung allgemein . Tabellenaufbau durch einzelnes Hinzufügen der . Tabellenaufbau durch globale Übernahme von Daten . APPEND und andere vergleichbare Befehle . INSERT itab INDEX n . COLLECT itab . Gleichartige Tabellenzeile gefunden . Gleichartige Tabellenzeile nicht gefunden . CLEAR itab: Löschen der Tabellenkopfzeile . APPEND und OCCURS . DATA v1 … DATA v1 … Deklaration von Einzelfeldern DATA v1. . DATA v2(l). . DATA v3(l) TYPE t. . DATA v4(l) TYPE t VALUE lit. . DATA v5(l) TYPE P VALUE lit DECIMALS n. . DATA v6 LIKE v2. . DATA f7 LIKE itab. Weitere Deklarationsformen – interne Tabelle (ab 3.0) . DATA itab TYPE struktur1 OCCURS n . DATA itab LIKE struktur1 OCCURS n . DATA itab TYPE LINE OF tabtyp . DATA itab LIKE LINE OF itab . DATA itab …. WITH HEADER LINE. . Das Befehlswort “DATA” . Der Name der Variablen . Die Länge des Datenfeldes (in Byte) . Der Datentyp der Variablen . Die Deklaration von Einzelfeldern (formell) “DATA v1 …” . Reportattribut “Festpunktarithmetik = ON ” . DATA v1 LIKE v2. . Die Bezugnahme auf interne Tabellen – ab 3.0 “DATA itab TYPE . LIKE …” . DATA: itab2 TYPE Typ_itab OCCURS n. . Der Befehl “TYPES …” . Die Übernahme der Eigenschaften von anwenderdefinierten Datenobjekten . DATA: itab2 LIKE v1 OCCURS n. . Die Übernahme der Eigenschaften von Standardobjekten . “HEADER LINE” – die Tabellenkopfzeile wird deklariert . Die Bezugnahme auf Feldleisten – 3.0 “DATA itab TYPE . LIKE LINE …” . DATA: itab2 TYPE LINE OF typ_itab . Der Befehl “TYPES …” . Der Workbereich und der Datenbereich einer internen Tabelle . Die Übernahme der Eigenschaften einer Tabellenzeile . Alle Buchstaben und Ziffern sind zulässig . Einige Sonderzeichen sind nicht zulässig. . Klammer-auf, Klammer-zu . Pluszeichen . Punkt . Kommazeichen . Doppelpunkt . Keine Schlüsselworte oder Befehlsparameter verwenden . Geeignete Namensgebung für Variablen . Längenangabe l . Die Längen der verschiedenen Datentypen . DB-Maximum (DATA) . Datentype I im R/2 . TYPE t. . Der Grundstellungswert je Datentyp . DECIMALS n. . Festpunktarithmetik = ein . Festpunktarithmetik = aus . LIKE v2/struc2 . Relativ häufige Deklarationsarten . DATA v1(l) TYPE t. . DATA v1 LIKE v2/struc2 . Defaultwerte = Mindestangaben . “TYPES …” – die Schaffung eigener Datentypen (ab 3.0) . Unter Datentypen ist die Beschreibung von Merkmalen zu verstehen . Mit Datenobjekten wird die Beschreibung realisiert (Reservierung von Speicher) . Die Übernahme bestehender Strukturen oder Eigenschaften (ab 3.0) . Externe und interne Datenfelder . Externe Datenfelder . Interne Datenfelder . Externe und interne Datendeklarationen . Externe Datendeklaration . Deklaration im Data-Dictionary . Die Verwendung der externen Deklaration im . Interne Datendeklaration . Deklaration im aktuellen Report/Programm . Deklaration in einem gesonderten Include-Member . Deklaration im Data-Dictionary . Ort bzw. Zeitpunkt der Datendeklaration . Der Quellcode wird interpretiert . Spätester Zeitpunkt . Gesonderter Deklarationsbereich . Die Bestimmung der Deklarationsparameter . Die Eigenschaften eines Datenfeldes werden u.a. . Konvertierung von Datenfeldern . Gültigkeitsprüfung . Verschiedene Datentypen . Welche Konvertierung in welcher Situation? . Prozessoraufwand bei Konvertierungen . Prüfung des Inhaltes von Datenfeldern . Laufzeitfehler bei Konvertierungsproblemen . Richtige Deklaration – weniger Fehler . Konvertierungsbeispiele beim Thema “MOVE” und “ADD” . Der Name einer Programmvariablen . Ableitung der Namen von bereits vorhandenen externen Daten . Ableitung der Namen aus Systemfeldern (SY-) . Einbeziehung des Typs und der Länge in den Variablennamen . Der Verwendungszweck . Praxiserprobte Checkliste . Keine reservierten Befehlsworte als Variablennamen . Inhalt von Variablen . Wer interessiert sich für den hexadezimalen Inhalt? . Ein Beispiel für die interne Darstellung . Angabe der Feldlänge von Variablen . Anfangswert von Variablen . Grundstellungswert . Die Reihenfolge der Datendeklaration bei Einzelfeldern . Einzelfelder . “Feldleisten” und “interne Tabellen” . Feldleisten/Kopfzeilen sind auch als Einzelfelder adressierbar . Die Druckaufbereitung (z.B. Datentyp “D”) . Datentyp “D” = Datum . Konvertierung bei der Druckausgabe . Interne Druckroutinen . Globale und lokale Variablen . Lokale Variablen . Globale Variablen . Die “Redefinition” von Datenfeldern . Systemfelder . Verbindungen zu anderen Sprachelementen . PARAMETERS … . FIELD-SYMBOLS … . ASSIGN … . DESCRIBE … . LIKE … . Ein Vorschlag für die “Bearbeitung” der Report-Beispiele . Die Datendeklaration . DATA: C_FELD1. . DATA: C_FELD2(4). . DATA: C_FELD3(4) TYPE C. . DATA: C_FELD4(4) TYPE C VALUE ‘ABC’. . DATA: C_FELD5 LIKE C_FELD4. . Der Dateninhalt nach der Deklaration . Der Feldinhalt nach einer Datenübertragung . Die Datendeklaration . DATA: N_FELD1. . DATA: N_FELD2(4). . DATA: N_FELD3(4) TYPE N. . DATA: N_FELD4(4) TYPE N VALUE ‘123’. . DATA: N_FELD5 LIKE N_FELD4. . Der Dateninhalt nach der Deklaration . Der Feldinhalt nach einer Datenübertragung . Die Datendeklaration . DATA: I_FELD1. . DATA: I_FELD2 TYPE C. . DATA: I_FELD3(4) TYPE I. . DATA: I_FELD4(4) TYPE I VALUE 123. . DATA: I_FELD5 LIKE I_FELD4. . Der Dateninhalt nach der Deklaration . Der Feldinhalt nach einer Datenübertragung . Die Datendeklaration . DATA: P_FELD1. . DATA: P_FELD2 TYPE P. . DATA: P_FELD3(4) TYPE P. . DATA: P_FELD4(4) TYPE P VALUE 123 DECIMALS 2. . DATA: P_FELD5 LIKE PFELD4. . Die Datendeklaration . DATA: F_FELD1. . DATA: F_FELD2 TYPE F. . DATA: F_FELD3(8) TYPE F. . DATA: F_FELD4(4) TYPE F VALUE 123. . DATA: F_FELD5 LIKE F_FELD4. . Die Datendeklaration . DATA: D_FELD1. . DATA: D_FELD2 TYPE D. . DATA: D_FELD3(8) TYPE D. . DATA: D_FELD4(8) TYPE D VALUE ‘19960815’. . DATA: D_FELD5 LIKE D_FELD4. . Die Datendeklaration . DATA: T_FELD1. . DATA: T_FELD2 TYPE T. . DATA: T_FELD3(6) TYPE D. . DATA: T_FELD4(6) TYPE T VALUE ‘235901’. . DATA: T_FELD5 LIKE T_FELD4. . Die Datendeklaration . DATA: X_FELD1. . DATA: X_FELD2 TYPE X. . DATA: X_FELD3(6) TYPE X. . DATA: X_FELD4(8) TYPE X VALUE ‘3A3D’. . DATA: X_FELD5 LIKE X_FELD4. . Der Dateninhalt nach der Deklaration . Der Feldinhalt nach einer Datenübertragung . Die Umsetzung des hexadezimalen Inhalts in Druckzeichen DATA BEGIN OF stru1 … Deklaration von Strukturen Variablen deklarieren; Definition; Feldleiste deklarieren; . Deklaration Feldleiste; interne Tabelle; mehrere Variablen . DATA: END OF satz . Die Kurzbeschreibung von “DATA: BEGIN OF name OCCURS n …” . Die 3 Deklarationsbereiche . Die formellen Deklarationsbereiche einer Struktur . Die 2 Strukturformen (Feldleiste, interne Tabelle) . Die Datenstruktur einer Feldleiste . Das Beispiel einer Datenstruktur . Erläuterungen zur Datenstruktur . Die Datenstruktur einer internen Tabelle . Die Deklaration einer internen Tabelle . Erläuterungen zum Tabellenbeispiel . Die Deklaration einer Struktur mit “INCLUDE struc” . Das Beispiel einer INCLUDE-Struktur . Erläuterungen zum Tabellenbeispiel . DATA: BEGIN OF ITAB2 OCCURS 10 . INCLUDE STRUCTURE YT100 . END OF ITAB2 . BEGIN OF g1 OCCURS n … (Syntaxerläuterung) . Bindestrich als “Verbindungselement” (Gruppe-Einzelfeld) . OCCURS n. . Deklaration einer $internen Tabelle$ . Reservierung von Hauptspeicher . Deklaration der einzelnen Gruppenfelder . Feld1 bis n . Deklaration am Schluß der Datengruppe . END OF satz. . Die Bezugnahme auf bestehende Strukturen oder Benutzerdatentypen (ab 3.0) . Die Anweisung “TYPES typ” . Datentypen . Deklarationen . DATA: struc1 TYPE struc_typ OCCURS n. . DATA: struc2 LIKE itabx OCCURS n. . DATA: struc3 TYPE LINE OF struc_typ. . DATA: struc4 TYPE LINE OF itabx. . Der Datenbestand einer internen Tabelle und die … . Der Datenbestand einer internen Tabelle . Die Kopfzeile einer internen Tabelle . Interne Tabellen ohne Kopfzeilen (ab 3.0) . Adressierung von Einzelfeldern einer $Datengruppe$ . Tabellenkopfzeile . Bearbeitung der Tabellenkopfzeile . Adressierung eines Tabellenfeldes (Kopfzeile) . Der Bindestrich für die Adressierung des Einzelfeldes . Der Unterstrich für Abkürzungen im Feldnamen . Adressierung der gesamten Datengruppe . Sprachelemente für die gesamte Datengruppe . MOVE-CORRESPONDING grp1 TO grp2. . ADD-CORRESPONDING grp1 TO grp2. . MULITIPLY-CORRESPONDING grp1 BY grp2. . SUBTRACT-CORRESPONDING grp1 FROM grp2. . DIVIDE-CORRESPONDING grp1 BY grp2. . Füllbytes innerhalb der Datengruppe . Die Datengruppen als Variable vom Typ C. . Ausrichtung von Gruppenfeldern (z.B. Typ I) auf Wortgrenze . Relative Adressierung von Datengruppen . Deklaration von externen Tabellen . OCCURS-Angabe mit dem Wert 1 . INCLUDE STRUCTURE . Anwendungsmöglichkeiten in Report-Beispielen . IF … Grundlagen, Überblick Einzelbeschreibung logischer Vergleiche . Vergleich von Datenfeldern . Vergleich von Zeichenketten . Vergleich von Bitmustern und Bitvariablen . Steuerung des Programmablaufes aufgrund von … . Formulierung von IF-Bedingungen durch Verwendung … . Erweiterung von IF-Bedingungen durch … . Teilausdrücke in IF-Bedingungen durch Klammern . Durch geeignete Anordnung von Teilausdrücken … . Relativ komplexe IF-Bedingungen in fremden … . Die verschiedenen Bedingungsprüfungen . Logische Vergleichsoperationen (logAusdr) . Konvertierungen bei ungleichen Datentypen . Vergleich auf Initialwerte, Wertebereiche und Formalparametern . Weitere Bedingungsprüfungen . Umfangreicher Vergleich von Zeichenketten . Vergleich vom Bitmustern und Bit-Variablen . Vergleich von Selektionskriterien (s. . logAusdr (= logischer Ausdruck) . Formulierung von Bedingungen . Logische Vergleichsoperationen . Vergleichsoperanden (v1, v2) . Vergleichsoperatoren . Logischen Operatoren . Kleiner LT, < . Gleich EQ, = . Größer GT, > . Kleiner oder gleich LE, <=, =< . Ungleich NE, <>, >< . Größer oder gleich GE, >=, => . Boolesche Operatoren . Klammern . Nicht zugelassen: arithmetische Operatoren . Weglassen von “ELSE” . Befehle im ELSE-Zweig . “ELSEIF befehle2 … ENDIF” . Die “ELSEIF”-Anweisung . Die Reihenfolge der Bedingungsprüfungen in … . Die “IF … ENDIF” -Anweisung … . Eine kleine Empfehlung . IF v1 logOp – Vergleich von Datenfeldern anhand von Beispielen . Vergleich von Zeichenketten . : Logische Vergleiche . xx Vergleich von Bitmustern und Bitvariablen . Die verschiedenen IF-Bedingungen . Logische Vergleichsoperationen (logAusdr) . Umfangreicher Vergleich von Zeichenketten . Vergleich vom Bitmustern und Bitvariablen . Vergleich von Selektionskriterien . Ein Überblick zum Thema “logischer Ausdruck (= LogAusdr)” . Die Formulierung von Bedingungen . Ein logischer Ausdruck ist zwingend vorgeschrieben . Logische Vergleichsoperationen . Vergleichsoperanden . Vergleichsoperatoren (Überblick) . Kombination von Vergleichsoperatoren . Logische Operatoren . Die verschiedenen logischen Operatoren (Überblick) . Kleiner –> “LT, < ” . Gleich –>”EQ, = ” . Größer –>”GT, > ” . Kleiner oder gleich –>”LE, <=, =<” . Ungleich –>”NE, <>, ><” . Größer oder gleich –>”GE, >=, =>” . Die verschiedenen booleschen Operatoren . AND . OR . NOT . Die Auswertungsreihenfolge bei BOOL-Kombinationen . Die Verwendung von Klammern . Klammern . Die Auswertung von Report-Beispielen . Sparsame Verwendung von unterschiedlichen BOOL-Operatoren . Nicht in einem “IF” zugelassen: arithmetische Operatoren . Arithmetischen Operatoren ( + , -, *, /) . Einzelinformationen zum Thema “Wertebereiche” . Ein Beispiel mit Einzelabfragen: . Ein Beispiel “Wertbereiche mit “BETWEEN” ermitteln”: . Einzelinformationen zum Thema “Initialwerte” . Einzelinformationen zum Thema “Verwendung von Formalparametern” (ab 3.0) . Ein Beispiel mit Abfrage auf Verwendung eines Formalparameters . Einzelinformationen im Zusammenhang mit dem IF-Befehl . Eine kleine Statistik aus der Praxis . Häufigkeiten . Schlüsselworte IF und ENDIF . Das Befehlswort “ELSE” . Das Befehlswort “ELSEIF” . Themen mit vergleichbarer Bedeutung . WHERE LogAusdr . SELECT . LOOP . UPDATE . DELETE . CHECK LogAusdr . WHILE LogAusdr . CASE . WHEN . Aufbau und Reihenfolge von Teilausdrücken in IF-Bedingungen . AND-Verknüpfungen . OR-Verknüpfungen . EXIT . Konvertierungen möglichst vermeiden . Unterschied von “IF” und “CASE” . Aussprung aus der CASE-Sequenz . Aussprung aus IF-Befehlen . Bei “AND” zuerst die wahrscheinlich nicht zutreffende Teilbedingung verwenden . Bei “OR” zuerst die vermutlich zutreffende Teilbedingung verwenden. . Schlußfolgerung . Die häufigsten Treffer in CASE-Befehlen . Die Treffer in IF-Befehlen IF … Vergleich von Datenfeldern mit unterschiedlichem Typ . Datenkonvertierung . Nicht alle Feldinhalte werden konvertiert . Konvertierungskombinationen . Zusätzliche Systemzeit für die Konvertiertung . Bereits bei der Deklaration von Datenfeldern an den “IF” denken . Numerische Vergleiche und N-Felder . Welche Operanden werden konvertiert? . Erste Stufe: F-Felder (Gleitkommazahl) . Zweite Stufe: P-Felder (gepackte Zahl) . Dritte Stufe: T-Feld (Time), D-Feld (Date) . Kein Vergleich von T-Feldern mit D-Feldern zulässig . Vierte Stufe: Vergleich von N-Feldern mit C-, . Fünfte Stufe: Vergleich von C-Feld mit X-Feld . Nach welchen Regeln erfolgt eine Datentypkonvertierung? . Die Auswertung von vergleichbaren Datentypen . Einzelinformationen beim Vergleich von Feldern . Fazit: Der IF-Befehl sollte exakt verstanden werden . Der Vergleich von zwei C-Feldern . Byteweiser Vergleich . Der Vergleichsoperator (größer, kleiner, gleich) . Das Vergleichsergebnis . Leerzeichen . Gleiche Anzahl Leerzeichen (linksbündig) . Ungleiche Anzahl Leerzeichen (linksbündig) . Gleiche Anzahl Leerzeichen (rechtsbündig) . Ungleiche Anzahl Leerzeichen (rechtbündig) . Vergleich von “leeren” Feldern . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . C-Felder sind grundsätzlich Stringfelder . Vor einem Vergleich von C-Feldern sollte geprüft . Zulässiger Zeichenvorrat . Regeln für den Feldinhalt . Der Vergleich von zwei N-Feldern . Allgemein . Der Vergleichsoperator (größer, kleiner, gleich) . Keine Leerzeichen, sondern Nullen . Ein Beispiel (Konvertierung bei Leerzeichen) . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . N-Felder besitzen kein Vorzeichen . Allgemeine Prüfung des N-Feldes . Der Vergleich von zwei I-Feldern . Allgemein . Speicherdarstellung von I-Feldern . Beispiel “LITTLE ENDIAN” . Numerischer Inhalt in I-Feldern . Wertmäßiger Vergleich von I-Feldern . I-Felder besitzen ein Vorzeichen . Keine Blanks in I-Feldern . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . Der Inhalt eines I-Feldes in Rechenoperationen . Ein I-Feld hat den Wert 0 . Ein I-Feld hat einen negativen Wert . Der Vergleich von zwei P-Feldern . Allgemein . Speicherinhalt von P-Feldern (= gepackte Darstellung) . Der hexadezimale Feldinhalt von P-Feldern . Das Vorzeichen in P-Feldern . Wertmäßiger Vergleich von P-Feldern . Keine Blanks in P-Feldern . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . Der Inhalt eines P-Feldes in Rechenoperationen . Ein P-Feld hat den Wert 0 . Ein P-Feld hat einen negativen Wert . Der Vergleich von zwei F-Feldern . Allgemein . Seltene Anwendung von F-Feldern . Wertmäßiger Vergleich von F-Feldern . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . Rundungsfehler bei F-Feldern . Der Vergleich von zwei D-Feldern . Allgemein . Speicherinhalt von D-Feldern (= Datum) . Der hexadezimale Feldinhalt von D-Feldern . Wertmäßiger Vergleich von D-Feldern . Ungültiger Dateninhalt . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . Wertmäßiger Vergleich bei D-Feldern . Konvertierung innerhalb der Druckroutinen . Plausibilitätsprüfungen . Der Vergleich von zwei T-Feldern . Allgemein . Speicherinhalt von T-Feldern (= Time) . Der hexadezimale Feldinhalt von T-Feldern . Wertmäßiger Vergleich von T-Feldern . Ungültiger Dateninhalt . Die Feldlängen der Vergleichsvariablen . Einige Bemerkungen für die Praxis . Plausibilitätsprüfungen . Der Vergleich von zwei X-Feldern . Allgemein . Speicherinhalt von X-Feldern (= Hexadezimal direkt) . Ein kleines “Experiment” . Der hexadezimale Feldinhalt . X-Felder werden byteweise verglichen . Gültiger Dateninhalt . Eine Bemerkung für die Praxis . Der Vergleich von X-Feldern . Der Vergleich von zwei Feldleisten (3.0) . Alle Felder der Struktur werden einzeln geprüft . Bei einem Vergleich von Feldleisten (genauer: von . Der Vergleich von zwei internen Tabellen (3.0) . Vergleich der Zeilenanzahl . Vergleich der Zeileninhalte IF … Der Überblick über die angebotenen Report-Beispiele . Report-Beispiele mit logischen Operatoren . Report-Beispiele mit IF-Abfragen und gleichem . Report-Beispiele mit booleschen Operatoren . Report-Beispiele mit Klammern in IF-Abfragen . Die Konvertierung von Datentypen . Report-Beispiel (logische Operatoren) . Erläuterung der Listausgabe . Beispiel-Reports (C-Felder) Vergleich von 2 C-Feldern (Allgemeine Zeichenketten) . Beispiel-Reports (N-Felder) Vergleich von 2 N-Feldern (numerische Strings) . Numerischer Inhalt in N-Feldern . Wertmäßiger Vergleich von N-Feldern . N-Felder besitzen kein Vorzeichen . Keine Blanks in N-Feldern . Beispiel-Reports (I-Felder) Vergleich von 2 I-Feldern (ganze Zahlen) . Hinweis für die Praxis . Beispiel-Reports (P-Felder) Vergleich von 2 P-Feldern (gepackte Zahlen) . Beispiel-Reports (F-Felder) Vergleich von 2 F-Feldern (Gleitpunktzahlen) . Beispiel-Reports (D-Felder) Vergleich von 2 D-Feldern (Datum) . Beispiel-Reports (T-Felder) Vergleich von 2 T-Feldern (Time) . Uhrzeit oder Angabe von Stunden, Minuten, Sekunden? . Beispiel-Reports (X-Felder) Vergleich von 2 X-Feldern (hexadezimal direkt) . Report-Beispiele (Boolesche Operatoren) . Beispiel-Report (BOOL: OR) Ermittlung der Gesamtaussage bei OR-Bedingungen . Teilprüfungen genügen bei zutreffendem “OR” . Beispiel-Reports (BOOL: OR NOT) Ermittlung der Gesamtaussage bei “OR NOT”-Bedingungen . Zutreffende OR-Bedingungen zu Beginn formulieren . Beispiel-Report (BOOL: AND NOT) Ermittlung der Gesamtaussage bei “AND NOT”-Bedingungen . Gesamtaussage der Ergebnisprüfung . Anzahl der Verknüpfungen mit “AND NOT” . Zutreffende OR-Bedingungen zu Beginn formulieren . Report-Beispiele zu Klammern in IF-Abfragen . IF-Abfragen von Feldern mit unterschiedlichem … . Beispiel-Reports (Klammerausdruck-1) Beispiel-Reports (Klammerausdruck-2) Durch Klammerung wird das Ergebnis verändert . Durch Klammerung wird das Ergebnis nicht verändert . Report-Beispiele zur Konvertierung in IF-Befehlen . TIP . Beispiel-Report (N-Felder) Konvertierung diverser Datentypen auf den Typ N . Spezielle Aufgaben für das N-Feld . Beispiel-Report (I-Felder) Konvertierung diverser Datentypen auf den Typ I . Beispiel-Report (P-Felder) Konvertierung diverser Datentypen auf den Typ P . Beispiel-Report (F-Felder) Konvertierung diverser Datentypen auf den Typ F . Beispiel-Report (D-Felder) Konvertierung diverser Datentypen auf den Typ D . Beispiel-Report (T-Felder) Konvertierung diverser Datentypen auf den Typ T . Beispiel-Report (X-Felder) Konvertierung diverser Datentypen auf den Typ X INSERT … Der Überblick zum Befehl “INSERT …” . Zusammenfassung der einzelnen INSERT-Befehle . Ergänzen von externen Tabellen in der … . INSERT INTO etab VALUES wb . INSERT INTO (vtab) VALUES wb INSERT etab . INSERT (vtab) INSERT *etab . INSERT etab FROM TABLE itab . INSERT (vtab) FROM TABLE itab Hinzufügen von Tabellenzeilen in internen … . INSERT itab INDEX n . INSERT LINES OF itab {FROM ind1} {TO ind2} INTO itab {INDEX ind3} INSERT itab . Zuordnen von Feldern zu einer Feldgruppe . INSERT v1 v2 vx INTO feldgruppe . Hinzufügen von neuen Programmen (Report) . INSERT REPORT name FROM itab . Ergänzen von Report-Texten (Überschriften, . INSERT TEXTPOOL name FROM itab LANGUAGE x . Ergänzen von externen Tabellen in der . INSERT INTO etab VALUES wb . “INSERT” und der SQL-Befehlsvorrat . Die Verarbeitungsart von externen Tabellen . Einzelsatzverarbeitung . Mehrfachsatzverarbeitung . Datendeklaration der externen Tabelle “etab” im Data-Dictionary . Der Tabellenarbeitsbereich einer externen Tabelle . INSERT und die Tabellen-Puffer . INSERT und BYPASSING BUFFER . INSERT und COMMIT WORK . INSERT in der Datenbank . INSERT und ROLLBACK gemeinsam betrachten . Die verschiedenen externen Tabellenarten . Die Systemtabelle DD02V zeigt die Tabellennamen . Transparente Tabellen . Beispiel-Report-TRANS Die transparenten Tabellen . POOL-Tabellen . Import/Export-Tabellen (z.B. INDX) . Cluster-Tabellen . Die Datenbank und die Befehle der R/3®-Entwicklungsumgebung . Die Schnittstellen zur Datenbank . Die Bearbeitung transparenter Tabellen . Die Bearbeitung von POOL- und Clustertabellen . Der “INSERT …” und die internen Schnittstellenprogramme . Unterschiedliche Tabellenarten, gleiche . Erhöhter Systemaufwand bei POOL-/CLUSTER-Tabellen S1821000 : INSERT itab INDEX n INSERT itab INDEX n. (Syntax) . Eine Ganzzahl . Eine Variable . Das Systemfeld SY-TABIX . Angabe einer gültigen Zeilenposition . Die Tabellenpositionen werden durch “INSERT” verändert . Der INDEX als Ganzzahl oder als Variableninhalt . Der “richtige” Indexwert . Zu großer Index . Zu kleiner INDEX . Index = 0 . Ein negativer INDEX . “APPEND itab” und “INSERT itab INDEX n” ergänzen sich . Ein falscher Index kann zu einer Endlosschleife … . Ein kleines Beispiel (es gibt viele Variationen) . Das Ergebnis . Die Task abbrechen . Vorbeugende Maßnahmen . “Wer arbeitet macht Fehler, vermeide Fehler” . BREAK-POINT einbauen . Einen Zähler einbauen . Begrenzter Schleifenaufruf . Zähler mit BREAK-POINT einbauen . CLEAR ist manchmal hilfreich . Anwendungsmöglichkeiten in Report-Beispielen . Beispiel-Report-INSERT1 Unsortierter Tabellenaufbau als Beispiel . Sortierter Aufbau einer internen Tabelle . Der Returncode bei “APPEND itab” . Beispiel-Report-ITAB-sortiert Schnelles Lesen mit ” … BINARY SEARCH ” . Der Schlüssel in einer internen Tabelle . Die Systemzeit als Schlüssel . Ausdruck eines I-Feldes . Der Returncode . Returncode = 8 . Returncode = 4 . Returncode = 0 . Returncode = andere Werte . Die Case-Anweisung . Der Report sollte mehrmals gestartet werden . Beispiel-Report-Reverse Die Display-Ausgabe . Die Anwendung . Die Situation . Der Fehler LOOP AT itab LOOP AT itab; Schleifenverarbeitung einer Tabelle; . LOOP AT itab; DO; WHILE; CONTINUE, EXIT . Die Kurzbeschreibung . LOOP AT itab WHERE bedingung . LOOP AT itab FROM n . LOOP AT itab TO n . LOOP AT itab FROM n1 TO n2 . LOOP AT itab FROM n1 TO n2 WHERE bedingung . LOOP AT itab TRANSPORTING NO FIELDS WHERE bedingung (ab 3.0) . LOOP AT itab . LOOP . AT . itab {INTO wb} . LOOP AT itab WHERE bedingung . WHERE bedingung . Keinen Tabellenprefix angeben . LOOP AT itab FROM n (= Befehlsergänzung) . FROM n . LOOP AT itab FROM a1 TO a2 . FROM a1 TO a2 . Kombination von “FROM” und “WHERE” . LOOP AT itab TRANSPORTING NO FIELDS WHERE . LOOP AT itab FROM, WHERE . Die sequentielle Verarbeitung der Tabelle . Leere Tabelle . Leere Tabellenzeilen . Wirkung von leeren Tabellenzeilen . Löschen der Kopfzeile mit SPACE nur bei externen … . Systemfeld SY-TABIX . Eine kleine Falle . Systemfeld SY-SUBRC . Anweisungsmuster von LOOP/ENDLOOP . Verlassen der LOOP-Schleife . DELETE in einer LOOP-Schleife . Anwendungsmöglichkeiten in Report-Beispielen . Beispiel-Report-WHERE Beispiel-Report-FROM Beispiel-Report-FROM-TO Beispiel-Report-FROM-TO-WHERE MOVE v1 TO v2 Datendeklarationen . Die allgemeine Funktionsweise des . Die Syntax der Übertragungsbefehle . Die unterschiedlichen Adressierungsmöglichkeiten . Die Syntax- und Funktionsbeschreibung von “MOVE …” . Die C-Felder im “MOVE …” (Charakter, Zeichenfelder) . Die N-Felder im “MOVE …” (Numerische Zeichen) . Die I-Felder im “MOVE …” (Integer, Ganzzahlen) . Die P-Felder im “MOVE …” (Gepackter Feldinhalt) . Die F-Felder im “MOVE …” (Floating Point, Fließkomma) . Die D-Felder im “MOVE …” (Datum, JHJJMMTT) . Die T-Felder im “MOVE …” (Uhrzeit, HHMMSS) . Die X-Felder im “MOVE …” (Hexadezimalfelder) . MOVE v1 TO v2; MOVE v1+offs(l) TO v2+(offs)l), v2 = v1 . Die Kurzbeschreibung . Der Zuweisungsbefehl als Alternative (” v2 = v1. “) . Übertragung eines Variableninhaltes (MOVE v1 TO v2) . Übertragung eines Literals (MOVE literal TO v2) . Die Position des Sendefeldes ist zu beachten . Der MOVE-Befehl . Die Zuweisung (” = “) . Nur das Sendefeld kann ein Literal sein . “MOVE itab1[[ TO itab2[[” – Eine interne Tabelle wird kopiert . MOVE T1[[ TO T2[[ (Ab 3.0) . Konvertierungen . Die verschiedenen Befehlsanwendungen . “MOVE v1 TO v2.” . Die Adressierungsarten . Die symbolische Adressierung . Die relative Adressierung . “MOVE v1+offset(länge) TO v2” . “MOVE v1 TO v2+offset(länge)” . “MOVE v1+offset(länge) TO v2+offset(länge)” . “MOVE lit1 TO v2” . Zuweisungen (” = “) . “v2 = v1” . “v2 = lit1” . Grundsätzliche Überlegungen bei … . Datentypen . Adressierung . Symbolische Adressierung . Relative Adressierung . Nicht alle Datenfelder sind geeignet . Relative Adressierung nur mit absoluten Werten . Die unterschiedlichen Feldlängen der … . An welcher Stelle beginnt im Sendefeld die … . An welcher Stelle im Empfangsfeld wird . Wenn das Empfangsfeld größer als das Sendefeld ist . Wenn das Empfangsfeld kleiner als das Sendefeld ist . Gültiger/Ungültiger Feldinhalt . Formalfehler . Logisch falsche Feldinhalte . Plausibilitätsprüfungen . Numerisch-Plausi Datum-Plausi Uhrzeit-Plausi Differenz-Datum Differenz-Uhrzeit Allgemeine Checkliste für die Übertragung mit “MOVE” . Empfangsfeld . Sendefeld . Art der Adressierung . Beginn der Übertragung . Zeichenart . Größe des Empfangs-/ Sendefeldes . Kleineres Empfangsfeld . Größeres Empfangsfeld . Konvertierungsart . Welche Übertragung wird abgelehnt? . Wo bleiben Nachkommastellen? MOVE: C-Felder Die Übertragung von C-Feldern . Die Darstellung der Feldinhalte in C-Feldern . Das Ergebnis der Konvertierungsroutinen . Die Syntax- und Funktionsbeschreibung von “MOVE …” . Die Übertragung von C-Feldern (Einzeldarstellung) . Der Feldinhalt eines Datenfeldes vom Typ ‘C’ wird übertragen . An welcher Stelle beginnt die Übertragung aus dem Sendefeld? . Das Auffüllen im Empfangsfeld . Die Konvertierung bei ungleichen Datentypen . Eine Fehlersituation oder zulässige Befehlsanwendung? . Ungültige Zeichen im Sendefeld . Das Abschneiden von Informationen im Empfangsfeld . Die Übertragung von C-Feld zu C-Feld . Die Zusammenfassung der Übertragung C nach C . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Ein String aus einem C-Feld wird in ein C-Feld … . Das linksbündige Leerzeichen wird im C-Feld … . Das Leerzeichen kann auch innerhalb … . Ein C-Feld enthält eine Zahl l … Ein Leerzeichen kann auch innerhalb … . Das Empfangsfeld ist ein kleineres … . Das Empfangsfeld ist ein größeres … . Der Rest des Sendefeldes wird abgeschnitten . Die Übertragung von C-Feld zu N-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Erst linksbündig, dann rechtsbündig . Buchstaben werden nicht in ein N-Feld übertragen . Leerstellen im Sendefeld werden nicht in ein … . Das Abschneiden der Sendeinformation . Die Übertragung von C-Feld zu I-Feld . Die Umrechnung von dezimal in binär . Die Darstellungsform eines I-Feldes . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Eine Zahl wird konvertiert . Ein I-Feld kann eine Zahl aufnehmen . Die Übertragung von C-Feld zu P-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Eine Zahl wir aus einem C-Feld in ein P-Feld . Auch ein Vorzeichen in einem C-Feld wird . Die Übertragung von C-Feld zu D-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Ein D-Feld kann auch ein “falsches” Datum … . Wie werden Character-Felder in D-Felder übertragen? . Abweichende Speicherungsform bei D-Feldern . Interne Darstellung . Externe Darstellung . Der Inhalt eines C-Feldes muß nicht ein Datum sein . Gültigkeitsprüfung . Prüfung auf formellen Inhalt . Prüfung auf logischen Inhalt . Auch Leerstellen werden in ein D-Feld übertragen . Noch ein ungültiges Datum übertragen . Numerische Inhalte werden ohne Konvertierung . Auch Leerstellen werden bei der Datumsumformung . Eine Zahl ist nicht immer ein Datum . Auch Buchstaben werden bei der Übertragung … . Ein “richtiges” Datum wird übertragen . Die Übertragung von C-Feld zu T-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Auch eine zu kleine Uhrzeitangabe wird in ein … . Die Uhrzeit in einem C-Feld besteht aus Buchstaben ?.. . Eine Uhrzeitangabe oder die Angabe einer … . Die Übertragung von C-Feld zu X-Feld . Ungültige Zeichen im Sendefeld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Gleich große Felder, aber unterschiedliche … . Ein alphabetischer Feldinhalt aus einem … . Linksbündige Übertragung . Die interne Speicherungsart . C-Feld (Hexadezimal) . X-Feld (Hexadezimal) . Vereinbarungen für die … . Die Häufigkeit der Verwendung von … . Aus Leerstellen werden Nullen . Wenn das Empfangsfeld vom Typ ‘X’ größer ist . Nur die zulässigen Buchstaben werden aus einem … . Unzulässige Zeichen werden aus einem C-Feld nicht … . Die Übertragung von C-Feld zu F-Feld … . Die Zusammenfassung . Aus Ziffern wird eine Gleitkommazahl . Auch Vorzeichen in einem C-Feld werden … . Auch in einem C-Feld kann eine Gleitkommazah …l . Auch negative Mantisse und Exponent werden … . MOVE: N-Felder MOVE … die Übertragung von N-Feldern . Die Darstellung der Feldinhalte . Das Ergebnis der Konvertierungsroutinen . Das Vorzeichen, die Übertragungsreihenfolge und die … . Die Übertragung von N-Feld zu C-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Das Empfangsfeld vom Typ C ist zu klein . Die führenden Nullen werden zuerst in ein C-Feld . Bei linksbündiger Übertragung wird das C-Feld . Der Teufel steckt im Detail . Die Übertragung eines N-Feldes in ein anderes N-Feld . Ein N-Feld wird in ein N-Feld übertragen . Das Sendefeld ist größer als das Empfangsfeld . Das Sendefeld ist kleiner als das Empfangsfeld . Die Übertragung eines N-Feldes in ein I-Feld . Die Zusammenfassung . Die Darstellungsform eines I-Feldes . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Ein gültiges N-Feld wird in ein I-Feld übertragen . Ein I-Feld kann relativ große N-Felder aufnehmen . Die Übertragung eines N-Feldes in ein P-Feld . Die Zusammenfassung . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Bei gleicher Stellenzahl kann ein P-Feld mehr … . Die Zifferndarstellung in einem gepackten … . Die vorzeichengerechte Darstellung . Das Vorzeichen . Die Zifferndarstellung in einem N-Feld . Keine Vorzeichen in einem N-Feld . Die Übertragung (N nach P) erfolgt von rechts nach … . Die Übertragung eines N-Feldes in ein D-Feld (Datum) . Die Zusammenfassung . Die interne Speicherung in einem D-Feld: YYYYMMDD . Umformung des Feldinhaltes durch die Druckroutinen . Eine ganz normale Übertragung eines Datums . Übertragung einer Zahl in ein D-Feld . Die Übertragung eines N-Feldes in ein T-Feld . Die Zusammenfassung . Das Sendefeld ist zu klein . Das Sendefeld ist zu groß . Eine Zahl wird in ein T-Feld übertragen . Eine ungültige Uhrzeit wird übertragen . Wenn das Sendefeld größer als 6 Bytes ist . Die Übertragung eines N-Feldes in ein X-Feld . Die Zusammenfassung . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Eine Dezimalzahl wird konvertiert . Das Empfangsfeld ist zu klein . Der rechtsbündige Wert in einem X-Feld . Die Übertragung eines N-Feldes in ein F-Feld . Die Zusammenfassung . Es entsteht eine Fließkommazahl . Drei Stellen eines N-Feldes sind kein Thema für . MOVE N(003) TO F(008). . Freuen Sie sich, daß es noch andere Themen gibt. PERFORM upro Die Syntax der verschiedenen Befehlsformen von “PERFORM” . “PERFORM upro.” . “PERFORM upro USING p1 p2 ..” . “PERFORM upro TABLES intab1 ….” . “PERFORM index OF upro1 ….” . “PERFORM upro ON COMMIT.” . PERFORM upro-name (Syntax) . Gleiche Feldnamen sind nicht erlaubt . Nur interne Unterprogramme verwenden . Die genannten Unterprogramme müssen vorhanden sein . PERFORM upro USING p1 p2 .. . Die Namen der Parameter . Die Reihenfolge der Parameterangaben im Unterprogramm . Relative Adressierung von Parametern . Relative Adressierung von Parametern mit “*” (Ab 3.0) . Relative Adressierung von Parametern durch Feldsymbole . FORM upro USING p1 p2 .. . Wahl der Bearbeitungsart der Parameter im FORM . ENDFORM . PERFORM upro TABLES itab…. . Die Tabellenkopfzeile adressieren . Im Unterprogramm den Zusatz ” … STRUCTURE stru” . Die Reihenfolge der Parameter ist zu beachten . Einschränkungen (VALUE, relative Adresse) . “FORM upro TABLES itab…. . FORM upro . TABLES itab . ENDFORM . PERFORM index OF upro1 … . PERFORM . index . PERFORM upro ON COMMIT . Keine Parameterübergabe . PERFORM upro ON COMMIT LEVEL ifeld . n . Interne und externe PERFORM’s . Der interne Perform . Der externe Perform . Die Position der Unterprogramme im Report . Die “Default-Struktur” eines Reports . Die Erläuterung einer Fehlersituation . Der FORM-Befehl legt die Parameterbearbeitung fest . Die Schachtelung von PERFORM-Aufrufen ist zulässig . Der Name von Unterprogrammen . Beliebige Namen . Einmaliger Unterprogrammname . Der Name ist nur eine Adresse . Der geeignete Kompromiß . Anwendungsmöglichkeiten in Report-Beispielen . Die Listausgabe . Beispiel-Report-lokal-global . Gültigkeit von globalen Feldern . Gültigkeit von lokalen Feldern . Die geänderten Programmvariablen . Beispiel-Report-Weitergabe-lokal Gültigkeit von globalen Feldern . Gültigkeit von lokalen Feldern . Die geänderten Programmvariablen . Beispiel-Report-INDEX Allgemeine Hinweise . Beispiel-Report-TABLES Kleiner Fehler . WRITE … Einige Hinweise für den ersten Überblick . Formatangaben (vor dem Ausgabefeld anzugeben) . Die Steuerung mit Direktwerten (Ganzzahlen) . Eine Ausgabeanweisung: . Zeilenvorschub “/” . Ausgabeposition des Feldes “WOHNORT”. . Länge der Druckausgabe des Feldes “WOHNORT” . Die Verwendung von Variablen “WRITE AT …” . Ausgabeposition des Feldes “WOHNORT” . Länge der Druckausgabe “WOHNORT” . Die Bezeichnung des auszugebenden Ausgabefeldes . Druckoptionen (nach dem Ausgabefeld anzugeben) . Darstellung von Datumsangaben . DD/MM/YYYY . MM/DD/YYYY . DD/MM/YY . MM/DD/YY . DDMMYY . MMDDYY . Die Zahlenaufbereitung . NO-ZERO . DECIMALS n . ROUND n . UNIT u . NO-SIGN . EXPONENT e . Die Position des Ausgabefeldes beeinflussen . NO-GAP . UNDER v2 . Die Ausrichtung des Ausgabefeldes . LEFT-JUSTIFIED . RIGHT-JUSTIFIED . CENTERED . Eine Maskenausgabe vornehmen . USING EDIT MASK maske . USING NO EDIT MASK . CURRENCY v2 . Die Ausgabeattribute (Angabe nach der Feldbezeichnung) . COLOR n (oder COLOR OFF) . INVERSE (oder INVERSE OFF) . INTENSIFIED (oder INTENSIFIED OFF) . INPUT (oder INPUT OFF) . HOTSPOT . Symbolen, Ikonen, Windows als Druckausgabe . Symbol (ab 3.0) . Icon (ab 3.0) . Line (ab 3.0) . Checkbox . WRITE format v1 druckoption ausgabefarbe . WRITE format v1 druckoption ausgabefarbe . Beispiel-1: . Beispiel-2: . Beispiel-3: . WRITE . Formatangaben (/, n, (n) ) . Formatangaben (/, n, (n) ) in Ganzzahlen . Beispiel . Kurzhinweis . / = neue Druckzeile . nnn = Druckposition innerhalb der Listzeile . (nnn) = Länge des Ausgabefeldes in der Listzeile . Formatangaben durch Variablen “WRITE AT v1(v2)” . Beispiel . Kurzhinweis . / = neue Druckzeile . v1 = Variable zur Angabe der Druckposition . v2 = Variable zur Längenangabe des Ausgabefeldes . v1 (Variable oder Literal) . Druckoptionen (nach dem Ausgabefeld . Datumsangaben . DD/MM/YYYY . MM/DD/YYYY . DD/MM/YY . MM/DD/YY . DDMMYY . MMDDYY . Zahlenaufbereitung . NO-ZERO . DECIMALS n . ROUND n . NO-SIGN . EXPONENT e . Position des Ausgabefeldes . NO-GAP . UNDER v2 . Maskenausgabe . USING EDIT MASK maske . MINIBeispiel . USING NO EDIT MASK . CURRENCY v2 . Die Ausgabefarbe (nach dem Ausgabefeld anzugeben) . COLOR n (oder COLOR OFF) . INVERSE (oder INVERSE OFF) . INTENSIFIED (oder INTENSIFIED OFF) . INPUT (oder INPUT OFF) . HOTSPOT . Symbole, Ikonen, Windows als Druckausgabe . Symbol (ab 3.0) . Icon (ab 3.0) . Line (ab 3.0) . Checkbox WRITE ausgabefeld … Eine Kurzbeschreibung . WRITE fmt v1 drOpt farbe . fmt = Formatangaben (vor dem Ausgabefeld “v1” angeben) . Die Steuerungselemente “/ n (n)” . Feldbezeichnung “v1” (symb. oder relative Adresse) . drOpt = Druckoptionen (nach dem Ausgabefeld “v1” anzugeben) . Datumsangaben . Zahlenaufbereitung . Relative Position des Ausgabefeldes . Ausrichtung des Ausgabefeldes . Maskenausgabe . farbe = Attribute zur Gestaltung der Ausgabefelder . Drucksteuerung von Symbolen, Ikonen, Windows usw. . Das Schlüsselwort “WRITE …” . Formatangaben v o r dem Feldnamen . Indirekte Formatsteuerung (ab 3.0) . Direkte Formatsteuerung (weiter gültig) . Formatangaben v o r dem Feldnamen: ” /, n, (n)” . Neue Zeile = “/” . Angabe der Druckposition = nnn . Variable Positionsangabe . Druckausgabe ohne Angabe der Druckposition . Gesonderte Angabe der Druckposition . Angabe der Ausgabelänge = “(nnn)” . Relative Adressierung des Datenfeldes . Ausgabelänge im WRITE-Befehl festlegen . Zu geringer Druckbereich eines Ausgabefeldes . Unvollständige Druckausgabe von I, P, F-Feldern . Abgeschnittener Feldinhalt (C, N, D, T, X) . Druckposition und Drucklängen als Variable (ab 3.0) . Das Ausgabefeld v1 (Variable oder Literal) . Datentyp – Länge der Druckausgabe . Zusatzzeichen innerhalb der Ausgabefelder . Datentypen I, P und F . Datentypen C, N, X . Datentypen D, T . Leere Ausgabefelder . Feldleisten und Tabellenkopfzeilen . Feldsymbole . Eine spezielle Anwendungsmöglichkeit . Literale . Die Ausgabe von Report-Textelementen . Direkte Angabe von Textelementen . Indirekte (sprachengesteuerte) Ausgabe von . Druckoption von Datum-/Rechenfeldern . Datumsangaben . Report-Beispiel . Datumsangaben mit Trennzeichen . DD/MM/YYYY . MM/DD/YYYY . DD/MM/YY . MM/DD/YY . Datumsangaben ohne Trennzeichen . DDMMYY . MMDDYY . YYMMDD . Zahlenaufbereitung . NO-ZERO . Report-Beispiel . DECIMALS n . ROUND n . NO-SIGN . UNIT . EXPONENT e . Druckoption (Positionsveränderungen) . NO-GAP . UNDER v2 . Druckoption (Ausrichtung des Ausgabefeldes) . Allgemeine Funkion . Der Feldinhalt innerhalb der Variablen . Die gesonderte Angabe der Ausgabelänge im . Die Befehlsergänzungen “WRITE … ausrichtung” . LEFT-JUSTIFIED . RIGHT-JUSTIFIED . CENTERED . Druckoption (Maskenausgabe) . USING EDIT MASK maske . Verfügbare Maskenzeichen . Auswahlzeichen . Steuerungszeichen . Drucklänge und Feldlänge bei Ausgabemasken . Konkrete Angabe der Aufbereitungszeichen . Indirekte Angabe der Ausgabeschablone . Ein formelles Beispiel: . USING NO EDIT MASK . Druckoption “…CURRENCY v1” . S3640004 : WRITE ausgabefeld in Beispielen … . DRUCK-OHNE-POSITIONSANGABE . DRUCK-MIT-POSITIONSANGABE . DRUCK-OHNE-POSITION-LEER . Characterfelder mit SPACE als Grundstellungswert . Characterfelder mit “0” als Grundstellungswert . I-Felder (Integerfeld) . P-Feld (gepacktes Datenformat) . F-Feld (Floatingpoint) . D-Feld (DATE) . T-Feld (TIME) . X-Feld (HEXADEZIMAL) . DRUCK-MIT-POSITIONSANGABE . DRUCK-POSITION-LAENGE-KLEINER . Allgemeine Aufbereitungsmerkmale . Ein C-Feld mit kleinerer Drucklänge . Ein N-Feld mit kleinerer Drucklänge . Ein I-Feld mit kleinerer Drucklänge . Ein P-Feld mit kleinerer Drucklänge . Ein F-Feld mit kleinerer Drucklänge . Ein D-Feld mit kleinerer Drucklänge . Ein T-Feld mit kleinerer Drucklänge . Ein X-Feld mit kleinerer Drucklänge . DRUCK-MIT-POSITIONSANGABE . DRUCK-POSITION-LAENGE-GROESSER . Ein C-Feld mit größerer Drucklänge . Ein N-Feld mit größerer Drucklänge . Ein I-Feld mit größerer Drucklänge . Ein P-Feld mit größerer Drucklänge . Ein F-Feld mit größerer Drucklänge . Ein D-Feld mit größerer Drucklänge . Ein T-Feld mit größerer Drucklänge . Ein X-Feld mit größerer Drucklänge . Das letzte Feld im Druckbereich . REPORT-WRITE4 DRUCK-OHNE-POSITIONSANGABE . DRUCK-POSITION-FELDLEISTE . DRUCK-OHNE-POSITIONSANGABE . DRUCK-POSITION-FELDSYMBOL . DRUCK-CHARACTERFELDER . DRUCK-OHNE-POSITIONSANGABE . DRUCK-AUSGABE-RELATIV . DRUCK-RECHENFELDER-CUT . DRUCK-OHNE-POSITIONSANGABE . DRUCK-DATUM2. . DRUCK-DATUM3. . DRUCK-OHNE-POSITIONSANGABE . WRITE-CUR-DEC-ROUND-1 . WRITE-CUR-DEC-ROUND-2 . DRUCK-OHNE-POSITIONSANGABE . WRITE-DECIMALS-IFELD-1 . WRITE-DECIMALS-IFELD-2 . WRITE-UNIT . DRUCK-OHNE-POSITIONSANGABE . DRUCK-MIT-POSITIONSANGABE . WRITE-NO-ZERO . WRITE-NO-SIGN . WRITE-EXPONENT . DRUCK-OHNE-POSITIONSANGABE . WRITE-NO-GAP . WRITE-UNDER . DRUCK-OHNE-POSITIONSANGABE . WRITE-USING-EDIT-MASK . WRITE-EDIT-CONVERT . WRITE-EDIT-CONVERT-INDIREKT