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.
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)
- Anzeigemuster: 2 Dezimalstellen
- Bindung: Positionswert (muss ein Feld vom Typ DEC oder CURR oder QUAN sein, also kein Feld vom Typ CHAR)
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.
Auf der Registerkarte „Paginierung“ im Teilformular DATA ist im „Überlauffußbereich“ CARRY_OVER einzutragen.
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