Skip to Content
0
Former Member
Sep 11, 2007 at 06:29 AM

DYNAMIC INTERNAL TABLE -HELP

32 Views

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.