subtotal

Tutorial Adobe Scripting (3): Berechnung von Zwischensummen und Übertrag pro Seite in SAP Adobe Forms

Wenn eine SAP Rechnung mehrere Seiten aufweist, dann soll die Summe aller Positionen der aktuellen Seite am Ende einer Seite dargestellt werden. Es ist die klassische Forderung nach einer Darstellung des Übertrags auf einer Rechnung.

Beispiel

Wir haben eine Rechnung vorliegen, die 3 Seiten umfasst.

SAP Adobe Form subtotals

Rechnung mit 3 Seiten

Schritt 1) Anlegen eines numerischen Feldes hinter der Ausgabe des Positionswertes

In jeder Zeile, wo der Positionswert ausgegeben wird, wird ein Feld mit folgenden Eigenschaften angefügt. In unserem Beispiel betrifft dies die Zeile auf Ebene der Materialnummer (wenn keine Konditionen ausgegeben werden) bzw. in der Zeile der Konditionen (wenn Konditionen im Detail ausgegeben werden).

 

  • Typ: numeric field
  • Präsenz: unsichtbar (aus Layout ausgeblendet)
SAP Adobe Form Übertrag 2
  • Anzeigemuster: 2 Dezimalstellen
  • Bindung: Positionswert (muss ein Feld vom Typ DEC oder CURR oder QUAN sein, also kein Feld vom Typ CHAR)
SAP Adobe Form Subtotal 3

Schnittstelle

Schritt 2) Anlegen einer Zeile zur Ausgabe des Übertrags am Ende jeder Seite

  • Am Ende des DATA-Bereichs wird ein Teilformular CARRY_OVER zur Ausgabe des Übertrags am Ende jeder Seite angelegt.
SAP Adobe Form Übertrag 4

Auf der Registerkarte „Paginierung“ im Teilformular DATA ist im „Überlauffußbereich“ CARRY_OVER einzutragen.

 

SAP Adobe Form Übertrag 6

Es wird ein Feld KWERT_CARRY_OVER im Teilformular CARRY_OVER mit folgenden Eigenschaften eingefügt.

  • Typ: numeric field
  • Anzeigemuster: 2 Dezimalstellen
  • Bindung: keine Datenbindung

Im Element KWERT_CARRY_OVER wird zum Zeitpunkt CALCULATE folgendes Scripting vom Typ JAVASCRIPT platziert:

var fields = xfa.layout.pageContent(xfa.layout.page(this), „field“, 0);
var total = 0;

for (var i=0; i <= fields.length-1; i++)
{
if (fields.item(i).name == „KWERT_CO“)
{
total = total + fields.item(i).rawValue;
}
}

this.rawValue = total;

 

Jetzt kann das Adobe Form aktiviert und auf die Ausgabe der Zwischensumme pro Seite / des Übertrags getestet werden.

 

Weitere Informationen

Tutorial Adobe Scripting (1): Bedingter Seitenaufruf via Scripting mit SAP Adobe Forms

Tutorial Adobe Scripting (2): Dynamische Ermittlung der Fonthöhe in einem SAP Adobe Formular

Spezialthemen zu SAP Formularen

SAP Formulare zum Festpreis

SAP Formularentwicklung