mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Enhancement for Object Selector (#6009)
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
e6c67c4146
commit
0f87b87003
|
@ -40,6 +40,7 @@ CLASS zcl_abapgit_popups DEFINITION
|
||||||
ty_commit_value_tab_tt TYPE STANDARD TABLE OF ty_commit_value_tab WITH DEFAULT KEY.
|
ty_commit_value_tab_tt TYPE STANDARD TABLE OF ty_commit_value_tab WITH DEFAULT KEY.
|
||||||
|
|
||||||
CONSTANTS c_fieldname_selected TYPE abap_componentdescr-name VALUE `SELECTED` ##NO_TEXT.
|
CONSTANTS c_fieldname_selected TYPE abap_componentdescr-name VALUE `SELECTED` ##NO_TEXT.
|
||||||
|
CONSTANTS c_fieldname_obj_type TYPE abap_componentdescr-name VALUE `OBJ_TYPE` ##NO_TEXT.
|
||||||
CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A' ##NO_TEXT.
|
CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A' ##NO_TEXT.
|
||||||
|
|
||||||
DATA mo_select_list_popup TYPE REF TO cl_salv_table .
|
DATA mo_select_list_popup TYPE REF TO cl_salv_table .
|
||||||
|
@ -99,6 +100,13 @@ CLASS zcl_abapgit_popups DEFINITION
|
||||||
!et_commits TYPE zif_abapgit_definitions=>ty_commit_tt
|
!et_commits TYPE zif_abapgit_definitions=>ty_commit_tt
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
METHODS get_pfstatus
|
||||||
|
IMPORTING
|
||||||
|
!iv_selection_mode TYPE salv_de_constant
|
||||||
|
!iv_object_list TYPE abap_bool
|
||||||
|
EXPORTING
|
||||||
|
!ev_report TYPE sy-repid
|
||||||
|
!ev_pfstatus TYPE sy-pfkey.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -269,6 +277,35 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_pfstatus.
|
||||||
|
|
||||||
|
ev_report = 'SAPMSVIM'.
|
||||||
|
|
||||||
|
IF iv_selection_mode = if_salv_c_selection_mode=>single.
|
||||||
|
ev_pfstatus = '110'.
|
||||||
|
ELSE.
|
||||||
|
ev_pfstatus = '102'.
|
||||||
|
|
||||||
|
IF iv_object_list = abap_true.
|
||||||
|
" For object lists with multiple selections, try to use a PFSTATUS that includes
|
||||||
|
" an additional button to show other selection options
|
||||||
|
CALL FUNCTION 'RS_CUA_STATUS_CHECK'
|
||||||
|
EXPORTING
|
||||||
|
objectname = 'SELECT_MULTI_WK'
|
||||||
|
program = 'SAPLSEDI_POPUPS'
|
||||||
|
EXCEPTIONS
|
||||||
|
object_not_found = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
ev_report = 'SAPLSEDI_POPUPS'.
|
||||||
|
ev_pfstatus = 'SELECT_MULTI_WK'.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_selected_rows.
|
METHOD get_selected_rows.
|
||||||
|
|
||||||
DATA: lv_condition TYPE string,
|
DATA: lv_condition TYPE string,
|
||||||
|
@ -354,25 +391,32 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD on_select_list_function_click.
|
METHOD on_select_list_function_click.
|
||||||
|
|
||||||
|
DATA: lv_answer TYPE c LENGTH 1,
|
||||||
|
ls_position LIKE ms_position,
|
||||||
|
ls_selection TYPE spopli,
|
||||||
|
lt_selection TYPE TABLE OF spopli.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <lt_table> TYPE STANDARD TABLE,
|
FIELD-SYMBOLS: <lt_table> TYPE STANDARD TABLE,
|
||||||
<lg_line> TYPE any,
|
<lg_line> TYPE any,
|
||||||
|
<lv_object> TYPE tadir-object,
|
||||||
<lv_selected> TYPE abap_bool.
|
<lv_selected> TYPE abap_bool.
|
||||||
|
|
||||||
ASSIGN mr_table->* TO <lt_table>.
|
ASSIGN mr_table->* TO <lt_table>.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
" Work for functions of SAPMSVIM and SAPLSEDI_POPUPS
|
||||||
CASE e_salv_function.
|
CASE e_salv_function.
|
||||||
WHEN 'O.K.'.
|
WHEN 'O.K.' OR 'OK'.
|
||||||
mv_cancel = abap_false.
|
mv_cancel = abap_false.
|
||||||
mo_select_list_popup->close_screen( ).
|
mo_select_list_popup->close_screen( ).
|
||||||
|
|
||||||
WHEN 'ABR'.
|
WHEN 'ABR' OR 'CANCEL'.
|
||||||
"Canceled: clear list to overwrite nothing
|
"Canceled: clear list to overwrite nothing
|
||||||
CLEAR <lt_table>.
|
CLEAR <lt_table>.
|
||||||
mv_cancel = abap_true.
|
mv_cancel = abap_true.
|
||||||
mo_select_list_popup->close_screen( ).
|
mo_select_list_popup->close_screen( ).
|
||||||
|
|
||||||
WHEN 'SALL'.
|
WHEN 'SALL' OR 'SEL_ALL'.
|
||||||
LOOP AT <lt_table> ASSIGNING <lg_line>.
|
LOOP AT <lt_table> ASSIGNING <lg_line>.
|
||||||
|
|
||||||
ASSIGN COMPONENT c_fieldname_selected
|
ASSIGN COMPONENT c_fieldname_selected
|
||||||
|
@ -386,7 +430,7 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
|
|
||||||
mo_select_list_popup->refresh( ).
|
mo_select_list_popup->refresh( ).
|
||||||
|
|
||||||
WHEN 'DSEL'.
|
WHEN 'DSEL' OR 'SEL_DEL'.
|
||||||
LOOP AT <lt_table> ASSIGNING <lg_line>.
|
LOOP AT <lt_table> ASSIGNING <lg_line>.
|
||||||
|
|
||||||
ASSIGN COMPONENT c_fieldname_selected
|
ASSIGN COMPONENT c_fieldname_selected
|
||||||
|
@ -400,6 +444,73 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
|
|
||||||
mo_select_list_popup->refresh( ).
|
mo_select_list_popup->refresh( ).
|
||||||
|
|
||||||
|
WHEN 'SEL_KEY'.
|
||||||
|
ls_selection-varoption = 'All objects'.
|
||||||
|
APPEND ls_selection TO lt_selection.
|
||||||
|
ls_selection-varoption = 'Packages'.
|
||||||
|
APPEND ls_selection TO lt_selection.
|
||||||
|
ls_selection-varoption = 'DDIC objects'.
|
||||||
|
APPEND ls_selection TO lt_selection.
|
||||||
|
ls_selection-varoption = 'Source code'.
|
||||||
|
APPEND ls_selection TO lt_selection.
|
||||||
|
ls_selection-varoption = 'Enhancements'.
|
||||||
|
APPEND ls_selection TO lt_selection.
|
||||||
|
|
||||||
|
ls_position-start_column = ms_position-start_column + 20.
|
||||||
|
ls_position-start_row = ms_position-start_row + 5.
|
||||||
|
|
||||||
|
CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
|
||||||
|
EXPORTING
|
||||||
|
titel = 'Selection'
|
||||||
|
textline1 = 'Which objects should be selected?'
|
||||||
|
start_col = ls_position-start_column
|
||||||
|
start_row = ls_position-start_row
|
||||||
|
cursorline = 1
|
||||||
|
IMPORTING
|
||||||
|
answer = lv_answer
|
||||||
|
TABLES
|
||||||
|
t_spopli = lt_selection
|
||||||
|
EXCEPTIONS
|
||||||
|
OTHERS = 1.
|
||||||
|
IF sy-subrc <> 0 OR lv_answer = c_answer_cancel.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
LOOP AT <lt_table> ASSIGNING <lg_line>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT c_fieldname_obj_type OF STRUCTURE <lg_line> TO <lv_object>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
CASE lv_answer.
|
||||||
|
WHEN '2'. " Packages
|
||||||
|
IF 'DEVC' <> <lv_object>.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
WHEN '3'. " DDIC
|
||||||
|
IF zcl_abapgit_objects_activation=>is_ddic_type( <lv_object> ) = abap_false.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
WHEN '4'. " Source Code
|
||||||
|
IF 'CLAS,FUGR,INTF,PROG,TYPE' NS <lv_object>.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
WHEN '5'. " Enhancements
|
||||||
|
IF 'ENHO,ENHS,ENHC,ENSC' NS <lv_object>.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT c_fieldname_selected
|
||||||
|
OF STRUCTURE <lg_line>
|
||||||
|
TO <lv_selected>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
<lv_selected> = abap_true.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
mo_select_list_popup->refresh( ).
|
||||||
|
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
CLEAR <lt_table>.
|
CLEAR <lt_table>.
|
||||||
mo_select_list_popup->close_screen( ).
|
mo_select_list_popup->close_screen( ).
|
||||||
|
@ -578,6 +689,38 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_popups~choose_code_insp_check_variant.
|
||||||
|
|
||||||
|
DATA: lt_return TYPE STANDARD TABLE OF ddshretval.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_return> LIKE LINE OF lt_return.
|
||||||
|
|
||||||
|
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
|
||||||
|
EXPORTING
|
||||||
|
tabname = 'SCI_DYNP'
|
||||||
|
fieldname = 'CHKV'
|
||||||
|
TABLES
|
||||||
|
return_tab = lt_return
|
||||||
|
EXCEPTIONS
|
||||||
|
field_not_found = 1
|
||||||
|
no_help_for_field = 2
|
||||||
|
inconsistent_help = 3
|
||||||
|
no_values_found = 4
|
||||||
|
OTHERS = 5.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise_t100( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE lt_return ASSIGNING <ls_return>
|
||||||
|
WITH KEY retfield = 'SCI_DYNP-CHKV'.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
rv_check_variant = <ls_return>-fieldval.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_popups~choose_pr_popup.
|
METHOD zif_abapgit_popups~choose_pr_popup.
|
||||||
|
|
||||||
DATA lv_answer TYPE c LENGTH 1.
|
DATA lv_answer TYPE c LENGTH 1.
|
||||||
|
@ -966,7 +1109,9 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_popups~popup_to_select_from_list.
|
METHOD zif_abapgit_popups~popup_to_select_from_list.
|
||||||
|
|
||||||
DATA: lv_pfstatus TYPE sypfkey,
|
DATA: lv_pfstatus TYPE sy-pfkey,
|
||||||
|
lv_report TYPE sy-repid,
|
||||||
|
lv_object_list TYPE abap_bool,
|
||||||
lo_events TYPE REF TO cl_salv_events_table,
|
lo_events TYPE REF TO cl_salv_events_table,
|
||||||
lo_columns TYPE REF TO cl_salv_columns_table,
|
lo_columns TYPE REF TO cl_salv_columns_table,
|
||||||
lt_columns TYPE salv_t_column_ref,
|
lt_columns TYPE salv_t_column_ref,
|
||||||
|
@ -1012,18 +1157,6 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
cl_salv_table=>factory( IMPORTING r_salv_table = mo_select_list_popup
|
cl_salv_table=>factory( IMPORTING r_salv_table = mo_select_list_popup
|
||||||
CHANGING t_table = <lt_table> ).
|
CHANGING t_table = <lt_table> ).
|
||||||
|
|
||||||
CASE iv_selection_mode.
|
|
||||||
WHEN if_salv_c_selection_mode=>single.
|
|
||||||
lv_pfstatus = '110'.
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
lv_pfstatus = '102'.
|
|
||||||
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
mo_select_list_popup->set_screen_status( pfstatus = lv_pfstatus
|
|
||||||
report = 'SAPMSVIM' ).
|
|
||||||
|
|
||||||
mo_select_list_popup->set_screen_popup( start_column = ms_position-start_column
|
mo_select_list_popup->set_screen_popup( start_column = ms_position-start_column
|
||||||
end_column = ms_position-end_column
|
end_column = ms_position-end_column
|
||||||
start_line = ms_position-start_row
|
start_line = ms_position-start_row
|
||||||
|
@ -1093,8 +1226,23 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
|
IF ls_column-columnname = c_fieldname_obj_type.
|
||||||
|
lv_object_list = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
get_pfstatus(
|
||||||
|
EXPORTING
|
||||||
|
iv_selection_mode = iv_selection_mode
|
||||||
|
iv_object_list = lv_object_list
|
||||||
|
IMPORTING
|
||||||
|
ev_report = lv_report
|
||||||
|
ev_pfstatus = lv_pfstatus ).
|
||||||
|
|
||||||
|
mo_select_list_popup->set_screen_status( pfstatus = lv_pfstatus
|
||||||
|
report = lv_report ).
|
||||||
|
|
||||||
mo_select_list_popup->display( ).
|
mo_select_list_popup->display( ).
|
||||||
|
|
||||||
CATCH cx_salv_msg.
|
CATCH cx_salv_msg.
|
||||||
|
@ -1115,6 +1263,87 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_popups~popup_to_select_labels.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_all_labels TYPE zif_abapgit_repo_srv=>ty_labels,
|
||||||
|
ls_label LIKE LINE OF lt_all_labels,
|
||||||
|
lt_current_labels TYPE string_table,
|
||||||
|
lt_selected_labels LIKE lt_all_labels,
|
||||||
|
lt_columns_to_display TYPE zif_abapgit_definitions=>ty_alv_column_tt,
|
||||||
|
lt_preselected_rows TYPE zif_abapgit_popups=>ty_rows,
|
||||||
|
ls_columns_to_display LIKE LINE OF lt_columns_to_display,
|
||||||
|
lv_save_tabix TYPE i,
|
||||||
|
li_popup TYPE REF TO zif_abapgit_popups.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <lv_label> TYPE zif_abapgit_repo_srv=>ty_label,
|
||||||
|
<lv_current_label> TYPE LINE OF string_table.
|
||||||
|
|
||||||
|
lt_current_labels = zcl_abapgit_repo_labels=>split( iv_labels ).
|
||||||
|
|
||||||
|
lt_all_labels = zcl_abapgit_repo_srv=>get_instance( )->get_label_list( ).
|
||||||
|
|
||||||
|
" Add labels which are not saved yet
|
||||||
|
LOOP AT lt_current_labels ASSIGNING <lv_current_label>.
|
||||||
|
|
||||||
|
READ TABLE lt_all_labels TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY key_label
|
||||||
|
COMPONENTS label = <lv_current_label>.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
ls_label-label = <lv_current_label>.
|
||||||
|
INSERT ls_label INTO TABLE lt_all_labels.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
IF lines( lt_all_labels ) = 0.
|
||||||
|
zcx_abapgit_exception=>raise( |No labels maintained yet| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
SORT lt_all_labels.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM lt_all_labels.
|
||||||
|
|
||||||
|
" Preselect current labels
|
||||||
|
LOOP AT lt_all_labels ASSIGNING <lv_label>.
|
||||||
|
|
||||||
|
lv_save_tabix = sy-tabix.
|
||||||
|
|
||||||
|
READ TABLE lt_current_labels TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY table_line = <lv_label>-label.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
INSERT lv_save_tabix INTO TABLE lt_preselected_rows.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ls_columns_to_display-name = 'LABEL'.
|
||||||
|
ls_columns_to_display-text = 'Label'.
|
||||||
|
INSERT ls_columns_to_display INTO TABLE lt_columns_to_display.
|
||||||
|
|
||||||
|
li_popup = zcl_abapgit_ui_factory=>get_popups( ).
|
||||||
|
li_popup->popup_to_select_from_list(
|
||||||
|
EXPORTING
|
||||||
|
iv_header_text = 'Select labels'
|
||||||
|
iv_select_column_text = 'Add label'
|
||||||
|
it_list = lt_all_labels
|
||||||
|
iv_selection_mode = if_salv_c_selection_mode=>multiple
|
||||||
|
it_columns_to_display = lt_columns_to_display
|
||||||
|
it_preselected_rows = lt_preselected_rows
|
||||||
|
iv_start_column = 15
|
||||||
|
iv_end_column = 55
|
||||||
|
IMPORTING
|
||||||
|
et_list = lt_selected_labels ).
|
||||||
|
|
||||||
|
LOOP AT lt_selected_labels ASSIGNING <lv_label>.
|
||||||
|
IF rv_labels IS NOT INITIAL.
|
||||||
|
rv_labels = rv_labels && ','.
|
||||||
|
ENDIF.
|
||||||
|
rv_labels = rv_labels && <lv_label>-label.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_popups~popup_to_select_transports.
|
METHOD zif_abapgit_popups~popup_to_select_transports.
|
||||||
|
|
||||||
* todo, method to be renamed, it only returns one transport
|
* todo, method to be renamed, it only returns one transport
|
||||||
|
@ -1298,118 +1527,4 @@ CLASS zcl_abapgit_popups IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_popups~popup_to_select_labels.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lt_all_labels TYPE zif_abapgit_repo_srv=>ty_labels,
|
|
||||||
ls_label LIKE LINE OF lt_all_labels,
|
|
||||||
lt_current_labels TYPE string_table,
|
|
||||||
lt_selected_labels LIKE lt_all_labels,
|
|
||||||
lt_columns_to_display TYPE zif_abapgit_definitions=>ty_alv_column_tt,
|
|
||||||
lt_preselected_rows TYPE zif_abapgit_popups=>ty_rows,
|
|
||||||
ls_columns_to_display LIKE LINE OF lt_columns_to_display,
|
|
||||||
lv_save_tabix TYPE i,
|
|
||||||
li_popup TYPE REF TO zif_abapgit_popups.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <lv_label> TYPE zif_abapgit_repo_srv=>ty_label,
|
|
||||||
<lv_current_label> TYPE LINE OF string_table.
|
|
||||||
|
|
||||||
lt_current_labels = zcl_abapgit_repo_labels=>split( iv_labels ).
|
|
||||||
|
|
||||||
lt_all_labels = zcl_abapgit_repo_srv=>get_instance( )->get_label_list( ).
|
|
||||||
|
|
||||||
" Add labels which are not saved yet
|
|
||||||
LOOP AT lt_current_labels ASSIGNING <lv_current_label>.
|
|
||||||
|
|
||||||
READ TABLE lt_all_labels TRANSPORTING NO FIELDS
|
|
||||||
WITH KEY key_label
|
|
||||||
COMPONENTS label = <lv_current_label>.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
ls_label-label = <lv_current_label>.
|
|
||||||
INSERT ls_label INTO TABLE lt_all_labels.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
IF lines( lt_all_labels ) = 0.
|
|
||||||
zcx_abapgit_exception=>raise( |No labels maintained yet| ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
SORT lt_all_labels.
|
|
||||||
DELETE ADJACENT DUPLICATES FROM lt_all_labels.
|
|
||||||
|
|
||||||
" Preselect current labels
|
|
||||||
LOOP AT lt_all_labels ASSIGNING <lv_label>.
|
|
||||||
|
|
||||||
lv_save_tabix = sy-tabix.
|
|
||||||
|
|
||||||
READ TABLE lt_current_labels TRANSPORTING NO FIELDS
|
|
||||||
WITH KEY table_line = <lv_label>-label.
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
INSERT lv_save_tabix INTO TABLE lt_preselected_rows.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ls_columns_to_display-name = 'LABEL'.
|
|
||||||
ls_columns_to_display-text = 'Label'.
|
|
||||||
INSERT ls_columns_to_display INTO TABLE lt_columns_to_display.
|
|
||||||
|
|
||||||
li_popup = zcl_abapgit_ui_factory=>get_popups( ).
|
|
||||||
li_popup->popup_to_select_from_list(
|
|
||||||
EXPORTING
|
|
||||||
iv_header_text = 'Select labels'
|
|
||||||
iv_select_column_text = 'Add label'
|
|
||||||
it_list = lt_all_labels
|
|
||||||
iv_selection_mode = if_salv_c_selection_mode=>multiple
|
|
||||||
it_columns_to_display = lt_columns_to_display
|
|
||||||
it_preselected_rows = lt_preselected_rows
|
|
||||||
iv_start_column = 15
|
|
||||||
iv_end_column = 55
|
|
||||||
IMPORTING
|
|
||||||
et_list = lt_selected_labels ).
|
|
||||||
|
|
||||||
LOOP AT lt_selected_labels ASSIGNING <lv_label>.
|
|
||||||
IF rv_labels IS NOT INITIAL.
|
|
||||||
rv_labels = rv_labels && ','.
|
|
||||||
ENDIF.
|
|
||||||
rv_labels = rv_labels && <lv_label>-label.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_popups~choose_code_insp_check_variant.
|
|
||||||
|
|
||||||
DATA: lt_return TYPE STANDARD TABLE OF ddshretval.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_return> LIKE LINE OF lt_return.
|
|
||||||
|
|
||||||
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
|
|
||||||
EXPORTING
|
|
||||||
tabname = 'SCI_DYNP'
|
|
||||||
fieldname = 'CHKV'
|
|
||||||
TABLES
|
|
||||||
return_tab = lt_return
|
|
||||||
EXCEPTIONS
|
|
||||||
field_not_found = 1
|
|
||||||
no_help_for_field = 2
|
|
||||||
inconsistent_help = 3
|
|
||||||
no_values_found = 4
|
|
||||||
OTHERS = 5.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise_t100( ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
READ TABLE lt_return ASSIGNING <ls_return>
|
|
||||||
WITH KEY retfield = 'SCI_DYNP-CHKV'.
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
rv_check_variant = <ls_return>-fieldval.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user