diff --git a/src/z2ui5_cl_demo_app_000.clas.abap b/src/z2ui5_cl_demo_app_000.clas.abap index 745e2851..ab779e90 100644 --- a/src/z2ui5_cl_demo_app_000.clas.abap +++ b/src/z2ui5_cl_demo_app_000.clas.abap @@ -1946,7 +1946,12 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. mode = 'LineMode' class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' ). - + panel->generic_tile( header = 'Model VII' + subheader = 'RTTI Data - Struc and Class Data' + press = client->_event( 'Z2UI5_CL_DEMO_APP_334' ) + mode = 'LineMode' + class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' + ). diff --git a/src/z2ui5_cl_demo_app_333.clas.abap b/src/z2ui5_cl_demo_app_333.clas.abap index 3d83cd89..becf0f84 100644 --- a/src/z2ui5_cl_demo_app_333.clas.abap +++ b/src/z2ui5_cl_demo_app_333.clas.abap @@ -19,6 +19,8 @@ CLASS z2ui5_cl_demo_app_333 DEFINITION PUBLIC. RETURNING VALUE(result) TYPE REF TO z2ui5_cl_demo_app_333. + class-DATA MS_STRUC type c LENGTH 10 VALUE 'STRUCT'. + PROTECTED SECTION. PRIVATE SECTION. diff --git a/src/z2ui5_cl_demo_app_334.clas.abap b/src/z2ui5_cl_demo_app_334.clas.abap new file mode 100644 index 00000000..5e3f06c2 --- /dev/null +++ b/src/z2ui5_cl_demo_app_334.clas.abap @@ -0,0 +1,101 @@ +CLASS z2ui5_cl_demo_app_334 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA ms_struc TYPE z2ui5_t_01. + DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333. + DATA mo_layout_obj_2 TYPE REF TO z2ui5_cl_demo_app_333. + + METHODS get_data. + + METHODS ui5_view_display + IMPORTING + !client TYPE REF TO z2ui5_if_client. + + PROTECTED SECTION. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_334 IMPLEMENTATION. + + METHOD z2ui5_if_app~main. + + IF client->check_on_init( ). + + get_data( ). + + mo_layout_obj = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ). + mo_layout_obj_2 = z2ui5_cl_demo_app_333=>factory( REF #( ms_struc ) ). + + ui5_view_display( client ). + + ENDIF. + + CASE client->get( )-event. + + WHEN 'BACK'. + + client->nav_app_leave( ). + + ENDCASE. + + IF ms_struc IS INITIAL. + client->message_toast_display( 'ERROR - MS_STRUC is initial!' ). + ENDIF. + + client->view_model_update( ). + + ENDMETHOD. + + METHOD ui5_view_display. + + DATA(page) = z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'RTTI IV' + navbuttonpress = client->_event( 'BACK' ) + shownavbutton = client->check_app_prev_stack( ) ). + + page->button( text = 'GO' + press = client->_event( 'GO' ) + type = 'Success' ). + + DATA(form) = page->simple_form( editable = abap_true + layout = `ResponsiveGridLayout` + adjustlabelspan = abap_true + )->content( ns = `form` ). + + DATA(index) = 0. + + LOOP AT mo_layout_obj->mt_layout REFERENCE INTO DATA(layout). + + index = index + 1. + + ASSIGN COMPONENT layout->name OF STRUCTURE mo_layout_obj->mr_data->* TO FIELD-SYMBOL(). + " assign component layout->name of structure ms_struc to field-symbol(). + IF IS NOT ASSIGNED. + RETURN. + ENDIF. + + DATA(line) = form->label( wrapping = abap_false + text = layout->name ). + + line->input( value = client->_bind( ) + visible = client->_bind( val = layout->visible + tab = mo_layout_obj->mt_layout + tab_index = index ) + enabled = abap_false ). + ENDLOOP. + + client->view_display( page ). + + ENDMETHOD. + + METHOD get_data. + + SELECT SINGLE * FROM z2ui5_t_01 + INTO CORRESPONDING FIELDS OF @ms_STRUC. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_334.clas.xml b/src/z2ui5_cl_demo_app_334.clas.xml new file mode 100644 index 00000000..3a571138 --- /dev/null +++ b/src/z2ui5_cl_demo_app_334.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_334 + E + RTTI - Struc with Class Data + 1 + X + X + X + + + +