Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZMW_TESTOBJECTS2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zmw_testobjects2.
*&---------------------------------------------------------------------*
*& Global Declarations
*&---------------------------------------------------------------------*
TABLES: tabelle1,
tabelle2,
tabelle3.
*----------------------------------------------------------------------*
* SELECTION-SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK choices WITH FRAME.
PARAMETERS:
l_field1 TYPE tabelle1-field1 OBLIGATORY,
l_field2 TYPE tabelle2-field2 OBLIGATORY,
l_field3 TYPE tabelle2-field3,
l_field4 TYPE tabelle1-field4.
SELECTION-SCREEN END OF BLOCK choices.
*&---------------------------------------------------------------------*
*& Class Test Definition
*&---------------------------------------------------------------------*
CLASS test_class DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: read_data,
fill_list.
PRIVATE SECTION.
TYPES: BEGIN OF struc_out_table1,
field3 LIKE tabelle2-field3,
field2 LIKE tabelle2-field2,
field4 LIKE tabelle1-field4,
field1 LIKE tabelle1-field1,
field5 LIKE tabelle3-field5,
END OF struc_out_table1.
CLASS-DATA: it_out_table1 TYPE TABLE OF struc_out_table1,
ctl_salv_list TYPE REF TO cl_salv_table,
ctl_salv_exc TYPE REF TO cx_salv_msg.
ENDCLASS. "test_class DEFINITION
*&---------------------------------------------------------------------*
*& Class Test Implementation
*&---------------------------------------------------------------------*
CLASS test_class IMPLEMENTATION.
*&---------------------------------------------------------------------*
*& Method read_data
*&---------------------------------------------------------------------*
METHOD read_data.
SELECT tabelle2~field2 tabelle2~field3 tabelle1~field1
FROM tabelle2
INNER JOIN tabelle1
ON tabelle2~field3 = tabelle1~field3
INTO CORRESPONDING FIELDS OF TABLE it_out_table1
WHERE tabelle1~field1 = l_field1
AND tabelle2~field2 = l_field2
ORDER BY tabelle2~field3.
CALL METHOD fill_list.
ENDMETHOD. "read_data
*&---------------------------------------------------------------------*
*& Method fill_list
*&---------------------------------------------------------------------*
METHOD fill_list.
TRY.
cl_salv_table=>factory(
EXPORTING
list_display = 'X'
IMPORTING
r_salv_table = ctl_salv_list
CHANGING
t_table = it_out_table1
).
ctl_salv_list->display( ).
CATCH cx_salv_msg INTO ctl_salv_exc.
MESSAGE ctl_salv_exc TYPE 'I'
DISPLAY LIKE 'E'.
ENDTRY.
ENDMETHOD.
ENDCLASS. "test_class IMPLEMENTATION
START-OF-SELECTION.
test_class=>read_data( ).
Code: Alles auswählen.
DATA: lr_custom_container TYPE REF TO cl_gui_custom_container,
glr_grid TYPE REF TO cl_gui_alv_grid.
IF lr_custom_container IS INITIAL.
CREATE OBJECT lr_custom_container
EXPORTING
CONTAINER_NAME = 'C_CONTAINER'.
CREATE OBJECT lr_grid
EXPORTING
I_PARENT = lr_custom_container.
ENDIF.
CALL METHOD lr_grid->set_table_for_first_display
EXPORTING
* I_STRUCTURE_NAME = STRUCTURE_NAME'
IS_LAYOUT = ls_layout
CHANGING
IT_OUTTAB = gt_outtab
it_fieldcatalog = lt_fcat.
call METHOD cl_gui_cfw=>flush.Code: Alles auswählen.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'Structure_Name'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
CT_FIELDCAT = lt_fcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.