@@ -3,31 +3,21 @@ CLASS z2ui5_cl_layo_sample_01 DEFINITION PUBLIC.
3
3
PUBLIC SECTION .
4
4
INTERFACES z2ui5_if_app.
5
5
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 .
24
11
25
12
METHODS on_event.
26
13
METHODS view_display.
27
14
METHODS set_data.
15
+ METHODS on_init.
28
16
17
+ PROTECTED SECTION .
29
18
PRIVATE SECTION .
30
- DATA mo_multiselect TYPE REF TO z2ui5_cl_layo_selscreen.
19
+
20
+
31
21
ENDCLASS .
32
22
33
23
@@ -37,61 +27,24 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
37
27
38
28
CASE client->get( )-event.
39
29
40
- WHEN 'LIST_OPEN' .
41
- mo_multiselect = z2ui5_cl_layo_selscreen=>factory( mt_filter ).
42
- mo_multiselect->on_event( client ).
43
- RETURN .
44
-
45
30
WHEN `BUTTON_START` .
46
31
set_data( ).
47
32
client->view_model_update( ).
48
33
49
- WHEN `PREVIEW_FILTER` .
50
- client->nav_app_call( z2ui5_cl_pop_get_range_m=>factory( mt_filter ) ).
51
-
52
34
WHEN 'BACK' .
53
- client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
35
+ client->nav_app_leave( ).
36
+
54
37
ENDCASE .
55
38
56
39
ENDMETHOD .
57
40
58
41
METHOD set_data .
59
42
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 ).
91
44
SELECT FROM (mv_tabname)
92
45
FIELDS
93
46
*
94
- * where (lv_result )
47
+ WHERE (lv_where )
95
48
INTO TABLE @mr_table->*
96
49
UP TO 100 ROWS .
97
50
@@ -104,44 +57,48 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
104
57
view = view->shell( )->page( id = `page_main`
105
58
title = 'abap2UI5 - Select-Options'
106
59
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( ) ).
108
61
109
- DATA (vbox ) = view->vbox( )->input( value = client->_bind_edit( mv_tabname )
110
- description = `Tablename` ).
62
+ DATA (vbox ) = view->vbox( ).
111
63
112
- vbox->button( text = `GO`
113
- press = client->_event( 'TAB' ) ).
64
+ * ->input( value = mv_tabname
65
+ * enabled = abap_false
66
+ * description = `Tablename` ).
114
67
115
- DATA (lo_multiselect ) = z2ui5_cl_layo_selscreen=>factory( mt_filter ).
68
+ * vbox->button( text = `GO`
69
+ * press = client->_event( 'TAB' ) ).
116
70
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 ).
120
79
121
80
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> )
123
82
)->header_toolbar(
124
83
)->overflow_toolbar(
125
84
)->toolbar_spacer(
126
- * )->button( text = `Filter` press = client->_event( `PREVIEW_FILTER` ) icon = `sap-icon://filter`
127
- )->button( text = `Go`
85
+ )->button( text = `Go`
128
86
press = client->_event( `BUTTON_START` )
129
87
type = `Emphasized`
130
88
)->get_parent( )->get_parent( ).
131
89
132
90
DATA (lo_columns ) = tab->columns( ).
133
- lo_columns->column( )->text( text = `SPRLS ` ).
91
+ lo_columns->column( )->text( text = `SPRSL ` ).
134
92
lo_columns->column( )->text( text = `ARBGB` ).
135
93
lo_columns->column( )->text( text = `MSGNR` ).
136
94
lo_columns->column( )->text( text = `TEXT` ).
137
95
138
96
DATA (lo_cells ) = tab->items( )->column_list_item( ).
139
- lo_cells->text( `{SPRLS }` ).
97
+ lo_cells->text( `{SPRSL }` ).
140
98
lo_cells->text( `{ARBGB}` ).
141
99
lo_cells->text( `{MSGNR}` ).
142
100
lo_cells->text( `{TEXT}` ).
143
101
144
-
145
102
client->view_display( view->stringify( ) ).
146
103
147
104
ENDMETHOD .
@@ -150,32 +107,12 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
150
107
151
108
me ->client = client .
152
109
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( ).
164
112
RETURN .
165
113
ENDIF .
166
114
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 ).
179
116
RETURN .
180
117
ENDIF .
181
118
@@ -185,4 +122,13 @@ CLASS z2ui5_cl_layo_sample_01 IMPLEMENTATION.
185
122
186
123
ENDMETHOD .
187
124
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
+
188
134
ENDCLASS .
0 commit comments