cancel
Showing results for 
Search instead for 
Did you mean: 

Field symbol has not been assigned yet in ALV

former_member2492
Active Participant
0 Kudos
2,011

I have the following code:

  CLEAR: go_t1.

SELECT *
FROM mara
INTO TABLE @DATA(gt_mara)
UP TO 10 ROWS.

CREATE OBJECT go_t1
EXPORTING
container_name = 'CONTAINER'.

CREATE OBJECT go_splitter
EXPORTING
parent = go_t1
rows = 2
columns = 1.

CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = o_grid.

CALL METHOD go_splitter->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = o_grid1.
TRY.
cl_salv_table=>factory(
EXPORTING
r_container = o_grid
IMPORTING
r_salv_table = alv
CHANGING
t_table = gt_mara ).

CATCH cx_salv_msg
cx_salv_not_found
cx_salv_data_error
cx_salv_existing
cx_salv_wrong_call INTO DATA(lo_x).
MESSAGE lo_x TYPE 'E'.
ENDTRY.

alv->display( ).
and I am getting the the following error : Field symbol has not been assigned yet.
and I have no idea why this is happening...
View Entire Topic
Sandra_Rossi
Active Contributor

Be careful to NOT declare the ALV internal table as local, otherwise you will have a short dump (it may not be immediate, it depends on the global quantity of data (total number of bytes/characters of all cells displayed / versus given amount of bytes/characters buffered on frontend); if not immediate, it may happen after a number of ALV page scrolling, when the frontend needs to acquire more data of the internal table from the backend).

I don't reproduce the bug with this minimal reproducible program:

REPORT.
DATA: go_splitter TYPE REF TO cl_gui_splitter_container,
      o_grid      TYPE REF TO cl_gui_container,
      alv         TYPE REF TO cl_salv_table,
      gt_mara     TYPE TABLE OF mara.

PARAMETERS dummy.

AT SELECTION-SCREEN OUTPUT.
  CHECK go_splitter IS NOT BOUND.
  SELECT *
    FROM mara
    INTO TABLE gt_mara
  UP TO 10 ROWS.

  CREATE OBJECT go_splitter
    EXPORTING
      parent  = cl_gui_container=>screen0
      rows    = 2
      columns = 1.

  CALL METHOD go_splitter->get_container
    EXPORTING
      row       = 1
      column    = 1
    RECEIVING
      container = o_grid.

  TRY.
      cl_salv_table=>factory(
          EXPORTING
          r_container = o_grid
          IMPORTING
          r_salv_table = alv
          CHANGING
          t_table = gt_mara ).

    CATCH cx_salv_msg
         cx_salv_not_found
         cx_salv_data_error
         cx_salv_existing
         cx_salv_wrong_call INTO DATA(lo_x).
      MESSAGE lo_x TYPE 'I' DISPLAY LIKE 'E'.
  ENDTRY.

  alv->display( ).
former_member2492
Active Participant
0 Kudos

thank you, it solved my problem