@@ -30,21 +30,23 @@ CREATE PUBLIC .
3030 DATA mv_search_value TYPE string .
3131 DATA mt_table TYPE ty_t_table .
3232 DATA lv_selkz TYPE abap_bool .
33-
33+ DATA mv_check_active TYPE abap_bool .
3434 DATA :
3535 BEGIN OF screen ,
3636 progress_value TYPE string VALUE '0' ,
3737 display_value TYPE string VALUE '' ,
3838 END OF screen .
39+
40+ DATA mv_percent TYPE i .
41+ DATA mv_check_enabled TYPE abap_bool .
3942 PROTECTED SECTION .
4043
4144 DATA client TYPE REF TO z2ui5_if_client.
4245 DATA check_initialized TYPE abap_bool .
4346
47+
4448 METHODS z2ui5_on_init.
4549 METHODS z2ui5_on_event.
46- METHODS z2ui5_set_search.
47- METHODS z2ui5_set_data.
4850 PRIVATE SECTION .
4951
5052 METHODS set_selkz
@@ -86,46 +88,24 @@ CLASS z2ui5_cl_demo_app_064 IMPLEMENTATION.
8688 DATA ls_arg TYPE string .
8789
8890 CASE client->get( )-event.
89- WHEN 'BUTTON_SEARCH' OR 'BUTTON_START' .
90- client->message_toast_display( 'Search Entries' ).
91- z2ui5_set_data( ).
92- z2ui5_set_search( ).
93- client->view_model_update( ).
94- WHEN 'SORT' .
95-
96- lt_arg = client->get( )-t_event_arg.
97- client->message_toast_display( 'Event SORT' ).
98- WHEN 'FILTER' .
99- lt_arg = client->get( )-t_event_arg.
100- client->message_toast_display( 'Event FILTER' ).
101- WHEN 'SELKZ' .
102- client->message_toast_display( | 'Event SELKZ' { lv_selkz } | ).
103- set_selkz( lv_selkz ).
104- client->view_model_update( ).
105- WHEN 'CUSTOMFILTER' .
106- lt_arg = client->get( )-t_event_arg.
107- client->message_toast_display( 'Event CUSTOMFILTER' ).
10891 WHEN 'BACK' .
10992 client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
110- WHEN 'ROWEDIT' .
111- lt_arg = client->get( )-t_event_arg.
11293
113- READ TABLE lt_arg INTO ls_arg INDEX 1 .
114- IF sy -subrc = 0 .
115- client->message_toast_display( | Event ROWEDIT Row Index { ls_arg } | ).
116- ENDIF .
117- WHEN 'ROW_ACTION_ITEM_NAVIGATION' .
118- lt_arg = client->get( )-t_event_arg.
119- READ TABLE lt_arg INTO ls_arg INDEX 1 .
120- IF sy -subrc = 0 .
121- client->message_toast_display( | Event ROW_ACTION_ITEM_NAVIGATION Row Index { ls_arg } | ).
122- ENDIF .
123- WHEN 'ROW_ACTION_ITEM_EDIT' .
124- lt_arg = client->get( )-t_event_arg.
125- READ TABLE lt_arg INTO ls_arg INDEX 1 .
126- IF sy -subrc = 0 .
127- client->message_toast_display( | Event ROW_ACTION_ITEM_EDIT Row Index { ls_arg } | ).
94+ WHEN `LOAD` .
95+
96+ mv_percent = mv_percent + 25 .
97+ mv_check_active = abap_true .
98+ mv_check_enabled = abap_false .
99+ IF mv_percent > 100 .
100+ mv_percent = 0 .
101+ mv_check_active = abap_false .
102+ mv_check_enabled = abap_true .
128103 ENDIF .
104+
105+ client->message_toast_display( `loaded` ).
106+ WAIT UP TO 2 SECONDS .
107+ client->view_model_update( ).
108+
129109 ENDCASE .
130110
131111 ENDMETHOD .
@@ -134,169 +114,41 @@ CLASS z2ui5_cl_demo_app_064 IMPLEMENTATION.
134114 METHOD z2ui5_on_init .
135115
136116 DATA temp1 TYPE z2ui5_if_types=>ty_t_name_value.
137- DATA temp2 LIKE LINE OF temp1.
138117 DATA view TYPE REF TO z2ui5_cl_xml_view.
139118 DATA page1 TYPE REF TO z2ui5_cl_xml_view.
140119 DATA temp5 TYPE xsdboolean.
141- DATA page TYPE REF TO z2ui5_cl_xml_view.
142- DATA header_title TYPE REF TO z2ui5_cl_xml_view.
143- DATA lo_box TYPE REF TO z2ui5_cl_xml_view.
144- DATA cont TYPE REF TO z2ui5_cl_xml_view.
145- DATA tab TYPE REF TO z2ui5_cl_xml_view.
146- DATA lo_columns TYPE REF TO z2ui5_cl_xml_view.
147- DATA temp3 TYPE string_table.
148- DATA temp4 TYPE string_table.
149120 CLEAR temp1.
150121
122+ mv_check_enabled = abap_true .
151123 view = z2ui5_cl_xml_view=>factory( ).
152124
125+ view->_z2ui5( )->timer(
126+ finished = client->_event( 'LOAD' )
127+ checkactive = client->_bind( mv_check_active )
128+ ).
129+
153130 temp5 = xsdbool ( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ).
154- page1 = view->page( id = 'page_main'
155- title = 'abap2UI5 - sap.ui.table.Table Features '
131+ page1 = view->shell( )-> page( id = 'page_main'
132+ title = 'abap2UI5 - Progress Bar while Server Request '
156133 navbuttonpress = client->_event( 'BACK' )
157134 shownavbutton = temp5
158135 class = 'sapUiContentPadding' ).
159136
160- page1->header_content(
161- )->link(
162- text = 'Source_Code' target = '_blank'
163- ).
164-
165- */
166137 DATA layout TYPE REF TO z2ui5_cl_xml_view.
167138 layout = page1->vertical_layout( class = 'sapuicontentpadding' width = '100%' ).
168139 layout->vbox( )->progress_indicator(
169- percentvalue = client->_bind_edit( screen-progress_value )
140+ percentvalue = client->_bind_edit( mv_percent )
170141 displayvalue = client->_bind_edit( screen-display_value )
171142 showvalue = abap_true
143+ state = 'Success' ).
172144
173- state = 'Success'
174- ).
175- */
176- page = page1->dynamic_page( headerexpanded = abap_true headerpinned = abap_true ).
177-
178- header_title = page->title( ns = 'f' )->get( )->dynamic_page_title( ).
179- header_title->heading( ns = 'f' )->hbox( )->title( `Search Field` ).
180- header_title->expanded_content( 'f' ).
181- header_title->snapped_content( ns = 'f' ).
182-
183-
184- lo_box = page->header( )->dynamic_page_header( pinnable = abap_true
185- )->flex_box( alignitems = `Start` justifycontent = `SpaceBetween` )->flex_box( alignitems = `Start` ).
186-
187- lo_box->vbox( )->text( `Search` )->search_field(
188- value = client->_bind_edit( mv_search_value )
189- search = client->_event( 'BUTTON_SEARCH' )
190- change = client->_event( 'BUTTON_SEARCH' )
191- livechange = client->_event( 'BUTTON_SEARCH' )
192- width = `17.5rem`
193- id = `SEARCH` ).
194- lo_box->get_parent( )->hbox( justifycontent = 'end' )->button(
195- text = 'go'
196- press = client->_event( 'button_start' )
197- type = 'emphasized' ).
198-
199- cont = page->content( ns = 'f' ).
200-
201- tab = cont->ui_table( rows = client->_bind( val = mt_table )
202- editable = abap_false
203- alternaterowcolors = abap_true
204- rowactioncount = '2'
205- enablegrouping = abap_false
206- fixedcolumncount = '1'
207- selectionmode = 'None'
208- sort = client->_event( 'SORT' )
209- filter = client->_event( 'FILTER' )
210- customfilter = client->_event( 'CUSTOMFILTER' ) ).
211- tab->ui_extension( )->overflow_toolbar( )->title( text = 'Products' ).
212-
213- lo_columns = tab->ui_columns( ).
214- lo_columns->ui_column( width = '4rem' )->checkbox( selected = client->_bind_edit( lv_selkz ) enabled = abap_true select = client->_event( val = 'SELKZ' ) )->ui_template( )->checkbox( selected = '{SELKZ}' ).
215- lo_columns->ui_column( width = '5rem' sortproperty = 'ROW_ID'
216- filterproperty = 'ROW_ID' )->text( text = 'index' )->ui_template( )->text( text = '{row_id}' ).
217- lo_columns->ui_column( width = '11rem' sortproperty = 'CARRID' filterproperty = 'CARRID' )->text( text = 'carrid' )->ui_template( )->text( text = `{carrid}` ).
218- lo_columns->ui_column( width = '11rem' sortproperty = 'CONNID' filterproperty = 'CONNID' )->text( text = 'connid' )->ui_template( )->text( text = `{connid}` ).
219- lo_columns->ui_column( width = '11rem' sortproperty = 'FLDATE' filterproperty = 'FLDATE' )->text( text = 'fldate' )->ui_template( )->text( text = `{fldate}` ).
220- lo_columns->ui_column( width = '11rem' sortproperty = 'PLANETYPE' filterproperty = 'PLANETYPE' )->text( text = 'planetype' )->ui_template( )->text( text = `{planetype}` ).
221-
222- CLEAR temp3.
223- INSERT `${row_id}` INTO TABLE temp3.
224-
225- CLEAR temp4.
226- INSERT `${row_id}` INTO TABLE temp4.
227- lo_columns->get_parent( )->ui_row_action_template( )->ui_row_action(
228- )->ui_row_action_item( type = 'Navigation'
229- press = client->_event( val = 'ROW_ACTION_ITEM_NAVIGATION' t_arg = temp3 )
230- )->get_parent( )->ui_row_action_item( icon = 'sap-icon://edit' text = 'Edit' press = client->_event( val = 'ROW_ACTION_ITEM_EDIT' t_arg = temp4 ) ).
231-
232- lo_columns->ui_column( width = '4rem' )->text( )->ui_template( )->overflow_toolbar( )->overflow_toolbar_button(
233-
234- icon = 'sap-icon://edit' type = 'Transparent' press = client->_event(
235-
236- val = `rowedit` t_arg = VALUE #( ( `${row_id}` ) ) ) ).
145+ layout->button(
146+ text = `Load`
147+ press = client->_event( 'LOAD' )
148+ enabled = client->_bind( mv_check_enabled ) ).
237149
238150 client->view_display( view->stringify( ) ).
239- ENDMETHOD .
240151
241- METHOD z2ui5_set_data .
242-
243- * DATA temp5 TYPE ty_t_table.
244- * DATA temp6 LIKE LINE OF temp5.
245- * CLEAR temp5.
246- *
247- **/ fetch 1
248- * SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
249- * screen-progress_value = 25.
250- * screen-display_value = 'fetch 1'.
251- * WAIT UP TO 2 SECONDS.
252- **/ fetch 2
253- * SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
254- * screen-progress_value = 50.
255- * screen-display_value = 'fetch 2'.
256- * WAIT UP TO 2 SECONDS.
257- **/ fetch 3
258- * SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
259- * screen-progress_value = 75.
260- * screen-display_value = 'fetch 3'.
261- * WAIT UP TO 2 SECONDS.
262- **/ fetch 4
263- * SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
264- * screen-progress_value = 100.
265- * screen-display_value = 'fetch 4'.
266- * WAIT UP TO 2 SECONDS.
267- *
268- * mt_table = temp5.
269152 ENDMETHOD .
270153
271- METHOD z2ui5_set_search .
272- DATA temp7 LIKE LINE OF mt_table.
273- DATA lr_row LIKE REF TO temp7.
274- DATA lv_row TYPE string .
275- DATA lv_index TYPE i .
276- FIELD-SYMBOLS <field> TYPE any .
277-
278- IF mv_search_value IS NOT INITIAL .
279-
280- LOOP AT mt_table REFERENCE INTO lr_row.
281-
282- lv_row = `` .
283-
284- lv_index = 1 .
285- DO .
286-
287- ASSIGN COMPONENT lv_index OF STRUCTURE lr_row->* TO <field> .
288- IF sy -subrc <> 0 .
289- EXIT .
290- ENDIF .
291- lv_row = lv_row && <field> .
292- lv_index = lv_index + 1 .
293- ENDDO .
294-
295- IF lv_row NS mv_search_value.
296- DELETE mt_table.
297- ENDIF .
298- ENDLOOP .
299- ENDIF .
300-
301- ENDMETHOD .
302154ENDCLASS .
0 commit comments