Skip to content

Commit 64db2a3

Browse files
abapsheepViktor Hoffmann
andauthored
New RTTI Samples (#534)
* New RTTI Samples * Fix --------- Co-authored-by: Viktor Hoffmann <viktor.hoffmann@swisskrono.com>
1 parent ca9d86d commit 64db2a3

6 files changed

+327
-1
lines changed

src/z2ui5_cl_demo_app_000.clas.abap

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1998,6 +1998,23 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION.
19981998
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
19991999
).
20002000

2001+
panel->generic_tile( header = 'Model XV'
2002+
subheader = 'Check Error Table with Ref'
2003+
press = client->_event( 'Z2UI5_CL_DEMO_APP_347' )
2004+
mode = 'LineMode'
2005+
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
2006+
).
2007+
2008+
panel->generic_tile( header = 'Model XVI'
2009+
subheader = 'Check Error Sruc with Ref'
2010+
press = client->_event( 'Z2UI5_CL_DEMO_APP_348' )
2011+
mode = 'LineMode'
2012+
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
2013+
).
2014+
2015+
2016+
2017+
20012018
panel->generic_tile( header = 'Date Format Error in internal table'
20022019
subheader = ''
20032020
press = client->_event( 'Z2UI5_CL_DEMO_APP_118' )

src/z2ui5_cl_demo_app_345.clas.abap

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,10 @@ CLASS z2ui5_cl_demo_app_345 IMPLEMENTATION.
127127

128128
METHOD xml_table.
129129

130+
ASSIGN i_data->* to FIELD-SYMBOL(<data>).
131+
130132
DATA(table) = i_page->table( width = 'auto'
131-
items = i_client->_bind( i_data->* ) ).
133+
items = i_client->_bind( <data> ) ).
132134

133135
DATA(columns) = table->columns( ).
134136

src/z2ui5_cl_demo_app_347.clas.abap

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
CLASS z2ui5_cl_demo_app_347 DEFINITION PUBLIC.
2+
3+
PUBLIC SECTION.
4+
INTERFACES z2ui5_if_app.
5+
6+
DATA mt_data TYPE STANDARD TABLE OF z2ui5_t_01.
7+
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
8+
9+
METHODS get_data.
10+
11+
METHODS ui5_view_display
12+
IMPORTING
13+
!client TYPE REF TO z2ui5_if_client.
14+
15+
PROTECTED SECTION.
16+
17+
PRIVATE SECTION.
18+
METHODS xml_table
19+
IMPORTING
20+
i_page TYPE REF TO z2ui5_cl_xml_view
21+
i_client TYPE REF TO z2ui5_if_client.
22+
23+
24+
25+
ENDCLASS.
26+
27+
28+
CLASS z2ui5_cl_demo_app_347 IMPLEMENTATION.
29+
30+
METHOD z2ui5_if_app~main.
31+
32+
IF client->check_on_init( ).
33+
34+
get_data( ).
35+
36+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( mt_data )
37+
vis_cols = 5 ).
38+
39+
ui5_view_display( client ).
40+
ENDIF.
41+
42+
43+
44+
45+
CASE client->get( )-event.
46+
WHEN 'BACK'.
47+
client->nav_app_leave( ).
48+
WHEN 'GO'.
49+
DATA(app) = z2ui5_cl_demo_app_336=>factory( ).
50+
client->nav_app_call( app ).
51+
ENDCASE.
52+
53+
IF client->get( )-check_on_navigated = abap_true
54+
AND client->check_on_init( ) = abap_false.
55+
ui5_view_display( client ).
56+
ENDIF.
57+
58+
59+
IF mo_layout_obj->mr_data IS NOT BOUND.
60+
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is not bound!' ).
61+
ENDIF.
62+
63+
IF mt_data IS INITIAL.
64+
client->message_toast_display( 'ERROR - mt_data is inital!' ).
65+
ENDIF.
66+
67+
ASSIGN mo_layout_obj->mr_data->* TO FIELD-SYMBOL(<val>).
68+
IF <val> <> mt_data.
69+
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> mt_data!' ).
70+
ENDIF.
71+
72+
client->view_model_update( ).
73+
74+
ENDMETHOD.
75+
76+
METHOD ui5_view_display.
77+
78+
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV'
79+
navbuttonpress = client->_event( 'BACK' )
80+
shownavbutton = client->check_app_prev_stack( ) ).
81+
82+
page->button( text = 'CALL Next App'
83+
press = client->_event( 'GO' )
84+
type = 'Success' ).
85+
86+
xml_table( i_page = page
87+
i_client = client ).
88+
89+
90+
91+
client->view_display( page ).
92+
93+
ENDMETHOD.
94+
95+
METHOD xml_table.
96+
97+
DATA(table) = i_page->table( width = 'auto'
98+
items = i_client->_bind_edit( val = mt_data ) ).
99+
100+
DATA(columns) = table->columns( ).
101+
102+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
103+
DATA(lv_index) = sy-tabix.
104+
105+
columns->column( visible = i_client->_bind( val = layout->visible
106+
tab = mo_layout_obj->ms_data-t_layout
107+
tab_index = lv_index )
108+
)->text( layout->name ).
109+
110+
ENDLOOP.
111+
112+
DATA(column_list_item) = columns->get_parent( )->items(
113+
)->column_list_item( valign = 'Middle'
114+
type = `Inactive` ).
115+
116+
DATA(cells) = column_list_item->cells( ).
117+
118+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO layout.
119+
120+
lv_index = sy-tabix.
121+
122+
cells->object_identifier( text = |\{{ layout->name }\}| ). "."|\{{ layout->fname }\}| ).
123+
124+
ENDLOOP.
125+
126+
ENDMETHOD.
127+
128+
METHOD get_data.
129+
130+
SELECT id,
131+
id_prev,
132+
id_prev_app,
133+
id_prev_app_stack,
134+
timestampl
135+
FROM z2ui5_t_01
136+
INTO CORRESPONDING FIELDS OF TABLE @mt_data
137+
UP TO 10 ROWS.
138+
139+
140+
ENDMETHOD.
141+
142+
143+
144+
ENDCLASS.

src/z2ui5_cl_demo_app_347.clas.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_347</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>RTTI - Table with Ref in Object</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>

src/z2ui5_cl_demo_app_348.clas.abap

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
CLASS z2ui5_cl_demo_app_348 DEFINITION PUBLIC.
2+
3+
PUBLIC SECTION.
4+
INTERFACES z2ui5_if_app.
5+
6+
DATA ms_data TYPE z2ui5_t_01.
7+
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
8+
9+
METHODS get_data.
10+
11+
METHODS ui5_view_display
12+
IMPORTING
13+
!client TYPE REF TO z2ui5_if_client.
14+
15+
PROTECTED SECTION.
16+
17+
PRIVATE SECTION.
18+
METHODS xml_form
19+
IMPORTING
20+
i_page TYPE REF TO z2ui5_cl_xml_view
21+
i_client TYPE REF TO z2ui5_if_client.
22+
23+
ENDCLASS.
24+
25+
26+
CLASS z2ui5_cl_demo_app_348 IMPLEMENTATION.
27+
28+
METHOD z2ui5_if_app~main.
29+
30+
IF client->check_on_init( ).
31+
32+
get_data( ).
33+
34+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_data )
35+
vis_cols = 5 ).
36+
37+
ui5_view_display( client ).
38+
ENDIF.
39+
40+
CASE client->get( )-event.
41+
WHEN 'BACK'.
42+
client->nav_app_leave( ).
43+
WHEN 'GO'.
44+
DATA(app) = z2ui5_cl_demo_app_336=>factory( ).
45+
client->nav_app_call( app ).
46+
ENDCASE.
47+
48+
IF client->get( )-check_on_navigated = abap_true
49+
AND client->check_on_init( ) = abap_false.
50+
ui5_view_display( client ).
51+
ENDIF.
52+
53+
IF mo_layout_obj->mr_data IS NOT BOUND.
54+
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is not bound!' ).
55+
ENDIF.
56+
57+
IF ms_data IS INITIAL.
58+
" TODO: check spelling: inital (typo) -> initial (ABAP cleaner)
59+
client->message_toast_display( 'ERROR - ms_data is inital!' ).
60+
ENDIF.
61+
62+
ASSIGN mo_layout_obj->mr_data->* TO FIELD-SYMBOL(<val>).
63+
IF <val> <> ms_data.
64+
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> ms_data!' ).
65+
ENDIF.
66+
67+
client->view_model_update( ).
68+
69+
ENDMETHOD.
70+
71+
METHOD ui5_view_display.
72+
73+
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV'
74+
navbuttonpress = client->_event( 'BACK' )
75+
shownavbutton = client->check_app_prev_stack( ) ).
76+
77+
page->button( text = 'CALL Next App'
78+
press = client->_event( 'GO' )
79+
type = 'Success' ).
80+
81+
xml_form( i_page = page
82+
i_client = client ).
83+
84+
client->view_display( page ).
85+
86+
ENDMETHOD.
87+
88+
METHOD get_data.
89+
90+
SELECT SINGLE id,
91+
id_prev,
92+
id_prev_app,
93+
id_prev_app_stack,
94+
timestampl
95+
FROM z2ui5_t_01
96+
INTO CORRESPONDING FIELDS OF @ms_data.
97+
98+
ENDMETHOD.
99+
100+
METHOD xml_form.
101+
102+
DATA(form) = i_page->simple_form( editable = abap_true
103+
layout = `ResponsiveGridLayout`
104+
adjustlabelspan = abap_true
105+
)->content( ns = `form` ).
106+
107+
DATA(index) = 0.
108+
109+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
110+
111+
index = index + 1.
112+
113+
ASSIGN COMPONENT layout->name OF STRUCTURE ms_data TO FIELD-SYMBOL(<value>).
114+
" assign component layout->name of structure ms_struc to field-symbol(<value>).
115+
IF <value> IS NOT ASSIGNED.
116+
RETURN.
117+
ENDIF.
118+
119+
DATA(line) = form->label( wrapping = abap_false
120+
text = layout->name ).
121+
122+
line->input( value = i_client->_bind( <value> )
123+
visible = i_client->_bind( val = layout->visible
124+
tab = mo_layout_obj->ms_data-t_layout
125+
tab_index = index )
126+
enabled = abap_false ).
127+
ENDLOOP.
128+
129+
ENDMETHOD.
130+
131+
ENDCLASS.

src/z2ui5_cl_demo_app_348.clas.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_348</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>RTTI - Struc with Ref in Object</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>

0 commit comments

Comments
 (0)