Create_dynamic_table does not work when fieldcatalog table contains LVC_S_S
I'm getting short-dump when creating dynamic internal table via CALL METHOD cl_alv_table_create=>create_dynamic_table. The fieldcatalog contains a component named LVC_S_STYL which populates fine when after call function LVC_FIELDCATALOG_MERGE but when this is passed to cl_alv_table_create=>create_dynamic_table it short dumps!
Is it possible to pass the style catalog in this case, how? Below is my code.
Structure of 'ZZ_ALV_FCAT' is WERKS type werks_d, DATE type datum, CELLTAB type LVC_S_STYL.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZZ_ALV_FCAT' CHANGING ct_fieldcat = lt_fieldcat. CALL METHOD cl_alv_table_create=>create_dynamic_table EXPORTING it_fieldcatalog = lt_fieldcat i_length_in_byte = '' IMPORTING ep_table = dy_table EXCEPTIONS generate_subpool_dir_full = 1 OTHERS = 2. IF sy-subrc EQ 0. ASSIGN dy_table->* TO <dyn_table>. ELSE. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
<b>I'll be generously giving away points for any help!</b>
Any idea anyone? I was thinking may be convert the HEX data to CHAR before creating the dynamic table then again convert the CHAR data back to HEX before I call SET_TABLE_FOR_FIRST_DISPLAY? In that case, how to convert Hex of a structure to CHAR and vice versa?
Message was edited by:
Uwe Schieferstein replied
I have used class CL_SALV_TABLE just for displaying the results of the dynamic itab creation. The purpose of routine FILL_CELLTAB is just to show that we are able to create a complex itab (record contains one field (CELLTAB) which itself is a table type) and how to fill it because this has to be done dynamically, too.
If the dynamically created itab is used for an editable ALV list then you must use CL_GUI_ALV_GRID.