Skip to content

Commit e0a8292

Browse files
abapsheepViktor Hoffmann
andauthored
New Sample (#535)
Co-authored-by: Viktor Hoffmann <viktor.hoffmann@swisskrono.com>
1 parent 64db2a3 commit e0a8292

5 files changed

+232
-20
lines changed

src/z2ui5_cl_demo_app_000.clas.abap

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2011,7 +2011,12 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION.
20112011
mode = 'LineMode'
20122012
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
20132013
).
2014-
2014+
panel->generic_tile( header = 'Model XVII'
2015+
subheader = 'Check Error Tabel and Sruc with Ref'
2016+
press = client->_event( 'z2ui5_cl_demo_app_349' )
2017+
mode = 'LineMode'
2018+
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
2019+
).
20152020

20162021

20172022

src/z2ui5_cl_demo_app_337.clas.abap

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
3535
METHOD z2ui5_if_app~main.
3636

3737
IF client->check_on_init( ).
38+
39+
get_data( ).
40+
41+
3842
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( mt_data )
3943
vis_cols = 5 ).
4044
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_data )
@@ -53,15 +57,15 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
5357
client->nav_app_call( app ).
5458
ENDCASE.
5559

56-
" Kommen wir aus einer anderen APP
57-
IF client->get( )-check_on_navigated = abap_true.
58-
TRY.
59-
" Kommen wir aus einer anderen APP
60-
DATA(obj) = CAST z2ui5_cl_demo_app_336( client->get_app( client->get( )-s_draft-id_prev_app ) ).
61-
get_data( ).
62-
CATCH cx_root.
63-
ENDTRY.
64-
ENDIF.
60+
* " Kommen wir aus einer anderen APP
61+
* IF client->get( )-check_on_navigated = abap_true.
62+
* TRY.
63+
* " Kommen wir aus einer anderen APP
64+
* DATA(obj) = CAST z2ui5_cl_demo_app_336( client->get_app( client->get( )-s_draft-id_prev_app ) ).
65+
* get_data( ).
66+
* CATCH cx_root.
67+
* ENDTRY.
68+
* ENDIF.
6569

6670

6771

@@ -90,9 +94,6 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
9094
ENDIF.
9195

9296

93-
94-
95-
9697
client->view_model_update( ).
9798

9899
ENDMETHOD.

src/z2ui5_cl_demo_app_348.clas.abap

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ CLASS z2ui5_cl_demo_app_348 DEFINITION PUBLIC.
33
PUBLIC SECTION.
44
INTERFACES z2ui5_if_app.
55

6-
DATA ms_data TYPE z2ui5_t_01.
6+
DATA ms_struc TYPE z2ui5_t_01.
77
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
88

99
METHODS get_data.
@@ -17,6 +17,7 @@ CLASS z2ui5_cl_demo_app_348 DEFINITION PUBLIC.
1717
PRIVATE SECTION.
1818
METHODS xml_form
1919
IMPORTING
20+
i_data type ref to data
2021
i_page TYPE REF TO z2ui5_cl_xml_view
2122
i_client TYPE REF TO z2ui5_if_client.
2223

@@ -31,7 +32,7 @@ CLASS z2ui5_cl_demo_app_348 IMPLEMENTATION.
3132

3233
get_data( ).
3334

34-
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_data )
35+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc )
3536
vis_cols = 5 ).
3637

3738
ui5_view_display( client ).
@@ -54,13 +55,13 @@ CLASS z2ui5_cl_demo_app_348 IMPLEMENTATION.
5455
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is not bound!' ).
5556
ENDIF.
5657

57-
IF ms_data IS INITIAL.
58+
IF ms_struc IS INITIAL.
5859
" TODO: check spelling: inital (typo) -> initial (ABAP cleaner)
5960
client->message_toast_display( 'ERROR - ms_data is inital!' ).
6061
ENDIF.
6162

6263
ASSIGN mo_layout_obj->mr_data->* TO FIELD-SYMBOL(<val>).
63-
IF <val> <> ms_data.
64+
IF <val> <> ms_struc.
6465
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> ms_data!' ).
6566
ENDIF.
6667

@@ -78,7 +79,8 @@ CLASS z2ui5_cl_demo_app_348 IMPLEMENTATION.
7879
press = client->_event( 'GO' )
7980
type = 'Success' ).
8081

81-
xml_form( i_page = page
82+
xml_form( i_data = ref #( ms_struc )
83+
i_page = page
8284
i_client = client ).
8385

8486
client->view_display( page ).
@@ -93,7 +95,7 @@ CLASS z2ui5_cl_demo_app_348 IMPLEMENTATION.
9395
id_prev_app_stack,
9496
timestampl
9597
FROM z2ui5_t_01
96-
INTO CORRESPONDING FIELDS OF @ms_data.
98+
INTO CORRESPONDING FIELDS OF @ms_struc.
9799

98100
ENDMETHOD.
99101

@@ -110,7 +112,7 @@ CLASS z2ui5_cl_demo_app_348 IMPLEMENTATION.
110112

111113
index = index + 1.
112114

113-
ASSIGN COMPONENT layout->name OF STRUCTURE ms_data TO FIELD-SYMBOL(<value>).
115+
ASSIGN COMPONENT layout->name OF STRUCTURE i_data->* TO FIELD-SYMBOL(<value>).
114116
" assign component layout->name of structure ms_struc to field-symbol(<value>).
115117
IF <value> IS NOT ASSIGNED.
116118
RETURN.

src/z2ui5_cl_demo_app_349.clas.abap

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
CLASS z2ui5_cl_demo_app_349 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 ms_data TYPE z2ui5_t_01.
8+
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
9+
DATA mo_layout_obj_2 TYPE REF TO z2ui5_cl_demo_app_333.
10+
11+
METHODS get_data.
12+
13+
METHODS ui5_view_display
14+
IMPORTING
15+
!client TYPE REF TO z2ui5_if_client.
16+
17+
PROTECTED SECTION.
18+
19+
PRIVATE SECTION.
20+
METHODS xml_table
21+
IMPORTING
22+
i_page TYPE REF TO z2ui5_cl_xml_view
23+
i_client TYPE REF TO z2ui5_if_client.
24+
25+
METHODS xml_form
26+
IMPORTING
27+
i_page TYPE REF TO z2ui5_cl_xml_view
28+
i_client TYPE REF TO z2ui5_if_client.
29+
30+
ENDCLASS.
31+
32+
33+
CLASS z2ui5_cl_demo_app_349 IMPLEMENTATION.
34+
35+
METHOD z2ui5_if_app~main.
36+
37+
IF client->check_on_init( ).
38+
39+
get_data( ).
40+
41+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( mt_data )
42+
vis_cols = 5 ).
43+
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_data )
44+
vis_cols = 3 ).
45+
ui5_view_display( client ).
46+
ENDIF.
47+
48+
CASE client->get( )-event.
49+
WHEN 'BACK'.
50+
client->nav_app_leave( ).
51+
WHEN 'GO'.
52+
DATA(app) = z2ui5_cl_demo_app_336=>factory( ).
53+
client->nav_app_call( app ).
54+
ENDCASE.
55+
56+
IF client->get( )-check_on_navigated = abap_true
57+
AND client->check_on_init( ) = abap_false.
58+
ui5_view_display( client ).
59+
ENDIF.
60+
61+
IF mo_layout_obj->mr_data IS NOT BOUND.
62+
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is not bound!' ).
63+
ENDIF.
64+
IF mo_layout_obj_2->mr_data IS NOT BOUND.
65+
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data is not bound!' ).
66+
ENDIF.
67+
68+
IF mt_data IS INITIAL.
69+
client->message_toast_display( 'ERROR - mt_data is INITIAL!' ).
70+
ENDIF.
71+
IF ms_data IS INITIAL.
72+
client->message_toast_display( 'ERROR - ms_data is INITIAL!' ).
73+
ENDIF.
74+
75+
ASSIGN mo_layout_obj->mr_data->* TO FIELD-SYMBOL(<val>).
76+
IF <val> <> mt_data.
77+
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> mt_data!' ).
78+
ENDIF.
79+
ASSIGN mo_layout_obj_2->mr_data->* TO FIELD-SYMBOL(<val2>).
80+
IF <val2> <> ms_data.
81+
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data <> ms_data!' ).
82+
ENDIF.
83+
84+
85+
client->view_model_update( ).
86+
87+
ENDMETHOD.
88+
89+
METHOD ui5_view_display.
90+
91+
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV'
92+
navbuttonpress = client->_event( 'BACK' )
93+
shownavbutton = client->check_app_prev_stack( ) ).
94+
95+
page->button( text = 'CALL Next App'
96+
press = client->_event( 'GO' )
97+
type = 'Success' ).
98+
99+
xml_table( i_page = page
100+
i_client = client ).
101+
102+
xml_form( i_page = page
103+
i_client = client ).
104+
105+
client->view_display( page ).
106+
107+
ENDMETHOD.
108+
109+
METHOD xml_table.
110+
111+
DATA(table) = i_page->table( width = 'auto'
112+
items = i_client->_bind_edit( val = mt_data ) ).
113+
114+
DATA(columns) = table->columns( ).
115+
116+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
117+
DATA(lv_index) = sy-tabix.
118+
119+
columns->column( visible = i_client->_bind( val = layout->visible
120+
tab = mo_layout_obj->ms_data-t_layout
121+
tab_index = lv_index )
122+
)->text( layout->name ).
123+
124+
ENDLOOP.
125+
126+
DATA(column_list_item) = columns->get_parent( )->items(
127+
)->column_list_item( valign = 'Middle'
128+
type = `Inactive` ).
129+
130+
DATA(cells) = column_list_item->cells( ).
131+
132+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO layout.
133+
134+
lv_index = sy-tabix.
135+
136+
cells->object_identifier( text = |\{{ layout->name }\}| ). "."|\{{ layout->fname }\}| ).
137+
138+
ENDLOOP.
139+
140+
ENDMETHOD.
141+
142+
METHOD get_data.
143+
144+
SELECT id,
145+
id_prev,
146+
id_prev_app,
147+
id_prev_app_stack,
148+
timestampl
149+
FROM z2ui5_t_01
150+
INTO CORRESPONDING FIELDS OF TABLE @mt_data
151+
UP TO 10 ROWS.
152+
153+
ms_data = VALUE #( mt_data[ 1 ] OPTIONAL ).
154+
155+
ENDMETHOD.
156+
157+
METHOD xml_form.
158+
159+
DATA(form) = i_page->simple_form( editable = abap_true
160+
layout = `ResponsiveGridLayout`
161+
adjustlabelspan = abap_true
162+
)->content( ns = `form` ).
163+
164+
DATA(index) = 0.
165+
166+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
167+
168+
index = index + 1.
169+
170+
ASSIGN COMPONENT layout->name OF STRUCTURE ms_data TO FIELD-SYMBOL(<value>).
171+
" assign component layout->name of structure ms_struc to field-symbol(<value>).
172+
IF <value> IS NOT ASSIGNED.
173+
RETURN.
174+
ENDIF.
175+
176+
DATA(line) = form->label( wrapping = abap_false
177+
text = layout->name ).
178+
179+
line->input( value = i_client->_bind( <value> )
180+
visible = i_client->_bind( val = layout->visible
181+
tab = mo_layout_obj->ms_data-t_layout
182+
tab_index = index )
183+
enabled = abap_false ).
184+
ENDLOOP.
185+
186+
ENDMETHOD.
187+
188+
ENDCLASS.

src/z2ui5_cl_demo_app_349.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_349</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>RTTI - Table with Class Data and Popup</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)