Ausgabe von FI_F4_ZTERM in Zeile schreiben

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von Accetron (ForumUser / 20 / 16 / 0 ) »
Morgen Kollegen,

für einen eigenen Funktionsbaustein möchte ich gerne eine Tabellenausgabe um einen Langtext erweitern, analog zu FI_F4_ZTERM. Mein Code (zugegeben etwas zusammengestoppelt von diversen Quellen) sieht so aus:

Code: Alles auswählen.

*[...] hier irrelevant
LOOP AT ZT_ZBED ASSIGNING FIELD-SYMBOL(<zeile>).

    CALL FUNCTION 'FI_F4_ZTERM'
        EXPORTING
            I_KOART = 'K'
            I_ZTERM = <zeile>-zterm
            I_XSHOW = ''
            I_ZTYPE = ''
            I_NO_POPUP = 'X'
        IMPORTING
            E_ZTERM = v_langtext
        EXCEPTIONS
            NOTHING_FOUND = 1
            OTHERS = 2.

    WRITE v_langtext TO <zeile>-Z_LANGTEXT.
*[...]
Z_LANGTEXT ist entsprechend angelegt und funktioniert (habe es zwischenzeitlich schon mit SD_PRINT_TERMS_OF_PAYMENT befüllen können, da mit einer lokalen vtopis), wird aber so nicht befüllt. E_ZTERM müsste meines Wissens nach eigentlich passen (typ ist t052-zterm), was übersehe ich?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von PeterPaletti (Specialist / 350 / 32 / 97 ) »
Wenn ich den Quellcode von FI_F4_ZTERM richtig deute bekommt man wenn man das Popup unterdrückt nur die Liste ET_ZTERM zurück, aber keinen Wert in E_ZTERM.
In E_ZTERM steht das was man ausgewählt hat, wenn man das Popup nicht unterdrückt.

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Accetron


Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von Accetron (ForumUser / 20 / 16 / 0 ) »
Hm, dann ist der FuBa vielleicht doch nicht ganz das, was ich brauche. Danke für die Info schon mal. :-)

Edit: Es sieht so aus, als wäre alles nötige in der Tabelle V_T052 angelegt, nur wie ich das da zuordnen kann, da stehe ich wieder auf dem Schlauch.

Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von PeterPaletti (Specialist / 350 / 32 / 97 ) »
Für mich ist leider noch nicht klar ersichtlich, was du gerne haben möchtest.
Wenn du einfach den Langtext zum Zahlungsbedingungsschlüssel haben möchtest, reicht doch FI_F4_ZTERM oder nicht?

Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von Accetron (ForumUser / 20 / 16 / 0 ) »
Sorry, da habe ich mich unklar ausgedrückt.
Als Ausgabe möchte ich quasi eine Tabelle haben, die sämtliche Werte von T052 zurückgibt, aber ergänzt um eine Spalte mit einem Langtext, wie FI_F4_ZTERM ihn ausgibt. Das Popup brauche ich dazu nicht, die Tabelle soll diesen Text "einfach" übergeben bekommen.

Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von PeterPaletti (Specialist / 350 / 32 / 97 ) »
Dann brauchst du doch vor deinem LOOP auf ZT_ZBED einen einfachen Aufruf von FI_F4_ZTERM ohne Einschränkungen außer I_NO_POPUP = 'X'. Da greifst du dir die Tabelle ET_ZTERM ab.
Dann machst du deinen LOOP auf ZT_ZBED und einen READ TABLE auf deine interne Tabelle, die ET_ZTERM abgreift und liest den Langtext zu jedem ZTERM in deine ZT_ZBED ein.

Code: Alles auswählen.

DATA: lt_zterm TYPE tzterm.
DATA: ls_zterm TYPE szterm.

  CALL FUNCTION 'FI_F4_ZTERM'
    EXPORTING
*     I_KOART       = ' '
*     I_ZTERM       = ' '
*     I_XSHOW       = ' '
*     I_ZTYPE       = ' '
      i_no_popup    = 'X'
    IMPORTING
*     E_ZTERM       =
      et_zterm      = lt_zterm
    EXCEPTIONS
      nothing_found = 1
      OTHERS        = 2.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.


  LOOP AT lt_zbed ASSIGNING FIELD-SYMBOL(<zeile>).
    READ TABLE lt_zterm INTO ls_zterm
    WITH KEY zterm = <zeile>-zterm.
    IF sy-subrc EQ 0.
      WRITE ls_zterm-ztext TO <zeile>-langtext.
    ENDIF.
  ENDLOOP.

Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag:
Accetron


Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von Accetron (ForumUser / 20 / 16 / 0 ) »
Argh, ich bin ein Idiot. So klappt es. Danke dir. Ich gehe jetzt in die Ecke und schäme mich. :,D

Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Ich würde das gerne verstehen, aber was soll es für die Ausgabe des FI_F4_ZTERM nützen, hinterher einen LOOP zu machen?

Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von PeterPaletti (Specialist / 350 / 32 / 97 ) »
@DeathAndPain
FI_F4_ZTERM liefert mit dem Ausgabeparameter ET_ZTERM eine Liste mit allen Zahlungsbedingungsschlüsseln samt Langtext. Dabei ist es völlig wurscht, was ich in I_ZTERM angebe.
Reicht doch wenn die Liste einmal gelesen wird. Man könnte die auch jedes Mal im LOOP lesen, die verändert sich aber doch nicht.
Der LOOP ist ja nur dafür da, die Ausgabetabelle um den Langtext anzureichern.

Re: Ausgabe von FI_F4_ZTERM in Zeile schreiben

Beitrag von DeathAndPain (Top Expert / 1961 / 261 / 415 ) »
Ok, Dir geht es um die Ergebnistabelle, die hinterher in lt_zbed steht, nicht um das, was auf dem Bildschirm ausgegeben wird (ich dachte, darum ginge es dem Fragesteller).

Was ich allerdings bei Deinem Code nicht verstehe, ist, weshalb Du mit ASSIGNING FIELD-SYMBOL(<zeile>) beste 7.40-Syntax anwendest, danach aber mit READ TABLE und einem in meinen Augen völlig unnötigen WRITE in einem Stil weitermachst, den ich als Release 3.1-Ultra-oldschool bezeichnen würde. WRITE TO braucht man doch nur, wenn die Optik konvertiert werden soll, etwa bei einem Datum, aber bei einem einfachen Characterfeld wie hier kommt da doch nichts anderes bei raus als bei einer einfachen Zuweisung.

Ich hätte einfach geschrieben:

Code: Alles auswählen.

  LOOP AT lt_zbed ASSIGNING FIELD-SYMBOL(<zeile>).
    <zeile>-langtext = VALUE #( lt_zterm[ zterm = <zeile>-zterm ]-ztext OPTIONAL ).
  ENDLOOP.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3309
Views
SAPscript Ausgabe in einer Zeile
von Pearthy » 29.11.2005 14:50 • Verfasst in ABAP® für Anfänger
0
Antw.
824
Views
REUSE_ALV_LIST_DISPLAY Ausgabe mit ULINE je Zeile
von schwar01 » 27.11.2006 14:36 • Verfasst in ABAP® Core
1
Antw.
1812
Views
Liest READ Zeile für Zeile oder aufeinmal
von bohne » 26.11.2006 16:46 • Verfasst in ABAP® für Anfänger
1
Antw.
312
Views
7
Antw.
2933
Views
Write-Ausgabe vor Alv-Grid Ausgabe
von L0w-RiDer » 14.08.2019 14:09 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8528
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2431
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3711

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8528
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2431
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3711

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor einer Woche von Manfred K. 1 / 2842
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4651