Displaying Data Dynamically Using Fieldsymbols

6
Introduction: - Displaying the table contents dynamically as per table name mentioned on selection screen with help of field symbols. If user enters MARA, then the data from MARA table is retrieved. If VBAK, then VBAK data is shown. 2. Steps:- Declare two parameter variables as below:- Create a field symbol as below:- Initially check whether table exists or not. If table exists in database then by using create data statement create the data object and assign the reference to data object of w_dref reference variable. Now assign the reference variable to field symbol as below: In runtime after assign statement the <t_itab> structure will be same as table name entered on selection screen. Now select the data from database and put it in field-symbol (dynamic internal table).

description

Displaying Data

Transcript of Displaying Data Dynamically Using Fieldsymbols

Page 1: Displaying Data Dynamically Using Fieldsymbols

   Introduction: - Displaying the table contents dynamically as per table name mentioned on selection screen with help of field symbols.  If user enters MARA, then the data from MARA table is retrieved. If VBAK, then VBAK data is shown.  

2.     Steps:- 

Declare two parameter variables as below:-

Create a field symbol as below:-

Initially check whether table exists or not.

If table exists in database then by using create data statement create the data object and assign the reference to data object of w_dref reference variable.

Now assign the reference variable to field symbol as below:

In runtime after assign statement the <t_itab> structure will be same as table name entered on selection screen.

Now select the data from database and put it in field-symbol (dynamic internal table).

Page 2: Displaying Data Dynamically Using Fieldsymbols

Now create the field catalog by using the function module  .

Display the data by using function module   as below:-

  

Example:-

Give table name as mara on selection screen and no of records as 100 and press

F8. 

List is displayed as below:

Page 3: Displaying Data Dynamically Using Fieldsymbols

Now give table name as VBAK and press F8.

Page 4: Displaying Data Dynamically Using Fieldsymbols

3.     Summary:-

The importance of this tutorial is to display the data as per table name mentioned on selection screen by user with Field symbols concept.

a)     First declare the two parameters one for table name and other for no of records to be displayed.

b)    Declare the field symbol of type standard table.

c)     Check table name given on selection screen exists or not.

d)    Create the internal table at runtime and select the data from table and place it in dynamic internal table (Field symbol).

e)     Create the field catalog and display the data.  

4.     Source Code:-

REPORT  y_saptechnical_dynamic NO STANDARD PAGE HEADING.

*"Type-pool............................................................TYPE-POOLS : slis.

*"Parameters elements..................................................PARAMETERS : p_table TYPE tabname OBLIGATORY,       " Table Name             p_no    TYPE i .                       " No of Records to be displayed

DATA:  w_dref    TYPE REF TO data,          " w_dref reference variable  t_line    TYPE c LENGTH 20.          " w_line to hold a line

DATA :  t_fcat  TYPE slis_t_fieldcat_alv.

FIELD-SYMBOLS: <t_itab> TYPE STANDARD TABLE.

START-OF-SELECTION.  SELECT SINGLE         tabname                       " Table Name    FROM dd02l    INTO t_line   WHERE tabname   EQ p_table     AND as4vers   EQ ' '     AND as4local  EQ 'A'     AND tabclass  NE 'INTTAB'     AND tabclass  NE 'APPEND'.

  IF sy-subrc EQ 0.    CREATE DATA w_dref TYPE STANDARD TABLE OF (p_table).    ASSIGN w_dref->* TO <t_itab>.    IF sy-subrc EQ 0.      SELECT *                         " All Fields        FROM (p_table)        INTO TABLE <t_itab> UP TO p_no ROWS.

Page 5: Displaying Data Dynamically Using Fieldsymbols

      IF sy-subrc EQ 0.        PERFORM fill_catalog.        PERFORM display.      ELSE.        MESSAGE text-002 TYPE 'S'.        EXIT.      ENDIF.                           " IF sy-subrc EQ 0...    ELSE.      MESSAGE text-003 TYPE 'S'.      EXIT.    ENDIF.  ELSE.    MESSAGE text-003 TYPE 'S'.    LEAVE LIST-PROCESSING.  ENDIF.                               " IF sy-subrc EQ 0...

FORM display .  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'    EXPORTING      it_fieldcat   = t_fcat    TABLES      t_outtab      = <t_itab>    EXCEPTIONS      program_error = 1      OTHERS        = 2.  IF sy-subrc <> 0.    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno DISPLAY LIKE 'E'            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.    EXIT.  ENDIF.                               " IF sy-subrc <> 0...ENDFORM.                               " DISPLAY

FORM fill_catalog .  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'    EXPORTING      i_program_name         = sy-repid      i_structure_name       = p_table    CHANGING      ct_fieldcat            = t_fcat    EXCEPTIONS      inconsistent_interface = 1      program_error          = 2      OTHERS                 = 3.  IF sy-subrc <> 0.    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno DISPLAY LIKE 'E'            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.    EXIT.  ENDIF.                               " IF sy-subrc <> 0...ENDFORM.                               " FILL_CATALOG