@@ -3,31 +3,21 @@ CLASS z2ui5_cl_layo_sample_01 DEFINITION PUBLIC.
33 PUBLIC SECTION .
44 INTERFACES z2ui5_if_app.
55
6- TYPES :
7- BEGIN OF ty_s_tab,
8- selkz TYPE abap_bool ,
9- product TYPE string ,
10- create_date TYPE string ,
11- create_by TYPE string ,
12- storage_location TYPE string ,
13- quantity TYPE i ,
14- END OF ty_s_tab.
15- TYPES ty_t_table TYPE STANDARD TABLE OF ty_s_tab WITH EMPTY KEY .
16-
17- DATA mv_tabname TYPE string .
18- DATA mr_table TYPE REF TO data .
19- DATA mt_filter TYPE z2ui5_cl_util=>ty_t_filter_multi.
20-
21- PROTECTED SECTION .
22- DATA client TYPE REF TO z2ui5_if_client.
23- DATA mv_check_initialized TYPE abap_bool .
6+ DATA mv_tabname TYPE string VALUE `T100` .
7+ DATA mr_table TYPE REF TO data .
8+ DATA mo_multiselect TYPE REF TO z2ui5_cl_layo_selscreen.
9+ DATA client TYPE REF TO z2ui5_if_client.
10+ DATA mv_expanded TYPE abap_bool VALUE abap_true .
2411
2512 METHODS on_event.
2613 METHODS view_display.
2714 METHODS set_data.
15+ METHODS on_init.
2816
17+ PROTECTED SECTION .
2918 PRIVATE SECTION .
30- DATA mo_multiselect TYPE REF TO z2ui5_cl_layo_selscreen.
19+
20+
3121ENDCLASS .
3222
3323
@@ -37,61 +27,24 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
3727
3828 CASE client->get( )-event.
3929
40- WHEN 'LIST_OPEN' .
41- mo_multiselect = z2ui5_cl_layo_selscreen=>factory( mt_filter ).
42- mo_multiselect->on_event( client ).
43- RETURN .
44-
4530 WHEN `BUTTON_START` .
4631 set_data( ).
4732 client->view_model_update( ).
4833
49- WHEN `PREVIEW_FILTER` .
50- client->nav_app_call( z2ui5_cl_pop_get_range_m=>factory( mt_filter ) ).
51-
5234 WHEN 'BACK' .
53- client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
35+ client->nav_app_leave( ).
36+
5437 ENDCASE .
5538
5639 ENDMETHOD .
5740
5841 METHOD set_data .
5942
60- * DATA lt_range TYPE rs_t_rscedst.
61-
62- * LOOP AT mt_filter INTO DATA(ls_filter).
63- * LOOP AT ls_filter-t_range INTO DATA(ls_range).
64- *
65- * INSERT VALUE #(
66- * fnam = ls_filter-name
67- * sign = ls_range-sign
68- * option = ls_range-option
69- * low = ls_range-low
70- * high = ls_range-high
71- * ) INTO TABLE lt_range.
72- *
73- * ENDLOOP.
74- * ENDLOOP.
75-
76- * DATA lv_result TYPE string.
77- ** data lt_where type rsdmd_t_where.
78- * CALL FUNCTION 'RSDS_RANGE_TO_WHERE'
79- * EXPORTING
80- * i_t_range = lt_range
81- ** i_th_range =
82- ** i_r_renderer =
83- * IMPORTING
84- * e_where = lv_result
85- ** e_t_where = lt_where
86- ** EXCEPTIONS
87- ** internal_error = 1
88- ** others = 2
89- * .
90-
43+ DATA (lv_where ) = z2ui5_cl_util=>filter_get_sql_where( mo_multiselect->ms_result-t_filter ).
9144 SELECT FROM (mv_tabname)
9245 FIELDS
9346 *
94- * where (lv_result )
47+ WHERE (lv_where )
9548 INTO TABLE @mr_table->*
9649 UP TO 100 ROWS .
9750
@@ -104,44 +57,48 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
10457 view = view->shell( )->page( id = `page_main`
10558 title = 'abap2UI5 - Select-Options'
10659 navbuttonpress = client->_event( 'BACK' )
107- shownavbutton = xsdbool ( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ) ).
60+ shownavbutton = client->check_app_prev_stack( ) ).
10861
109- DATA (vbox ) = view->vbox( )->input( value = client->_bind_edit( mv_tabname )
110- description = `Tablename` ).
62+ DATA (vbox ) = view->vbox( ).
11163
112- vbox->button( text = `GO`
113- press = client->_event( 'TAB' ) ).
64+ * ->input( value = mv_tabname
65+ * enabled = abap_false
66+ * description = `Tablename` ).
11467
115- DATA (lo_multiselect ) = z2ui5_cl_layo_selscreen=>factory( mt_filter ).
68+ * vbox->button( text = `GO`
69+ * press = client->_event( 'TAB' ) ).
11670
117- lo_multiselect->set_output2( t_filter = mt_filter
118- client2 = client
119- view = vbox ).
71+
72+ DATA (lo_panel ) = vbox->panel(
73+ expandable = abap_true
74+ expanded = client->_bind_edit( mv_expanded )
75+ headertext = | Selection Screen|
76+ ).
77+
78+ mo_multiselect->set_output( client = client view = lo_panel ).
12079
12180 ASSIGN mr_table->* TO FIELD-SYMBOL (<table> ).
122- DATA (tab ) = vbox->table( items = client->_bind( val = <table> )
81+ DATA (tab ) = vbox->table( client->_bind( <table> )
12382 )->header_toolbar(
12483 )->overflow_toolbar(
12584 )->toolbar_spacer(
126- * )->button( text = `Filter` press = client->_event( `PREVIEW_FILTER` ) icon = `sap-icon://filter`
127- )->button( text = `Go`
85+ )->button( text = `Go`
12886 press = client->_event( `BUTTON_START` )
12987 type = `Emphasized`
13088 )->get_parent( )->get_parent( ).
13189
13290 DATA (lo_columns ) = tab->columns( ).
133- lo_columns->column( )->text( text = `SPRLS ` ).
91+ lo_columns->column( )->text( text = `SPRSL ` ).
13492 lo_columns->column( )->text( text = `ARBGB` ).
13593 lo_columns->column( )->text( text = `MSGNR` ).
13694 lo_columns->column( )->text( text = `TEXT` ).
13795
13896 DATA (lo_cells ) = tab->items( )->column_list_item( ).
139- lo_cells->text( `{SPRLS }` ).
97+ lo_cells->text( `{SPRSL }` ).
14098 lo_cells->text( `{ARBGB}` ).
14199 lo_cells->text( `{MSGNR}` ).
142100 lo_cells->text( `{TEXT}` ).
143101
144-
145102 client->view_display( view->stringify( ) ).
146103
147104 ENDMETHOD .
@@ -150,32 +107,12 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
150107
151108 me ->client = client .
152109
153- IF mv_check_initialized = abap_false .
154- mv_check_initialized = abap_true .
155- mv_tabname = `T100` .
156-
157- mr_table = z2ui5_cl_util=>rtti_create_tab_by_name( mv_tabname ).
158-
159- FIELD-SYMBOLS <table> TYPE STANDARD TABLE .
160- ASSIGN mr_table->* TO <table> .
161- mt_filter = z2ui5_cl_util=>filter_get_multi_by_data( <table> ).
162- * DELETE mt_filter WHERE name = `SELKZ`.
163- view_display( ).
110+ IF client->check_on_init( ).
111+ on_init( ).
164112 RETURN .
165113 ENDIF .
166114
167- IF client->get( )-check_on_navigated = abap_true .
168- TRY .
169- DATA (lo_popup ) = CAST z2ui5_cl_pop_get_range( client->get_app( client->get( )-s_draft-id_prev_app ) ).
170- IF lo_popup->result( )-check_confirmed = abap_true .
171- FIELD-SYMBOLS <tab> TYPE z2ui5_cl_util=>ty_s_filter_multi.
172- ASSIGN mt_filter[ name = mo_multiselect->mv_popup_name ] TO <tab> .
173- <tab> -t_range = lo_popup->result( )-t_range.
174- <tab> -t_token = z2ui5_cl_util=>filter_get_token_t_by_range_t( <tab> -t_range ).
175- client->view_model_update( ).
176- ENDIF .
177- CATCH cx_root.
178- ENDTRY .
115+ IF mo_multiselect->main( client ).
179116 RETURN .
180117 ENDIF .
181118
@@ -185,4 +122,13 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
185122
186123 ENDMETHOD .
187124
125+
126+ METHOD on_init .
127+
128+ mr_table = z2ui5_cl_util=>rtti_create_tab_by_name( mv_tabname ).
129+ mo_multiselect = z2ui5_cl_layo_selscreen=>factory_by_name( mv_tabname ).
130+ view_display( ).
131+
132+ ENDMETHOD .
133+
188134ENDCLASS .
0 commit comments