TYPES : BEGIN OF ty_s_customizing_tables, tabname TYPE dd02l-tabname, ddtext TYPE dd02t-ddtext, END OF ty_s_customizing_tables. TYPES: ty_it_customizing_tables TYPE STANDARD TABLE OF ty_s_customizing_tables WITH DEFAULT KEY. DATA: it_customizing_tables TYPE ty_it_customizing_tables. * Klasse für Eventhandling definieren CLASS lcl_events DEFINITION. PUBLIC SECTION. * Doppelklick CLASS-METHODS: on_double_click FOR EVENT double_click OF cl_salv_events_table IMPORTING row column sender. ENDCLASS. CLASS lcl_events IMPLEMENTATION. METHOD on_double_click. * Tabelle / Pflegeview DATA(lv_tab) = CONV dd02l-tabname( it_customizing_tables[ row ]-tabname ). * Customizingobjekte zu Tabelle anzeigen, ins SAP-IMG abspringen CALL FUNCTION 'OBJECT_MAINTENANCE_CALL' EXPORTING tabname = lv_tab EXCEPTIONS interface_not_correct = 1 transaction_not_maintained = 2 transaction_not_found = 3 table_not_activ = 4 table_not_found = 5 subobject_not_found_in_project = 6 subobject_not_found_in_guide = 7 object_not_found_in_project = 8 object_not_found_in_guide = 9 table_has_no_object_in_project = 10 table_has_no_object_in_guide = 11 outline_not_found = 12 call_transaction_recurring = 13 system_failure = 14 OTHERS = 15. DATA(lv_err) = ||. CASE sy-subrc. WHEN 1. lv_err = |INTERFACE_NOT_CORRECT|. WHEN 2. lv_err = |TRANSACTION_NOT_MAINTAINED|. WHEN 3. lv_err = |TRANSACTION_NOT_FOUND|. WHEN 4. lv_err = |TABLE_NOT_ACTIV|. WHEN 5. lv_err = |TABLE_NOT_FOUND|. WHEN 6. lv_err = |SUBOBJECT_NOT_FOUND_IN_PROJECT|. WHEN 7. lv_err = |SUBOBJECT_NOT_FOUND_IN_GUIDE|. WHEN 8. lv_err = |OBJECT_NOT_FOUND_IN_PROJECT|. WHEN 9. lv_err = |OBJECT_NOT_FOUND_IN_GUIDE|. WHEN 10. lv_err = |TABLE_HAS_NO_OBJECT_IN_PROJECT|. WHEN 11. lv_err = |TABLE_HAS_NO_OBJECT_IN_GUIDE|. WHEN 12. lv_err = |OUTLINE_NOT_FOUND|. WHEN 13. lv_err = |CALL_TRANSACTION_RECURRING|. WHEN 14. lv_err = |SYSTEM_FAILURE|. WHEN 15. lv_err = |OTHERS|. ENDCASE. MESSAGE |{ lv_err }| TYPE 'S' DISPLAY LIKE 'E'. ENDMETHOD. ENDCLASS. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (10) l_field FOR FIELD p_field. PARAMETER: p_field TYPE dd03vv-fieldname DEFAULT 'VSBED'. SELECTION-SCREEN END OF LINE. INITIALIZATION. l_field = 'Feldname:'. START-OF-SELECTION. * Customizingtabellen zu einem Datenfeld lesen SELECT t~tabname, tx~ddtext FROM dd03vv AS t INNER JOIN dd02l AS c ON t~tabname = c~tabname INNER JOIN dd02t AS tx ON t~tabname = tx~tabname INTO TABLE @it_customizing_tables WHERE t~fieldname = @p_field " Feldname AND t~tabclass = 'TRANSP' " transparente Tabellen AND t~as4local = 'A' " aktive Objekte AND c~contflag IN ('C', 'G') " Typ: Customizing-Tabellen AND tx~ddlanguage = @sy-langu. " Anmeldesprache TRY. * SALV-Table DATA: o_salv TYPE REF TO cl_salv_table. cl_salv_table=>factory( IMPORTING r_salv_table = o_salv CHANGING t_table = it_customizing_tables ). * Grundeinstellungen o_salv->get_functions( )->set_all( abap_true ). o_salv->get_columns( )->set_optimize( abap_true ). o_salv->get_display_settings( )->set_list_header( |Customizing-Tabellen zu Datenfeld { p_field } (Doppelklick -> IMG)| ). o_salv->get_display_settings( )->set_striped_pattern( abap_true ). o_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ). * Spaltenüberschriften: technischer Name und Beschreibungstexte LOOP AT o_salv->get_columns( )->get( ) ASSIGNING FIELD-SYMBOL(<c>). DATA(o_col) = <c>-r_column. o_col->set_short_text( || ). o_col->set_medium_text( || ). o_col->set_long_text( |{ o_col->get_columnname( ) } [{ o_col->get_long_text( ) }]| ). ENDLOOP. * Handler registrieren SET HANDLER lcl_events=>on_double_click FOR o_salv->get_event( ). o_salv->display( ). CATCH cx_root INTO DATA(e_txt). WRITE: / e_txt->get_text( ). ENDTRY.
Kategorien
-
Neueste Beiträge
- [ABAP] Ergebnisse eines SQL-Ausdrucks in einer Zeile verketten
- [SAP] Profit Center
- [SAP Fiori] Setup Fiori My Inbox
- [SAP Fiori] Setup der Fiori Suche / Fiori search
- [ABAP] Liste aller Umgebungsvariablen
- [ABAP] Muster-Leistungsverzeichnisse lesen
- [ABAP] ABAP2XLSX: Column Autosize, Verwendung Iterator
- [ABAP] Schlüsselspalten einer DB-Tabelle ermitteln
- [ABAP] SALV-Grid: Eventhandler für Klick auf eine Zelle (link_click, hotspot)
- [ABAP] Material-Ledger: Materialpreise für unterschiedliche Währungstypen pflegen