Hello All,
I need help in printing the O/P.
Currently the program is displaying ALV.
However I need the O/P to be displayed like.
FIELDANAME1;FIELDNAME2;FIELDNAME3;....FNZ.
VALUE1;VALUE2;VALUE3....VZ.
-
;----
;
--
;
--
;
--
;.......
----;.
Code is below - Dynamically it will show the table contents
according to the tabel name.
&----
*& Report YREN_FIELDSDISPLAY
*&
&----
*&
*&
&----
REPORT YREN_FIELDSDISPLAY.
FIELD-SYMBOLS:
<f_tab1> TYPE STANDARD TABLE.
PARAMETERS:
p_tname TYPE tabname16 OBLIGATORY, " DEFAULT 'MARA' ,
p_rows(5) TYPE c DEFAULT '200'.
----
CLASS lcl_dynamic DEFINITION
----
*
----
CLASS lcl_dynamic DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS:
check_selection
EXCEPTIONS invalid_table,
main
EXCEPTIONS no_data_found,
display.
PRIVATE SECTION.
TYPE-POOLS: abap.
CLASS-DATA: tab TYPE REF TO cl_abap_structdescr,
wa_tab TYPE REF TO cl_abap_structdescr,
comp_tab TYPE cl_abap_structdescr=>component_table,
i_tab TYPE REF TO cl_abap_tabledescr,
i_table TYPE REF TO data.
ENDCLASS. "lcl_dynamic DEFINITION
----
CLASS lcl_dynamic IMPLEMENTATION
----
*
----
CLASS lcl_dynamic IMPLEMENTATION.
METHOD check_selection.
SELECT COUNT( * )
FROM dd02l
WHERE tabname = p_tname
AND as4local = 'A'
AND tabclass = 'TRANSP'.
IF sy-subrc = 0.
RAISE invalid_table.
ENDIF.
ENDMETHOD. "check_selection
METHOD main.
tab ?= cl_abap_typedescr=>describe_by_name( p_tname ).
comp_tab = tab->get_components( ).
wa_tab = cl_abap_structdescr=>create( comp_tab ).
i_tab = cl_abap_tabledescr=>create( wa_tab ).
CREATE DATA i_table TYPE HANDLE i_tab.
ASSIGN i_table->* TO <f_tab1>.
IF p_rows IS INITIAL.
p_rows = '50000'.
ENDIF.
*Get data
SELECT * FROM (p_tname)
INTO TABLE <f_tab1>
UP TO p_rows ROWS.
IF sy-subrc EQ 0.
RAISE no_data_found.
ENDIF.
ENDMETHOD. "main
METHOD display.
SET TITLEBAR sy-title
OF PROGRAM sy-cprog
WITH 'Display table:' p_tname.
DATA:
l_gr_alv TYPE REF TO cl_salv_table,
l_gr_functions TYPE REF TO cl_salv_functions.
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = l_gr_alv
CHANGING
t_table = <f_tab1>.
CATCH cx_salv_msg . "#EC NO_HANDLER
ENDTRY.
l_gr_functions = l_gr_alv->get_functions( ).
l_gr_functions->set_all( abap_true ).
l_gr_alv->display( ).
ENDMETHOD. "display
ENDCLASS. "lcl_dynamic IMPLEMENTATION
AT SELECTION-SCREEN.
CALL METHOD lcl_dynamic=>check_selection
EXCEPTIONS
invalid_table = 1.
IF sy-subrc EQ 0.
MESSAGE e001(00) WITH
p_tname ' is not a Transparant Table'.
ENDIF.
START-OF-SELECTION.
CALL METHOD lcl_dynamic=>main
EXCEPTIONS
no_data_found = 1.
IF sy-subrc EQ 0.
MESSAGE i001(00) WITH 'No data found'.
LEAVE LIST-PROCESSING.
ENDIF.
END-OF-SELECTION.
CALL METHOD lcl_dynamic=>display.
Thanks,
Varun.