Skip to content

Commit 2a825e4

Browse files
abapsheepViktor Hoffmann
andauthored
Update XII (#531)
Co-authored-by: Viktor Hoffmann <[email protected]>
1 parent 21feab7 commit 2a825e4

File tree

4 files changed

+117
-98
lines changed

4 files changed

+117
-98
lines changed

src/z2ui5_cl_demo_app_333.clas.abap

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,36 @@ CLASS z2ui5_cl_demo_app_333 DEFINITION PUBLIC.
55

66
TYPES:
77
BEGIN OF ty_s_test,
8-
v1 type abap_bool,
8+
v1 TYPE abap_bool,
99
BEGIN OF test2,
10-
v2 type abap_bool,
11-
BEGIN OF test3,
12-
v3 type abap_bool,
13-
BEGIN OF test4,
14-
v4 type abap_bool,
15-
END OF test4,
16-
end of test3,
17-
end of test2,
10+
v2 TYPE abap_bool,
11+
BEGIN OF test3,
12+
v3 TYPE abap_bool,
13+
BEGIN OF test4,
14+
v4 TYPE abap_bool,
15+
END OF test4,
16+
END OF test3,
17+
END OF test2,
1818
END OF ty_s_test.
1919
TYPES ty_t_test TYPE STANDARD TABLE OF ty_s_test WITH EMPTY KEY.
2020

2121
TYPES:
2222
BEGIN OF ty_s_layout,
2323
name TYPE string,
2424
visible TYPE abap_bool,
25-
s_test type ty_s_test,
25+
s_test TYPE ty_s_test,
2626
END OF ty_s_layout.
2727
TYPES ty_t_layout TYPE STANDARD TABLE OF ty_s_layout WITH EMPTY KEY.
2828

2929
TYPES: BEGIN OF ty_s_DATA,
30-
guid TYPE sysuuid_c32,
31-
t_layout type ty_t_layout,
32-
s_test type ty_s_test,
30+
guid TYPE sysuuid_c32,
31+
t_layout TYPE ty_t_layout,
32+
s_test TYPE ty_s_test,
3333
END OF ty_s_DATA.
3434
TYPES ty_t_DATA TYPE STANDARD TABLE OF ty_s_DATA WITH EMPTY KEY.
3535

36-
* DATA mt_layout TYPE ty_t_layout.
3736
DATA ms_DATA TYPE ty_s_data.
38-
DATA mr_data TYPE REF TO data.
37+
DATA mr_data TYPE REF TO data.
3938

4039
CLASS-METHODS factory
4140
IMPORTING
@@ -60,12 +59,16 @@ CLASS z2ui5_cl_demo_app_333 IMPLEMENTATION.
6059

6160
DATA(t_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( i_data ).
6261

62+
DATA(index) = 0.
63+
6364
LOOP AT t_comp INTO DATA(comp).
6465

66+
index = index + 1.
67+
6568
APPEND INITIAL LINE TO result->ms_data-t_layout REFERENCE INTO DATA(layout).
6669

6770
layout->name = comp-name.
68-
IF sy-tabix <= vis_cols.
71+
IF index <= vis_cols.
6972
layout->visible = abap_true.
7073
ENDIF.
7174

src/z2ui5_cl_demo_app_333.clas.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<VSEOCLASS>
66
<CLSNAME>Z2UI5_CL_DEMO_APP_333</CLSNAME>
77
<LANGU>E</LANGU>
8-
<DESCRIPT>Data Object for Sample 331</DESCRIPT>
8+
<DESCRIPT>Data Object with Data Ref</DESCRIPT>
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>

src/z2ui5_cl_demo_app_336.clas.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<VSEOCLASS>
66
<CLSNAME>Z2UI5_CL_DEMO_APP_336</CLSNAME>
77
<LANGU>E</LANGU>
8-
<DESCRIPT>RTTI - Popup</DESCRIPT>
8+
<DESCRIPT>RTTI - With Data Ref´s</DESCRIPT>
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>

src/z2ui5_cl_demo_app_343.clas.abap

Lines changed: 96 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,23 @@ CLASS z2ui5_cl_demo_app_343 DEFINITION PUBLIC.
33
PUBLIC SECTION.
44
INTERFACES z2ui5_if_app.
55

6-
DATA mt_data TYPE REF TO data.
6+
DATA mt_data1 TYPE REF TO data.
77
DATA mt_data2 TYPE REF TO data.
8+
DATA mt_data3 TYPE REF TO data.
9+
DATA mt_data4 TYPE REF TO data.
10+
DATA mt_data5 TYPE REF TO data.
11+
DATA mt_data6 TYPE REF TO data.
812

9-
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
13+
DATA mo_layout_obj1 TYPE REF TO z2ui5_cl_demo_app_333.
1014
DATA mo_layout_obj2 TYPE REF TO z2ui5_cl_demo_app_333.
15+
DATA mo_layout_obj3 TYPE REF TO z2ui5_cl_demo_app_333.
16+
DATA mo_layout_obj4 TYPE REF TO z2ui5_cl_demo_app_333.
17+
DATA mo_layout_obj5 TYPE REF TO z2ui5_cl_demo_app_333.
18+
DATA mo_layout_obj6 TYPE REF TO z2ui5_cl_demo_app_333.
1119

12-
METHODS get_data IMPORTING iv_tabname TYPE string.
13-
METHODS get_data2 IMPORTING iv_tabname TYPE string.
20+
METHODS get_data.
1421

15-
METHODS ui5_view_display
22+
METHODS render_main
1623
IMPORTING
1724
!client TYPE REF TO z2ui5_if_client.
1825

@@ -27,8 +34,6 @@ CLASS z2ui5_cl_demo_app_343 DEFINITION PUBLIC.
2734
i_layout TYPE REF TO z2ui5_cl_demo_app_333.
2835

2936
METHODS get_comp
30-
IMPORTING
31-
iv_tabname TYPE string
3237
RETURNING
3338
VALUE(result) TYPE abap_component_tab.
3439

@@ -40,15 +45,9 @@ CLASS z2ui5_cl_demo_app_343 IMPLEMENTATION.
4045
METHOD z2ui5_if_app~main.
4146

4247
IF client->check_on_init( ).
43-
get_data( 'Z2UI5_T_01' ).
44-
get_data2( 'Z2UI5_T_01' ).
45-
46-
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = mt_data
47-
vis_cols = 5 ).
48-
mo_layout_obj2 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data2
49-
vis_cols = 3 ).
48+
get_data( ).
5049

51-
ui5_view_display( client ).
50+
render_main( client ).
5251
ENDIF.
5352

5453
CASE client->get( )-event.
@@ -59,41 +58,26 @@ CLASS z2ui5_cl_demo_app_343 IMPLEMENTATION.
5958
client->nav_app_call( app ).
6059
ENDCASE.
6160

62-
*** " Kommen wir aus einer anderen APP
63-
*** IF client->get( )-check_on_navigated = abap_true.
64-
*** TRY.
65-
*** " Kommen wir aus einer anderen APP
66-
*** CAST z2ui5_cl_demo_app_336( client->get_app( client->get( )-s_draft-id_prev_app ) ).
67-
***
68-
*** CATCH cx_root.
69-
*** ENDTRY.
70-
*** ENDIF.
7161

7262

7363
IF client->get( )-check_on_navigated = abap_true
7464
AND client->check_on_init( ) = abap_false.
75-
ui5_view_display( client ).
65+
render_main( client ).
7666
ENDIF.
7767

7868

79-
IF mo_layout_obj->mr_data IS NOT BOUND.
69+
IF mo_layout_obj1->mr_data IS NOT BOUND.
8070
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is not bound!' ).
8171
ENDIF.
82-
IF mo_layout_obj2->mr_data IS NOT BOUND.
83-
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data is not bound!' ).
84-
ENDIF.
85-
IF mo_layout_obj->mr_data->* <> mt_data->*.
72+
73+
IF mo_layout_obj1->mr_data->* <> mt_data1->*.
8674
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> mt_data!' ).
8775
ENDIF.
88-
IF mo_layout_obj2->mr_data->* <> mt_data2->*.
89-
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> ms_data!' ).
90-
ENDIF.
9176

92-
client->view_model_update( ).
9377

9478
ENDMETHOD.
9579

96-
METHOD ui5_view_display.
80+
METHOD render_main.
9781

9882
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV'
9983
navbuttonpress = client->_event( 'BACK' )
@@ -105,22 +89,42 @@ CLASS z2ui5_cl_demo_app_343 IMPLEMENTATION.
10589

10690
xml_table( i_page = page
10791
i_client = client
108-
i_data = mt_data
109-
i_layout = mo_layout_obj ).
92+
i_data = mt_data1
93+
i_layout = mo_layout_obj1 ).
11094

11195
xml_table( i_page = page
11296
i_client = client
11397
i_data = mt_data2
11498
i_layout = mo_layout_obj2 ).
11599

100+
xml_table( i_page = page
101+
i_client = client
102+
i_data = mt_data3
103+
i_layout = mo_layout_obj3 ).
104+
105+
xml_table( i_page = page
106+
i_client = client
107+
i_data = mt_data4
108+
i_layout = mo_layout_obj4 ).
109+
110+
xml_table( i_page = page
111+
i_client = client
112+
i_data = mt_data5
113+
i_layout = mo_layout_obj5 ).
114+
115+
xml_table( i_page = page
116+
i_client = client
117+
i_data = mt_data6
118+
i_layout = mo_layout_obj6 ).
119+
116120
client->view_display( page ).
117121

118122
ENDMETHOD.
119123

120124
METHOD xml_table.
121125

122126
DATA(table) = i_page->table( width = 'auto'
123-
items = i_client->_bind_edit( val = i_data ) ).
127+
items = i_client->_bind( val = i_data ) ).
124128

125129
DATA(columns) = table->columns( ).
126130

@@ -135,8 +139,7 @@ CLASS z2ui5_cl_demo_app_343 IMPLEMENTATION.
135139
ENDLOOP.
136140

137141
DATA(column_list_item) = columns->get_parent( )->items(
138-
)->column_list_item( valign = 'Middle'
139-
type = `Inactive` ).
142+
)->column_list_item( ).
140143

141144
DATA(cells) = column_list_item->cells( ).
142145

@@ -152,70 +155,89 @@ CLASS z2ui5_cl_demo_app_343 IMPLEMENTATION.
152155

153156
METHOD get_data.
154157

155-
FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
158+
FIELD-SYMBOLS <table1> TYPE STANDARD TABLE.
159+
FIELD-SYMBOLS <table2> TYPE STANDARD TABLE.
160+
FIELD-SYMBOLS <table3> TYPE STANDARD TABLE.
161+
FIELD-SYMBOLS <table4> TYPE STANDARD TABLE.
162+
FIELD-SYMBOLS <table5> TYPE STANDARD TABLE.
163+
FIELD-SYMBOLS <table6> TYPE STANDARD TABLE.
156164

157-
DATA(t_comp) = get_comp( iv_tabname ).
165+
DATA(t_comp) = get_comp( ).
158166
TRY.
159167

160168
DATA(new_struct_desc) = cl_abap_structdescr=>create( t_comp ).
161169

162170
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
163171
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
164172

165-
CREATE DATA mt_DATA TYPE HANDLE new_table_desc.
173+
CREATE DATA mt_data1 TYPE HANDLE new_table_desc.
174+
CREATE DATA mt_data2 TYPE HANDLE new_table_desc.
175+
CREATE DATA mt_data3 TYPE HANDLE new_table_desc.
176+
CREATE DATA mt_data4 TYPE HANDLE new_table_desc.
177+
CREATE DATA mt_data5 TYPE HANDLE new_table_desc.
178+
CREATE DATA mt_data6 TYPE HANDLE new_table_desc.
166179

167-
ASSIGN mt_DATA->* TO <table>.
180+
ASSIGN mt_data1->* TO <table1>.
181+
ASSIGN mt_data2->* TO <table2>.
182+
ASSIGN mt_data3->* TO <table3>.
183+
ASSIGN mt_data4->* TO <table4>.
184+
ASSIGN mt_data5->* TO <table5>.
185+
ASSIGN mt_data6->* TO <table6>.
168186

169-
SELECT *
170-
FROM (iv_tabname)
171-
INTO CORRESPONDING FIELDS OF TABLE @<table>
172-
UP TO 3 ROWS.
187+
SELECT * FROM Z2ui5_t_01
188+
INTO TABLE @<table1>
189+
UP TO 5 ROWS.
173190

174-
SORT <table>.
191+
SELECT * FROM Z2ui5_t_01
192+
INTO TABLE @<table2>
193+
UP TO 5 ROWS.
175194

176-
CATCH cx_root.
177-
178-
ENDTRY.
179-
180-
ENDMETHOD.
195+
SELECT * FROM Z2ui5_t_01
196+
INTO TABLE @<table3>
197+
UP TO 5 ROWS.
181198

182-
METHOD get_data2.
199+
SELECT * FROM Z2ui5_t_01
200+
INTO TABLE @<table4>
201+
UP TO 5 ROWS.
183202

184-
FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
203+
SELECT * FROM Z2ui5_t_01
204+
INTO TABLE @<table5>
205+
UP TO 5 ROWS.
185206

186-
DATA(t_comp) = get_comp( iv_tabname ).
187-
TRY.
207+
SELECT * FROM Z2ui5_t_01
208+
INTO TABLE @<table6>
209+
UP TO 5 ROWS.
188210

189-
DATA(new_struct_desc) = cl_abap_structdescr=>create( t_comp ).
211+
CATCH cx_root.
190212

191-
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
192-
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
213+
ENDTRY.
193214

194-
CREATE DATA mt_DATA2 TYPE HANDLE new_table_desc.
215+
mo_layout_obj1 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data1
216+
vis_cols = 2 ).
195217

196-
ASSIGN mt_DATA2->* TO <table>.
218+
mo_layout_obj2 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data2
219+
vis_cols = 2 ).
197220

198-
SELECT *
199-
FROM (iv_tabname)
200-
INTO CORRESPONDING FIELDS OF TABLE @<table>
201-
UP TO 4 ROWS.
221+
mo_layout_obj3 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data3
222+
vis_cols = 2 ).
202223

203-
SORT <table>.
224+
mo_layout_obj4 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data4
225+
vis_cols = 2 ).
204226

205-
CATCH cx_root.
227+
mo_layout_obj5 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data5
228+
vis_cols = 2 ).
206229

207-
ENDTRY.
230+
mo_layout_obj6 = z2ui5_cl_demo_app_333=>factory( i_data = mt_data6
231+
vis_cols = 2 ).
208232

209233
ENDMETHOD.
210234

211235
METHOD get_comp.
212236

213-
DATA selkz TYPE abap_bool.
214-
215237
TRY.
216238
TRY.
217239

218-
cl_abap_typedescr=>describe_by_name( EXPORTING p_name = iv_tabname
240+
cl_abap_typedescr=>describe_by_name( EXPORTING p_name = 'Z2UI5_T_01'
219241
RECEIVING p_descr_ref = DATA(typedesc)
220242
EXCEPTIONS type_not_found = 1
221243
OTHERS = 2 ).
@@ -234,16 +256,10 @@ CLASS z2ui5_cl_demo_app_343 IMPLEMENTATION.
234256

235257
ENDLOOP.
236258

237-
CATCH cx_root INTO DATA(root). " TODO: variable is assigned but never used (ABAP cleaner)
259+
CATCH cx_root.
238260

239261
ENDTRY.
240262

241-
DATA(component) = VALUE cl_abap_structdescr=>component_table(
242-
( name = 'SELKZ'
243-
type = CAST #( cl_abap_datadescr=>describe_by_data( selkz ) ) ) ).
244-
245-
APPEND LINES OF component TO result.
246-
247263
CATCH cx_root.
248264
ENDTRY.
249265

0 commit comments

Comments
 (0)