dynamische Tabellen

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

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

dynamische Tabellen

Beitrag von juli ( / / 0 / 3 ) »
Hallo Gemeinde!
Hab mich hier schon im Forum umgesehen aber irgendwie nichts zu meinem Problem gefunden, oder nicht verstanden :roll:

Ich hab eine interne Tabelle:

Code: Alles auswählen.

data: begin of itab occurs 0,
       matnr like mara-matnr,
       maktg like makt-maktg,
      end of itab.
Dann habe ich noch ne ander Tabelle:

Code: Alles auswählen.

data: begin of feld occurs 0,
       feldname(50),
      end of feld.
Jetzt muss ich irgendwie die Einträge, aus der Tabelle feld, als spalten in die tabelle itab bekommen.

sprich:

Code: Alles auswählen.

begin of itab occurs 0,
       matnr like mara-matnr,
       maktg like makt-maktg,
       spalte1 type i,
       spalte2 type i,
       ...
      end of itab.
Freu mich über jedes Schreiben...

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


Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hi Juli,

i.e., die anderen Felder sind irgendwo hinterlegt
(z.B. CU-Tabelle)

1) mit generate subroutine (such mal hier im Forum)

Code: Alles auswählen.

GENERATE SUBROUTINE POOL progtab NAME genprog MESSAGE message
                                           LINE line WORD word.
2) evtl. geht's auch mit Feldsymbolen
-wenn du nur 'ne Liste ausgibst:
assign (feld-feldname) to <f>.


lg Andreas
]

Beitrag von juli ( / / 0 / 3 ) »
von GENERATE SUBROUTINE POOL hab ich schon gehört,
ein bisschen umständlich...

wie würde es denn im meinem beispiel mit dem assign aussehen, kannst du mir da ne kleinen hilfscode schreiben... hab damit paar Verständniss schwierigkeiten! :oops:

Danke

Beitrag von Jupp (ForumUser / 47 / 0 / 2 ) »
Mit der Methode
cl_alv_table_create=>create_dynamic_table
kann man sich prima eine dynamische Tabelle zusammenbauen (Die Methode selber macht eigentlich dann auch nichts anderes als sich einen entsprechenden Quellcode zu generieren und die Tabelle als Datenreferenz zurückliefern).

Bestimmt werden muss das Aussehen der dynamischen Tabelle natürlich durch den Feldkatalog

Code: Alles auswählen.

 DATA it_fieldcatalog TYPE lvc_t_fcat.
 DATA wa_fcat TYPE lvc_s_fcat.
*
 DATA ep_table TYPE REF TO data.
 FIELD-SYMBOLS: <my_table> TYPE ANY TABLE.
 FIELD-SYMBOLS: <struct>.
 FIELD-SYMBOLS: <feld>.


* An dieser Stelle den Feldkatalog füllen
* z.B. wa_fcat-fieldname = 'FELD1'.
*      wa_fcat-inttype   = 'I'. 
*      append wa_fcat to it_fieldcatalog 
* Hier erhält man dann eine Tabelle mit 
* einem Feld namens 'FELD1' vom Typ I.
* andere Möglichkeit wäre die Felder mit 
* Bezug auf DDIC-Objekte zu hinterlegen
* Einfach mal die Möglichkeiten des 
* Feldkatalogs testen


 CALL METHOD cl_alv_table_create=>create_dynamic_table
   EXPORTING
     it_fieldcatalog           = it_fieldcatalog
   IMPORTING
     ep_table                  = ep_table
   EXCEPTIONS
     generate_subpool_dir_full = 1
     OTHERS                    = 2.

 ASSIGN ep_table->* TO <my_table>. 
* auslesen läßt sich die Tabelle dann wieder mithilfe des Feldkatalogs.
 
LOOP at <my_table> ASSIGNING <struct>.
LOOP AT it_fieldcatalog INTO wa_fcat.
ASSIGN COMPONENT wa_fcat-fieldname OF STRUCTURE <struct> TO <feld>.
WRITE: <feld>. 
ENDLOOP. ENDLOOP.
Always Better Alternatives Possible.

Beitrag von juli ( / / 0 / 3 ) »
Hi ich bin´s wieder...
Hab das mal einbisschen ausprobiert und komm da auf paar Probleme.

Code: Alles auswählen.

data wa_fcat type lvc_s_fcat.
     data it_fieldcatalog type lvc_t_fcat.
     field-symbols: <my_table> type any table.

wa_fcat-fieldname = 'matnr'.
    wa_fcat-inttype   = 'C'.
    wa_fcat-intlen    = 30.
    append wa_fcat to it_fieldcatalog.
    wa_fcat-fieldname = 'bezeichnung'.
    wa_fcat-inttype   = 'C'.
    wa_fcat-intlen    = 35.
    append wa_fcat to it_fieldcatalog.

loop at datum_tab.
      wa_fcat-fieldname = datum_tab-datum.
      wa_fcat-inttype   = 'I'.
      append wa_fcat to it_fieldcatalog.
    endloop.

call method cl_alv_table_create=>create_dynamic_table
      exporting
        it_fieldcatalog           = it_fieldcatalog
      importing
        ep_table                  = ep_table
      exceptions
        generate_subpool_dir_full = 1
        others                    = 2.

  assign ep_table->* to <my_table>.
bis dahin ging alles noch gut!
nun brauche ich aber eine standart Tabelle weil ich die später über einen Funktionsbaustein übergeben muss.
irgendwie so:

Code: Alles auswählen.

data: tab type table of <my_table> with header line.
Hat jemand eine Idee?
Danke

Beitrag von Jupp (ForumUser / 47 / 0 / 2 ) »
Du kannst natürlich das Feldsymbol von vornherein als Standard Tabelle typisieren.

Statt

Code: Alles auswählen.

field-symbols: <my_table> type any table.
so

Code: Alles auswählen.

field-symbols: <my_table> type standard table.
Always Better Alternatives Possible.

Beitrag von juli ( / / 0 / 3 ) »
@jupp: Danke für die schnelle antwort!
darauf hätte ich auch selber kommen müssen :roll:
noch eine Frage:

wie kann ich denn jetzt <my_table> befüllen?
irgendwie komm ich nicht drauf.

sowas
append '125468' to <my_table>-matnr.
geht ja irgendwie nicht...

Beitrag von PsychoMantis (ForumUser / 98 / 0 / 0 ) »
Dafür brauchst du auch wieder nen Feldsymbol :)

Zuerst:

Code: Alles auswählen.

data: new_line type ref to data.
field-symbols: <l_line> type any.
Und dann erzeugst du ein Feldsymbol das auf eine Zeile deiner Tabelle zeigt:

Code: Alles auswählen.

CREATE DATA new_line LIKE LINE OF <my_table>.
ASSIGN new_line->* TO <l_line>.
Um jetzt auf ein spezielles Feld zugreifen zu können, ist ein weiteres Feldsymbol von nöten:

Code: Alles auswählen.

field-symbols: <field> type any.

assign component 'MATNR' of structure <l_line> to <field>
Dat wars :)

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,
juli hat geschrieben:...
nun brauche ich aber eine standart Tabelle weil ich die später über einen Funktionsbaustein übergeben muss.
irgendwie so:

Code: Alles auswählen.

data: tab type table of <my_table> with header line.
...
Standardtabelle wohl, aber es muß nicht mit Headerline sein. Der Funktionsbaustein nimmt sie auch ohne!!

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1364
Views
dynamische Tabellen
von Kaiwalker » 15.06.2005 10:28 • Verfasst in ABAP® Core
0
Antw.
1566
Views
Dynamische Tabellen Synchronisation
von Kresiquadratur » 19.07.2007 15:12 • Verfasst in ABAP® Core
1
Antw.
2018
Views
Dynamische Interne Tabellen
von AEONFLUX » 23.10.2007 08:05 • Verfasst in ABAP Objects®
7
Antw.
3344
Views
dynamische Tabellen in komplexen Strukturen
von mike81503 » 28.07.2006 15:03 • Verfasst in ABAP® Core
3
Antw.
2903
Views

Ü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

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.