CREATE_DYNAMIC_TABLE

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

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
14 Beiträge • Seite 1 von 1
14 Beiträge Seite 1 von 1

CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hallo,

ich versuche eine Dynamische Tabelle zu generieren mit dem FuBA CREATE_DYNAMIC_TABLE.

Ich bekomme von einer von uns erstellten Methode die Feldnamen und die Felddatentypen zurück und will daraus dann einen Feldkatalog aufbauen um sie
an den Floorplan Manager zu übergeben.

Mein Problem ist das jetzt meine "new_table" nach aufruf des FUbas leer ist...
das lt_fieldcatalog ist voll gefüllt mit 18 Feldern...
Was mach ich falsch ? oder gibt es noch eine andere Alternative?

Code: Alles auswählen.

CALL METHOD zsit_sm_task_controller=>s_get_all_params
    EXPORTING
      iv_type       = 'ZSIT_LE'
    IMPORTING
      et_param_list = lt_param_list.

loop at lt_param_list into ls_param_list.
      ls_fieldcatalog-DATATYPE = ls_param_list-param_type.
      ls_fieldcatalog-FIELDNAME  = ls_param_list-param_name.
  append ls_fieldcatalog to lt_fieldcatalog.
endloop.


CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
  EXPORTING
    IT_FIELDCATALOG = lt_fieldcatalog
   IMPORTING
     EP_TABLE        = new_table
  EXCEPTIONS
    generate_subpool_dir_full = 1
    others                    = 2.

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

    ASSIGN  new_table->* TO <my_table>.
eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( <my_table> ).
Zuletzt geändert von Trulchen am 30.06.2014 11:56, insgesamt 1-mal geändert.

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


Re: CREATE_DYNAMIC_TABLE

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

schau einmal hier - http://zevolving.com/category/dynamic-itab/ - da findest du sicher die Lösung
Schönen Tag

Gruss
thanks Jens

Re: CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hallo,

danke Jens, leider ist das Coding identisch zu meinem....
Daraus kann ich nicht erkennen warum meine Tabelle nach aufruf des FuBas leer ist...

Re: CREATE_DYNAMIC_TABLE

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

also bei mir klappt es problemlos mit diesem Coding ohne das ich etwas daran ändere - daher denke ich deine Tabelle mit den Feldern ist wohl das Problem - da solltest du noch einmal genauer schauen

Gruss
thanks Jens

Re: CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hab das COding jetzt auch mal getestet....

Code: Alles auswählen.

  cl_alv_table_create=>create_dynamic_table(
    EXPORTING
      it_fieldcatalog = lt_fieldcat
    IMPORTING
      ep_table = lo_table ).
Ist bei dir im Debugger lo_table gefüllt ?
Bei mir nicht...
deswegen geht es dann auch bei mir bei:

Code: Alles auswählen.

eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( lo_table ).
auf die Bretter mit "Dynamischer Typkonflikt bei Zuweisung von Referenzen".

Re: CREATE_DYNAMIC_TABLE

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

als die Variable LO_TABLE ist die Referenz auf die neue interne Tabelle und diese ist zugewiesen, so dass ein assign auf ein Feldsymbol vom Type any table problemlos klappt, dann dort die Daten/ Werte reinschreiben und schon klappt es - zumindest bei mir

Gruss
thanks Jens

Re: CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
jensschladitz hat geschrieben:Sali,

als die Variable LO_TABLE ist die Referenz auf die neue interne Tabelle und diese ist zugewiesen, so dass ein assign auf ein Feldsymbol vom Type any table problemlos klappt, dann dort die Daten/ Werte reinschreiben und schon klappt es - zumindest bei mir

Gruss
meinst du so:

Code: Alles auswählen.

    ASSIGN  LO_TABLE->* TO <my_table>.

eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( <my_table> ).
Dann bekomm ich eben diesen fehler....

Re: CREATE_DYNAMIC_TABLE

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Von welchem Typ ist die Variable "eo_field_catalog"?
Doch hoffentlich CL_ABAP_TABLEDESCR.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
a-dead-trousers hat geschrieben:Von welchem Typ ist die Variable "eo_field_catalog"?
Doch hoffentlich CL_ABAP_TABLEDESCR.
nein... CL_ABAP_STRUCTDESCR

Das ist mir jetzt auch schon aufgefallen :(

Aber ich weiß nicht wie ich meine

Code: Alles auswählen.

new_table Typ Ref to Data
in eine Struktur bekomme....
Da bin ich grad dran das herauszufinden... Jedoch nicht gerade erfolgreich...

Code: Alles auswählen.

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

Re: CREATE_DYNAMIC_TABLE

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

probiers mal damit

...
ASSIGN lo_table->* TO <f_tab>.

FIELD-SYMBOLS <fs_any> TYPE any.

INSERT INITIAL LINE INTO TABLE <f_tab> .
LOOP AT <f_tab> ASSIGNING <fs_any>.
EXIT.
ENDLOOP.

DATA:
lo_struc TYPE REF TO cl_abap_structdescr,
lt_comp TYPE cl_abap_structdescr=>component_table.

lo_struc ?= cl_abap_typedescr=>describe_by_data( p_data = <fs_any> ).
lt_comp = lo_struc->get_components( ).
...


Gruss
thanks Jens

Re: CREATE_DYNAMIC_TABLE

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Mit CL_ABAP_TABLEDESCR=>GET_TABLE_LINE_TYPE kommst du auf den Zeilentyp.
Trulchen hat geschrieben:Aber ich weiß nicht wie ich meine

Code: Alles auswählen.

new_table Typ Ref to Data
in eine Struktur bekomme....
Meinst du sowas:

Code: Alles auswählen.

data: lr_line type ref to data.
field-symbols: <la_line> type any.
create data lr_line like line of <lt_table>.
assign lr_line->* to <la_line>.
Für INSERT-Operationen

Code: Alles auswählen.

field-symbols: <la_line> type any.
loop at <lt_table> assigning <la_line>.
...
endloop.
Für SELECT-Operationen

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Dankeschön :)

Re: CREATE_DYNAMIC_TABLE

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

... und wie gelöst ( kurze Info oder so ) - vieleicht interessant für Nachfolgende :)

Gruss
thanks Jens

Re: CREATE_DYNAMIC_TABLE

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
jensschladitz hat geschrieben:Sali,

... und wie gelöst ( kurze Info oder so ) - vieleicht interessant für Nachfolgende :)

Gruss

Code: Alles auswählen.

CALL METHOD zsit_sm_task_controller=>s_get_all_params
    EXPORTING
      iv_type       = 'ZSIT_LE'
    IMPORTING
      et_param_list = lt_param_list.

  LOOP AT lt_param_list INTO ls_param_list.
    ls_fieldcatalog-fieldname  = ls_param_list-param_name.
    ls_fieldcatalog-datatype = ls_param_list-param_type.
    APPEND ls_fieldcatalog TO lt_fieldcatalog.
  ENDLOOP.

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


  ASSIGN  new_table->* TO   <f_tab>.

  INSERT INITIAL LINE INTO TABLE   <f_tab>.
  LOOP AT   <f_tab> ASSIGNING <fs_any>.
    EXIT.
  ENDLOOP.

  eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( <fs_any> ).

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3355
Views
dynamic table in alv grid anzeigen
von kostonstyle » 07.08.2008 11:29 • Verfasst in ABAP® für Anfänger
1
Antw.
2196
Views
Dynamic Dynpro
von scott111 » 16.03.2006 10:12 • Verfasst in Dialogprogrammierung
1
Antw.
10720
Views
Dynamic Report Title
von Techo » 17.03.2005 08:39 • Verfasst in Development Related
2
Antw.
2582
Views
Dynamic Cast von Superclass auf Subclass
von AdrianSchm » 22.06.2018 11:03 • Verfasst in ABAP Objects®
0
Antw.
1207
Views
Link eines Dynamic Documents aufrufen
von LivingOn » 02.03.2006 11:44 • Verfasst in ABAP Objects®

Ü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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140