Da ich das Druckprogramm zu meinem Formular nicht ändern kann, würde ich gerne 2 Variablen direkt in SapScript addieren. Weis jemand ob das überhaupt geht? und wenn ja, wie?
Habe versucht das mit dem Kommando DEFINE zu machen (/: DEFINE &summe& = '&feld1& + &feld2&'), klappt aber leider nicht (wird als String 123 + 321 ausgegeben).
am Besten löst du das über einen externen Perform. Obs eine einfachere Möglichkeit gibt ??? - Keine Ahnung!
1. du definiert dein Summenfeld im Formular, mit DEFINE
2. Im Formular übergibst du deine Felder in ein Containerprogramm
Im Formular:
PERFORM GET_SUMME IN PROGRAM ZXX_PERFORM
USING &FELD1&
USING &FELD2&
CHANGING &SUMME&
ENDPERFORM
3. Du liegst dein Container-Programm an.
REPORT ZXX_PERFORM.
FORM GET_SUMME
TABLES IMPORT STRUCTURE ITCSY
EXPORT STRUCTURE ITCSY.
DATA: FELD1 like VBAK-NETWR,
FELD2 like VBAK-NETWR,
SUMME like VBAK-NETWR.
* Lesen der Übergabe-Parameter
READ TABLE IMPORT WITH KEY NAME = 'FELD1'.
* Wichtig - Feldname - Großbuchstaben !!!
CHECK SY-SUBRC = 0.
Feld1 = IMPORT-VALUE.
* Lesen der Übergabe-Parameter
READ TABLE IMPORT WITH KEY NAME = 'FELD2'.
* Wichtig - Feldname - Großbuchstaben !!!
CHECK SY-SUBRC = 0.
Feld2 = IMPORT-VALUE.
* Rechnen
Summe = Feld1 + Feld2.
* Statt rechnen kannst du auch über einen Select Daten aus einer Tabelle holen
* Exportparameter übergeben
READ TABLE EXPORT WITH KEY NAME = 'SUMME'.
CHECK SY-SUBRC = 0.
EXPORT-VALUE = SUMME.
MODIFY EXPORT INDEX SY-TABIX.
ENDFORM.
Probiers mal aus!!
Im Containerprogramm wichtig : Feldnamen in Großbuchstaben übergeben!!
Hi Nicole,
ja, das wäre durchaus eine Lösung. Ich habe mich aber für einen anderen Weg entschieden.
Hab das Programm einfach in ein Z* - Programm kopiert und im Customizing auch das Z*-Programm eingestellt. Nun kann ich im Druckprogramm soviel ändern wie ich will, und die Summe speichere ich einfach in eine Variable die ich dann im Formular andrucke