Dynamische Tabelle in ALV-Grid ausgeben

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

Dynamische Tabelle in ALV-Grid ausgeben

Postby Viktoria1468 » Wed Feb 27, 2013 1:47 pm

Guten Tag,

Ich bin neu im SAP-Bereich und versuche, eine dynamische interne Tabelle zu erzeugen und anschliessend in einem ALV Grid auszugeben.

Mithilfe von einer Fieldcat erzeuge ich eine interne Tabelle, die ich mithilfe von Feldsymbolen befülle. Wenn ich aber die Funktion zum ausgeben des ALV-Grids aufrufe (REUSE_ALV_GRID_DISPLAY_LVC), erhalte ich einen Laufzeitfehler:

Es wurde auf ein noch nicht zugewiesenes Feldsymbol zugegriffen.


Dies liegt am Parameter "t_outtab" der Funktion. Wenn die interne Tabelle keinen Inhalt hat, wird das ALV-Grid angezeigt. Nun weiss ich aber nicht wieso dass dieser Fehler auftritt.


essenzieller Programm-Code:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. "Interne Tabelle aus dem Fieldcat erzeugen.
  2. CALL METHOD cl_alv_table_create=>create_dynamic_table
  3.   EXPORTING
  4.     it_fieldcatalog           = gt_fieldcat
  5.   IMPORTING
  6.     ep_table                  = gr_data
  7.   EXCEPTIONS
  8.     generate_subpool_dir_full = 1
  9.     OTHERS                    = 2.
  10.  
  11. "Interne Tabelle dem Feldsymbol zuweisen.
  12. ASSIGN gr_data->* TO <gt_table>.
  13.  
  14. "Struktur (Line of) aus der dynamischen internen Tabelle erstellen.
  15. CREATE DATA g_line LIKE LINE OF <gt_table>.
  16. "Struktur dem Feldsymbol zuweisen.
  17. ASSIGN g_line->* TO <g_line>.
  18.  
  19. ASSIGN COMPONENT 1 OF STRUCTURE <g_line> TO <g_matnr>.
  20. ASSIGN COMPONENT 2 OF STRUCTURE <g_line> TO <g_labor>.
  21. ASSIGN COMPONENT 3 OF STRUCTURE <g_line> TO <g_vkorg>.
  22.  
  23. <g_matnr> = '0001'.
  24. <g_labor> = '123'.
  25. <g_vkorg> = '123'.
  26.  
  27. APPEND <g_line> TO <gt_table>.
  28.  
  29. "ALV-Grid anzeigen.
  30. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  31.   EXPORTING
  32.    it_fieldcat_lvc = gt_fieldcat
  33.     is_layout_lvc   = gs_layout
  34.     t_outtab        = <gt_table>
  35.   EXCEPTIONS
  36.     program_error   = 1
  37.     OTHERS          = 2.
  38.  
GeSHi ©


Danke im Voraus.
Gruss, David
Viktoria1468
.
.
 
Posts: 2
Joined: Wed Feb 27, 2013 1:47 pm

Re: Dynamische Tabelle in ALV-Grid ausgeben

Postby Jonny2227 » Thu Feb 28, 2013 7:44 am

Sali,

beim assign - immer schön abfragen
mittles -> check <feldsymbol> is assigned ...oder mittles -> if <feldsymbol> is assigned ... endif - prüfen ob das Feldsymbol erfolgreich zugewiesen wurde -
und dann mit der Verarbeitung fortfahren - dann wirst du sehen wo dein Programm das Problem verursacht, denn die Aussage des Fehlers ist ja eindeutig - ein "Feldsymbol" is nicht assigned ...

Gruss jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Dynamische Tabelle in ALV-Grid ausgeben

Postby Viktoria1468 » Fri Mar 01, 2013 6:20 am

Hallo Jens,

Das "Problem" ist, das Feldsymbol ist bereits zugewiesen, dies kann ich im Debugger auch nachschauen und überprüfen. Solange ich kein Datensatz an die interne Tabelle anhänge, wird das Grid auch angezeigt, sobald ich aber mit Append einen Datensatz anhänge, kommt die oben beschriebene Fehlermeldung.

Edit: Das komische ist, das das Feldsymbol auch nach dem APPEND eigentlich noch assigned ist... Beide ok's werden ausgegeben, und direkt nach dem 'ok_2' kommt die ALV-GRID-Erzeugung.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. IF <gt_table> IS ASSIGNED.
  2.   WRITE 'OK_1.'.
  3.  
  4. APPEND <g_line> TO <gt_table>.
  5.  
  6. IF <gt_table> IS ASSIGNED.
  7.   WRITE 'OK_2.'.
  8.  
GeSHi ©



Edit: Hab den Fehler gefunden. Ich habe bei den Feldkategorien das Feld in Kleinbuchstaben geschrieben, und mit dem kam er nicht zu gange. Grossbuchstaben behoben das Problem.

Gruss, David
Viktoria1468
.
.
 
Posts: 2
Joined: Wed Feb 27, 2013 1:47 pm


Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 19 guests