Skip to content

Commit 21f2457

Browse files
Viktor HoffmannViktor Hoffmann
Viktor Hoffmann
authored and
Viktor Hoffmann
committed
Sample Issuie
1 parent 06490a4 commit 21f2457

4 files changed

+657
-0
lines changed

src/z2ui5_cl_demo_app_205.clas.abap

+221
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
"!
2+
CLASS Z2ui5_CL_DEMO_APP_205 DEFINITION
3+
PUBLIC
4+
CREATE PUBLIC.
5+
6+
PUBLIC SECTION.
7+
INTERFACES if_serializable_object.
8+
INTERFACES z2ui5_if_app.
9+
10+
TYPES:
11+
BEGIN OF ty_s_t002,
12+
id TYPE string,
13+
icon TYPE string,
14+
count TYPE string,
15+
table TYPE string,
16+
descr TYPE string,
17+
class TYPE string,
18+
END OF ty_s_t002.
19+
TYPES ty_t_t002 TYPE STANDARD TABLE OF ty_s_t002 WITH DEFAULT KEY.
20+
21+
DATA mv_selectedkey TYPE string.
22+
DATA mv_selectedkey_tmp TYPE string.
23+
DATA mt_t002 TYPE ty_t_t002.
24+
DATA mo_app TYPE REF TO object.
25+
26+
PROTECTED SECTION.
27+
DATA mo_main_page TYPE REF TO z2ui5_cl_xml_view.
28+
29+
DATA client TYPE REF TO z2ui5_if_client.
30+
DATA check_initialized TYPE abap_bool.
31+
32+
METHODS on_init.
33+
METHODS on_event.
34+
METHODS render_Main.
35+
36+
METHODS get_count
37+
IMPORTING
38+
tabname TYPE tabname
39+
RETURNING
40+
VALUE(result) TYPE string.
41+
42+
METHODS Render_sub_app.
43+
44+
PRIVATE SECTION.
45+
46+
ENDCLASS.
47+
48+
49+
CLASS Z2ui5_CL_DEMO_APP_205 IMPLEMENTATION.
50+
51+
METHOD get_count.
52+
53+
DATA o_table TYPE REF TO data.
54+
55+
FIELD-SYMBOLS <table> TYPE ANY TABLE.
56+
57+
CHECK tabname IS NOT INITIAL.
58+
59+
TRY.
60+
61+
cl_abap_typedescr=>describe_by_name( EXPORTING p_name = tabname
62+
RECEIVING p_descr_ref = DATA(o_type_desc)
63+
EXCEPTIONS type_not_found = 1 ).
64+
65+
IF sy-subrc = 1.
66+
RETURN.
67+
ENDIF.
68+
69+
DATA(o_struct_desc) = CAST cl_abap_structdescr( o_type_desc ).
70+
71+
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = o_struct_desc
72+
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
73+
74+
CREATE DATA o_table TYPE HANDLE new_table_desc.
75+
76+
ASSIGN o_table->* TO <table>.
77+
78+
SELECT * FROM (tabname) INTO CORRESPONDING FIELDS OF TABLE <table>.
79+
80+
result = lines( <table> ).
81+
82+
CATCH cx_root.
83+
ENDTRY.
84+
ENDMETHOD.
85+
86+
METHOD on_event.
87+
CASE client->get( )-event.
88+
WHEN 'ONSELECTICONTABBAR'.
89+
90+
CASE mv_selectedkey.
91+
92+
WHEN space.
93+
94+
WHEN OTHERS.
95+
96+
ENDCASE.
97+
98+
WHEN 'BACK'.
99+
100+
ENDCASE.
101+
ENDMETHOD.
102+
103+
METHOD on_init.
104+
105+
mt_t002 = VALUE #( class = 'Z2UI5_CL_DEMO_APP_206'
106+
( id = '1' count = '5' table = 'Z2UI5_T003' descr = 'Table 01' icon = 'sap-icon://add' )
107+
( id = '2' count = '10' table = 'Z2UI5_T003' descr = 'Table 01' icon = 'sap-icon://add' )
108+
( id = '3' count = '15' table = 'Z2UI5_T004' descr = 'Table 02' icon = 'sap-icon://accept' ) ).
109+
110+
mv_selectedkey = '1'.
111+
112+
ENDMETHOD.
113+
114+
METHOD render_main.
115+
DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
116+
117+
DATA(page) = view->page( id = `page_main`
118+
title = 'Customizing'
119+
navbuttonpress = client->_event( 'BACK' )
120+
shownavbutton = abap_true
121+
class = 'sapUiContentPadding' ).
122+
123+
DATA(lo_items) = page->icon_tab_bar( class = 'sapUiResponsiveContentPadding'
124+
selectedKey = client->_bind_edit( mv_selectedkey )
125+
select = client->_event( val = 'ONSELECTICONTABBAR' )
126+
)->items( ).
127+
128+
LOOP AT mt_t002 REFERENCE INTO DATA(line).
129+
130+
DATA(text) = line->descr.
131+
DATA(with_icon) = line->icon.
132+
133+
lo_items->icon_tab_filter( icon = line->icon
134+
iconcolor = 'Positive'
135+
count = line->count
136+
text = text
137+
key = line->id
138+
showall = with_icon ).
139+
140+
lo_items->icon_tab_separator( ).
141+
142+
ENDLOOP.
143+
144+
mo_main_page = lo_items.
145+
ENDMETHOD.
146+
147+
METHOD z2ui5_if_app~main.
148+
me->client = client.
149+
150+
IF check_initialized = abap_false.
151+
check_initialized = abap_true.
152+
153+
on_init( ).
154+
155+
render_Main( ).
156+
157+
ENDIF.
158+
159+
on_event( ).
160+
161+
Render_sub_app( ).
162+
ENDMETHOD.
163+
164+
METHOD Render_sub_app.
165+
166+
READ TABLE mt_t002 REFERENCE INTO DATA(t002)
167+
WITH KEY id = mv_selectedkey.
168+
169+
IF sy-subrc <> 0.
170+
RETURN.
171+
ENDIF.
172+
173+
CASE mv_selectedkey.
174+
175+
WHEN OTHERS.
176+
177+
IF mv_selectedkey <> mv_selectedkey_tmp.
178+
CREATE OBJECT mo_app TYPE (t002->class).
179+
ENDIF.
180+
181+
TRY.
182+
183+
CALL METHOD mo_app->('SET_APP_DATA')
184+
EXPORTING table = t002->table.
185+
186+
render_Main( ).
187+
188+
ASSIGN mo_app->('MO_PARENT_VIEW') TO FIELD-SYMBOL(<view>).
189+
IF <view> IS ASSIGNED.
190+
<view> = mo_main_page.
191+
ENDIF.
192+
193+
CALL METHOD mo_app->('Z2UI5_IF_APP~MAIN')
194+
EXPORTING client = client.
195+
196+
CATCH cx_root.
197+
RETURN.
198+
ENDTRY.
199+
200+
ENDCASE.
201+
202+
IF mo_app->('MV_VIEW_DISPLAY') = abap_true.
203+
mo_app->('MV_VIEW_DISPLAY') = abap_false.
204+
client->view_display( mo_main_page->stringify( ) ).
205+
ENDIF.
206+
207+
IF mo_app->('MV_VIEW_MODEL_UPDATE') = abap_true.
208+
mo_app->('MV_VIEW_MODEL_UPDATE') = abap_false.
209+
client->view_model_update( ).
210+
ENDIF.
211+
212+
IF mv_selectedkey <> mv_selectedkey_tmp.
213+
214+
client->view_display( mo_main_page->stringify( ) ).
215+
216+
mv_selectedkey_tmp = mv_selectedkey.
217+
218+
ENDIF.
219+
ENDMETHOD.
220+
221+
ENDCLASS.

src/z2ui5_cl_demo_app_205.clas.xml

+16
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_205</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>App in App I</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)