diff --git a/src/z2ui5_cl_demo_app_000.clas.abap b/src/z2ui5_cl_demo_app_000.clas.abap index ef438079..745e2851 100644 --- a/src/z2ui5_cl_demo_app_000.clas.abap +++ b/src/z2ui5_cl_demo_app_000.clas.abap @@ -1940,6 +1940,14 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. mode = 'LineMode' class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' ). + panel->generic_tile( header = 'Model VI' + subheader = 'RTTI Data - Struc and Cell Binding' + press = client->_event( 'Z2UI5_CL_DEMO_APP_332' ) + mode = 'LineMode' + class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' + ). + + panel->generic_tile( header = 'Date Format Error in internal table' diff --git a/src/z2ui5_cl_demo_app_330.clas.xml b/src/z2ui5_cl_demo_app_330.clas.xml index e47d74cb..0acde9d7 100644 --- a/src/z2ui5_cl_demo_app_330.clas.xml +++ b/src/z2ui5_cl_demo_app_330.clas.xml @@ -5,7 +5,7 @@ Z2UI5_CL_DEMO_APP_330 E - basic - popups with ref from prev App + RTTI with Struc 1 X X diff --git a/src/z2ui5_cl_demo_app_331.clas.abap b/src/z2ui5_cl_demo_app_331.clas.abap index eb387dc0..b029fa3b 100644 --- a/src/z2ui5_cl_demo_app_331.clas.abap +++ b/src/z2ui5_cl_demo_app_331.clas.abap @@ -24,7 +24,7 @@ CLASS z2ui5_cl_demo_app_331 IMPLEMENTATION. IF client->check_on_init( ). get_data( ). - mo_table_obj = z2ui5_cl_demo_app_329=>factory( ref #( ms_struc ) ). + mo_table_obj = z2ui5_cl_demo_app_329=>factory( REF #( ms_struc ) ). ui5_view_display( client ). ENDIF. @@ -35,6 +35,12 @@ CLASS z2ui5_cl_demo_app_331 IMPLEMENTATION. 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. @@ -84,8 +90,8 @@ CLASS z2ui5_cl_demo_app_331 IMPLEMENTATION. * * ASSIGN ms_struc->* TO FIELD-SYMBOL(). - SELECT SINGLE * FROM z2ui5_t_01 - INTO CORRESPONDING FIELDS OF @ms_STRUC. + SELECT SINGLE * FROM z2ui5_t_01 + INTO CORRESPONDING FIELDS OF @ms_STRUC. * CATCH cx_root. diff --git a/src/z2ui5_cl_demo_app_331.clas.xml b/src/z2ui5_cl_demo_app_331.clas.xml index 93d75a6b..234eb69c 100644 --- a/src/z2ui5_cl_demo_app_331.clas.xml +++ b/src/z2ui5_cl_demo_app_331.clas.xml @@ -5,7 +5,7 @@ Z2UI5_CL_DEMO_APP_331 E - basic - popups with ref from prev App + RTTI - Struc 1 X X diff --git a/src/z2ui5_cl_demo_app_332.clas.abap b/src/z2ui5_cl_demo_app_332.clas.abap new file mode 100644 index 00000000..ecf32ec2 --- /dev/null +++ b/src/z2ui5_cl_demo_app_332.clas.abap @@ -0,0 +1,99 @@ +CLASS z2ui5_cl_demo_app_332 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA ms_struc TYPE z2ui5_t_01. + DATA mo_table_obj 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_332 IMPLEMENTATION. + + METHOD z2ui5_if_app~main. + + IF client->check_on_init( ). + + get_data( ). + + mo_table_obj = 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_table_obj->mt_layout REFERENCE INTO DATA(layout). + + index = index + 1. + + ASSIGN COMPONENT layout->name OF STRUCTURE mo_table_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_table_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_332.clas.xml b/src/z2ui5_cl_demo_app_332.clas.xml new file mode 100644 index 00000000..af407c6b --- /dev/null +++ b/src/z2ui5_cl_demo_app_332.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_332 + E + RTTI - Struc wit Cell Binding + 1 + X + X + X + + + + diff --git a/src/z2ui5_cl_demo_app_333.clas.abap b/src/z2ui5_cl_demo_app_333.clas.abap new file mode 100644 index 00000000..3d83cd89 --- /dev/null +++ b/src/z2ui5_cl_demo_app_333.clas.abap @@ -0,0 +1,51 @@ +CLASS z2ui5_cl_demo_app_333 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES if_serializable_object. + + TYPES: + BEGIN OF ty_s_layout, + name TYPE string, + visible TYPE abap_bool, + END OF ty_s_layout. + TYPES ty_t_layout TYPE STANDARD TABLE OF ty_s_layout WITH EMPTY KEY. + + DATA mt_layout TYPE ty_t_layout. + DATA mr_data TYPE REF TO data. + + CLASS-METHODS factory + IMPORTING + i_data TYPE REF TO data + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_demo_app_333. + + PROTECTED SECTION. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_333 IMPLEMENTATION. + + METHOD factory. + + result = NEW #( ). + + DATA(t_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( i_data ). + + LOOP AT t_comp INTO DATA(comp). + + APPEND INITIAL LINE TO result->mt_layout REFERENCE INTO DATA(layout). + + layout->name = comp-name. + IF sy-tabix < 4. + layout->visible = abap_true. + ENDIF. + + ENDLOOP. + + result->mr_data = i_data. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_333.clas.xml b/src/z2ui5_cl_demo_app_333.clas.xml new file mode 100644 index 00000000..62e749e8 --- /dev/null +++ b/src/z2ui5_cl_demo_app_333.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_333 + E + Data Object for Sample 331 + 1 + X + X + X + + + +