From 28b3328b2d94dbdb45111029fe9b32f52ce70a5e Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Fri, 13 Jun 2025 09:00:58 +0000 Subject: [PATCH 1/4] Update --- src/z2ui5_cl_demo_app_000.clas.abap | 7 ++++ src/z2ui5_cl_demo_app_328.clas.abap | 64 +++++++++++++++++++++++++++++ src/z2ui5_cl_demo_app_328.clas.xml | 16 ++++++++ src/z2ui5_cl_demo_app_329.clas.abap | 44 ++++++++++++++++++++ src/z2ui5_cl_demo_app_329.clas.xml | 16 ++++++++ src/z2ui5_cl_demo_app_330.clas.abap | 31 ++++++++++++++ src/z2ui5_cl_demo_app_330.clas.xml | 16 ++++++++ 7 files changed, 194 insertions(+) create mode 100644 src/z2ui5_cl_demo_app_328.clas.abap create mode 100644 src/z2ui5_cl_demo_app_328.clas.xml create mode 100644 src/z2ui5_cl_demo_app_329.clas.abap create mode 100644 src/z2ui5_cl_demo_app_329.clas.xml create mode 100644 src/z2ui5_cl_demo_app_330.clas.abap create mode 100644 src/z2ui5_cl_demo_app_330.clas.xml diff --git a/src/z2ui5_cl_demo_app_000.clas.abap b/src/z2ui5_cl_demo_app_000.clas.abap index 7252f98b..ba50ef55 100644 --- a/src/z2ui5_cl_demo_app_000.clas.abap +++ b/src/z2ui5_cl_demo_app_000.clas.abap @@ -359,6 +359,13 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' ). + panel->generic_tile( header = 'Dynamic Objects IV' + subheader = 'User Generic Data Refs from Prev App' + press = client->_event( 'ZZ2UI5_CL_DEMO_APP_328' ) + mode = 'LineMode' + class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' + ). + panel = page->panel( expandable = abap_false expanded = abap_true headertext = `Device Capabilities` diff --git a/src/z2ui5_cl_demo_app_328.clas.abap b/src/z2ui5_cl_demo_app_328.clas.abap new file mode 100644 index 00000000..d294298c --- /dev/null +++ b/src/z2ui5_cl_demo_app_328.clas.abap @@ -0,0 +1,64 @@ +CLASS z2ui5_cl_demo_app_328 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA mt_table TYPE STANDARD TABLE OF z2ui5_t_01. + + DATA mo_table_obj TYPE REF TO z2ui5_cl_demo_app_330. + + DATA client TYPE REF TO z2ui5_if_client. + + PROTECTED SECTION. + + PRIVATE SECTION. + METHODS ui5_view_display. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_328 IMPLEMENTATION. + + METHOD z2ui5_if_app~main. + + me->client = client. + + IF client->check_on_init( ). + ui5_view_display( ). + ENDIF. + + CASE client->get( )-event. + + WHEN 'BUTTON_POPUP'. + + SELECT * FROM z2ui5_t_01 INTO TABLE @mt_table UP TO 10 ROWS. + + mo_table_obj = z2ui5_cl_demo_app_330=>factory( REF #( mt_table ) ). + + client->nav_app_call( z2ui5_cl_demo_app_329=>factory( mo_table_obj ) ). + + WHEN 'BACK'. + client->nav_app_leave( ). + + ENDCASE. + + ENDMETHOD. + + METHOD ui5_view_display. + + DATA(lo_main) = z2ui5_cl_xml_view=>factory( )->shell( ). + DATA(page) = lo_main->page( title = 'abap2UI5 - Popups' + navbuttonpress = client->_event( val = 'BACK' ) + shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ) ). + + " TODO: variable is assigned but never used (ABAP cleaner) + DATA(grid) = page->grid( 'L7 M12 S12' )->content( 'layout' + )->simple_form( 'Popup in new App' )->content( 'form' + )->label( 'Demo' + )->button( text = 'popup with gernic Ref to prev. App' + press = client->_event( 'BUTTON_POPUP' ) ). + + client->view_display( lo_main->stringify( ) ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_328.clas.xml b/src/z2ui5_cl_demo_app_328.clas.xml new file mode 100644 index 00000000..011dfb64 --- /dev/null +++ b/src/z2ui5_cl_demo_app_328.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_328 + E + basic - popups with ref from prev App + 1 + X + X + X + + + + diff --git a/src/z2ui5_cl_demo_app_329.clas.abap b/src/z2ui5_cl_demo_app_329.clas.abap new file mode 100644 index 00000000..c19ec4bf --- /dev/null +++ b/src/z2ui5_cl_demo_app_329.clas.abap @@ -0,0 +1,44 @@ +CLASS z2ui5_cl_demo_app_329 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + CLASS-METHODS factory + IMPORTING + i_data TYPE REF TO z2ui5_cl_demo_app_330 + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_demo_app_329. + + DATA mo_data TYPE REF TO z2ui5_cl_demo_app_330. + + PROTECTED SECTION. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_329 IMPLEMENTATION. + + METHOD factory. + + result = NEW #( ). + + result->mo_data = i_data. + + ENDMETHOD. + + METHOD z2ui5_if_app~main. + + + IF mo_data->mr_table_data IS NOT INITIAL. + client->message_toast_display( 'Success - Ref works.' ). + client->nav_app_leave( ). + ELSE. + + client->message_toast_display( 'Error - Ref not working' ). + client->nav_app_leave( ). + ENDIF. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_329.clas.xml b/src/z2ui5_cl_demo_app_329.clas.xml new file mode 100644 index 00000000..175a94d2 --- /dev/null +++ b/src/z2ui5_cl_demo_app_329.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_329 + E + popup - with Data Object for Sample 328 + 1 + X + X + X + + + + diff --git a/src/z2ui5_cl_demo_app_330.clas.abap b/src/z2ui5_cl_demo_app_330.clas.abap new file mode 100644 index 00000000..bfbc8c49 --- /dev/null +++ b/src/z2ui5_cl_demo_app_330.clas.abap @@ -0,0 +1,31 @@ +CLASS z2ui5_cl_demo_app_330 DEFINITION PUBLIC. + + PUBLIC SECTION. + + INTERFACES if_serializable_object. + + DATA mr_table_data type ref to data. + + CLASS-METHODS factory + IMPORTING + i_TABLE_data TYPE ref to data + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_demo_app_330. + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS Z2UI5_CL_DEMO_APP_330 IMPLEMENTATION. + + METHOD factory. + + result = NEW #( ). + + result->mr_table_data = i_table_data. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_330.clas.xml b/src/z2ui5_cl_demo_app_330.clas.xml new file mode 100644 index 00000000..8ece1360 --- /dev/null +++ b/src/z2ui5_cl_demo_app_330.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_330 + E + Object with Ref for Sample 328 + 1 + X + X + X + + + + From f4d8ff012fc4d0c007cb1046a3e38b40702311ae Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Tue, 24 Jun 2025 06:53:09 +0000 Subject: [PATCH 2/4] Update Sample RTTI+Sub APP --- src/z2ui5_cl_demo_app_190.clas.abap | 41 ++--------------------------- src/z2ui5_cl_demo_app_191.clas.abap | 8 +++--- 2 files changed, 6 insertions(+), 43 deletions(-) diff --git a/src/z2ui5_cl_demo_app_190.clas.abap b/src/z2ui5_cl_demo_app_190.clas.abap index 9cb0dd56..beb45555 100644 --- a/src/z2ui5_cl_demo_app_190.clas.abap +++ b/src/z2ui5_cl_demo_app_190.clas.abap @@ -10,10 +10,8 @@ CLASS z2ui5_cl_demo_app_190 DEFINITION DATA mv_table TYPE string. DATA mt_table TYPE REF TO data. - DATA mt_table_tmp TYPE REF TO data. DATA mt_comp TYPE abap_component_tab. - DATA ms_fixval TYPE REF TO data. METHODS set_app_data IMPORTING !count TYPE string @@ -34,7 +32,7 @@ CLASS z2ui5_cl_demo_app_190 DEFINITION METHODS get_comp RETURNING VALUE(result) TYPE abap_component_tab. - METHODS get_fixval. + ENDCLASS. CLASS z2ui5_cl_demo_app_190 IMPLEMENTATION. @@ -143,7 +141,7 @@ CLASS z2ui5_cl_demo_app_190 IMPLEMENTATION. CREATE DATA mt_table TYPE HANDLE new_table_desc. - CREATE DATA mt_table_tmp TYPE HANDLE new_table_desc. +* CREATE DATA mt_table_tmp TYPE HANDLE new_table_desc. ASSIGN mt_table->* TO . @@ -157,43 +155,8 @@ CLASS z2ui5_cl_demo_app_190 IMPLEMENTATION. ENDTRY. - ASSIGN mt_table_tmp->* TO . - - =
. - get_fixval( ). - ENDMETHOD. - METHOD get_fixval. - - TYPES: - BEGIN OF fixvalue, - low TYPE string, - high TYPE string, - option TYPE string, - ddlanguage TYPE string, - ddtext TYPE string, - END OF fixvalue. - TYPES fixvalues TYPE STANDARD TABLE OF fixvalue WITH DEFAULT KEY. - - DATA comp TYPE cl_abap_structdescr=>component_table. - DATA structdescr TYPE REF TO cl_abap_structdescr. - DATA lt_fixval TYPE fixvalues. - - LOOP AT mt_comp REFERENCE INTO DATA(dfies). - - comp = VALUE cl_abap_structdescr=>component_table( - BASE comp - ( name = dfies->name - type = CAST #( cl_abap_datadescr=>describe_by_data( lt_fixval ) ) ) ). - ENDLOOP. - - structdescr = cl_abap_structdescr=>create( comp ). - - CREATE DATA ms_fixval TYPE HANDLE structdescr. - - - ENDMETHOD. METHOD get_comp. DATA index TYPE int4. diff --git a/src/z2ui5_cl_demo_app_191.clas.abap b/src/z2ui5_cl_demo_app_191.clas.abap index bb865968..b654b8fa 100644 --- a/src/z2ui5_cl_demo_app_191.clas.abap +++ b/src/z2ui5_cl_demo_app_191.clas.abap @@ -62,10 +62,10 @@ CLASS Z2UI5_CL_DEMO_APP_191 IMPLEMENTATION. METHOD on_init. - mt_t002 = VALUE #( ( id = '1' class = 'Z2UI5_CL_DEMO_APP_190' count = '10' table = 'Z2UI5_T001' ) - ( id = '2' class = 'Z2UI5_CL_DEMO_APP_190' count = '20' table = 'Z2UI5_T002' ) - ( id = '3' class = 'Z2UI5_CL_DEMO_APP_190' count = '30' table = 'Z2UI5_TOOL_T_001' ) - ( id = '4' class = 'Z2UI5_CL_DEMO_APP_190' count = '40' table = 'Z2UI5_TOOL_T_002' ) ). + mt_t002 = VALUE #( ( id = '1' class = 'Z2UI5_CL_DEMO_APP_190' count = '10' table = 'Z2UI5_T_11' ) + ( id = '2' class = 'Z2UI5_CL_DEMO_APP_190' count = '20' table = 'Z2UI5_T_12' ) + ( id = '3' class = 'Z2UI5_CL_DEMO_APP_190' count = '30' table = 'Z2UI5_T_11' ) + ( id = '4' class = 'Z2UI5_CL_DEMO_APP_190' count = '40' table = 'Z2UI5_T_12' ) ). mv_selectedkey = '1'. From ee515bfad347f46389e7a3fe55ed69c132fc3b07 Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Tue, 24 Jun 2025 07:36:20 +0000 Subject: [PATCH 3/4] Update RTTI Samples --- src/z2ui5_cl_demo_app_190.clas.abap | 7 ++++--- src/z2ui5_cl_demo_app_194.clas.abap | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/z2ui5_cl_demo_app_190.clas.abap b/src/z2ui5_cl_demo_app_190.clas.abap index beb45555..35ad073a 100644 --- a/src/z2ui5_cl_demo_app_190.clas.abap +++ b/src/z2ui5_cl_demo_app_190.clas.abap @@ -10,9 +10,10 @@ CLASS z2ui5_cl_demo_app_190 DEFINITION DATA mv_table TYPE string. DATA mt_table TYPE REF TO data. - DATA mt_comp TYPE abap_component_tab. + DATA mv_init type abap_boolean. + METHODS set_app_data IMPORTING !count TYPE string !table TYPE string. @@ -110,8 +111,8 @@ CLASS z2ui5_cl_demo_app_190 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. - IF client->check_on_init( ). - + IF mv_init = abap_false. + mv_init = abap_true. on_init( ). ENDIF. diff --git a/src/z2ui5_cl_demo_app_194.clas.abap b/src/z2ui5_cl_demo_app_194.clas.abap index 7e04def5..6af700ca 100644 --- a/src/z2ui5_cl_demo_app_194.clas.abap +++ b/src/z2ui5_cl_demo_app_194.clas.abap @@ -14,14 +14,14 @@ CLASS z2ui5_cl_demo_app_194 DEFINITION DATA ms_table_row TYPE REF TO data. DATA mt_comp TYPE abap_component_tab. DATA ms_fixval TYPE REF TO data. + DATA mv_init TYPE abap_bool. METHODS set_app_data - IMPORTING !count TYPE string - !table TYPE string. + IMPORTING + !table TYPE string. PROTECTED SECTION. - DATA client TYPE REF TO z2ui5_if_client. - + DATA client TYPE REF TO z2ui5_if_client. METHODS on_init. METHODS on_event. @@ -32,11 +32,13 @@ CLASS z2ui5_cl_demo_app_194 DEFINITION METHODS get_data. METHODS get_comp - RETURNING VALUE(result) TYPE abap_component_tab. + RETURNING + VALUE(result) TYPE abap_component_tab. METHODS get_fixval. ENDCLASS. + CLASS z2ui5_cl_demo_app_194 IMPLEMENTATION. METHOD on_event. @@ -82,7 +84,6 @@ CLASS z2ui5_cl_demo_app_194 IMPLEMENTATION. page = mo_parent_view->get( `Page` ). ENDIF. - ASSIGN mt_table->* TO . DATA(table) = page->table( growing = 'true' @@ -105,7 +106,7 @@ CLASS z2ui5_cl_demo_app_194 IMPLEMENTATION. )->cells( ). LOOP AT mt_comp INTO comp. - cells->object_identifier( text = '{' && comp-name && '}' ). + cells->object_identifier( text = |\{{ comp-name }\}| ). ENDLOOP. page->footer( )->overflow_toolbar( @@ -128,7 +129,8 @@ CLASS z2ui5_cl_demo_app_194 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. - IF client->check_on_init( ). + IF mv_init = abap_false. + mv_init = abap_true. on_init( ). @@ -193,8 +195,8 @@ CLASS z2ui5_cl_demo_app_194 IMPLEMENTATION. TYPES fixvalues TYPE STANDARD TABLE OF fixvalue WITH DEFAULT KEY. DATA comp TYPE cl_abap_structdescr=>component_table. - DATA structdescr TYPE REF TO cl_abap_structdescr. DATA lt_fixval TYPE fixvalues. + DATA structdescr TYPE REF TO cl_abap_structdescr. LOOP AT mt_comp REFERENCE INTO DATA(dfies). @@ -208,19 +210,17 @@ CLASS z2ui5_cl_demo_app_194 IMPLEMENTATION. CREATE DATA ms_fixval TYPE HANDLE structdescr. - ENDMETHOD. METHOD get_comp. DATA index TYPE int4. - TRY. - + TRY. TRY. cl_abap_typedescr=>describe_by_name( EXPORTING p_name = mv_table - RECEIVING p_descr_ref = DATA(typedesc) + RECEIVING p_descr_ref = DATA(typedesc) EXCEPTIONS type_not_found = 1 OTHERS = 2 ). From c733bded2e02a345d9e37edf1afd45be7557d130 Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Tue, 24 Jun 2025 07:39:17 +0000 Subject: [PATCH 4/4] Update --- src/z2ui5_cl_demo_app_190.clas.abap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/z2ui5_cl_demo_app_190.clas.abap b/src/z2ui5_cl_demo_app_190.clas.abap index 35ad073a..d2b83462 100644 --- a/src/z2ui5_cl_demo_app_190.clas.abap +++ b/src/z2ui5_cl_demo_app_190.clas.abap @@ -12,7 +12,7 @@ CLASS z2ui5_cl_demo_app_190 DEFINITION DATA mt_table TYPE REF TO data. DATA mt_comp TYPE abap_component_tab. - DATA mv_init type abap_boolean. + DATA mv_init type abap_bool. METHODS set_app_data IMPORTING !count TYPE string