mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 22:04:38 +08:00
parent
bb38302bc4
commit
83393c3fcf
|
@ -646,7 +646,7 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
LOOP AT lt_components INTO DATA(ls_comp).
|
||||
|
||||
DATA(lv_from) = ls_comp-name.
|
||||
REPLACE ALL OCCURRENCES OF `_` IN lv_from WITH ``.
|
||||
* REPLACE ALL OCCURRENCES OF `_` IN lv_from WITH ``.
|
||||
ASSIGN COMPONENT lv_from OF STRUCTURE <ls_from> TO FIELD-SYMBOL(<comp_from>).
|
||||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
|
|
|
@ -81,7 +81,7 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
|||
)->text( `Define view, implement behaviour`
|
||||
)->link( text = `(Example)`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/blob/main/src/01/02/z2ui5_cl_fw_ui_hello_world.clas.abap`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/blob/main/src/03/02/z2ui5_cl_app_hello_world.clas.abap`
|
||||
)->label( `Step 4` ).
|
||||
|
||||
IF ms_home-class_editable = abap_true.
|
||||
|
|
|
@ -1,16 +1,29 @@
|
|||
CLASS z2ui5_cl_popup_to_select DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
data mt_tab type string.
|
||||
METHODS display.
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_tab TYPE data
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_to_select.
|
||||
|
||||
METHODS get_selected_index
|
||||
RETURNING
|
||||
VALUE(result) TYPE i.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA mr_tab TYPE REF TO data.
|
||||
DATA mr_tab_popup TYPE REF TO data ##NEEDED.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
METHODS z2ui5_on_event.
|
||||
METHODS display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -18,38 +31,98 @@ ENDCLASS.
|
|||
|
||||
CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = new #( ).
|
||||
CREATE DATA r_result->mr_tab LIKE i_tab.
|
||||
FIELD-SYMBOLS <tab> TYPE any.
|
||||
ASSIGN r_result->mr_tab->* TO <tab>.
|
||||
<tab> = i_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = Z2UI5_cl_xml_view=>factory_popup( client )->dialog( 'abap2UI5 - Popup to select entry'
|
||||
)->table(
|
||||
mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_tab )
|
||||
)->columns(
|
||||
)->column( )->text( 'Title' )->get_parent(
|
||||
)->column( )->text( 'Color' )->get_parent(
|
||||
)->column( )->text( 'Info' )->get_parent(
|
||||
)->column( )->text( 'Description' )->get_parent(
|
||||
)->get_parent(
|
||||
)->items( )->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{TITLE}'
|
||||
)->text( '{VALUE}'
|
||||
)->text( '{INFO}'
|
||||
)->text( '{DESCR}'
|
||||
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'continue'
|
||||
press = client->_event( 'POPUP_TABLE_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( client ).
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE any.
|
||||
ASSIGN mr_tab->* TO <tab>.
|
||||
popup = popup->table_select_dialog(
|
||||
items = `{path:'` && client->_bind_edit( val = <tab> path = abap_true ) && `', sorter : { path : 'STORAGE_LOCATION', descending : false } }`
|
||||
cancel = client->_event( 'CANCEL' )
|
||||
search = client->_event( val = 'SEARCH' t_arg = VALUE #( ( `${$parameters>/value}` ) ( `${$parameters>/clearButtonPressed}` ) ) )
|
||||
confirm = client->_event( val = 'CONFIRM' t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) )
|
||||
).
|
||||
|
||||
|
||||
DATA(lo_type) = cl_abap_structdescr=>describe_by_data( <tab> ).
|
||||
DATA(lo_table) = CAST cl_abap_tabledescr( lo_type ).
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr( lo_table->get_table_line_type( ) ).
|
||||
DATA(lt_comp) = lo_struct->get_components( ).
|
||||
|
||||
DATA(list) = popup->column_list_item( valign = `Top` selected = `{SELKZ}` ).
|
||||
DATA(cells) = popup->cells( ).
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
cells->text( text = `{` && ls_comp-name && `}` ).
|
||||
ENDLOOP.
|
||||
|
||||
DATA(columns) = list->columns( ).
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
columns->column( width = '8rem' )->header( ns = `` )->text( text = ls_comp-name ).
|
||||
ENDLOOP.
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
* Z2UI5_f4_set_data( ).
|
||||
display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
z2ui5_on_event( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_on_event.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'CONFIRM'.
|
||||
* DELETE mt_f4_table WHERE selkz <> abap_true.
|
||||
* mv_product = VALUE #( mt_f4_table[ 1 ]-product OPTIONAL ).
|
||||
* client->view_model_update( ).
|
||||
|
||||
WHEN 'CANCEL'.
|
||||
client->popup_destroy( ).
|
||||
|
||||
WHEN 'SEARCH'.
|
||||
* DATA(lt_arg) = client->get( )-t_event_arg.
|
||||
* READ TABLE lt_arg INTO DATA(ls_arg) INDEX 1.
|
||||
* Z2UI5_f4_set_data( ).
|
||||
* LOOP AT mt_f4_table INTO DATA(ls_tab).
|
||||
* IF ls_tab-product CS ls_arg.
|
||||
* CONTINUE.
|
||||
* ENDIF.
|
||||
* DELETE mt_f4_table.
|
||||
* ENDLOOP.
|
||||
client->popup_model_update( ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_selected_index.
|
||||
|
||||
result = 1.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -6,6 +6,7 @@ CLASS z2ui5_cl_test_features DEFINITION PUBLIC.
|
|||
|
||||
DATA mv_check_popup_active TYPE abap_bool.
|
||||
DATA mv_check_initialized TYPE abap_bool.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
METHODS display_view
|
||||
|
@ -17,7 +18,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_TEST_FEATURES IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_test_features IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display_view.
|
||||
|
@ -44,10 +45,10 @@ CLASS Z2UI5_CL_TEST_FEATURES IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
if mv_check_initialized = abap_false.
|
||||
mv_check_initialized = abap_true.
|
||||
display_view( client ).
|
||||
endif.
|
||||
IF mv_check_initialized = abap_false.
|
||||
mv_check_initialized = abap_true.
|
||||
display_view( client ).
|
||||
ENDIF.
|
||||
* IF client->get( )-check_on_navigated = abap_true.
|
||||
* display_view( client ).
|
||||
* ENDIF.
|
||||
|
@ -69,7 +70,7 @@ CLASS Z2UI5_CL_TEST_FEATURES IMPLEMENTATION.
|
|||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'z2ui5_cl_ui_pop_messages'.
|
||||
data(lo_popup_msg) = z2ui5_cl_popup_messages=>factory(
|
||||
DATA(lo_popup_msg) = z2ui5_cl_popup_messages=>factory(
|
||||
i_messages = VALUE #(
|
||||
( message = 'An empty Report field causes an empty XML Message to be sent' type = 'E' id = 'MSG1' number = '001' )
|
||||
( message = 'Check was executed for wrong Scenario' type = 'E' id = 'MSG1' number = '002' )
|
||||
|
|
Loading…
Reference in New Issue
Block a user