@@ -3,81 +3,146 @@ CLASS z2ui5_cl_demo_app_328 DEFINITION PUBLIC.
3
3
PUBLIC SECTION .
4
4
INTERFACES z2ui5_if_app.
5
5
6
- DATA mr_table TYPE REF TO data .
6
+ DATA mt_table TYPE REF TO data .
7
+
7
8
DATA mo_table_obj TYPE REF TO z2ui5_cl_demo_app_329.
8
9
9
- METHODS ui5_view_display
10
- IMPORTING
11
- client TYPE REF TO z2ui5_if_client.
10
+ DATA client TYPE REF TO z2ui5_if_client.
12
11
13
12
PROTECTED SECTION .
13
+ METHODS get_data.
14
+
14
15
PRIVATE SECTION .
16
+ METHODS ui5_view_display.
15
17
ENDCLASS .
16
18
17
19
18
20
CLASS z2ui5_cl_demo_app_328 IMPLEMENTATION .
19
21
20
22
METHOD z2ui5_if_app ~main .
21
23
24
+ me ->client = client .
25
+
22
26
IF client->check_on_init( ).
23
27
24
- mr_table = z2ui5_cl_util=>rtti_create_tab_by_name( 'Z2UI5_T_01' ).
25
- FIELD-SYMBOLS <table> TYPE STANDARD TABLE .
26
- ASSIGN mr_table->* TO <table> .
28
+ get_data( ).
29
+
30
+ mo_table_obj = z2ui5_cl_demo_app_329=>factory( mt_table ) .
27
31
28
- SELECT * FROM z2ui5_t_01
29
- INTO CORRESPONDING FIELDS OF TABLE @<table>
30
- UP TO 1 ROWS .
32
+ ui5_view_display( ).
31
33
32
- mo_table_obj = z2ui5_cl_demo_app_329=>factory( mr_table ).
33
- ui5_view_display( client ).
34
- RETURN .
35
34
ENDIF .
36
35
37
36
CASE client->get( )-event.
37
+
38
38
WHEN 'BACK' .
39
39
client->nav_app_leave( ).
40
+
41
+ WHEN 'SELECTION_CHANGE' .
42
+
43
+ client->view_model_update( ).
44
+
45
+ * IF mt_table->* <> mo_table_obj->mr_data->*.
46
+ * client->message_toast_display( 'Error - MT_TABLE <> MO_TABLE_OBJ->MR_TABLE_DATA' ).
47
+ * ELSE.
48
+ * client->message_toast_display( 'Success - MT_TABLE = MO_TABLE_OBJ->MR_TABLE_DATA' ).
49
+ * ENDIF.
50
+
40
51
WHEN 'GO' .
41
- IF mr_table->* <> mo_table_obj->mr_data->*.
42
- client->message_toast_display( 'Error - MT_TABLE <> MO_TABLE_OBJ->MR_TABLE_DATA' ).
52
+
53
+ ASSIGN mt_table->* TO FIELD-SYMBOL (<tab> ).
54
+
55
+ LOOP AT <tab> ASSIGNING FIELD-SYMBOL (<line> ).
56
+
57
+ ASSIGN COMPONENT 'SELKZ' OF STRUCTURE <line> TO FIELD-SYMBOL (<selkz> ).
58
+ IF <selkz> IS NOT ASSIGNED .
59
+ CONTINUE .
60
+ ENDIF .
61
+
62
+ IF <selkz> = abap_true .
63
+ DATA (okay ) = abap_true .
64
+ EXIT .
65
+ ENDIF .
66
+
67
+ ENDLOOP .
68
+
69
+ IF okay = abap_true .
70
+
71
+ get_data( ).
72
+
73
+ mo_table_obj = z2ui5_cl_demo_app_329=>factory( mt_table ).
74
+
75
+ ui5_view_display( ).
76
+
77
+ IF mt_table->* <> mo_table_obj->mr_data->*.
78
+ client->message_toast_display( 'Error - MT_TABLE <> MO_TABLE_OBJ->MR_TABLE_DATA' ).
79
+ ELSE .
80
+ client->message_toast_display( 'Success - MT_TABLE = MO_TABLE_OBJ->MR_TABLE_DATA' ).
81
+ ENDIF .
82
+
43
83
ELSE .
44
- client->message_toast_display( 'Success - MT_TABLE = MO_TABLE_OBJ->MR_TABLE_DATA ' ).
84
+ client->message_toast_display( 'Plases select a Line ' ).
45
85
ENDIF .
86
+
46
87
ENDCASE .
47
88
48
89
ENDMETHOD .
49
90
50
91
METHOD ui5_view_display .
51
92
52
- DATA (page ) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV'
53
- navbuttonpress = client->_event( 'BACK' )
54
- shownavbutton = client->check_app_prev_stack( ) ).
93
+ DATA (page ) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV'
94
+ navbuttonpress = client->_event( 'BACK' )
95
+ shownavbutton = client->check_app_prev_stack( ) ).
55
96
56
97
page->button( text = 'GO'
57
98
press = client->_event( 'GO' )
58
99
type = 'Success' ).
59
100
60
- DATA (table ) = page->table( client->_bind( mr_table->* ) ).
101
+ page->table( headertext = 'Table'
102
+ mode = 'MultiSelect'
103
+ items = client->_bind_edit( mt_table->* )
104
+ selectionchange = client->_event( 'SELECTION_CHANGE' )
105
+ )->columns(
106
+ )->column( )->text( 'id '
107
+ )->get_parent( )->get_parent(
108
+ )->items(
109
+ )->column_list_item( selected = '{SELKZ}'
110
+ )->cells(
111
+ )->text( '{ID}' ).
61
112
62
- DATA (columns ) = table->columns( ).
63
- DATA (mt_comp ) = z2ui5_cl_util=>rtti_get_t_attri_by_table_name( 'Z2UI5_T_01' ).
113
+ client->view_display( page ).
64
114
65
- LOOP AT mt_comp INTO DATA (comp ) WHERE name CP `ID*` .
66
- columns->column( )->text( comp-name ).
67
- ENDLOOP .
115
+ ENDMETHOD .
68
116
69
- DATA (cells ) = columns->get_parent( )->items(
70
- )->column_list_item( valign = 'Middle'
71
- type = 'Navigation'
72
- )->cells( ).
117
+ METHOD get_data .
118
+ DATA selkz TYPE abap_bool .
73
119
74
- LOOP AT mt_comp INTO comp.
75
- cells->object_identifier( text = | \{{ comp-name } \}| ).
76
- ENDLOOP .
120
+ FIELD-SYMBOLS <table> TYPE STANDARD TABLE .
77
121
78
- client->_bind( mo_table_obj->mr_data->* ).
122
+ DATA ( t_comp ) = z2ui5_cl_util=>rtti_get_t_attri_by_table_name( 'Z2UI5_T_01' ).
79
123
80
- client->view_display( page ).
124
+ APPEND LINES OF VALUE cl_abap_structdescr=>component_table(
125
+ ( name = 'SELKZ'
126
+ type = CAST #( cl_abap_datadescr=>describe_by_data( selkz ) ) ) ) TO t_comp.
127
+
128
+ TRY .
129
+
130
+ DATA (new_struct_desc ) = cl_abap_structdescr=>create( t_comp ).
131
+
132
+ DATA (new_table_desc ) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
133
+ p_table_kind = cl_abap_tabledescr=>tablekind_std ).
134
+
135
+ CREATE DATA mt_table TYPE HANDLE new_table_desc.
136
+
137
+ ASSIGN mt_table->* TO <table> .
138
+
139
+ SELECT id FROM z2ui5_t_01
140
+ INTO CORRESPONDING FIELDS OF TABLE @<table>
141
+ UP TO 4 ROWS .
142
+
143
+ CATCH cx_root.
144
+
145
+ ENDTRY .
81
146
82
147
ENDMETHOD .
83
148
0 commit comments