iTab-Zeile in ein Feld eintragen

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

iTab-Zeile in ein Feld eintragen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo.
Folgende Anforderung habe ich: Ich habe im Programm eine interne Tabelle mit einer Struktur (zB. VBEP). Als Ziel soll jetzt jede Zeile in eine langes Textfeld (Länge 2048) geschrieben werden. Jedes Feld soll rüber. Ich möchte aber endloses CONCATENATE vermeiden. UniCode-kompatibel muss es auch sein.

Welchen Ansatz kann ich da wählen? Oder sehe ich den Wald vor lauter Bäumen nicht?

Ciao
Burkhart

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


Re: iTab-Zeile in ein Feld eintragen

Beitrag von M@atze! (ForumUser / 92 / 6 / 21 ) »
Hi Burkhart,

Vorschlag:

Code: Alles auswählen.


TABLES: vbep.

DATA: v_char TYPE char2048,
      t_char TYPE TABLE OF char2048.

SELECT-OPTIONS: so_bel FOR vbep-vbeln.

SELECT * INTO TABLE @DATA(t_vbep)
  FROM vbep
 WHERE vbeln IN @so_bel.

LOOP AT t_vbep ASSIGNING FIELD-SYMBOL(<s_vbep>).
  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE <s_vbep> TO FIELD-SYMBOL(<v_field>).
    IF sy-subrc EQ 0.
      v_char = v_char && CONV string( <v_field> ).
    ELSE.
      APPEND v_char TO t_char.
      CLEAR v_char.
      EXIT.
    ENDIF.
  ENDDO.

ENDLOOP.

Funktioniert mit jeder Struktur.

Grüße
M@atze

Re: iTab-Zeile in ein Feld eintragen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Vielen Dank. Sieht sehr interessant aus. Ich teste das mal. Was bewirken die @ ?

Re: iTab-Zeile in ein Feld eintragen

Beitrag von M@atze! (ForumUser / 92 / 6 / 21 ) »
Für eine Inline-Deklaration des Zielbereichs eines Selects benötigt man das
Fluchtsymbol "@".
Verwendet man dieses u. A. für den Zielbereich muss es für Hostvariablen auch im WHERE-Bereich angegeben werden.

Typisiert du dein Ziel vorher, benötigst du das Fluchtsymbol nicht.

Gruß
Matze

Re: iTab-Zeile in ein Feld eintragen

Beitrag von DeathAndPain (Top Expert / 1952 / 259 / 413 ) »
Ich hätte einfach gesagt:

Code: Alles auswählen.

LOOP AT t_vbep ASSIGNING FIELD-SYMBOL(<s_vbep>).
  v_char = <s_vbep>.
  APPEND v_char TO t_char.
ENDLOOP.
Und fertig.

P.S. Wahrscheinlich kann man sich (ab 7.40) sogar die Workarea v_char sparen und einfach schreiben:

Code: Alles auswählen.

LOOP AT t_vbep ASSIGNING FIELD-SYMBOL(<s_vbep>).
  APPEND conv char2048 ( <s_vbep> ) TO t_char.
ENDLOOP.

Re: iTab-Zeile in ein Feld eintragen

Beitrag von M@atze! (ForumUser / 92 / 6 / 21 ) »
Hi DeathAndPain,

ist leider nicht Unicode-kompatibel.

Gruß
Matze

Re: iTab-Zeile in ein Feld eintragen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Leider funktionieren alle drei Codings nicht bei mir. Release 7.02 scheint das nicht zu kennen.

Was kann ich sonst noch versuchen?

Ciao
Burkhart

Re: iTab-Zeile in ein Feld eintragen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
@Matze: Deine Version läuft auf meinem Release leider nicht. Schade.

Re: iTab-Zeile in ein Feld eintragen

Beitrag von M@atze! (ForumUser / 92 / 6 / 21 ) »
Jo, erst ab 7.40.

Versuchs hiermit:

Code: Alles auswählen.

TABLES: vbep.

DATA: v_char TYPE char2048,
      t_char TYPE TABLE OF char2048,
      t_vbep TYPE TABLE OF vbep,
      v_conv TYPE string.

FIELD-SYMBOLS: <s_vbep>  TYPE vbep,
               <v_field> TYPE any.

SELECT-OPTIONS: so_bel FOR vbep-vbeln.

SELECT * INTO TABLE t_vbep
  FROM vbep
 WHERE vbeln IN so_bel.

LOOP AT t_vbep ASSIGNING <s_vbep>.

  DO.
    ASSIGN COMPONENT sy-index OF STRUCTURE <s_vbep> TO <v_field>.
    IF sy-subrc EQ 0.
      v_conv = <v_field>.
*      oder
*      WRITE <v_field> to v_conv. "dann v_conv umtypisieren auf char!!

      CONCATENATE v_char v_conv INTO v_char.
    ELSE.
      APPEND v_char TO t_char.
      CLEAR v_char.
      EXIT.
    ENDIF.
  ENDDO.

ENDLOOP.

Re: iTab-Zeile in ein Feld eintragen

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Das passt. VIIIELEN Dank ;-)

Re: iTab-Zeile in ein Feld eintragen

Beitrag von DeathAndPain (Top Expert / 1952 / 259 / 413 ) »
7.02 kannte aber schon die &&-Verkettung, so dass man zumindest auf den sperrigen CONCATENATE verzichten könnte.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2343
Views
Cursor auf Feld setzen, Wert eintragen und bestätigen
von Maximilian_Egeler » 26.10.2006 23:27 • Verfasst in Dialogprogrammierung
7
Antw.
1547
Views
Itab füllen mit value# und corresponding# und Einzelzuweisung Feld
von Romaniac » 14.10.2021 19:59 • Verfasst in ABAP® Core
1
Antw.
1221
Views
Konvertierung Währungsfeld in Itab-Feld
von joester » 27.10.2016 12:40 • Verfasst in ABAP® Core
1
Antw.
1118
Views
ITAB TREEMLITAB um ein Feld im Programm erweitern!?
von Mavrix » 24.07.2007 11:51 • Verfasst in ABAP® Core
19
Antw.
4425
Views
Steh aufm Schlauf - ITAB Feld updaten
von Mavrix » 15.05.2007 08:35 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 6 Stunden von Bright4.5 3 / 1477
Regex in where
vor 7 Stunden von tar 6 / 144
Programm anlegen mit Vorlage
vor 22 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 23 Stunden von DeathAndPain 2 / 356

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

Daten an Tabelle binden
vor 6 Stunden von Bright4.5 3 / 1477
Regex in where
vor 7 Stunden von tar 6 / 144
Programm anlegen mit Vorlage
vor 22 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 23 Stunden von DeathAndPain 2 / 356

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821