Demo program:
- CL_GUI_ALV_GRID + REUSE...: package SLIS
- CL_SALV_TABLE: package SALV_OM_OBJECTS
- CL_SALV_GUI_TABLE_IDA: package SALV_IDA_TEST
Program:
TABLES sscrfields.
SELECTION-SCREEN:
PUSHBUTTON 2(10) but1 USER-COMMAND cli1,
PUSHBUTTON 15(10) but2 USER-COMMAND cli2,
PUSHBUTTON 28(10) but3 USER-COMMAND cli3,
PUSHBUTTON 41(10) but4 USER-COMMAND cli4.
TYPES BEGIN OF ty.
INCLUDE TYPE sbook.
TYPES test TYPE c LENGTH 10.
TYPES icon TYPE c.
TYPES cbox TYPE c.
TYPES r_color TYPE c LENGTH 4.
TYPES END OF ty.
DATA: grid TYPE REF TO cl_gui_alv_grid,
salv TYPE REF TO cl_salv_table,
gt_sbook TYPE TABLE OF ty,
gs_layout TYPE lvc_s_layo,
gt_sort TYPE lvc_t_sort,
gt_fieldcat TYPE lvc_t_fcat.
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
INTERFACES: if_alv_rm_grid_friend.
METHODS:
subtotal_text FOR EVENT subtotal_text OF cl_gui_alv_grid IMPORTING es_subtottxt_info
ep_subtot_line
e_event_data,
after_refresh FOR EVENT after_refresh OF cl_gui_alv_grid IMPORTING sender,
_before_refresh FOR EVENT after_refresh OF cl_gui_alv_grid IMPORTING sender,
del_change_selection FOR EVENT delayed_changed_sel_callback OF cl_gui_alv_grid,
on_user_command FOR EVENT added_function OF cl_salv_events IMPORTING e_salv_function,
on_before_salv_function FOR EVENT before_salv_function OF cl_salv_events IMPORTING e_salv_function,
on_after_salv_function FOR EVENT after_salv_function OF cl_salv_events IMPORTING e_salv_function,
on_double_click FOR EVENT double_click OF cl_salv_events_table IMPORTING row column,
on_link_click FOR EVENT link_click OF cl_salv_events_table IMPORTING row column.
PRIVATE SECTION.
DATA: handler_added TYPE abap_bool.
ENDCLASS. "lcl_handle_events DEFINITION
CLASS lcl_handle_events IMPLEMENTATION.
METHOD subtotal_text.
ASSIGN e_event_data->m_data->* TO FIELD-SYMBOL(<fs>).
IF sy-subrc EQ 0.
<fs> = 'Total'.
ENDIF.
ENDMETHOD.
METHOD on_user_command.
BREAK-POINT.
ENDMETHOD.
METHOD on_before_salv_function.
BREAK-POINT.
ENDMETHOD.
METHOD on_after_salv_function.
BREAK-POINT.
ENDMETHOD.
METHOD on_double_click.
BREAK-POINT.
ENDMETHOD.
METHOD on_link_click.
BREAK-POINT.
ENDMETHOD.
METHOD del_change_selection.
ENDMETHOD.
METHOD _before_refresh.
BREAK-POINT.
ENDMETHOD.
METHOD after_refresh.
* BREAK-POINT.
* CHECK handler_added EQ abap_false.
* SET HANDLER me->del_change_selection FOR sender.
*
* sender->set_delay_change_selection(
* EXPORTING
* time = 100 " Time in Milliseconds
* EXCEPTIONS
* error = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
* sender->register_delayed_event(
* EXPORTING
* i_event_id = sender->mc_evt_delayed_change_select
* EXCEPTIONS
* error = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
* sender->get_frontend_fieldcatalog(
* IMPORTING
* et_fieldcatalog = gt_fieldcat
* ).
*
* ASSIGN gt_fieldcat[ fieldname = 'LOCCURAM' ] TO FIELD-SYMBOL(<fcat>).
* <fcat>-edit = 'X'.
*
* sender->set_frontend_fieldcatalog( it_fieldcatalog = gt_fieldcat ).
*
* sender->register_edit_event(
* EXPORTING
* i_event_id = sender->mc_evt_modified
* EXCEPTIONS
* error = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
* sender->set_ready_for_input(
* i_ready_for_input = 1
* ).
*
* sender->get_frontend_layout(
* IMPORTING
* es_layout = gs_layout ).
*
* gs_layout = VALUE #( BASE gs_layout totals_bef = 'X'
* no_totexp = 'X'
* no_totline = 'X'
* ).
*
* sender->set_frontend_layout( is_layout = gs_layout ).
*
* handler_added = abap_true.
**
* sender->refresh_table_display(
** EXPORTING
** is_stable = " With Stable Rows/Columns
** i_soft_refresh = " Without Sort, Filter, etc.
* EXCEPTIONS
* finished = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
ENDMETHOD.
ENDCLASS.
DATA: gr_events TYPE REF TO lcl_handle_events.
INITIALIZATION.
but1 = 'Grid'.
but2 = 'Salv'.
but3 = 'Tree'.
but4 = 'Seq'.
AT SELECTION-SCREEN.
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook UP TO 100 ROWS.
LOOP AT gt_sbook ASSIGNING FIELD-SYMBOL(<fs_book>).
* <fs_book>-test = <fs_book>-loccuram.
<fs_book>-test = 'Total'.
<fs_book>-icon = '1'.
* <fs_book>-r_color = 'C310'.
ENDLOOP.
CASE sscrfields.
WHEN 'CLI1'.
CREATE OBJECT grid
EXPORTING
i_parent = cl_gui_custom_container=>screen0
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gt_fieldcat = VALUE #( ( fieldname = 'CARRID' col_pos = 1 scrtext_s = 'CARRID' )"emphasize = 'C310' )"key = 'X' )
( fieldname = 'CONNID' col_pos = 2 scrtext_s = 'CONNID' no_out = 'X' )"key = 'X' )
( fieldname = 'LOCCURKEY' col_pos = 3 scrtext_s = 'LOCCURKEY' )"edit = 'X' )
( fieldname = 'LOCCURAM' col_pos = 4 scrtext_s = 'LOCCURAM' no_zero = 'X' cfieldname = 'LOCCURKEY' do_sum = 'X' )
( fieldname = 'TEST' col_pos = 5 scrtext_s = 'TEST' col_opt = 'X' quantity = '%')
* ( fieldname = 'ICON' col_pos = 6 scrtext_s = 'ICON' )
* ( fieldname = 'CBOX' col_pos = 7 scrtext_s = 'CBOX' checkbox = 'X')
).
gt_sort = VALUE #( "( fieldname = 'CARRID' up = 'X' subtot = 'X' )"expa = 'X' )
( fieldname = 'CONNID' up = 'X' subtot = 'X' )"expa = 'X' )
).
*
gs_layout = VALUE #( totals_bef = 'X'
* no_totexp = 'X'
* no_totline = 'X'
* excp_fname = 'ICON'
info_fname = 'R_COLOR'
).
CREATE OBJECT gr_events.
SET HANDLER gr_events->subtotal_text FOR grid.
* SET HANDLER gr_events->_before_refresh FOR grid.
CALL METHOD grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_sort = gt_sort
it_fieldcatalog = gt_fieldcat
it_outtab = gt_sbook.
grid->set_ready_for_input(
i_ready_for_input = 1
).
WRITE '.'.
WHEN 'CLI2'.
cl_salv_table=>factory(
* EXPORTING
* list_display = if_salv_c_bool_sap=>true
IMPORTING
r_salv_table = salv
CHANGING
t_table = gt_sbook ).
salv->get_functions( )->set_all( value = if_salv_c_bool_sap=>true ).
* salv->get_sorts( )->add_sort(
* EXPORTING
* columnname = 'CARRID'
* position = 1
* sequence = if_salv_c_sort=>sort_up
* subtotal = if_salv_c_bool_sap=>true
* ).
* salv->get_sorts( )->add_sort(
* EXPORTING
* columnname = 'CONNID'
* position = 1
* sequence = if_salv_c_sort=>sort_up
* subtotal = if_salv_c_bool_sap=>true
* ).
salv->get_aggregations( )->add_aggregation(
EXPORTING
columnname = 'LOCCURAM'
aggregation = if_salv_c_aggregation=>total ).
salv->get_sorts( )->add_sort(
EXPORTING
columnname = 'TEST'
subtotal = if_salv_c_bool_sap=>true
).
* salv->get_columns( )->get_column( columnname = 'TEST' )->set_short_text( value = 'abc' ).
salv->get_columns( )->get_column( columnname = 'TEST' )->set_visible( value = if_salv_c_bool_sap=>false ).
* salv->get_columns( )->get_column( columnname = 'CONNID' )->set_technical( value = if_salv_c_bool_sap=>true ).
salv->get_sorts( )->set_compressed_subtotal( value = 'TEST' ).
* CREATE OBJECT gr_events.
*
* SET HANDLER gr_events->on_user_command FOR salv->get_event( ).
* SET HANDLER gr_events->on_before_salv_function FOR salv->get_event( ).
* SET HANDLER gr_events->on_after_salv_function FOR salv->get_event( ).
* SET HANDLER gr_events->on_double_click FOR salv->get_event( ).
* SET HANDLER gr_events->on_link_click FOR salv->get_event( ).
*
* SET HANDLER gr_events->after_refresh FOR ALL INSTANCES.
* salv->refresh( ).
salv->display( ).
WHEN 'CLI3'.
DATA(lt_node) = VALUE snodetab( ( type = 'T'
name = 'SBOOK'
tlevel = '01'
nlength = '15'
color = '4'
text = 'Book'
tlength ='20'
tcolor = 3 ) ).
lt_node = VALUE snodetab( BASE lt_node FOR lw_data IN gt_sbook
( type = 'P' name = 'BOOKID' tlevel = '02' nlength = '6' color = '1' text = lw_data-bookid tlength ='8' tcolor = 4 ) ).
CALL FUNCTION 'RS_TREE_CONSTRUCT'
TABLES
nodetab = lt_node
EXCEPTIONS
tree_failure = 1
id_not_found = 2
wrong_relationship = 3
OTHERS = 4.
IF sy-subrc <> 0.
RETURN.
ENDIF.
CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
EXPORTING
callback_program = sy-repid
callback_top_of_page = 'TOP_OF_PAGE'.
* FORM top_of_page.
* DATA: t_header TYPE slis_t_listheader,
* wa_header TYPE slis_listheader,
* t_line LIKE wa_header-info,
* ld_lines TYPE i,
* ld_linesc(10) TYPE c.
*
* Title
* wa_header-typ = 'H'.
* wa_header-info = 'Test header'.
*
* APPEND wa_header TO t_header.
* CLEAR wa_header.
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* it_list_commentary = t_header.
* ENDFORM.
WHEN 'CLI4'.
WHEN OTHERS.
ENDCASE.
START-OF-SELECTION.
* grid->get_frontend_fieldcatalog(
* IMPORTING
* et_fieldcatalog = gt_fieldcat " Field Catalog
* ).
*
* DATA: lr_result TYPE REF TO cl_salv_ex_result_data_table,
* bin_tab TYPE TABLE OF x255,
* lv_len TYPE i.
*
* TRY.
* lr_result = cl_salv_ex_util=>factory_result_data_table(
* r_data = REF #( gt_sbook )
* t_fieldcatalog = gt_fieldcat ).
*
* cl_salv_bs_lex=>export_from_result_data_table(
* EXPORTING
* is_format = if_salv_bs_lex_format=>mc_format_csv
* ir_result_data_table = lr_result
* IMPORTING
* er_result_file = DATA(lr_xstring) ).
* CATCH cx_salv_unexpected_param_value .
* EXIT.
* ENDTRY.
*
* CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
* EXPORTING
* buffer = lr_xstring
** APPEND_TO_TABLE = ' '
* IMPORTING
* output_length = lv_len
* TABLES
* binary_tab = bin_tab.
- CL_GUI_ALV_GRID + REUSE...: package SLIS
- CL_SALV_TABLE: package SALV_OM_OBJECTS
- CL_SALV_GUI_TABLE_IDA: package SALV_IDA_TEST
Program:
TABLES sscrfields.
SELECTION-SCREEN:
PUSHBUTTON 2(10) but1 USER-COMMAND cli1,
PUSHBUTTON 15(10) but2 USER-COMMAND cli2,
PUSHBUTTON 28(10) but3 USER-COMMAND cli3,
PUSHBUTTON 41(10) but4 USER-COMMAND cli4.
TYPES BEGIN OF ty.
INCLUDE TYPE sbook.
TYPES test TYPE c LENGTH 10.
TYPES icon TYPE c.
TYPES cbox TYPE c.
TYPES r_color TYPE c LENGTH 4.
TYPES END OF ty.
DATA: grid TYPE REF TO cl_gui_alv_grid,
salv TYPE REF TO cl_salv_table,
gt_sbook TYPE TABLE OF ty,
gs_layout TYPE lvc_s_layo,
gt_sort TYPE lvc_t_sort,
gt_fieldcat TYPE lvc_t_fcat.
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
INTERFACES: if_alv_rm_grid_friend.
METHODS:
subtotal_text FOR EVENT subtotal_text OF cl_gui_alv_grid IMPORTING es_subtottxt_info
ep_subtot_line
e_event_data,
after_refresh FOR EVENT after_refresh OF cl_gui_alv_grid IMPORTING sender,
_before_refresh FOR EVENT after_refresh OF cl_gui_alv_grid IMPORTING sender,
del_change_selection FOR EVENT delayed_changed_sel_callback OF cl_gui_alv_grid,
on_user_command FOR EVENT added_function OF cl_salv_events IMPORTING e_salv_function,
on_before_salv_function FOR EVENT before_salv_function OF cl_salv_events IMPORTING e_salv_function,
on_after_salv_function FOR EVENT after_salv_function OF cl_salv_events IMPORTING e_salv_function,
on_double_click FOR EVENT double_click OF cl_salv_events_table IMPORTING row column,
on_link_click FOR EVENT link_click OF cl_salv_events_table IMPORTING row column.
PRIVATE SECTION.
DATA: handler_added TYPE abap_bool.
ENDCLASS. "lcl_handle_events DEFINITION
CLASS lcl_handle_events IMPLEMENTATION.
METHOD subtotal_text.
ASSIGN e_event_data->m_data->* TO FIELD-SYMBOL(<fs>).
IF sy-subrc EQ 0.
<fs> = 'Total'.
ENDIF.
ENDMETHOD.
METHOD on_user_command.
BREAK-POINT.
ENDMETHOD.
METHOD on_before_salv_function.
BREAK-POINT.
ENDMETHOD.
METHOD on_after_salv_function.
BREAK-POINT.
ENDMETHOD.
METHOD on_double_click.
BREAK-POINT.
ENDMETHOD.
METHOD on_link_click.
BREAK-POINT.
ENDMETHOD.
METHOD del_change_selection.
ENDMETHOD.
METHOD _before_refresh.
BREAK-POINT.
ENDMETHOD.
METHOD after_refresh.
* BREAK-POINT.
* CHECK handler_added EQ abap_false.
* SET HANDLER me->del_change_selection FOR sender.
*
* sender->set_delay_change_selection(
* EXPORTING
* time = 100 " Time in Milliseconds
* EXCEPTIONS
* error = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
* sender->register_delayed_event(
* EXPORTING
* i_event_id = sender->mc_evt_delayed_change_select
* EXCEPTIONS
* error = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
* sender->get_frontend_fieldcatalog(
* IMPORTING
* et_fieldcatalog = gt_fieldcat
* ).
*
* ASSIGN gt_fieldcat[ fieldname = 'LOCCURAM' ] TO FIELD-SYMBOL(<fcat>).
* <fcat>-edit = 'X'.
*
* sender->set_frontend_fieldcatalog( it_fieldcatalog = gt_fieldcat ).
*
* sender->register_edit_event(
* EXPORTING
* i_event_id = sender->mc_evt_modified
* EXCEPTIONS
* error = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
*
* sender->set_ready_for_input(
* i_ready_for_input = 1
* ).
*
* sender->get_frontend_layout(
* IMPORTING
* es_layout = gs_layout ).
*
* gs_layout = VALUE #( BASE gs_layout totals_bef = 'X'
* no_totexp = 'X'
* no_totline = 'X'
* ).
*
* sender->set_frontend_layout( is_layout = gs_layout ).
*
* handler_added = abap_true.
**
* sender->refresh_table_display(
** EXPORTING
** is_stable = " With Stable Rows/Columns
** i_soft_refresh = " Without Sort, Filter, etc.
* EXCEPTIONS
* finished = 1
* OTHERS = 2
* ).
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
ENDMETHOD.
ENDCLASS.
DATA: gr_events TYPE REF TO lcl_handle_events.
INITIALIZATION.
but1 = 'Grid'.
but2 = 'Salv'.
but3 = 'Tree'.
but4 = 'Seq'.
AT SELECTION-SCREEN.
SELECT * FROM sbook INTO CORRESPONDING FIELDS OF TABLE gt_sbook UP TO 100 ROWS.
LOOP AT gt_sbook ASSIGNING FIELD-SYMBOL(<fs_book>).
* <fs_book>-test = <fs_book>-loccuram.
<fs_book>-test = 'Total'.
<fs_book>-icon = '1'.
* <fs_book>-r_color = 'C310'.
ENDLOOP.
CASE sscrfields.
WHEN 'CLI1'.
CREATE OBJECT grid
EXPORTING
i_parent = cl_gui_custom_container=>screen0
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
gt_fieldcat = VALUE #( ( fieldname = 'CARRID' col_pos = 1 scrtext_s = 'CARRID' )"emphasize = 'C310' )"key = 'X' )
( fieldname = 'CONNID' col_pos = 2 scrtext_s = 'CONNID' no_out = 'X' )"key = 'X' )
( fieldname = 'LOCCURKEY' col_pos = 3 scrtext_s = 'LOCCURKEY' )"edit = 'X' )
( fieldname = 'LOCCURAM' col_pos = 4 scrtext_s = 'LOCCURAM' no_zero = 'X' cfieldname = 'LOCCURKEY' do_sum = 'X' )
( fieldname = 'TEST' col_pos = 5 scrtext_s = 'TEST' col_opt = 'X' quantity = '%')
* ( fieldname = 'ICON' col_pos = 6 scrtext_s = 'ICON' )
* ( fieldname = 'CBOX' col_pos = 7 scrtext_s = 'CBOX' checkbox = 'X')
).
gt_sort = VALUE #( "( fieldname = 'CARRID' up = 'X' subtot = 'X' )"expa = 'X' )
( fieldname = 'CONNID' up = 'X' subtot = 'X' )"expa = 'X' )
).
*
gs_layout = VALUE #( totals_bef = 'X'
* no_totexp = 'X'
* no_totline = 'X'
* excp_fname = 'ICON'
info_fname = 'R_COLOR'
).
CREATE OBJECT gr_events.
SET HANDLER gr_events->subtotal_text FOR grid.
* SET HANDLER gr_events->_before_refresh FOR grid.
CALL METHOD grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_sort = gt_sort
it_fieldcatalog = gt_fieldcat
it_outtab = gt_sbook.
grid->set_ready_for_input(
i_ready_for_input = 1
).
WRITE '.'.
WHEN 'CLI2'.
cl_salv_table=>factory(
* EXPORTING
* list_display = if_salv_c_bool_sap=>true
IMPORTING
r_salv_table = salv
CHANGING
t_table = gt_sbook ).
salv->get_functions( )->set_all( value = if_salv_c_bool_sap=>true ).
* salv->get_sorts( )->add_sort(
* EXPORTING
* columnname = 'CARRID'
* position = 1
* sequence = if_salv_c_sort=>sort_up
* subtotal = if_salv_c_bool_sap=>true
* ).
* salv->get_sorts( )->add_sort(
* EXPORTING
* columnname = 'CONNID'
* position = 1
* sequence = if_salv_c_sort=>sort_up
* subtotal = if_salv_c_bool_sap=>true
* ).
salv->get_aggregations( )->add_aggregation(
EXPORTING
columnname = 'LOCCURAM'
aggregation = if_salv_c_aggregation=>total ).
salv->get_sorts( )->add_sort(
EXPORTING
columnname = 'TEST'
subtotal = if_salv_c_bool_sap=>true
).
* salv->get_columns( )->get_column( columnname = 'TEST' )->set_short_text( value = 'abc' ).
salv->get_columns( )->get_column( columnname = 'TEST' )->set_visible( value = if_salv_c_bool_sap=>false ).
* salv->get_columns( )->get_column( columnname = 'CONNID' )->set_technical( value = if_salv_c_bool_sap=>true ).
salv->get_sorts( )->set_compressed_subtotal( value = 'TEST' ).
* CREATE OBJECT gr_events.
*
* SET HANDLER gr_events->on_user_command FOR salv->get_event( ).
* SET HANDLER gr_events->on_before_salv_function FOR salv->get_event( ).
* SET HANDLER gr_events->on_after_salv_function FOR salv->get_event( ).
* SET HANDLER gr_events->on_double_click FOR salv->get_event( ).
* SET HANDLER gr_events->on_link_click FOR salv->get_event( ).
*
* SET HANDLER gr_events->after_refresh FOR ALL INSTANCES.
* salv->refresh( ).
salv->display( ).
WHEN 'CLI3'.
DATA(lt_node) = VALUE snodetab( ( type = 'T'
name = 'SBOOK'
tlevel = '01'
nlength = '15'
color = '4'
text = 'Book'
tlength ='20'
tcolor = 3 ) ).
lt_node = VALUE snodetab( BASE lt_node FOR lw_data IN gt_sbook
( type = 'P' name = 'BOOKID' tlevel = '02' nlength = '6' color = '1' text = lw_data-bookid tlength ='8' tcolor = 4 ) ).
CALL FUNCTION 'RS_TREE_CONSTRUCT'
TABLES
nodetab = lt_node
EXCEPTIONS
tree_failure = 1
id_not_found = 2
wrong_relationship = 3
OTHERS = 4.
IF sy-subrc <> 0.
RETURN.
ENDIF.
CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
EXPORTING
callback_program = sy-repid
callback_top_of_page = 'TOP_OF_PAGE'.
* FORM top_of_page.
* DATA: t_header TYPE slis_t_listheader,
* wa_header TYPE slis_listheader,
* t_line LIKE wa_header-info,
* ld_lines TYPE i,
* ld_linesc(10) TYPE c.
*
* Title
* wa_header-typ = 'H'.
* wa_header-info = 'Test header'.
*
* APPEND wa_header TO t_header.
* CLEAR wa_header.
* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
* EXPORTING
* it_list_commentary = t_header.
* ENDFORM.
WHEN 'CLI4'.
WHEN OTHERS.
ENDCASE.
START-OF-SELECTION.
* grid->get_frontend_fieldcatalog(
* IMPORTING
* et_fieldcatalog = gt_fieldcat " Field Catalog
* ).
*
* DATA: lr_result TYPE REF TO cl_salv_ex_result_data_table,
* bin_tab TYPE TABLE OF x255,
* lv_len TYPE i.
*
* TRY.
* lr_result = cl_salv_ex_util=>factory_result_data_table(
* r_data = REF #( gt_sbook )
* t_fieldcatalog = gt_fieldcat ).
*
* cl_salv_bs_lex=>export_from_result_data_table(
* EXPORTING
* is_format = if_salv_bs_lex_format=>mc_format_csv
* ir_result_data_table = lr_result
* IMPORTING
* er_result_file = DATA(lr_xstring) ).
* CATCH cx_salv_unexpected_param_value .
* EXIT.
* ENDTRY.
*
* CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
* EXPORTING
* buffer = lr_xstring
** APPEND_TO_TABLE = ' '
* IMPORTING
* output_length = lv_len
* TABLES
* binary_tab = bin_tab.
Comments
Post a Comment