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 4: “Feldsymbole, SELECT-Klauseln und Listbefehle usw.”

Im Mittelpunkt des Fortsetzungskurses 4 steht u.a. die Nutzung der Adressrechnung durch Feldsymbole. Hier finden Sie Lösungsmechanismen wieder, die in der Assemblersprache anzutreffen sind. Es ist aber viel einfacher ! Die typischen Befehle zur Listverarbeitung, Datenbeschaffung, Fallunterscheidung usw. fehlen natürlich nicht. Gemeinsam mit den Kursen 1 – 4 sollten Sie in der Lage sein, Programmieranforderungen des Fachbereiches zum Thema “Listerstellung ” realisieren zu können. Es sollte Ihnen nicht schwerfallen, weitere Befehlsfunktionen in eigener Regie innerhalb des SAP®-Systems zu erarbeiten.

Wieviel Lerninformationen stehen im Kurs 4 zur Verfügung ?

Der Kurs 4 besteht aus ca. 2500 Textabschnitten mit insgesamt ca. 10000 Zeilen, insgesamt sind mehr als 118 Formal- und Beispiel-Reports enthalten. Die Reportbeispiele werden durch ca. 400 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:

ASSIGN …- Ein Überblick . Die verschiedenen Adressierungsmöglichkeiten . Was sind Feldsymbole? . Welche Wirkung hat der Befehl “ASSIGN …”? . Welche Befehle gehören zur Befehlsgruppe “ASSIGN…”? . Eine Variable unter einem anderen Namen . Datenfeldeigenschaften ändern . Teilbereiche eines Datenfeldes bearbeiten . Feldsymbole wie Datenfelder bearbeiten . Allgemeine Information zur Adressierung von … . Datendeklaration und Feldeigenschaften . Übertragen von Feldeigenschaften auf den Variablentyp . Übertragung der Feldeigenschaften . Vorhandene Feldeigenschaften auf Feldsymbole . Differenzierte Bearbeitung von Datenfeldern . ASSIGN v1 TO (allgemeine Befehlssyntax) . ASSIGN . v1 (Sendebereich/Quellfeld) . TO . Der ASSIGN (grundsätzliche Informationen in Kurzform) . Allgemeine Informationen zum Feldsymbol . Das Feldsymbol, ein besonderer Variablentyp . Zuweisung von Feldeigenschaften . Das Feldsymbol hat keinen eigenen . Ein Datenfeld mit mehreren Feldsymbolen . Das Feldsymbol mit wechselnden Feldeigenschaften . Die allgemeine Wirkung von “ASSIGN …” . Deklarierte Programmfelder (= Variable) erhalten Feldsymbolnamen . Verwendung von bereits reserviertem Speicher . Veränderungen wirken in dem Ursprungsfeld . Die Deklaration der beteiligten Befehlsvariablen . Reale Speicherbereiche (Memory) deklarieren . Feldsymbole deklarieren . Die verschiedenen Befehlsarten von “ASSIGN …” . ASSIGN v1 TO . . ASSIGN v1+o(l) TO . ASSIGN +o(l) TO . ASSIGN (v1) TO . ASSIGN TABLE FIELD (v1) TO . ASSIGN COMPONENT n OF STRUCTURE struc TO . ASSIGN LOCAL COPY OF MAIN TABLE FIELD (v1) TO . Die verschiedenen Anwendungsebenen des “ASSIGN …” . Zuordnung von Datenfeldern zu Feldsymbolen . Zuweisung von deklarierten Speicherbereichen . Einzelfelder . Interne Strukturen (interne Feldleisten) . Literale . Interne Tabellen . Externe Strukturen (externe Tabellenfelder) . Zuweisung von Adressen . Feldsymbole . Adressierungsarten . Symbolische Adressierung . Weitere Informationen . Relative Adressierung . Adressierung über Feldsymbole . Weitere Informationen . Zeitpunkt der Speicherzuordnung . Statischer ASSIGN . Adressierungsarten . Statische ASSIGN-Befehle . ASSIGN v1 TO . . Symbolische Adressierung . ASSIGN v1+o(l) TO . . relative Adressierung . ASSIGN +o(l) TO . . Feldsymboladressierung . ASSIGN COMPONENT n OF STRUCTURE stru TO . . Teiladressierung einer internen Struktur . Dynamischer ASSIGN . Adressierungsart . Dynamische ASSIGN-Befehle . ASSIGN (v1) TO . . Symbolische Adressierung . ASSIGN TABLE FIELD (v1) TO . . Symbolische Adressierung externes Tabellenfeld . ASSIGN LOCAL COPY OF MAIN TABLE FIELD (v1) TO . . Symbolische Adressierung (Hauptprogramm) . Der Gültigkeitsbereich der Feldsymbole in einem Programm . Globales Feldsymbol . Lokales Feldsymbol . Die Veränderung des Feldtyps . ASSIGN … TYPE t. . ASSIGN LOCAL COPY OF v1 TO . . Die Veränderung der Kopie eines realen Datenfeldes . Schreibweise der Ergänzung “LOCAL COPY OF” ASSIGN v1 TO – die Adresszuordnung Kurzbeschreibung . ASSIGN v1 TO (Syntaxbeschreibung) . Name des Datenfeldes, das seine … . Ort der Deklaration . Geltungsbereich der Variablen . Globale Variable . Globale Variable erfordert globales Feldsymbol . Lokale Variable . Lokale Variablen erfordern lokale Feldsymbole . Name des Feldsymbols . Spitze Klammern verwenden . Namensgebung . Die Praxis . Geltungsbereich des Feldsymbols . Globales Feldsymbol . Lokales Feldsymbol . Adressierung des Feldsymbols . TYPE N. . ASSIGN LOCAL COPY OF v1 TO TYPE . ASSIGN v1 TO . LOCAL COPY OF . Die allgemeinen Befehlsfunktionen von “ASSIGN v1 TO ” . Kopieren der Feldeigenschaften von deklarierten Datenfeldern . Übertragene Feldeigenschaften . Adresse des gesamten Feldes . Der Typ des Datenfeldes (auch eine andere Typzuweisung ist . Die Länge des Datenfeldes . Bestehende Datendeklaration als Voraussetzung . Deklaration des Feldsymbols durch “FIELD-SYMBOLS” . Feldsymbole können wie “normale” Variablen behandelt werden . Weitere Informationen . Wirkung des Befehls “ASSIGN v1 TO ” . Adressierungsart . Zuweisung der verschiedenen Feldarten . Einzelfelder . C-Felder (Zeichenketten) . N-Felder (Numerische Zeichen, Zahl) . I-Felder (Ganzzahl) . P-Felder (Gepackte Zahl) . F-Felder (Gleitpunktzahl) . D-Felder (Datum) . T-Felder (Zeit) . X-Felder (Hexadezimalzahl) . Interne Strukturen (als gesamtes C-Feld) . Interne Tabellen (Bearbeitung der Kopfzeile) . Literale . Zahl als Literal . Character-Literal . Der ASSIGN v1 TO in Report-Beispielen . Die Beispielprogramme . Auswertung der Datenfelder . Die Zuordnung von C-Feldern (Zeichenketten) . Die Zuordnung von N-Feldern (Numerische Zeichen, Zahl) . Die Zuordnung von I-Feldern (Ganzzahl) . Hinweis . Die Zuordnung von P-Feldern (gepackte Zahl) . Die Zuordnung von F-Feldern (Gleitpunktzahl) . Hinweis . Die Zuordnung von D-Feldern (Datum) . Hinweis . Die Zuordnung von T-Feldern (Time) . Hinweis . Die Zuordnung von X-Feldern (hexadezimal) . Beispiel-Report-XFeld Beispiel Feldleisten, symbolische Adressierung . Feldleiste als C-Feld . Beispiel-Report-Feldleiste Interne Tabellenzeilen mit ASSIGN zuordnen . Beispiele Literale, symbolische Adressierung . Zahl als “Literal” . Hinweis . Character-Literal . Beispiel-Report-String Hinweis . Die Befehlsergänzung TYPE t. . ASSIGN v1 TO . TYPE t . Geeignete ABAP/4®-Befehle . Der Feldtyp passend zur Feldlänge . Datentyp I = 4 Bytes Ursprungsfeld . Datentyp F = 8 Bytes Ursprungsfeld . Datentyp D = 8 Bytes Ursprungsfeld . Datentyp T = 6 Bytes Ursprungsfeld . Sonstige Datentypen . DECIMALS n. . Nur für P-Felder geeignet . Die Ergänzung “LOCAL COPY OF v1 TO TYPE t.” . ASSIGN v1 TO . LOCAL COPY OF . Das Ursprungsfeld wird nicht verändert . Lokale Kopie erfordert lokales Feldsymbol . Beispiel-Report-Lokal Eine Auswahl von Laufzeitfehlern aus der Praxis . Unpassende Feldlänge . Lokales Datenfeld – globales Feldsymbol . Literale dürfen nicht geändert werden ASSIGN v1+o(l) … – die relative Adressierung . ASSIGN v1+o(l) TO . Die 3 Syntaxbereiche . ASSIGN . v1 (= deklariertes Datenfeld) . TO . ASSIGN v1+o(l) TO (Syntaxbeschreibung) . Der Name des Datenfeldes, das seine Feldeigenschaften überträgt . Der Ort der Deklaration . Der Geltungsbereich der Variablen . Die Globale Variable . Globale Variable erfordert globales Feldsymbol . Die Lokale Variable . Lokale Variablen erfordern lokale Feldsymbole . Die Adressierungselemente Offset und Länge . Zunächst eine Adressierung mit Ganzzahlen . Beispiel mit Ganzzahlen . Die relative Adressierung wird hier mit … . Beispiel mit Variablennamen . Offset “+o” als ganze Zahl . Erlaubt ist nur ein positiver Offset . Weglassen der Offsetangabe . Länge “(l)” als ganze Zahl . Nur positive Zahlen sind als … . Weglassen der Längenangabe . Ein Beispiel aus der Praxis . Angabe der Länge durch das Sternzeichen ( * ) . Offset und Länge können auch in Variablen enthalten sein . Der Datentyp von Adressvariablen . Der gültige Inhalt von Adressvariablen . Das Befehlswort “TO” . Der Name des $Feldsymbols$ . Spitze Klammern verwenden . Namensgebung . Die Praxis . Geltungsbereich des Feldsymbols . Globales Feldsymbol . Lokales Feldsymbol . Adressierung des Feldsymbols . ASSIGN v1+o(l) TO TYPE t . Keine Konvertierung bei Anwendung von “TYPE ‘t'” . LOCAL COPY OF v1+o(l) TO . Die allgemeinen Funktionen von “ASSIGN v1+o(l) TO . Kopieren der Feldeigenschaften von deklarierten . Übertragene Feldeigenschaften . Adresse des gesamten Feldes oder . Der Typ des Datenfeldes (auch eine andere . Die Länge des Datenfeldes oder eine Teillänge . Bestehende Datendeklaration als Voraussetzung . Deklaration des Feldsymbols durch “FIELD-SYMBOLS” . Feldsymbole können wie “normale” Variablen behandelt werden . Weitere Informationen . Die Wirkung des Befehls “ASSIGN v1+o(l) TO ” . Relative Adressierung der Ursprungsvariablen . Die wesentlichen Elemente der relativen … . Symbolischer Feldname . Offset . Länge . Die relative Adressierung durch . Offset . Länge . Variabler Anwendungsbereich . Anwendungsmöglichkeiten . ASSIGN AFELD(6) TO . . ASSIGN AFELD+3(4) TO . . ASSIGN AFELD+0(2) TO . . ASSIGN AFELD+3(50) TO . . ASSIGN AFELD+22(3) TO . . ASSIGN AFELD+3(0) TO . . ASSIGN AFELD-3(4) TO . . Der Feldinhalt muß zum Feldtyp passen . Zerstörung von zusammenhängenden Feldinhalten . Die relative Adressierung bestimmter Datentypen . Geeignete Datentypen für den “ASSIGN …” . C-Felder (Zeichenketten) . N-Felder (Numerische Zeichen, Zahl) . D-Felder (Datum) . T-Felder (Zeit) . X-Felder (Hexadezimalzahl) . Datentypen, die besondere Aufmerksamkeit … . I-Felder (Ganzzahl) . P-Felder (Gepackte Zahl) . F-Felder (Gleitpunktzahl) . Adressierung außerhalb des Datenfeldes ist problematisch . Der ASSIGN v1+o(l) TO in Report-Beispielen . Auswertung der Datenfelder . Beispiele von Einzelfeldern (geeignet für relative Adressierung) . C-Felder (Zeichenketten) . Teilzuordnung . Relative Adressierung durch Zahlenwerte . Relative Adressierung durch Adressierungsfelder . Veränderung nur im adressierten Teil . Adressieren von anderen C-Feldern . N-Felder (Zahlen) . Teilzuordnung . Relative Adressierung durch Zahlenwerte . Relative Adressierung durch Adressierungsfelder . Veränderung nur im adressierten Teil . Adressieren von anderen N-Feldern . T-Felder (TIME, Zeit) . Teilzuordnung . T-Felder besitzen eine konstante Feldlänge Relative Adressierung durch Zahlenwerte . Relative Adressierung durch Adressierungsfelder . Veränderung nur im adressierten Teil . Adressieren von anderen T-Feldern D-Felder (Datum) . D-Felder besitzen eine konstante Feldlänge . Relative Adressierung durch Zahlenwerte . Relative Adressierung durch Adressierungsfelder . Veränderung nur im adressierten Teil . Adressieren von anderen D-Feldern . X-Felder (hexadezimales Feld) . Teilzuordnung . Relative Adressierung durch Zahlenwerte . Relative Adressierung durch Adressierungsfelder . Veränderung nur im adressierten Teil . P-Felder (gepackter Feldinhalt) . Teilzuordnung . Relative Adressierung eines P-Feldes . Beispiel 1 – 5 . Relative Adressierung eines I-Feldes . Ausrichtung von I-Feldern im Speicher . Beispiel 1 – 4 . F-Felder (Gleitpunktzahl) . Teilzuordnung . Relative Adressierung eines F-Feldes . Beispiel 1 – 4 . Fehlermöglichkeiten zur Laufzeit . Eine Auswahl von Laufzeitfehlern aus der Praxis . Falsche Zuordnung des Feldsymbols . Länge falsch . Negative Länge . Lokale Variable – globales Feldsymbol . Ein fremder Speicherbereich ASSIGN TO – Feldsymbole untereinander . ASSIGN . +o(l) . Der Name des 1. Felsymbols . Ort der Deklaration . Geltungsbereich des Feldsymbols . Globales Feldsymbol . Lokales Feldsymbol . Spitze Klammern verwenden . Namensgebung . Die Adressierungselemente Offset und Länge . Beispiel mit Ganzzahlen . Beispiel mit Variablennamen . Offset “+o” als ganze Zahl . Erlaubt ist nur ein positiver Offset . Weglassen der Offsetangabe . Länge “(l)” als ganze Zahl . Erlaubt ist nur eine positive Zahl als Länge . Weglassen der Längenangabe . Ein Beispiel aus der Praxis (Länge 0) . Länge * (ab Release 3.0) . Offset und Länge können auch in Variablen enthalten sein . Datentyp von Adressvariablen . Gültiger Inhalt der Adressvariablen . Länge negativ . Befehlswort “TO” . Name des 2. Feldsymbols . Spitze Klammern verwenden . Namensgebung . Die Praxis . Geltungsbereich des Feldsymbols . Globales Feldsymbol . Lokale Feldsymbol . Adressierung des Feldsymbols . ASSIGN +o(l) TO . TYPE t . Besonderer Hinweis . ASSIGN +o(l) TO . LOCAL COPY OF . Kopieren der Feldeigenschaften von deklarierten … . Mehrfachzuordnungen von Feldsymbolen sind … . Übertragene Feldeigenschaften . Adressbereich des ersten Feldsymbols . Der Typ des Feldsymbols (auch eine andere . Die Länge des Feldsymbols oder eine Teillänge . Deklaration des Feldsymbols durch “FIELD-SYMBOLS” . Ein Beispiel der Deklaration eines Feldsymbols . Das Feldsymbol – nur eine Adresse . Feldsymbole können wie “normale” Variablen behandelt werden . Weitere Informationen . Die Wirkung des Befehls “+o(l) TO ” . Vergleichbare Funktionen von … . Relative Adressierung für die Zuordnung zum . Ein Beispiel: ASSIGN +o(l) TO . Die wesentlichen Elemente der relativen … . Das erste Feldsymbol (das die Adresse … . Die Adresse auf eine Adresse … . Offset . Der Offset wird auf bezogen . Anwendungsmöglichkeiten in Report-Beispielen . Allgemeine Informationen . Zuordnen eines Variablenteils . Die Druckausgabe . Unbeabsichtiges Zuordnen einer anderen … . Die Teilzuordnung . Die Zuordnung der Länge . Wo wird tatsächlich geändert? . Ein etwas komplizierter Fall . Die Zuordnung in einer DO-Schleife . Die Weitergabe der Feldeigenschaften . Die Druckausgabe prüfen . Anwendung von “LOCAL COPY OF”. . Teilzuordnung auf mehrere Feldsymbole . Die ASSIGN-Zuordnungen im einzelnen: . Feldinhalte vor der Änderung von . Von CFELD50 auf zugeordnet . Von auf zugeordnet . Änderung des Feldsymbols . Feldinhalte n a c h der Änderung von . Inhalt von CFELD50 . Von CFELD50 auf zugeordnet . Von als Kopie auf zugeordnet . Zusammenfassung . Anwendung von 2 Feldsymbolen mit dynamischer Adressierung . Für Beginner gehört dieses Beispiel in . Der Vergleich . Die innere DO-Schleife . Die äußere DO-Schleife . Vergleich von mehreren Strings . String1 (äußere Schleife) . String2 (innere Schleife) . Anzahl der DO-Schleifen . Aufruf von anderen Programmen . CASE v1. WHEN v2. ENDCASE – Für den Fall … . Kurzbeschreibung . CASE v1 (Vergleichsfeld) . WHEN v2/L . WHEN OTHERS . ENDCASE . Die Gesamtsyntax . CASE . WHEN x (WHEN y …) . WHEN OTHERS . ENDCASE . Die Reihenfolge der Syntaxelemente . Beginn und Ende des CASE-Befehls . WHEN . WHEN OTHERS . Beschreibung der einzelnen Syntaxelemente . CASE . v1 . Die Prüfungsvariable . Keine Veränderung der Daten . Datentypanpassung . Längenangabe beachten . WHEN v2 . Die Bedingungsabfrage “WHEN” . WHEN-Bedingung und WHEN-Anweisung . Die WHEN-Bedingung . Die WHEN-Anweisung . Der Vergleichswert . Variable oder Literal . Mehrfache Verwendung . Datenfeldoperationen im Anweisungsteil . v2 (Bedingungsvariable) . Variableninhalt oder Literalangabe . Datendeklaration für die Variable . Der Inhalt von C-Feldern . WHEN OTHERS . Wahlweise Verwendung . OTHERS steht für “Restbedingung” . Zusammenfassende Formulierung . ENDCASE . Endeanweisung . Eine Funktionsanalogie . Die CASE-Anweisung in Kombination mit anderen … . Die CASE-Variable v1 als Hauptbestandteil der CASE-Abfrage . LOOP . DO-Schleife . SELECT-Schleife . Unterprogrammsteuerung mit CASE . Die Perform-Parameter steuern den “CASE…” . Abfrage des Returncode bei mehreren Rückmeldemöglichkeiten . Kombinationen innerhalb der CASE-Anweisung . Zuerst eine Zusammenfassung der Gesamtanweisung . Feste Positionen von “CASE” … . Begrenzung der auszuführenden … . Reihenfolge der WHEN-Abfragen . Restbedingung durch “WHEN OTHERS” . Definition der CASE-Variablen . Ein Literal als WHEN-Variable . Zeitpunkt der Variablen-Deklaration . Eigenschaften der Variablen v1 und v2/L . Adressierung der CASE-Variablen . Probleme bei dem CASE-Vergleich von v1 mit v2 . Beispiel-Report (CASE-Abfragen mit C-Feldern) . Allgemeine Erläuterungen zu den Beispielen . Blickpunkt “CASE/WHEN” . Testfälle 1 bis 11 . Testfall 9 enthält relative Adressierung . REPORT-CASE-N-P-I (CASE-Abfragen mit N, P, . Testfall 1 bis 6 . Testfall 7 (Dezimalpunkt I-Feld) . Testfall 11 (Dezimalpunkt P-Feld) . Testfall (Rest) . Beispiel-Report (CASE-Abfragen mit P, I-Feldern) . Testfall 11 bis 19 . Beispiel-Report (CASE-Abfragen, Schwerpunkt P-Felder) . Beispiel-Report (CASE-Abfragen, Schwerpunkt D-Felder) . Beispiel-Report (CASE-Abfragen, Schwerpunkt X-Felder) . Beispiel-Report (CASE-Abfragen, Schwerpunkt T-Felder) . Testfall 15, 16 . Testfall 23 CONDENSE v1 – Zusammenschieben . Die Kurzbeschreibung . CONDENSE v1 (Syntaxbeschreibung) . Anwendung des Befehls . Die allgemeine Wirkung des “CONDENSE” . Nur Einzelfelder . Nur Datentyp C (Zeichenketten) . CONDENSE bei unterschiedlichen Datentypen . Allgemeine Funktionsweise von “CONDENSE v1” . Entfernen von Leerzeichen und linksbündige Ausrichtung . Bearbeitet wird nur eine Programmvariable . C-Felder (= Zeichen) als Hauptanwendungsbereich . Der Normalfall: CONDENSE eines C-Feldes . Die Position der Leerstellen ist für den CONDENSE unerheblich . CONDENSE v1 NO-GAPS . CONDENSE mit einem N-Feld (= numerischer Feldinhalt) . Der wirkungslose CONDENSE . CONDENSE mit einem I-Feld (= Integer, Ganzzahl) . Der CONDENSE ohne Aktion (ab 3.0 Syntaxfehler) . CONDENSE mit einem P-Feld (= gepackter Dezimalwert) . Der CONDENSE hat nichts zu tun … . CONDENSE mit einem X-Feld (= hexadezimaler Inhalt) . Der CONDENSE findet keine Leerzeichen . CONDENSE mit einem F-Feld (= Fließkommazahl) . Der CONDENSE sucht vergeblich . CONDENSE mit einem D-Feld (= Datumsfeld) . Der CONDENSE sollte keine Leerstellen in einem D-Feld finden . CONDENSE mit einem T-Feld (= Timefeld) . Im Normalfall keine Anwendung für den CONDENSE . Globale oder lokale Felder . Veränderung von Datenfeldern . Keine Feldleisten oder Tabellenkopfzeilen verdichten . Mit CONDENSE keine Datenstruktur adressieren . Kein gutes Beispiel . Das Ergebnis und die Folgen . Einzelfelder einer Datenstruktur mit CONDENSE bearbeiten . Ein Beispiel-Report Fehlerhafte Anwendung von “CONDENSE” . Richtige Anwendung von “CONDENSE” . CONDENSE mit relativer Adressierung der Variablen . Teilfelder bearbeiten . Wirkung bei einmaligem “CONDENSE” . Wirkung bei mehrmaligem “CONDENSE” hintereinander . CONDENSE in einer DO-Schleife . Zusammenbauen von Teilstrings . Die Reihenfolge ändern . Der “CONDENSE” in einem Schleifenbefehl . CONDENSE in Verbindung mit einem Feldsymbol . Etwas Grundsätzliches zu Feldsymbolen . Eine einfache Sache … . Symetrische oder unsymmetrische Distanz für ASSIGN . Der “CONDENSE” auf ein Feldsymbol in einer . Anwendungsmöglichkeiten behalten . Ein Beispiel-Report Feldsymbole und “CONDENSE” . CONDENSE in Verbindung mit REPLACE . Textlücken ausgleichen . Das Systemdatum eingesetzt . Die Systemuhrzeit übertragen . Der Username aus dem Systembereich übernommen . Eigene Ergänzungen ausprobieren . CONDENSE in Verbindung mit Runtime-Informationen . Verbrauchszeiten messen und ausdrucken . CONDENSE v1 NO-GAPS . “NO-GAPS” als Ergänzung zum Befehl “CONDENSE v1” . Keine Leerstellen innerhalb des zusammengeschobenen Strings . Der Beginn der Zeichenkette im Datenfeld . Der rechte Teil des Datenfeldes enthält Leerzeichen . Nur Leerzeichen im String werden entfernt . “NO-GAP” als Ergänzung zum Befehl “WRITE” . Voraussetzungen vor Anwendung des Befehls . Das Programmfeld muß vorhanden sein . Sind zusätzliche Effekte zu beachten? . Nur das im Befehl genannte Feld wird bearbeitet . Keine weiteren Effekte nach Anwendung des Befehls D-Felder – innerhalb von MOVE … . Konvertierung von C; N; I; P; F; D; T; X; . Die Syntax- und Funktionsbeschreibung von “MOVE …” . Die Übertragung von D-Feldern (Einzeldarstellung) . Allgemeine Informationen . Der Feldinhalt im Memory . Die Darstellung des Feldinhaltes im Memory . Der Feldinhalt in der Druckausgabe . Die Druckausgabe eines D-Feldes . Die Druckausgabe nach den Konvertieren der Länder . Die Übertragung eines D-Feldes in ein C-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Ein Datum aus einem D-Feld wird in ein C-Feld . MOVE D(008) TO C(008). . Das Empfangsfeld vom Typ C ist zu groß . MOVE D(008) TO C(015). . Das Empfangsfeld vom Typ C ist zu klein . MOVE D(008) TO C(003). . Die Übertragung eines D-Feldes in ein N-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Aus einem D-Feld wird ein Datum in ein N-Feld . MOVE D(008) TO N(008). . Das Empfangsfeld vom Typ N ist zu klein . MOVE D(008) TO N(006). . Das Empfangsfeld vom Typ N ist zu groß für ein . MOVE D(008) TO N(010). . Die Übertragung eines D-Feldes in ein I-Feld . Ein I-Feld übernimmt ein Datum aus einem D-Feld . MOVE D(008) TO I(004). . Das Maximaldatum wird übertragen . MOVE D(008) TO I(004). . Ein fehlerhafter Inhalt in einem D-Feld wird . MOVE D(008) TO I(004). . Die Übertragung eines D-Feldes in ein P-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Die Übernahme eines Datums aus einem D-Feld . MOVE D(008) TO P(008). . Ein ungültiges Datum wird in ein P-Feld übertragen . MOVE D(008) TO P(008). . Unser Hinweis: Plausibilitätskontrollen . Die Übertragung eines D-Feldes in ein D-Feld . Von einem D-Feld zu einem anderen D-Feld . MOVE D(008) TO D(008). . Auch D-Felder untereinander können sich nicht … . MOVE D(008) TO D(008). . Keine Übertragung eines D-Feldes in ein T-Feld . Eine nicht durchführbare Operation . MOVE D(008) TO T(006). . Es entsteht ein Laufzeitfehler … . Die Übertragung eines D-Feldes in ein X-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Ein Datum wird in ein X-Feld übertragen . MOVE D(008) TO X(003). . Das Maximaldatum “paßt” in ein X-Feld mit 3 Byte . MOVE D(008) TO X(005). . Ein ungültiges Datum wird in ein X-Feld übernommen . MOVE D(008) TO X(005). . Das Empfangsfeld ist zu klein . MOVE D(008) TO X(002). . Die Übertragung eines D-Feldes in ein F-Feld . Ein Datum wird in ein F-Feld übertragen . MOVE D(008) TO F(008). . Auch das Maximaldatum “paßt” (gerade noch) in ein F-Feld . MOVE D(008) TO F(008). . Ein ungültiges Datum wird auch in ein F-Feld . MOVE D(008) TO F(008). . T-Felder – innerhalb von MOVE … . Konvertierung C; N; I; P; F; D; T; X; . Die Syntax- und Funktionsbeschreibung von “MOVE …” . Die Übertragung von T-Feldern (Einzeldarstellung) . Der Feldinhalt eines Datenfeldes vom Typ ‘T’ wird übertragen . Der Feldinhalt im Memory . Der Feldinhalt in der Druckausgabe . Die Druckausgabe eines T-Feldes . Die Übertragung eines T-Feldes in ein C-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Eine Uhrzeit wird aus einem T-Feld in ein C-Feld . MOVE T(006) TO C(006). . Ein Wert wird aus einem T-Feld in ein C-Feld . MOVE T(006) TO C(008). . Die Übertragung eines T-Feldes in ein N-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Ein Wert aus einem T-Feld wird in ein N-Feld . MOVE T(006) TO N(006). . Das Empfangsfeld ist größer als das Sendefeld . MOVE T(006) TO N(008). . Die Übertragung eines T-Feldes in ein I-Feld . Der übertragene Wert aus einem T-Feld wird . MOVE T(006) TO I(004). . Ein I-Feld kann jede gültige Uhrzeit in . MOVE T(006) TO I(004). . Die Übertragung eines T-Feldes in ein P-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Die Uhrzeit aus einem T-Feld wird auch . MOVE T(006) TO P(007). . Das P-Feld muß zur Aufnahme der maximalen . MOVE T(006) TO P(007). . Keine Übertragung eines T-Feldes in ein D-Feld . Keine Einzelbeispiele . MOVE T(006) TO D(008). . Die Übertragung von Feldinhalten von T nach D wird . Die Übertragung eines T-Feldes in ein T-Feld . Der Inhalt von einem T-Feld in ein anderes T-Feld . MOVE T(006) TO T(006). . Die Übertragung eines T-Feldes in ein X-Feld . Das Empfangsfeld ist zu klein . Das Empfangsfeld ist zu groß . Die Einzelbeispiele MOVE T(006) TO X(003). . 3 Bytes eines X-Feldes reichen aus, um eine . MOVE T(006) TO X(003). . Die Übertragung eines T-Feldes in ein F-Feld . Ein Gleitpunktfeld kann auch eine konvertierte . MOVE T(006) TO F(008). . Ein F-Feld hat zur Darstellung einer konvertierten . MOVE T(006) TO F(008). . READ LINE n – Auswerten von Druckzeile n . “READ LINE n” (Syntaxerläuterung) . Numerischer Wert notwendig . Ungültige Zeilennummer . HIDE-Informationen . SY-SUBRC (Returncode) . Einige Anwendungshinweise zum “READ LINE n” . Die verschiedenen “READ LINE …”-Befehle . “READ LINE n1 INDEX n2” . “READ LINE n1 FIELD VALUE v1 …” . “READ LINE n1 FIELD VALUE v1 INTO va …” . “READ LINE n1 OF CURRENT PAGE” . “READ LINE n1 OF CURRENT PAGE INDEX n2” . “READ LINE n1 OF CURRENT PAGE FIELD VALUE v1 INTO va …” . “READ LINE n1 OF PAGE p1” . “READ LINE n1 OF PAGE p1 INDEX n2” . “READ LINE n1 OF PAGE p1 FIELD VALUE v1 INTO va …” . “READ CURRENT LINE” . “READ CURRENT LINE FIELD VALUE v1 INTO va …” . Der Zeitpunkt “AT LINE-SELECTION” . Die HIDE-Information verfügbar nach “READ LINE n” . Nur vorhandene HIDE-Informationen werden zurückübertragen . Lesen der Druckzeilen in der aktuellen Liste . Grundstellungswerte von Variablen im interaktiven Reporting . Die absolute Zeilennummer der Gesamtliste . Angaben über Listinformationen . “DESCRIBE LIST LINE n1 PAGE n2” . “DESCRIBE LIST PAGE n2” . “… LINES n” . “… LINE-COUNT n” . “… LINE-SIZE n” . “… FIRST-LINE n” . “… HEAD-LINES n” . “… TOP-LINES n” . “… TITLE-LINES n” . “… END-LINES n” . Die Anwendungsmöglichkeiten in Report-Beispielen . REPORT-READ-LINE-HIDE HIDE-Informationen . Endlosschleife vermeiden . Die Druckausgabe . HIDE-Informationen (Prozessorzeiten) . READ LINE n1 INDEX n2 – Auswerten von Druckzeile x auf Stufe Y Die Kurzbeschreibung von “READ LINE n1 INDEX n2” . Die Befehlsergänzungen . Numerisches Literal oder Variable als Index . Numerischer Wert notwendig . Ungültige Indexangabe . HIDE-Informationen . SY-SUBRC (Returncode) . Einzelhinweise zum “READ LINE n1 INDEX n2” . Der Returncode “SY-SUBRC” . Der Inhalt von SY-LISEL . Die Anwendungsmöglichkeiten in Report-Beispielen . Report-LINE-AUSWAHL Start und “Bedienungsanleitung” . Die Druckausgabe . Die Systemfelder . SY-PAGNO . SY-COLNO . SY-LINNO . SY-LILLI . SY-CUCOL . SY-CUROW . SY-LSIND . SY-DYNNR . SY-CPAGE . SY-PFKEY . SY-UCOMM . SY-UZEIT . SY-LISEL . SY-XCODE . SY-STACO . SY-STARO . Report-MIT-WINDOWS “AT LINE-SELECTION” . “IF SY-LSIND = 1” . Das Auswerten des INPUT-Feldes . Die Druckzeilen in ein Window ausgeben . Die Listausgaben . Liststufe 0´- 2 . READ LINE n OF CURRENT PAGE – Die Druckzeile n der aktuellen Seite . x Eine Kurzbeschreibung . Die Befehlserweiterungen . “READ LINE n1 OF CURRENT PAGE INDEX n2” . “READ LINE n1 OF CURRENT PAGE FIELD VALUE v1 INTO va …” . Zeilenunterschiede Bildschirm zu Liste . Änderungen durch “NEW-PAGE LINE-COUNT n1” . Anwendungshinweise zum “READ LINE n OF CURRENT PAGE” . Die absolute Zeilennummer innerhalb der Liste . Die Zeilennummer innerhalb der aktuellen Seite . Die Zeilenanzahl je Seite ändern . Der Befehl “SCROLL ….” . Die Systemfelder SY-CPAGE und SY-PAGNO . Das Systemfeld SY-LISEL . Die Ergänzung ” … FIELD VALUE ….” . Anwendungsmöglichkeiten in Report-Beispielen . REPORT-READ-LINE “FORM SELECT-YT100 USING SPR ARB MSG STEP” . “AT LINE-SELECTION” . Unterschiedliche Zeilenzahl . “TOP-OF-PAGE” . “TOP-OF-PAGE DURING LINE-SELECTION” . REPORT-READ-LINE-CURR “FORM SELECT-T100” . “AT LINE-SELECTION” . Überschriften der vorhergehenden Liststufen lesen . Die Prozessorzeit READ LINE n1 OF PAGE n2 – Druckzeile n von Seite m . Eine Kurzbeschreibung . “READ LINE n1 OF PAGE n2 INDEX n3” . “READ LINE n1 OF PAGE n2 FIELD VALUE v1 INTO va …” . Listseiten erst bei “… LINE-COUNT n1” . Angabe der Seitennummer konstant oder variabel . Die Gültigkeit der Seitenangabe . Keine numerische Angabe . Zu große Angabe der Seitennummer . Angabe einer negativen Zahl . Zeilenunterschiede Bildschirm-Liste . Änderungen durch “NEW-PAGE LINE-COUNT n2” . Anwendungshinweise zu “READ LINE n1 OF PAGE n2” . Die Angabe der Zeilennummer im “READ LINE n1 …” . Die Zeilennummer innerhalb der Seite “n2” . Die Zeilennummer innerhalb der aktuellen Seite . Die absolute Zeilennummer innerhalb der Liste . Ein Report-Beispiel zu “READ LINE …” . Report-READ-LINE. “FORM SELECT-T100 USING ‘D’ ’00’ ‘010’ ” . “TOP-OF-PAGE” . “TOP-OF-PAGE DURING LINE-SELECTION” . “AT LINE-SELECTION” . Listenausgabe . Liststufe 0 . Liststufe 1 . Liststufe 2 . Hinweis-1 . Hinweis-2 . Die GROUP-Klausel – Teil vom SELECT … . “SELECT command … {GROUP BY tf1 tf2 tfn)… . Die einzelnen SELECT-Befehlsteile . SELECT-Klausel . INTO-Klausel . FROM-Klausel . WHERE-Klausel . GROUP-Klausel . ORDER-Klausel . Die Direktangabe der GROUP-Felder . SELECT ZSPRSL ZARBGB … . … MIN( ZMSGNR ) MAX( ZMSGNR ) COUNT( ZMSGNR ) . WHERE ZSPRSL = ‘E’ … . GROUP BY ZSPRSL ZARBGB . ENDSELECT . Mehrere GROUP-Felder . Die dynamische Angabe der GROUP-Felder als Source-Code in einer Tabelle . Das Report-Beispiel 02 . Die Angabe der internen Tabelle “itab” in dem SELECT-Befehl . Die Deklaration der internen Tabelle “itab” . Die Namen der GROUP-Felder in der internen Tabelle . Parametereingaben für die GROUP-Felder . Eine leere interne Tabelle für GROUP-Felder Die ORDER-Klausel – Teil von SELECT … . “SELECT command … {ORDER BY spez} . Das Report-Beispiel (formell) . Die einzelnen Bestandteile des SELECT-Befehls . SELECT-Klausel . INTO-Klausel . FROM-Klausel . WHERE-Klausel . GROUP-Klausel . ORDER-Klausel . SELECT … ORDER BY PRIMARY KEY … . Das Report-Beispiel 01 . ORDER BY PRIMARY KEY . Die Anlieferung ohne ORDER-Klausel . Das Report-Beispiel 02 . SELECT * … UP TO 49 ROWS . ORDER BY PRIMARY KEY . “SELECT … ORDER BY PRIMARY KEY” in Kombination mit anderen Befehls-Klauseln . Das Report-Beispiel 03 . ORDER BY PRIMARY KEY . Keine gesonderte Angabe von “ASCENDING” oder “DESCENDING” . Die verschiedenen externen Tabellenarten . SELECT … ORDER BY tf1 {ASCENDING . DESCENDING} tfn … . Das Report-Beispiel 04 . ORDER BY ZMSGNR DESCENDING . Die Zulässigkeit dieser ORDER-Klausel . Die Sortierung nicht vom DB-Server vornehmen lassen . SELECT … ORDER BY (itab) . Das Report-Beispiel 05 . … ORDER BY (TABFIELD) . Der Tabellenname ist einzuklammern . Zeitpunkt der Vollständigkeit von “itab” . Eine leere Steuerungstabelle “itab” . Fehlerhafte Feldnamen in “iatab” String- und Range-Operatoren – WHERE – Klausel . Die formellen Anwendungsmöglichkeiten von … . String-Operatoren . LIKE ‘string’ . CO, CN, CA, NA, CS, NS, CP, NP . IS NULL . Range-Operatoren . BETWEEN lv1 AND lv2 . IN (lf1, lf2 …) . Die Anwendung der Operatoren . Der Zusammenhang von WHERE-Klausel und SELECT-Befehl . “SELECT command {INTO destination} FROM source {WHERE cond} . Die verschiedenen Klauseln des SELECT-Befehls . SELECT-Klausel . INTO-Klausel . FROM-Klausel . WHERE-Klausel . GROUP-Klausel . ORDER-Klausel . Die WHERE-Klausel in unterschiedlichen Befehlen . SELECT … . UPDATE … . DELETE … . OPEN CURSOR … . LOOP at itab … . Der Operator “LIKE” in der WHERE-Klausel ” . WHERE tf1 LIKE lv2 . Das Report-Beispiel 01 . WHERE … LIKE … . Jokerzeichen . Das Tabellenfeld tf1 . Die zulässigen Datentypen aus DB-Sicht . Das Befehlswort “LIKE” . Der Vergleichswert lv2 . Groß-/Kleinschreibung beachten . Die Länge des Vergleichsstrings . Die Jokerzeichen . Das Vergleichsfeld . Das Report-Beispiel 02 . Die Datendeklaration von CFIELD . Die Variablenangabe ohne Hochkomma . Der NOT-Operator . WHERE tf1 LIKE lv2 ESCAPE lv3 . Das Report-Beispiel 03 . Die Einzelbedingungen . Das besondere Zeichen ‘$’ (oder ein beliebiges anderes Zeichen) . Die Listbildausgabe . Die Stringoperatoren in der WHERE-Klausel von “LOOP AT itab” . Eine Aufzählung von Stringoperatoren für “LOOP AT itab”. . CO = Contains Only . CN = Contains Not only . CA = Contains Any . NA = Contains Not Any . CS = Contains String . NS = Contains Not String . CP = Contains Pattern . NP = Contains Not Pattern . WHERE tf1 strOP lv2 (Nur mit “LOOP AT itab …”) . Das Report-Beispiel 04 . Das Tabellenfeld tf1 . String Operatoren (lsOp) . Das Vergleichsfeld als 2. Operand . Der Operator “IS NULL” in der WHERE-Klausel ” . WHERE tf1 IS NULL … . Das Report-Beispiel 05 . WHERE tf1 IS NOT NULL . Der Operator “BETWEEN lv2 AND lv3″ in der WHERE-Klausel ” . WHERE tf1 BETWEEN lv2 AND lv3 . Das Report-Beispiel 06 . ZMSGNR BETWEEN ‘050’ AND ‘110’ . Ein allgemeiner Hinweis . “WHERE … BETWEEN ” vergleichbar mit “IF …” . Das Tabellenfeld tf1 . Das Befehlswort “BETWEEN” . Der Wertebereich “lv2 AND lv3” . Numerisches Literal oder Variablenangabe . Das Report-Beispiel 07 . ZMSGNR BETWEEN LOW1 AND HIGH1 . Literal und Variable gemeinsam . Der Operator “IN (lf2, lv3 …)” in der WHERE-Klausel ” . WHERE tf1 IN (lv2, lv3, lv4 …) . Das Report-Beispiel 08 . Die WHERE-Klausel . Der unvollständige Primärschlüssel . Das Tabellenfeld tf1 . Das Befehlswort “IN” . Die Vergleichswerte in dem Klammerbegriff . Die logische Verbindung innerhalb der Klammer . Den IN-Operator mit NOT verbinden . Die Vergleichswerte in Variablen einstellen . Die Variablen vor dem SELECT-Befehl füllen . Das Report-Beispiel 09 . Die Einzelwerte enthalten in Variablen . Die Einzelwerte im Programm ermitteln . Veränderungen innerhalb der SELECT-Schleife . Einige Informationen zur praktischen Anwendung der String- und Range-Operatoren . Die Angabe eines Wertebereiches “WHERE … BETWEEN …” . Der Wertebereich “lv2 AND lv3” . Den kleineren Wert zuerst nennen . Kein Direktwert als Literalersatz . Die Anwendungsbereiche von “WHERE … BETWEEN” . SELECT * FROM etab WHERE … BETWEEN … . LOOP AT itab WHERE … BETWEEN … . DELETE FROM etab WHERE … BETWEEN … . UPDATE in Verbindung mit WHERE … BETWEEN . Ein Report-Beispiel mit “SELECT … WHERE … BETWEEN” Die Angabe von Zeichenmustern in “WHERE … LIKE …” . Die Jokerzeichen des Operators “LIKE” . Das Zeichen “_” (Unterstrich) . Das Zeichen “%” (Prozent) . Die Anwendungsbereiche von “WHERE … LIKE… ” . SELECT * FROM etab WHERE … LIKE … . DELETE FROM etab WHERE … LIKE … . Warnung … . LOOP AT itab WHERE … LIKE … . UPDATE in Verbindung mit WHERE … LIKE …. . Ein Report-Beispiel mit “SELECT … WHERE … LIKE” Die Anwendung von WHERE tf1 IN (lv2, lv3, lv4 …) . Ein Report-Beispiel mit “SELECT … WHERE … IN einzelwert” Die Stringoperatoren in der WHERE-Klausel . Allgemeine Informationen . Stringoperatoren nur in “LOOP AT itab WHERE …”. . Relative Adressierung in “LOOP AT itab WHERE …”. . Das Systemfeld SY-FDPOS . Der Stringoperator CO (tf1 contains only) . Ein Report-Beispiel mit “LOOP … WHERE … CO” Der Stringoperator CN (tf1 contains not only) . Ein Report-Beispiel mit “LOOP … WHERE … CN” Der Stringoperator CA (tf1 contains any) . Ein Report-Beispiel mit “LOOP … WHERE … CA” Der Stringoperator NA (tf1 contains Not any) . Ein Report-Beispiel mit “LOOP … WHERE … CA” Der Stringoperator CS (tf1 Contains String) . Ein Report-Beispiel mit “LOOP … WHERE … CS” Der Stringoperator NS (tf1 contains NOT String) . Ein Report-Beispiel mit “LOOP … WHERE … NS” Der Stringoperator CP (tf1 Contains Pattern) . Jokerzeichen . Das Zeichen “+” . Das Zeichen * . Ein Report-Beispiel mit “LOOP … WHERE … CP” Der Stringoperator NP (tf1 contains Not Pattern) . Ein Report-Beispiel mit “LOOP … WHERE … CP” REPORT-LOOP-WHERE-BETWEEN” REPORT-SELECT-WHERE-LIKE Das Jokerzeichen ‘%’ . Groß-/Kleinschreibung . REPORT-SELECT-WHERE-IN-FELD1 REPORT-LOOP-WHERE-CO REPORT-LOOP-WHERE-CN REPORT-LOOP-WHERE-CA REPORT-LOOP-WHERE-NA REPORT-LOOP-WHERE-CS” REPORT-LOOP-WHERE-NS REPORT-LOOP-WHERE-CP Weitere Parametereingaben . REPORT-LOOP-WHERE-NP Weitere Parametereingaben . Versuch-1 bis 3 . Dynamische Elemente – SELECT, WHERE-Klausel . Dynamische WHERE-Klausel; Wertebereiche für WHERE sind . Selektionstabellen für WHERE … erstellen; . SELECT … WHERE tf1 . Die WHERE-Klausel in Verbindung mit WHERE-Tabellen . Tabelleninhalt mit Elementen der WHERE-Klausel . SELECT … WHERE tf1 IN itab . SELECT … FOR ALL ENTRIES in vtab WHERE logBedingung . Tabelleninhalt mit Codingzeilen zur Abbildung der WHERE-Klausel . SELECT … WHERE (itab) . SELECT … WHERE logBed AND (itab) . Der Zusammenhang von WHERE-Klausel und SELECT-Befehl . “SELECT command {INTO destination} FROM source {WHERE cond} . Die verschiedenen Klauseln des SELECT-Befehls . SELECT-Klausel . INTO-Klausel . FROM-Klausel . WHERE-Klausel . GROUP-Klausel . ORDER-Klausel . Die WHERE-Klausel in unterschiedlichen Befehlen . SELECT … . UPDATE etab SET tf1 … WHERE condition … . DELETE FROM etab WHERE condition … . OPEN CURSOR cf1 FOR SELECT … WHERE condition … . LOOP at itab WHERE condition … . WHERE-Klauseln mit dynamischen Elementen . SELECT … WHERE tf1 IN itab . SELECT … FOR ALL ENTRIES in vtab WHERE logBedingung . SELECT … WHERE (itab) . SELECT … WHERE logBed AND (itab) . Der Operator in “… WHERE tf1 IN itab …” . WHERE tf1 IN itab . Das Report-Beispiel 01 . Die Suchbegriffe in ITAB1 . Die WHERE-Bedingung . Die Reihenfolge der Einträge in ITAB1 . Das Tabellenfeld tf1 . Das Befehlswort “IN” . Die Vergleichswerte in der internen Tabelle . Ein leere interne Tabelle . Die Verwendung von mehreren Operatoren “IN itab” . Der Einsatz von “SELECT-OPTIONS …” . Programminterne Erzeugung der SELECT-Tabelle . Das Report-Beispiel 02 . Die WHERE-Bedingungen . Die Tabellendeklaration . User-Eingabe nach Programmstart . Die Einzelangaben zu “SELECT-OPTIONS …” . Der Operator in “… FOR ALL ENTRIES IN vtab WHERE …” . Der Unterschied zu “WHERE tf1 IN itab …” . Die Anwendung “… FOR ALL ENTRIES …” nur im SELECT-Befehl . Ausschluß von Operatoren . Das Report-Beispiel 03 . Deklaration IT . Die Suchbegriffe in IT . Die Umsetzung des SELECT-Befehls . Der Operator in “… WHERE (itab) …” . Das Reportbeispiel 04 . Deklaration von ITAB . “APPEND ‘literal’ TO ITAB . WHERE (itab) . Das Listergebnis . Die Wirkung und Einsatzmöglichkeit der dynamischen WHERE-Klausel . Die Verwendung ist nur im SELECT-Befehl zulässig . UPDATE … . DELETE … . OPEN CURSOR … . LOOP at itab … . Die Wirkung bei leerer Tabelle (itab) . Formelle Voraussetzungen für den Inhalt von “itab” . Abbildung der Einzelbedingungen wie im Coding . Nur die Angabe von Direktwerten ist erlaubt . Das Format der Tabelle itab . Die runden Klammern um (itab) . Die letzte Einzelbedingung ohne Punkt . Die Verwendung der verschiedenen Operatoren . Boolesche Operatoren (AND, OR, NOT) . Die Kombination mit anderen Operatoren . Das Report-Beispiel 05 . ‘ZSPRSL EQ ”E” AMD ‘ . ‘ZARBGB IN (”Z02”, ”Z06”) AND’ . ‘ZMSGNR GT ”002” AND ‘ . ‘ZTEXT1 LIKE ”%User%” ‘ . Syntaxprüfung und Laufzeitfehler . Keine vollständige Syntaxprüfung zur Kontrolle des Codings . Laufzeitfehler bei ungültigem Eintrag in (itab) . Der Operator in “… WHERE logBed and/or (itab) …” . Die variablen Einzelbedingungen prüfen . Die zulässigen Booleschen Operatoren . Das Report-Beispiel 06 . PARAMETERS . Die interne Tabelle “ITAB” . Die WHERE-Klausel . Die Anwendung von WHERE tf1 IN itab . Die Selektionstabelle steht im Mittelpunkt . Die Struktur der Selektionstabelle itab . Das Report-Beispiel 07 Die einzelnen Felder der Tabelle “SELTAB” . Selektionsbedingung (IE, C1) . I = Inclusiv . Ein Beispiel zur Tabelle SELTAB . E = Exclusiv . Ein Beispiel zur Tabelle SELTAB . Selektionsoperator (ORDER C2) . Selektionswert-LOW (C, n) . Selektionswert-HIGH (C, n) . Eine leere Selektionstabelle . Komplettes (unbeabsichtigtes) Löschen von Tabellen . Portionsweise Verarbeitung für “COMMIT WORK” . Allgemeine Vorgehensweise . Die Anwendungsbereiche von “WHERE … IN … itab ” . SELECT * FROM etab WHERE … IN itab . DELETE FROM etab WHERE … IN itab . LOOP AT itab WHERE … IN itab . UPDATE in Verbindung mit WHERE … IN itab . Ein Report-Beispiel mit “SELECT … WHERE … IN itab” . Anwendungsmöglichkeiten in Report-Beispielen . REPORT-SELECT-WHERE-IN-ITAB Selektionsbedingung (C, 1) . Selektionsoperator (C, 2) . Selektionswert-LOW (C, n) . Selektionswert-HIGH (C, n) . STEP 1-4 .