Tabelle dynamisch füllen

Getting started ... Alles für einen gelungenen Start.

Tabelle dynamisch füllen

Postby Aliya3110 » Fri May 29, 2015 12:31 pm

Hallo zusammen,
kann jemand mich unterstützen, ich möchte Daten aus einer Tabelle dynamisch füllen. Wie kann ich die Values in den richtigen Spalten zuordnen?
Vielen Dank im Voraus.

Ich habe eine Tabelle mit drei Spalten. "Nummer" "Name" und "Value".

Ich habe eine zweite Tabelle mit 80 Spalten.
1. Spalte: Personalnummer
2. Spalte: Name
3. Spalte: Vorname
4....
80.....
Die Inhalte von der zweiten Tabelle müssen nur mit den Value Daten aus der ersten Tabelle gefüllt werden.

1. Tabelle
Spalten: Nummer Name Value
1.Datensatz 1 Personalnummer 1
2.Datensatz 2 Nachname Schmidt
3. Datensatz 3 Vorname Christian
80. Datensatz

2. Tabelle
Spalten: Personalnummer Name Vorname ....usw....

Ergebnis soll so aussehen:
Spalten: Personalnummer Nachname Vorname ....usw....
1 Schmidt Christian
Aliya3110
...
...
 
Posts: 125
Joined: Sun May 25, 2008 3:17 pm

Re: Tabelle dynamisch füllen

Postby Angela1614 » Wed Jun 03, 2015 12:57 pm

Wo genau liegt denn das Problem?
Du loopst über die erste Tabelle und merkst dir in einer Variablen die Personalnummer. Immer wenn eine neue kommt, merkst Du Dir die und weisst, Du musst mit einer neuen Zeile anfangen.

Ob Du nun am Anfang einer neuen Persnr immer eine leere Zeile in die zweite Tabelle schreibst, die Du dann füllst (s. "APPEND INITIAL LINE ... ASSIGNING ...) oder eine Struktur aufbaust, die Du füllst und am Ende in Deine zweite Tabelle schreibst, kannst Du Dir im Grunde aussuchen.

Und die dynamische Zuordnung sieht im zweiten Fall dann ungefähr so aus:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. FIELD-SYMBOLS: <field> TYPE any.
  2. ...
  3. ASSIGN COMPONENT ls_tab1-feldname OF STRUCTURE ls_struk TO <field>.
  4. <field> = ls_tab1-value.
  5.  
GeSHi ©
Angela1614
...
...
 
Posts: 268
Joined: Fri Jul 23, 2004 2:19 pm

Re: Tabelle dynamisch füllen

Postby Aliya3110 » Sun Jun 07, 2015 5:44 pm

Hallo GastX,

vielen Dank für die Antwort, ich habe die Lösung umgesetzt aber leider habe ich mit der Übernahme von Zahlen mit 2 Kommastellen Probleme. Wie kann ich sie übernehmen?

DATA: ls_invoiceheader TYPE zsmm_invoiceheader,
lt_invoiceheader TYPE ztymm_invoiceheader,
lv_spaltenname TYPE string,
lv_addinvoice_table TYPE i,
lv_table TYPE boolean.
DATA: lv_exceptiontext TYPE string.

FIELD-SYMBOLS:
<ls_xml_data> LIKE LINE OF lt_xml_data,
<lv_value> TYPE any,
<lv_addvalue> TYPE any,
<ls_invoiceheader> TYPE zsmm_invoiceheader.

LOOP AT lt_xml_data ASSIGNING <ls_xml_data>.

* check fieldname
ASSIGN COMPONENT lv_spaltenname OF STRUCTURE ls_invoiceheader TO <lv_addvalue> .
IF sy-subrc = 0.
TRY.
<lv_addvalue> = <ls_xml_data>-cvalue.
CATCH cx_sy_conversion_no_number INTO lo_exception.
lv_exceptiontext = lo_exception->get_text( ).
ENDTRY.
ENDIF.
lv_spaltenname = <ls_xml_data>-cvalue.

* add fieldvalue in Structur
ASSIGN COMPONENT <ls_xml_data>-cvalue OF STRUCTURE ls_invoiceheader TO <lv_value>.
IF sy-subrc = 0.
TRANSLATE <ls_xml_data>-cvalue TO UPPER CASE.
ENDIF.

Genau hier müssen die zahlen übernommen werden, aber eine Exception wird ausgelöst:

TRY.
<lv_addvalue> = <ls_xml_data>-cvalue.
CATCH cx_sy_conversion_no_number INTO lo_exception.
lv_exceptiontext = lo_exception->get_text( ).
ENDTRY.
Aliya3110
...
...
 
Posts: 125
Joined: Sun May 25, 2008 3:17 pm


Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 8 guests