Decimals in String konkatenieren

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

Decimals in String konkatenieren

Beitrag von Calahan (ForumUser / 2 / 0 / 0 ) »
Hallo!

leider verfüge ich nur über äußerst rudimentäre ABAP-Kenntnisse und hoffe, dass mir hier jemand verraten kann, wie ich folgendes möglichst sinnvoll lösen kann.

Eine Tabelle (>5 Mio Records) aus der ich selektiere, beinhaltet neben einigen Attributen 95 Decimal-Werte (alles Decimal 17,2).
Diese Decimals würde ich gerne (möglichst performant!) in einen String konkatenieren und dann ausgeben.
Dabei sollen die häufig auftauchenden Nullen nicht als 0.00 sondern einfach als 0 dargestellt werden.

Zu befüllen ist also das Feld:

Code: Alles auswählen.

data: dec_str type String.
.

Bisher hatte ich mir überlegt für jeden der 95 Decimal-Werte jeweils ein Feld

Code: Alles auswählen.

data: d01(19), d02(19), ...., d95(19)
zu definieren.

Nach dem select kämen dann 95 Zuweisungen

Code: Alles auswählen.

  if ZZTAB-DMB01 = 0.
    d01 = '0'.
  else.
    write ZZTAB-DMB01 to d01 left-justified.
  endif.
um schließlich mit

Code: Alles auswählen.

concatenate d01 d02 d03 ... d95 into dec_str separated by '|'.
den gewünschten String zu haben, der mit den 14 weiteren Attributen die die Tabelle beinhaltet, ausgegeben werden soll.
Anstellen von 109 Werten sollen also nur 15 Werte pro Record ausgegeben werden, wobei die 95 Decimals eben wie oben beschrieben zusammengefasst sind.
Ich gehe doch stark davon aus, dass sich das wesentlich eleganter lösen lässt und wäre dankbar, wenn mir jemand verraten könnte wie!

Vielen Dank vorab!

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


Re: Decimals in String konkatenieren

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Hallo Calahan,

liegen die 95 Felder irgendwie hintereinander oder in gleichem Abstand voneinander oder sind die Feldnamen irgendwie durchnummeriert?
Falls ja, könntest du mit einer Schleife die 95 Felder der Reihe nach durch ein Feldsymbol ansprechen { Assign ... of structure ... to <fs> }
und dann mit dem Feldsymbol deine Schreib- und Verkettungsoperationen durchführen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Decimals in String konkatenieren

Beitrag von Calahan (ForumUser / 2 / 0 / 0 ) »
Die 95 Felder liegen direkt hintereinander haben aber alle unterschiedliche Namen, die auch keiner Systematik folgen.
Ich kenne mich mit field-symbols noch nicht aus. Wie kann ich denn dafür sorgen, dass die Umsetzungen innerhalb einer Schleife durchgeführt werden?

Re: Decimals in String konkatenieren

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hmm, also könntest du:

1. Dir die Struktur deiner Tabelle holen, die durchlaufen und dann die Feldsymbole zuweisen oder
2. dir den Befehl DO...VARYING ansehen. Der sollte genau machen, was du benötigst.

Re: Decimals in String konkatenieren

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Hallo Calahan,

hier ein Beispiel das du für deine Verhältnisse anpassen kannst

Code: Alles auswählen.

REPORT.

DATA: BEGIN OF test,
         start1,
         start2,
         start3,


         feld_hugo  TYPE i,
         feld_fred  TYPE i,
         feld_manni TYPE i,
         feld_joe   TYPE i,
      END OF test.

FIELD-SYMBOLS: <fs> LIKE test-feld_hugo.

test-feld_hugo = 13.
test-feld_manni = 26.
test-feld_fred = 112.
test-feld_joe  = 1023.



* 1. Möglichkeit      .  Du weißt dass das 1. der aufeinanderfolgenden Felder das 4. Feld ist
DO 4 TIMES.
  sy-tabix = sy-index + 3.   " sy-tabix = 4,5,6,7
  ASSIGN COMPONENT sy-tabix OF STRUCTURE test TO <fs>.
  WRITE:/ <fs>.
ENDDO.
ULINE.

* 2. Möglichkeit      .  Du weißt dass das 1. der aufeinanderfolgenden Felder das Feld feld_hugo ist und die anderen darauf folgen
DO 4 TIMES.
  sy-tabix = sy-index - 1.  " sy-tabix = 0,1,2,3
  ASSIGN test-feld_hugo INCREMENT sy-tabix   TO <fs>.
  WRITE:/ <fs>.
ENDDO.
ULINE.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

12
Antw.
4669
Views
CSV String
von Django90 » 02.10.2017 08:58 • Verfasst in ABAP® für Anfänger
2
Antw.
2260
Views
dynamischer SQL-String
von marlboro_light » 20.08.2006 15:50 • Verfasst in ABAP® Core
3
Antw.
2735
Views
String trennen
von SAP_ENTWICKLER » 25.03.2019 16:00 • Verfasst in ABAP® Core
3
Antw.
1815
Views
'##' in String finden
von LostDarkness » 12.02.2019 13:26 • Verfasst in ABAP® für Anfänger
5
Antw.
2706
Views
..als String aufbereiten
von supermario73 » 26.05.2008 19:44 • 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

BAPI zur ABSO?
Gestern von DeathAndPain 2 / 453
Materialstammerweiterung: Neuer Reiter
vor einer Woche von DeathAndPain gelöst 4 / 1093
Ermittlung der Arbeitstage (Mosid)
vor einer Woche von Radinator 11 / 46770
LSMW-Problem
vor 3 Wochen von DeathAndPain gelöst 6 / 4659

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

BAPI zur ABSO?
Gestern von DeathAndPain 2 / 453
Materialstammerweiterung: Neuer Reiter
vor einer Woche von DeathAndPain gelöst 4 / 1093
Ermittlung der Arbeitstage (Mosid)
vor einer Woche von Radinator 11 / 46770
LSMW-Problem
vor 3 Wochen von DeathAndPain gelöst 6 / 4659