mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 07:39:24 +08:00
Popup to select: New feature multiselect (#1427)
* popup to select: enable mutliselect fixup * allow preselect
This commit is contained in:
parent
ba47b24f3a
commit
b7b464d981
|
@ -9,6 +9,7 @@ CLASS z2ui5_cl_pop_to_select DEFINITION
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_s_result,
|
BEGIN OF ty_s_result,
|
||||||
row TYPE REF TO data,
|
row TYPE REF TO data,
|
||||||
|
table TYPE REF TO data,
|
||||||
check_confirmed TYPE abap_bool,
|
check_confirmed TYPE abap_bool,
|
||||||
END OF ty_s_result .
|
END OF ty_s_result .
|
||||||
|
|
||||||
|
@ -26,6 +27,7 @@ CLASS z2ui5_cl_pop_to_select DEFINITION
|
||||||
!i_contentwidth TYPE clike OPTIONAL
|
!i_contentwidth TYPE clike OPTIONAL
|
||||||
!i_contentheight TYPE clike OPTIONAL
|
!i_contentheight TYPE clike OPTIONAL
|
||||||
!i_growingthreshold TYPE clike OPTIONAL
|
!i_growingthreshold TYPE clike OPTIONAL
|
||||||
|
!i_multiselect TYPE abap_bool OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_select .
|
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_select .
|
||||||
METHODS result
|
METHODS result
|
||||||
|
@ -43,6 +45,7 @@ CLASS z2ui5_cl_pop_to_select DEFINITION
|
||||||
DATA content_height TYPE string .
|
DATA content_height TYPE string .
|
||||||
DATA growing_threshold TYPE string .
|
DATA growing_threshold TYPE string .
|
||||||
DATA descending TYPE abap_bool .
|
DATA descending TYPE abap_bool .
|
||||||
|
DATA multiselect TYPE abap_bool.
|
||||||
|
|
||||||
METHODS on_event .
|
METHODS on_event .
|
||||||
METHODS display .
|
METHODS display .
|
||||||
|
@ -66,9 +69,11 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
r_result->content_height = i_contentheight.
|
r_result->content_height = i_contentheight.
|
||||||
r_result->content_width = i_contentwidth.
|
r_result->content_width = i_contentwidth.
|
||||||
r_result->growing_threshold = i_growingthreshold.
|
r_result->growing_threshold = i_growingthreshold.
|
||||||
|
r_result->multiselect = i_multiselect.
|
||||||
|
|
||||||
r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ).
|
r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ).
|
||||||
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
|
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
|
||||||
|
CREATE DATA r_result->ms_result-table LIKE i_tab.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -92,7 +97,8 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
contentwidth = content_width
|
contentwidth = content_width
|
||||||
contentheight = content_height
|
contentheight = content_height
|
||||||
growingthreshold = growing_threshold
|
growingthreshold = growing_threshold
|
||||||
title = title ).
|
title = title
|
||||||
|
multiselect = multiselect ).
|
||||||
|
|
||||||
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||||
DELETE lt_comp WHERE name = 'ZZSELKZ'.
|
DELETE lt_comp WHERE name = 'ZZSELKZ'.
|
||||||
|
@ -120,6 +126,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD z2ui5_if_app~main.
|
METHOD z2ui5_if_app~main.
|
||||||
|
|
||||||
me->client = client.
|
me->client = client.
|
||||||
|
@ -135,6 +142,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD on_event.
|
METHOD on_event.
|
||||||
|
|
||||||
CASE client->get( )-event.
|
CASE client->get( )-event.
|
||||||
|
@ -183,8 +191,11 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
DATA(lo_elem) = CAST cl_abap_elemdescr( lo_table->get_table_line_type( ) ).
|
DATA(lo_elem) = CAST cl_abap_elemdescr( lo_table->get_table_line_type( ) ).
|
||||||
INSERT VALUE #( name = 'TAB_LINE' type = CAST #( lo_elem ) ) INTO TABLE lt_comp.
|
INSERT VALUE #( name = 'TAB_LINE' type = CAST #( lo_elem ) ) INTO TABLE lt_comp.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
DATA(lo_type_bool) = cl_abap_structdescr=>describe_by_name( 'ABAP_BOOL' ).
|
|
||||||
INSERT VALUE #( name = `ZZSELKZ` type = CAST #( lo_type_bool ) ) INTO TABLE lt_comp.
|
IF NOT line_exists( lt_comp[ name = `ZZSELKZ` ] ).
|
||||||
|
DATA(lo_type_bool) = cl_abap_structdescr=>describe_by_name( 'ABAP_BOOL' ).
|
||||||
|
INSERT VALUE #( name = `ZZSELKZ` type = CAST #( lo_type_bool ) ) INTO TABLE lt_comp.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
DATA(lo_line_type) = cl_abap_structdescr=>create( lt_comp ).
|
DATA(lo_line_type) = cl_abap_structdescr=>create( lt_comp ).
|
||||||
DATA(lo_tab_type) = cl_abap_tabledescr=>create( lo_line_type ).
|
DATA(lo_tab_type) = cl_abap_tabledescr=>create( lo_line_type ).
|
||||||
|
@ -213,15 +224,16 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD on_event_confirm.
|
METHOD on_event_confirm.
|
||||||
|
|
||||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||||
FIELD-SYMBOLS <row_selected> TYPE any.
|
FIELD-SYMBOLS <row_selected> TYPE any.
|
||||||
FIELD-SYMBOLS <selkz> TYPE any.
|
FIELD-SYMBOLS <selkz> TYPE any.
|
||||||
FIELD-SYMBOLS <row_result> TYPE any.
|
FIELD-SYMBOLS <row_result> TYPE any.
|
||||||
|
FIELD-SYMBOLS <table_result> TYPE ANY TABLE.
|
||||||
FIELD-SYMBOLS <table_line_selected> TYPE any.
|
FIELD-SYMBOLS <table_line_selected> TYPE any.
|
||||||
ASSIGN mr_tab_popup->* TO <tab>.
|
ASSIGN mr_tab_popup->* TO <tab>.
|
||||||
|
ASSIGN ms_result-table->* TO <table_result>.
|
||||||
|
|
||||||
LOOP AT <tab> ASSIGNING <row_selected>.
|
LOOP AT <tab> ASSIGNING <row_selected>.
|
||||||
|
|
||||||
|
@ -233,14 +245,20 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
|
|
||||||
ASSIGN ms_result-row->* TO <row_result>.
|
ASSIGN ms_result-row->* TO <row_result>.
|
||||||
IF check_table_line = abap_true.
|
IF check_table_line = abap_true.
|
||||||
|
|
||||||
ASSIGN ('<ROW_SELECTED>-TAB_LINE') TO <table_line_selected>.
|
ASSIGN ('<ROW_SELECTED>-TAB_LINE') TO <table_line_selected>.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
<row_result> = <table_line_selected>.
|
<row_result> = <table_line_selected>.
|
||||||
ELSE.
|
ELSE.
|
||||||
<row_result> = CORRESPONDING #( <row_selected> ).
|
<row_result> = CORRESPONDING #( <row_selected> ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
EXIT.
|
|
||||||
|
IF multiselect = abap_false.
|
||||||
|
EXIT.
|
||||||
|
ELSE.
|
||||||
|
INSERT <row_result> INTO TABLE <table_result>.
|
||||||
|
CLEAR <row_result>.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
client->popup_destroy( ).
|
client->popup_destroy( ).
|
||||||
|
@ -285,4 +303,5 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||||
client->popup_model_update( ).
|
client->popup_model_update( ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user