mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Fix variant maintainance for abapGit report (#5627)
This commit is contained in:
parent
ddf1c048a0
commit
80b60e9cde
|
@ -50,7 +50,7 @@ INCLUDE zabapgit_forms.
|
||||||
|
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
INITIALIZATION.
|
INITIALIZATION.
|
||||||
PERFORM remove_toolbar USING '1001'. " Remove toolbar on html screen
|
PERFORM adjust_toolbar USING '1001'.
|
||||||
lcl_password_dialog=>on_screen_init( ).
|
lcl_password_dialog=>on_screen_init( ).
|
||||||
|
|
||||||
START-OF-SELECTION.
|
START-OF-SELECTION.
|
||||||
|
|
|
@ -78,11 +78,15 @@ FORM output.
|
||||||
TABLES
|
TABLES
|
||||||
p_exclude = lt_ucomm.
|
p_exclude = lt_ucomm.
|
||||||
|
|
||||||
TRY.
|
" For variant maintenance we have to omit this because
|
||||||
zcl_abapgit_ui_factory=>get_gui( )->set_focus( ).
|
" it instantiates controls and hides maintenance screens.
|
||||||
CATCH zcx_abapgit_exception INTO lx_error.
|
IF zcl_abapgit_factory=>get_environment( )->is_variant_maintenance( ) = abap_false.
|
||||||
MESSAGE lx_error TYPE 'S' DISPLAY LIKE 'E'.
|
TRY.
|
||||||
ENDTRY.
|
zcl_abapgit_ui_factory=>get_gui( )->set_focus( ).
|
||||||
|
CATCH zcx_abapgit_exception INTO lx_error.
|
||||||
|
MESSAGE lx_error TYPE 'S' DISPLAY LIKE 'E'.
|
||||||
|
ENDTRY.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDFORM.
|
ENDFORM.
|
||||||
|
|
||||||
|
@ -128,12 +132,13 @@ FORM password_popup
|
||||||
|
|
||||||
ENDFORM.
|
ENDFORM.
|
||||||
|
|
||||||
FORM remove_toolbar USING pv_dynnr TYPE sy-dynnr.
|
FORM adjust_toolbar USING pv_dynnr TYPE sy-dynnr.
|
||||||
|
|
||||||
DATA: ls_header TYPE rpy_dyhead,
|
DATA: ls_header TYPE rpy_dyhead,
|
||||||
lt_containers TYPE dycatt_tab,
|
lt_containers TYPE dycatt_tab,
|
||||||
lt_fields_to_containers TYPE dyfatc_tab,
|
lt_fields_to_containers TYPE dyfatc_tab,
|
||||||
lt_flow_logic TYPE swydyflow.
|
lt_flow_logic TYPE swydyflow,
|
||||||
|
lv_no_toolbar LIKE ls_header-no_toolbar.
|
||||||
|
|
||||||
CALL FUNCTION 'RPY_DYNPRO_READ'
|
CALL FUNCTION 'RPY_DYNPRO_READ'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -154,11 +159,16 @@ FORM remove_toolbar USING pv_dynnr TYPE sy-dynnr.
|
||||||
RETURN. " Ignore errors, just exit
|
RETURN. " Ignore errors, just exit
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF ls_header-no_toolbar = abap_true.
|
" Remove toolbar on html screen but re-insert toolbar for variant maintenance.
|
||||||
|
" Because otherwise important buttons are missing and variant maintenance is not possible.
|
||||||
|
lv_no_toolbar = boolc( zcl_abapgit_factory=>get_environment(
|
||||||
|
)->is_variant_maintenance( ) = abap_false ).
|
||||||
|
|
||||||
|
IF ls_header-no_toolbar = lv_no_toolbar.
|
||||||
RETURN. " No change required
|
RETURN. " No change required
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ls_header-no_toolbar = abap_true.
|
ls_header-no_toolbar = lv_no_toolbar.
|
||||||
|
|
||||||
CALL FUNCTION 'RPY_DYNPRO_INSERT'
|
CALL FUNCTION 'RPY_DYNPRO_INSERT'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
|
|
@ -200,4 +200,17 @@ CLASS zcl_abapgit_environment IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD zif_abapgit_environment~is_variant_maintenance.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_variscreens TYPE STANDARD TABLE OF rsdynnr
|
||||||
|
WITH NON-UNIQUE DEFAULT KEY.
|
||||||
|
|
||||||
|
" Memory is set in LSVARF08 / EXPORT_SCREEN_TABLES.
|
||||||
|
IMPORT variscreens = lt_variscreens FROM MEMORY ID '%_SCRNR_%'.
|
||||||
|
|
||||||
|
rv_is_variant_maintenance = boolc( lines( lt_variscreens ) > 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -31,4 +31,7 @@ INTERFACE zif_abapgit_environment
|
||||||
METHODS get_system_language_filter
|
METHODS get_system_language_filter
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_system_language_filter) TYPE ty_system_language_filter.
|
VALUE(rt_system_language_filter) TYPE ty_system_language_filter.
|
||||||
|
METHODS is_variant_maintenance
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_is_variant_maintenance) TYPE abap_bool.
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user