@@ -3,81 +3,146 @@ CLASS z2ui5_cl_demo_app_328 DEFINITION PUBLIC.
33 PUBLIC SECTION .
44 INTERFACES z2ui5_if_app.
55
6- DATA mr_table TYPE REF TO data .
6+ DATA mt_table TYPE REF TO data .
7+
78 DATA mo_table_obj TYPE REF TO z2ui5_cl_demo_app_329.
89
9- METHODS ui5_view_display
10- IMPORTING
11- client TYPE REF TO z2ui5_if_client.
10+ DATA client TYPE REF TO z2ui5_if_client.
1211
1312 PROTECTED SECTION .
13+ METHODS get_data.
14+
1415 PRIVATE SECTION .
16+ METHODS ui5_view_display.
1517ENDCLASS .
1618
1719
1820CLASS z2ui5_cl_demo_app_328 IMPLEMENTATION .
1921
2022 METHOD z2ui5_if_app ~main .
2123
24+ me ->client = client .
25+
2226 IF client->check_on_init( ).
2327
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 ) .
2731
28- SELECT * FROM z2ui5_t_01
29- INTO CORRESPONDING FIELDS OF TABLE @<table>
30- UP TO 1 ROWS .
32+ ui5_view_display( ).
3133
32- mo_table_obj = z2ui5_cl_demo_app_329=>factory( mr_table ).
33- ui5_view_display( client ).
34- RETURN .
3534 ENDIF .
3635
3736 CASE client->get( )-event.
37+
3838 WHEN 'BACK' .
3939 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+
4051 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+
4383 ELSE .
44- client->message_toast_display( 'Success - MT_TABLE = MO_TABLE_OBJ->MR_TABLE_DATA ' ).
84+ client->message_toast_display( 'Plases select a Line ' ).
4585 ENDIF .
86+
4687 ENDCASE .
4788
4889 ENDMETHOD .
4990
5091 METHOD ui5_view_display .
5192
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( ) ).
5596
5697 page->button( text = 'GO'
5798 press = client->_event( 'GO' )
5899 type = 'Success' ).
59100
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}' ).
61112
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 ).
64114
65- LOOP AT mt_comp INTO DATA (comp ) WHERE name CP `ID*` .
66- columns->column( )->text( comp-name ).
67- ENDLOOP .
115+ ENDMETHOD .
68116
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 .
73119
74- LOOP AT mt_comp INTO comp.
75- cells->object_identifier( text = | \{{ comp-name } \}| ).
76- ENDLOOP .
120+ FIELD-SYMBOLS <table> TYPE STANDARD TABLE .
77121
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' ).
79123
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 .
81146
82147 ENDMETHOD .
83148
0 commit comments