Hi Experts ,
Iv tried to create a dynamic internal table. and display the same using REUSE_ALV_GRID_DISPLAY.
i have not recreated any field catalog and have Tried to use the function module LVC_TRANSFER_TO_SLIS.
The ALV gets displayed but im not able to display data in it....rather im not sure how to go about the data display,iv posted a simpler sample code of my req ...can someone pls give me a solution.
i need help
Thanks&Regards,
Goldie
REPORT zdyintab1 .
TABLES: spfli,scarr,sflight.
TYPE-POOLS: slis.
DATA: my_table TYPE REF TO data,
my_line TYPE REF TO data.
data: index(3) TYPE c.
*structure/work-area
DATA: BEGIN OF wa1,
carrid TYPE spfli-carrid,
connid TYPE sflight-connid,
cityfrom TYPE spfli-cityfrom,
fldate TYPE sflight-fldate,
END OF wa1.
*internal table
DATA: itab1 LIKE TABLE OF wa1.
DATA : i_fc1 TYPE slis_t_fieldcat_alv,
w_fc1 type slis_fieldcat_alv,
wa_it_fldcat type lvc_s_fcat,
it_fldcat type lvc_t_fcat.
FIELD-SYMBOLS : <fs_table> TYPE table,
<fs_wa> TYPE ANY,
<fs_value_out> TYPE ANY,
<fs_value_in> TYPE ANY.
SELECT spflicarrid sflightconnid spflicityfrom sflightfldate INTO
TABLE itab1 FROM spfli INNER JOIN sflight ON spfli~connid =
sflight~connid.
LOOP AT itab1 INTO wa1.
WRITE :/ wa1.
ENDLOOP.
SELECTION-SCREEN BEGIN OF BLOCK radio_button WITH FRAME.
PARAMETERS: itab RADIOBUTTON GROUP rgrp,
dyitab RADIOBUTTON GROUP rgrp.
SELECTION-SCREEN END OF BLOCK radio_button.
PERFORM display.
----
FORM display *
----
........ *
----
FORM display.
PERFORM build_dyn_itab.
IF itab = 'X'.
PERFORM itab.
ELSEIF dyitab = 'X'.
PERFORM dyitab.
PERFORM data.
ENDIF.
.
ENDFORM. " Display
----
FORM itab *
----
........ *
----
FORM itab.
CLEAR w_fc1.
w_fc1-col_pos = 1.
w_fc1-fieldname = 'CARRID'.
w_fc1-ref_tabname = 'SPFLI'.
w_fc1-ref_fieldname = 'CARRID'.
w_fc1-seltext_m = 'Material code'.
APPEND w_fc1 TO i_fc1.
CLEAR w_fc1.
w_fc1-col_pos = 2.
w_fc1-fieldname = 'CONNID'.
w_fc1-ref_tabname = 'SFLIGHT'.
w_fc1-ref_fieldname = 'CONNID'.
w_fc1-seltext_m = 'Description'.
APPEND w_fc1 TO i_fc1.
CLEAR w_fc1.
w_fc1-col_pos = 3.
w_fc1-fieldname = 'CITYFROM'.
w_fc1-ref_tabname = 'SPFLI'.
w_fc1-ref_fieldname = 'CITYFROM'.
w_fc1-seltext_m = 'Material Group'.
APPEND w_fc1 TO i_fc1.
CLEAR w_fc1.
w_fc1-col_pos = 4.
w_fc1-fieldname = 'FLDATE'.
w_fc1-ref_tabname = 'SFLIGHT'.
w_fc1-ref_fieldname = 'FLDATE'.
w_fc1-seltext_m = 'Division'.
APPEND w_fc1 TO i_fc1.
CLEAR w_fc1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = i_fc1
TABLES
t_outtab = itab1.
ENDFORM.
----
FORM build_dyn_itab *
----
........ *
----
FORM build_dyn_itab.
*
*CLEAR wa_it_fldcat.
CLEAR index.
DO 6
TIMES.
index = sy-index.
CLEAR wa_it_fldcat.
CASE index.
WHEN 1 .
CONCATENATE 'Field' index INTO
wa_it_fldcat-fieldname .
CONDENSE wa_it_fldcat-fieldname NO-GAPS.
wa_it_fldcat-ref_table = 'SPFLI'.
wa_it_fldcat-ref_field = 'CARRID'.
wa_it_fldcat-col_pos = .
wa_it_fldcat-datatype = 'CHAR'.
wa_it_fldcat-intlen = 3.
APPEND wa_it_fldcat TO it_fldcat.
CLEAR wa_it_fldcat.
WHEN 2 .
CONCATENATE 'Field' index INTO
wa_it_fldcat-fieldname .
CONDENSE wa_it_fldcat-fieldname NO-GAPS.
wa_it_fldcat-ref_table = 'SFLIGHT'.
wa_it_fldcat-ref_field = 'CONNID'.
wa_it_fldcat-col_pos = 2.
wa_it_fldcat-datatype = 'NUMC'.
wa_it_fldcat-intlen = 4.
APPEND wa_it_fldcat TO it_fldcat.
CLEAR wa_it_fldcat.
WHEN 3 .
CONCATENATE 'Field' index INTO
wa_it_fldcat-fieldname .
CONDENSE wa_it_fldcat-fieldname NO-GAPS.
wa_it_fldcat-ref_table = 'SPFLI'.
wa_it_fldcat-ref_field = 'CITYFROM'.
wa_it_fldcat-col_pos = 3.
wa_it_fldcat-datatype = 'CHAR'.
wa_it_fldcat-intlen = 20.
APPEND wa_it_fldcat TO it_fldcat.
CLEAR wa_it_fldcat.
WHEN 4 .
CONCATENATE 'Field' index INTO
wa_it_fldcat-fieldname .
CONDENSE wa_it_fldcat-fieldname NO-GAPS.
wa_it_fldcat-ref_table = 'SFLIGHT'.
wa_it_fldcat-ref_field = 'FLDATE'.
wa_it_fldcat-col_pos = 4.
wa_it_fldcat-datatype = 'DATS'.
wa_it_fldcat-intlen = 8.
APPEND wa_it_fldcat TO it_fldcat.
CLEAR wa_it_fldcat.
WHEN 5.
CONCATENATE 'Field' index INTO
wa_it_fldcat-fieldname .
CONDENSE wa_it_fldcat-fieldname NO-GAPS.
wa_it_fldcat-col_pos = 5.
wa_it_fldcat-datatype = 'CHAR'.
wa_it_fldcat-intlen = 3.
APPEND wa_it_fldcat TO it_fldcat.
CLEAR wa_it_fldcat.
WHEN OTHERS.
CONCATENATE 'Field' index INTO
wa_it_fldcat-fieldname .
CONDENSE wa_it_fldcat-fieldname NO-GAPS.
wa_it_fldcat-datatype = 'CLNT'.
wa_it_fldcat-intlen = 3.
APPEND wa_it_fldcat TO it_fldcat.
CLEAR wa_it_fldcat.
ENDCASE.
ENDDO.
CLEAR wa_it_fldcat.
**Create the table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
IMPORTING
ep_table = my_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
STOP.
ENDIF.
ASSIGN my_table->* TO <fs_table>.
Create header line of table
CREATE DATA my_line LIKE LINE OF <fs_table>.
ASSIGN my_line->* TO <fs_wa>.
WRITE:/ sy-subrc.
WRITE:/ 'from dynamic itab'.
ENDFORM. "build_dyn_itab
----
FORM dyitab *
----
........ *
----
FORM dyitab.
CALL FUNCTION 'LVC_TRANSFER_TO_SLIS'
EXPORTING
it_fieldcat_lvc = it_fldcat
IT_SORT_LVC =
IT_FILTER_LVC =
IS_LAYOUT_LVC =
IMPORTING
et_fieldcat_alv = i_fc1
ET_SORT_ALV =
ET_FILTER_ALV =
ES_LAYOUT_ALV =
TABLES
IT_DATA =
EXCEPTIONS
IT_DATA_MISSING = 1
IT_FIELDCAT_LVC_MISSING = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = i_fc1
TABLES
t_outtab = <fs_table>.
ENDFORM.
----
FORM data *
----
........ *
*----
FORM data.
LOOP AT itab1
INTO wa1.
LOOP AT i_fc1 INTO w_fc1.
ASSIGN COMPONENT w_fc1-fieldname OF STRUCTURE <fs_wa> TO
<fs_value_out>.
WRITE:/ sy-subrc.
IF sy-subrc = 0.
WRITE:/'its assigned!'.
ASSIGN COMPONENT w_fc1-fieldname OF STRUCTURE wa1 TO
<fs_value_in>.
<fs_value_out> = <fs_value_in>.
ENDIF.
ENDLOOP.
APPEND <fs_wa> TO <fs_table>.
ENDLOOP.
ENDFORM.