Smart Forms Knotentyp Tabelle

Aus SAP-Wiki
(Weitergeleitet von Knotentyp Tabelle)
Zur Navigation springenZur Suche springen

Siehe Smart Forms.

Eine Tabelle Knotentyp Tabelle.jpg ähnelt dem Knotentyp Schablone Knotentyp Schablone.jpg.

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>&

Tabellenknoten1.jpg

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

SFTabelleRahmen1.jpg


SFTabelleRahmen2.jpg

Nach einem Klick auf Pattern

SFTabelleRahmen6.jpg

kann die Gesamttabelle flexibel mit den verschiedensten Rahmen versehen werden. Defaultmäßig wird erst mal kein äußerer Rahmen hinzugefügt.

SFTabelleRahmen3.jpg

Nach Klick auf "Display Frame Patterns" wird der äußere Rahmen hinzufügt.

SFTabelleRahmen4.jpg


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.

SFTabelleRahmen5.jpg

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

SmartFormsTabelle1.jpg


Details Tabellendefinition

Die Schaltfläche SmartFormsTabelle2.jpg 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.


SmartFormsTabelle3.jpg


Reiter Daten (Loop Tabelle)

Beim Reiter "Daten" definiert man die Tabelle und die Workarea, über die die Tabelle geloopt wird.

SmartFormsTabelle4.jpg


Reiter Berechnungen

In diesem Reiter können Berechnungen vorgenommen werden. Zum Beispiel eine Summe über alle Werte eines Feldes der Tabellen bilden.

SmartFormsTabelle5.jpg


Reiter Ausgabeoptionen

Im diesem Reiter könnte ein spezieller Smart Forms Style hinterlegt sein.

SmartFormsTabelle6.jpg


Reiter Bedingungen

Wenn eine Tabelle nur unter bestimmten Bedingungen ausgegeben werden soll, dann würde man es unter diesem Reiter festlegen.

SmartFormsTabelle7.jpg


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.

SmartFormsTabelle8.jpg


Ein Textknoten wird als Zelle der Zeile ausgegeben.

SmartFormsTabelle9.jpg


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.

SFTabelle1.JPG


Hier sind die beiden Checkboxen bei "Am Anfang der Tabelle" und "bei Seitenumbruch" zu setzen.

SFTabelle2.JPG


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.

SFTabelle3.JPG

Positionszeile Tabelle

SmartFormsTabelle10.jpg


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.

SmartFormsTabelle11.jpg


Fußzeile Tabelle

SmartFormsTabelle12.jpg


Ein Textknoten wird als Zelle der Zeile ausgegeben.

SmartFormsTabelle13.jpg

Literatur