Hallo Spezialisten,
wer kann einem Anfänger helfen?
Ich möchte mit einem Sapscriptformular den Vertriebstext vom Material ausgeben, bekomme aber nicht den vollständigen Text ausgedruckt.
Mein Coding dazu sieht folgendermaßen aus
Formular:
/E ITEM_TEXT
/* *** Material Vertriebstext ***
/: PERFORM ZSD_LESEN_TEXT IN PROGRAM ZSD_ANGEBOT_LESEN_DATEN
/: USING &VBDPA-MATNR&
/: CHANGING &TEXT&
/: ENDPERFORM
/: IF &TEXT& NE ' '
ZM &TEXT&
/: ENDIF
ABAB:
FORM ZSD_LESEN_TEXT TABLES IN_PAR STRUCTURE ITCSY
OUT_PAR STRUCTURE ITCSY.
DATA : S_MATNR LIKE STXH-TDNAME.
DATA : TLINE LIKE TLINE OCCURS 0 WITH HEADER LINE.
DATA : TEXT TYPE STRING.
ich glaube nicht dass Sapscript und Perform ganze Tabellen holen können.
Ich hätte da einige Textzeilen definiert und diese dann gefüllt also so Text1, Text2 usw.
Damit kann dann Sapscript besser umgehen als mit einer Tabelle.
Aber warum wird der Vertriebstext nicht mittels INCLUDE angedruckt?
Moin Wolfgang,
wenn ich mir in der Materialanzeige den Textkopf ansehe, dann ist MVKE das Textobjekt für den Vertriebstext.
Der Funktionsbaustein READ_TEXT funktioniert ja auch mit OBJECT = MVKE, nur dass eben im Formular nur 80 Zeichen ankommen
Möglich, dass in der ersten Zeile des Langtextes nur 80 Zeichen stehen (dürfen).
Hast du dir den Langtext schon mal mit dem Zeileneditor angeschaut?
btw. Wie groß ist die Variable TEXT in deinem Druckprogramm eigentlich definiert?
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
bitte im Formular mal den Debugger aufrufen und den SY-Subrc zum Include prüfen.
Daran kann ja doch festgestellt werden welcher Fehler vorliegt.
Gruß
Wolfgang
Habe das Problem inzwischen folgerndermaßen gelöst:
In ABAP die Objekt-ID geholt und im Formular mit Include ausgegeben.
Wen es interessiert, hir der Code:
Abap:
FORM ZSD_LESEN_TEXTID TABLES IN_PAR STRUCTURE ITCSY
OUT_PAR STRUCTURE ITCSY.
DATA : S_MATNR LIKE STXH-TDNAME.
DATA : TLINE LIKE TLINE OCCURS 0 WITH HEADER LINE.
DATA : TEXT TYPE STRING.
READ TABLE IN_PAR WITH KEY 'VBDPA-MATNR'.
IF SY-SUBRC = 0 .
S_MATNR = IN_PAR-VALUE.
CONCATENATE S_MATNR '0001' '01' INTO S_MATNR.
READ TABLE OUT_PAR WITH KEY 'OBJ'.
IF SY-SUBRC = 0.
OUT_PAR-VALUE = S_MATNR.
MODIFY OUT_PAR INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDFORM. "ZSD_LESEN_TEXTID
Formular:
/* *** Material Vertriebstext ***
/: PERFORM ZSD_LESEN_TEXTID IN PROGRAM ZSD_ANGEBOT_LESEN_DATEN
/: USING &VBDPA-MATNR&
/: CHANGING &OBJ&
/: ENDPERFORM
/: IF &OBJ& NE ' '
/: INCLUDE &OBJ& OBJECT MVKE ID 0001 PARAGRAPH ZM
/: ENDIF