Smart Forms Knotentyp Tabelle
Siehe Smart Forms.
Eine Tabelle ähnelt dem Knotentyp Schablone .
Der Knotentyp Tabelle ermöglicht in Smart Forms eine Ausgabe einer Tabelle mit beliebig vielen Datensätzen.
In dem Knotentyp Tabelle wird gewöhnlich über die interne Tabelle in eine lokale Struktur geloopt.
Die Tabelle wird in aller Regel im MAIN der Seite sich befinden, damit eine Ausgabe über mehrere Ausgabeseiten möglich ist.
Grundlagen Tabellenerstellung
Loop über Tabelle
Loop ITAB into WORKINGAREA
Ausgabe Felder Workingarea und Where-Bedingung
Die Ausgabefelder werden über die Workingarea angesprochen. Durch den Einschluß der Variablen mit "&" weiß SAP, dass es sich um Variablen handelt, die im Formular mit dem Variableninhalt auszugeben sind. Ist die Variable nicht vorhanden, so gibt es beim Syntaxcheck oder bei der Aktivierung eine entsprechende Fehlermeldung.
&gs_order_item-<feldname>&
Der Loop kann auch durch eine Where-Bedingung eingeschränkt werden. Hier muss man jedoch beachten, dass es nicht möglich ist auf einen Initialwert abzufragen mit
Feld = INITIAL. "Nicht erlaubt
Diese Syntax lässt zwar der Syntaxcheck zu, aber bei der Formularausgabe gibt es einen Laufzeitfehler. Dieser Fehler kann dann sehr schwer zu lokalisieren sein. Hier kann man nach dem Initialwert des Feldes abfragen mit
Feld = SPACE
oder
Feld = 0
Kopfzeile, Positionszeile und Fußzeile einer Tabelle
- Für jede Tabellen können ein oder mehr Kopfzeilen, Positionszeilen und Fußzeilen definiert werden. Kopfzeilen und Fußzeilen werden nur 1 x in der Tabelle durchlaufen. Die Positionszeilen entsprechend der Anzahl der Positionen, über die geloopt wird.
- Jede Zeile wird einem Zeilentyp zugewiesen.
Zeilentyp einer Tabelle
- Häufig wird genau ein Zeilentyp bei einer Tabelle definiert. Im Zeilentyp legt man die Anzahl der Spalten, deren Breite und die Höhe der Zeile fest. Jeder Zeilentyp erhält ein Kürzel. Wird eine Kopfzeile, eine Positionszeile oder eine Fußzeile in Bezug auf diese Zeilentyp, bzw. das Kürzel angelegt, werden dadurch die Anzahl der Spalten, deren Breite und die Zeilenhöhe dieser Zeile bestimmt.
- Es st auch möglich mehr als einen Zeilentyp anzulegen, um so eine flexible Tabellendarstellung zu ermöglichen.
Rahmen/Rand der Tabelle
Nach einem Klick auf Pattern
kann die Gesamttabelle flexibel mit den verschiedensten Rahmen versehen werden. Defaultmäßig wird erst mal kein äußerer Rahmen hinzugefügt.
Nach Klick auf "Display Frame Patterns" wird der äußere Rahmen hinzufügt.
Nachdem die Gesamttabelle formatiert wurde, wird der Zeilentyp %LTYP9 hinzugefügt, der keinen Rahmen hat. Mir ist nicht bekannt, wie man lediglich einen Zeilentyp den Rahmen beeinflussen kann.
Beispiel Tabelle ITEM in Formular FSCD_INVOICE_SAMPLE_SF
- Formular FSCD_INVOICE_SAMPLE_SF
- Tabelle ITEM
- Die Tabelle besteht aus
- einer Kopfzeile, hier "HEADER"
- den Positionen, hier "LINES"
- einer Fußzeile, hier "TOTALS"
Übersicht
Details Tabellendefinition
Die Schaltfläche springt zur Detailansicht der Tabellendefinition.
In der Detail-Ansicht definiert man die Zeilentypen mit den zugehörigen Spalten. Die Zeilentypen HEADER, ITEM und TOTAL haben hier jeweils 3 Spalten, wobei sich die Breite der Spalten beim Zeilentyp TOTAL von den Spaltenbreiten bei HEADER und ITEM unterscheiden.
Reiter Daten (Loop Tabelle)
Beim Reiter "Daten" definiert man die Tabelle und die Workarea, über die die Tabelle geloopt wird.
Reiter Berechnungen
In diesem Reiter können Berechnungen vorgenommen werden. Zum Beispiel eine Summe über alle Werte eines Feldes der Tabellen bilden.
Reiter Ausgabeoptionen
Im diesem Reiter könnte ein spezieller Smart Forms Style hinterlegt sein.
Reiter Bedingungen
Wenn eine Tabelle nur unter bestimmten Bedingungen ausgegeben werden soll, dann würde man es unter diesem Reiter festlegen.
Kopfzeile Tabelle
Die Kopfzeile HEADER hat hier einen Zeilentyp HEADER. Der Zeilentyp muss nicht den gleichen Namen haben wie die Zeile, aber es erleichtert die Zuordnung.
Ein Textknoten wird als Zelle der Zeile ausgegeben.
In diesem Projektbeispiel sollen 2 Headerzeilen vor den Positionszeilen ausgegeben werden Sowohl am Anfang der Tabelle als auch bei einem Seitenumbruch vor den dann folgenden Tabellenzeilen. Das wird der häufigste Anwendungsfall sein.
Hier sind die beiden Checkboxen bei "Am Anfang der Tabelle" und "bei Seitenumbruch" zu setzen.
Die beiden Überschriftenzeilen werden mit einem Ordner umgeben, wo die Checkbox beim Seitenschutz gesetzt ist, sodass die beiden Überschriftenzeilen nur zusammen auf einer Seite ausgegeben werden.
Positionszeile Tabelle
Ein Textknoten mit einer Variable wird als Zelle der Zeile ausgegeben. Hier wird in aller Regel ein Feld der Workarea genommen, über die geloopt wird.
Fußzeile Tabelle
Ein Textknoten wird als Zelle der Zeile ausgegeben.
Literatur
- SAP Smart Forms - Das umfassende Handbuch, von Werner Hertleif, Christoph Wachter, Rinaldo Heck, Tobias Trapp, Thomas Karas; 3. Auflage