Skip to content

Commit de6cd55

Browse files
committed
update
1 parent 663b826 commit de6cd55

File tree

4 files changed

+230
-267
lines changed

4 files changed

+230
-267
lines changed

src/00/z2ui5_cl_layo_sample_01.clas.abap

Lines changed: 44 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
3121
ENDCLASS.
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+
188134
ENDCLASS.

0 commit comments

Comments
 (0)