Gyan Factory

Gyan Factory
SAP Technical Project Support

Saturday, December 12, 2015

RTTS : Dynamic internal table creation

 







REPORT z_demo_rtts.

TABLES:  tkeig.

*** Tables
DATAit_data TYPE REF TO data.
DATAit_fieldcatalog TYPE lvc_t_fcat.

*** Structure
DATAwa_fieldcatalog TYPE lvc_s_fcat,
      wa_dd03l TYPE dd03l.

*** Data References
DATAnew_line TYPE REF TO data.

*** Field Symbols
FIELD-SYMBOLS<fs_data> TYPE REF TO data,
               <fs_it> TYPE ANY TABLE,
               <fs_wa>,
               <fs_wa_component>.

DATAv_field_count TYPE i,
      v_count       TYPE i.

SELECT-OPTIONSs_field FOR  tkeig-fieldname.

LOOP AT s_field.
  SELECT SINGLE FROM dd03l INTO wa_dd03l WHERE fieldname s_field-low.
  IF sy-subrc 0.
    wa_fieldcatalog-fieldname s_field-low.
    wa_fieldcatalog-inttype wa_dd03l-inttype.
    APPEND wa_fieldcatalog TO it_fieldcatalog.
  ENDIF.
ENDLOOP.

*wa_fieldcatalog-fieldname = 'CARRID'. "Fieldname
*wa_fieldcatalog-inttype = 'C'. "Internal Type C-> Character
*APPEND wa_fieldcatalog TO it_fieldcatalog.


ASSIGN it_data TO <fs_data>.

CALL METHOD cl_alv_table_create=>create_dynamic_table
  EXPORTING
    it_fieldcatalog           it_fieldcatalog
  IMPORTING
    ep_table                  <fs_data>
  EXCEPTIONS
    generate_subpool_dir_full 1
    OTHERS                    2.
IF sy-subrc <> 0.
ENDIF.


*** So <fs_it> now points to our dynamic internal table.
ASSIGN <fs_data>->TO <fs_it>.

*** Next step is to create a work area for our dynamic internal table.
CREATE DATA new_line LIKE LINE OF <fs_it>.

*** A field-symbol to access that work area
ASSIGN new_line->*  TO <fs_wa>.

*** And to put the data in the internal table
SELECT *
  FROM vbap
  UP TO ROWS
  INTO CORRESPONDING FIELDS OF TABLE <fs_it>.

LOOP AT s_field.
  WRITEs_field-low.
ENDLOOP.

DESCRIBE TABLE s_field LINES v_field_count.

*** Access contents of internal table
LOOP AT <fs_it> ASSIGNING <fs_wa>.

  NEW-LINE.
  v_count 0.
  DO v_field_count TIMES.
  v_count v_count + 1.
  ASSIGN COMPONENT v_count OF STRUCTURE <fs_wa> TO <fs_wa_component>.
  WRITE<fs_wa_component>.
  WRITE'                  '.
  ENDDO.

*  ASSIGN COMPONENT 2 OF STRUCTURE <fs_wa> TO <fs_wa_component>.
*  WRITE: <fs_wa_component>.

ENDLOOP.



http://www.gyanfactory.com/sap-abap-course-details.html

No comments:

Post a Comment