CLASS lcl_show_window DEFINITION FINAL. PUBLIC SECTION. CLASS-METHODS show IMPORTING !i_title TYPE string CHANGING !c_itab TYPE STANDARD TABLE . CLASS-METHODS show2 IMPORTING !i_title1 TYPE string !i_title2 TYPE string CHANGING !c_itab1 TYPE STANDARD TABLE !c_itab2 TYPE STANDARD TABLE . PROTECTED SECTION. PRIVATE SECTION. CLASS-METHODS on_close FOR EVENT close OF cl_gui_dialogbox_container IMPORTING !sender . ENDCLASS. CLASS lcl_show_window IMPLEMENTATION. METHOD on_close. IF sender IS NOT INITIAL. sender->free( ). ENDIF. ENDMETHOD. METHOD show. TRY. * Window-Style hier ohne cl_gui_control=>ws_thickframe vordefinieren, da sonst das Fenster nicht richtig maximized werden kann DATA(i_style) = cl_gui_control=>ws_minimizebox + cl_gui_control=>ws_maximizebox + cl_gui_control=>ws_sysmenu. * Bildschirmauflösung ermitteln DATA(lv_metric_factors) = cl_gui_props_consumer=>create_consumer( )->get_metric_factors( ). * https://download.consolut.com/direct/SAP_PrintDoku/de/BCCIDOCK/BCCIDOCK.PDF * Top, Left, Width, Height in Pixel DATA(o_cnt) = NEW cl_gui_dialogbox_container( no_autodef_progid_dynnr = abap_true caption = |{ i_title }| top = 1 left = 1 width = lv_metric_factors-screen-x height = lv_metric_factors-screen-y style = i_style metric = cl_gui_dialogbox_container=>metric_pixel ). * Dialogbox-Container fullscreen (maximized) setzen * o_cnt->set_alignment( cl_gui_control=>align_at_left + cl_gui_control=>align_at_right + cl_gui_control=>align_at_top + cl_gui_control=>align_at_bottom ). * OnClose-Handler für cl_gui_dialogbox_container SET HANDLER on_close FOR o_cnt. * SALV-Grid DATA: o_salv TYPE REF TO cl_salv_table. cl_salv_table=>factory( EXPORTING r_container = o_cnt IMPORTING r_salv_table = o_salv CHANGING t_table = c_itab ). o_salv->get_functions( )->set_all( abap_true ). o_salv->get_columns( )->set_optimize( abap_true ). o_salv->get_display_settings( )->set_list_header( |{ i_title }| ). o_salv->get_display_settings( )->set_striped_pattern( abap_true ). o_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ). o_salv->display( ). CATCH cx_root. ENDTRY. ENDMETHOD. METHOD show2. TRY. * Window-Style hier ohne cl_gui_control=>ws_thickframe vordefinieren, da sonst das Fenster nicht richtig maximized werden kann DATA(i_style) = cl_gui_control=>ws_minimizebox + cl_gui_control=>ws_maximizebox + cl_gui_control=>ws_sysmenu. * Bildschirmauflösung ermitteln DATA(lv_metric_factors) = cl_gui_props_consumer=>create_consumer( )->get_metric_factors( ). * https://download.consolut.com/direct/SAP_PrintDoku/de/BCCIDOCK/BCCIDOCK.PDF * Top, Left, Width, Height in Pixel DATA(o_cnt) = NEW cl_gui_dialogbox_container( no_autodef_progid_dynnr = abap_true caption = |{ i_title1 }, { i_title2 }| top = 1 left = 1 width = lv_metric_factors-screen-x height = lv_metric_factors-screen-y style = i_style metric = cl_gui_dialogbox_container=>metric_pixel ). * Dialogbox-Container fullscreen (maximized) setzen * o_cnt->set_alignment( cl_gui_control=>align_at_left + cl_gui_control=>align_at_right + cl_gui_control=>align_at_top + cl_gui_control=>align_at_bottom ). * OnClose-Handler für cl_gui_dialogbox_container SET HANDLER on_close FOR o_cnt. * Referenzen auf GUI-Objekte * Splitter DATA: o_splitter TYPE REF TO cl_gui_splitter_container. * horizontaler Splitter in cl_gui_dialogbox_container einbetten o_splitter = NEW #( parent = o_cnt no_autodef_progid_dynnr = abap_true rows = 2 columns = 1 ). * Splittercontainer auf 50% o_splitter->set_row_height( id = 1 height = 50 ). * Splittercontainer oben/unten holen DATA(o_cnt_s1) = o_splitter->get_container( row = 1 column = 1 ). DATA(o_cnt_s2) = o_splitter->get_container( row = 2 column = 1 ). * SALV-Grid 1 in Splittercontainer oben DATA: o_salv1 TYPE REF TO cl_salv_table. cl_salv_table=>factory( EXPORTING r_container = o_cnt_s1 IMPORTING r_salv_table = o_salv1 CHANGING t_table = c_itab1 ). o_salv1->get_functions( )->set_all( abap_true ). o_salv1->get_columns( )->set_optimize( abap_true ). o_salv1->get_display_settings( )->set_list_header( |{ i_title1 }| ). o_salv1->get_display_settings( )->set_striped_pattern( abap_true ). o_salv1->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ). o_salv1->display( ). * SALV-Grid 2 in Splittercontainer unten DATA: o_salv2 TYPE REF TO cl_salv_table. cl_salv_table=>factory( EXPORTING r_container = o_cnt_s2 IMPORTING r_salv_table = o_salv2 CHANGING t_table = c_itab2 ). o_salv2->get_functions( )->set_all( abap_true ). o_salv2->get_columns( )->set_optimize( abap_true ). o_salv2->get_display_settings( )->set_list_header( |{ i_title2 }| ). o_salv2->get_display_settings( )->set_striped_pattern( abap_true ). o_salv2->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ). o_salv2->display( ). CATCH cx_root. ENDTRY. ENDMETHOD. ENDCLASS. START-OF-SELECTION. * Beispieldaten SELECT FROM mara FIELDS * INTO TABLE @DATA(it_mara) UP TO 100 ROWS. IF sy-subrc = 0. SELECT FROM marc FIELDS * INTO TABLE @DATA(it_marc) UP TO 100 ROWS. IF sy-subrc = 0. * interne Tabelle im Window anzeigen lcl_show_window=>show( EXPORTING i_title = |MARA| CHANGING c_itab = it_mara ). * zwei interne Tabellen in einem Window mit Splitter anzeigen lcl_show_window=>show2( EXPORTING i_title1 = |MARA| i_title2 = |MARC| CHANGING c_itab1 = it_mara c_itab2 = it_marc ). ENDIF. ENDIF. * cl_gui_container=>default_screen erzwingen WRITE: space.
Kategorien
-
Neueste Beiträge
- [SAP] ABAP Cloud Developer Trial 2022 SP01 unter Windows installieren
- [ABAP] GTT: Globale Temporäre Tabellen zum Zwischenspeichern von Daten
- [SAP] ABAP Unit Testing – Writing Testable Code for ABAP
- [ABAP] ABAP2XLSX: Inhalt einer Worksheet in eine interne Tabelle schreiben
- [ABAP] Suchhilfe zu DDIC-Feld bestimmen
- Crypto-Währungen
- Konzentration und Verhältnis von bestimmten Fettsäuren haben Einfluss auf Krebsrisiko
- [ABAP] Projektdefinition zu einem PSP-Element lesen
- [ABAP] DMS: Dokumentenstatus lesen
- [ABAP] DMS: Dokumentenstatus setzen