Skip to content

Commit a53416b

Browse files
abapsheepViktor Hoffmann
andauthored
New RTTI Samples (#524)
* New RTTI Samples * Update --------- Co-authored-by: Viktor Hoffmann <viktor.hoffmann@swisskrono.com>
1 parent 1e607dc commit a53416b

8 files changed

+288
-13
lines changed

src/z2ui5_cl_demo_app_332.clas.abap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ CLASS z2ui5_cl_demo_app_332 IMPLEMENTATION.
2626

2727
get_data( ).
2828

29-
mo_table_obj = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ).
29+
mo_table_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 3 ).
3030

3131
ui5_view_display( client ).
3232

src/z2ui5_cl_demo_app_333.clas.abap

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,23 @@ CLASS z2ui5_cl_demo_app_333 DEFINITION PUBLIC.
1010
END OF ty_s_layout.
1111
TYPES ty_t_layout TYPE STANDARD TABLE OF ty_s_layout WITH EMPTY KEY.
1212

13+
TYPES: BEGIN OF ty_s_DATA,
14+
guid TYPE sysuuid_c32,
15+
END OF ty_s_DATA.
16+
TYPES ty_t_DATA TYPE STANDARD TABLE OF ty_s_DATA WITH EMPTY KEY.
17+
1318
DATA mt_layout TYPE ty_t_layout.
19+
DATA ms_DATA TYPE ty_s_data.
1420
DATA mr_data TYPE REF TO data.
1521

1622
CLASS-METHODS factory
1723
IMPORTING
1824
i_data TYPE REF TO data
25+
vis_cols TYPE int4
1926
RETURNING
2027
VALUE(result) TYPE REF TO z2ui5_cl_demo_app_333.
2128

22-
class-DATA MS_STRUC type c LENGTH 10 VALUE 'STRUCT'.
29+
CLASS-DATA cv_value TYPE c LENGTH 10 VALUE 'STRUCT'.
2330

2431
PROTECTED SECTION.
2532

@@ -40,12 +47,17 @@ CLASS z2ui5_cl_demo_app_333 IMPLEMENTATION.
4047
APPEND INITIAL LINE TO result->mt_layout REFERENCE INTO DATA(layout).
4148

4249
layout->name = comp-name.
43-
IF sy-tabix < 4.
50+
IF sy-tabix <= vis_cols.
4451
layout->visible = abap_true.
4552
ENDIF.
4653

4754
ENDLOOP.
4855

56+
TRY.
57+
result->ms_data-guid = z2ui5_cl_util=>uuid_get_c32( ).
58+
CATCH cx_root.
59+
ENDTRY.
60+
4961
result->mr_data = i_data.
5062

5163
ENDMETHOD.

src/z2ui5_cl_demo_app_334.clas.abap

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ CLASS z2ui5_cl_demo_app_334 IMPLEMENTATION.
2727

2828
get_data( ).
2929

30-
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ).
31-
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ).
30+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 3 ).
31+
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 5 ).
3232

3333
ui5_view_display( client ).
3434

@@ -54,6 +54,10 @@ CLASS z2ui5_cl_demo_app_334 IMPLEMENTATION.
5454
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data is not bound!' ).
5555
ENDIF.
5656

57+
IF mo_layout_obj_2->ms_data-guid eq mo_layout_obj->ms_data-guid.
58+
client->message_toast_display( 'ERROR - GUIDS!' ).
59+
ENDIF.
60+
5761
client->view_model_update( ).
5862

5963
ENDMETHOD.

src/z2ui5_cl_demo_app_335.clas.abap

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ CLASS z2ui5_cl_demo_app_335 DEFINITION PUBLIC.
1616
PROTECTED SECTION.
1717

1818
PRIVATE SECTION.
19+
METHODS get_data_2.
1920
ENDCLASS.
2021

2122

@@ -27,8 +28,8 @@ CLASS z2ui5_cl_demo_app_335 IMPLEMENTATION.
2728

2829
get_data( ).
2930

30-
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ).
31-
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ).
31+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 3 ).
32+
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 3 ).
3233

3334
ui5_view_display( client ).
3435

@@ -42,20 +43,29 @@ CLASS z2ui5_cl_demo_app_335 IMPLEMENTATION.
4243

4344
WHEN 'GO'.
4445

45-
DATA(app) = Z2UI5_CL_DEMO_APP_336=>factory( ).
46-
client->nav_app_call( app ).
46+
DATA(app) = z2ui5_cl_demo_app_336=>factory( ).
47+
client->nav_app_call( app ).
48+
49+
WHEN 'CHANGE'.
50+
51+
get_data_2( ).
4752

4853
ENDCASE.
4954

55+
IF client->get( )-check_on_navigated = abap_true
56+
AND client->check_on_init( ) = abap_false.
57+
ui5_view_display( client ).
58+
ENDIF.
59+
5060
IF ms_struc IS INITIAL.
5161
client->message_toast_display( 'ERROR - MS_STRUC is initial!' ).
5262
ENDIF.
5363

54-
IF mo_layout_obj->mr_data IS not BOUND.
64+
IF mo_layout_obj->mr_data IS NOT BOUND.
5565
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is not bound!' ).
5666
ENDIF.
5767

58-
IF mo_layout_obj_2->mr_data IS not BOUND.
68+
IF mo_layout_obj_2->mr_data IS NOT BOUND.
5969
client->message_toast_display( 'ERROR - mo_layout_obj_2->mr_data is not bound!' ).
6070
ENDIF.
6171

@@ -69,10 +79,15 @@ CLASS z2ui5_cl_demo_app_335 IMPLEMENTATION.
6979
navbuttonpress = client->_event( 'BACK' )
7080
shownavbutton = client->check_app_prev_stack( ) ).
7181

72-
page->button( text = 'GO'
82+
page->button( text = 'CALL Next App'
7383
press = client->_event( 'GO' )
7484
type = 'Success' ).
7585

86+
page->button( text = 'Change Data'
87+
press = client->_event( 'CHANGE' )
88+
type = 'Success' ).
89+
90+
7691
DATA(form) = page->simple_form( editable = abap_true
7792
layout = `ResponsiveGridLayout`
7893
adjustlabelspan = abap_true
@@ -111,4 +126,12 @@ CLASS z2ui5_cl_demo_app_335 IMPLEMENTATION.
111126

112127
ENDMETHOD.
113128

129+
METHOD get_data_2.
130+
131+
SELECT SINGLE * FROM z2ui5_t_01
132+
INTO CORRESPONDING FIELDS OF @ms_STRUC
133+
where id ne @ms_struc-id.
134+
135+
ENDMETHOD.
136+
114137
ENDCLASS.

src/z2ui5_cl_demo_app_336.clas.abap

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ CLASS z2ui5_cl_demo_app_336 DEFINITION PUBLIC.
88
!client TYPE REF TO z2ui5_if_client.
99

1010

11+
DATA ms_struc TYPE z2ui5_t_01.
12+
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
13+
DATA mo_layout_obj_2 TYPE REF TO z2ui5_cl_demo_app_333.
14+
1115
CLASS-METHODS factory
1216
RETURNING
1317
VALUE(result) TYPE REF TO z2ui5_cl_demo_app_336.
@@ -24,6 +28,9 @@ CLASS z2ui5_cl_demo_app_336 IMPLEMENTATION.
2428

2529
IF client->check_on_init( ).
2630

31+
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 3 ).
32+
mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( i_data = REF #( ms_struc ) vis_cols = 3 ).
33+
2734
ui5_view_display( client ).
2835

2936
ENDIF.

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 - Struc with Class Data and Popup</DESCRIPT>
8+
<DESCRIPT>RTTI - Popup</DESCRIPT>
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>

0 commit comments

Comments
 (0)