From 28b3328b2d94dbdb45111029fe9b32f52ce70a5e Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Fri, 13 Jun 2025 09:00:58 +0000 Subject: [PATCH 1/6] 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/6] 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/6] 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/6] 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 From 06a3ba02f025faa889c411758ce6a365e5066529 Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Wed, 25 Jun 2025 06:49:16 +0000 Subject: [PATCH 5/6] RTTI Sample --- src/z2ui5_cl_demo_app_195.clas.abap | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/z2ui5_cl_demo_app_195.clas.abap b/src/z2ui5_cl_demo_app_195.clas.abap index aed9a904..c18ace26 100644 --- a/src/z2ui5_cl_demo_app_195.clas.abap +++ b/src/z2ui5_cl_demo_app_195.clas.abap @@ -62,10 +62,10 @@ CLASS Z2UI5_CL_DEMO_APP_195 IMPLEMENTATION. METHOD on_init. - mt_t002 = VALUE #( ( id = '1' class = 'Z2UI5_CL_DEMO_APP_194' count = '10' table = 'Z2UI5_T001') - ( id = '2' class = 'Z2UI5_CL_DEMO_APP_194' count = '20' table = 'Z2UI5_T002') - ( id = '3' class = 'Z2UI5_CL_DEMO_APP_194' count = '30' table = 'Z2UI5_TOOL_T_001') - ( id = '4' class = 'Z2UI5_CL_DEMO_APP_194' count = '40' table = 'Z2UI5_TOOL_T_002') ). + mt_t002 = VALUE #( ( id = '1' class = 'Z2UI5_CL_DEMO_APP_194' count = '10' table = 'Z2UI5_T_11') + ( id = '2' class = 'Z2UI5_CL_DEMO_APP_194' count = '20' table = 'Z2UI5_T_12') + ( id = '3' class = 'Z2UI5_CL_DEMO_APP_194' count = '30' table = 'Z2UI5_T_11') + ( id = '4' class = 'Z2UI5_CL_DEMO_APP_194' count = '40' table = 'Z2UI5_T_12') ). mv_selectedkey = '1'. @@ -120,7 +120,6 @@ CLASS Z2UI5_CL_DEMO_APP_195 IMPLEMENTATION. CALL METHOD mo_app->('SET_APP_DATA') EXPORTING - count = t002->count table = t002->table. render_main( ). From 53f0ef0cbe0b017d0674186d9d12fe74e07fcf04 Mon Sep 17 00:00:00 2001 From: Viktor Hoffmann Date: Thu, 26 Jun 2025 09:01:23 +0000 Subject: [PATCH 6/6] =?UTF-8?q?Update=20New=20RTTI=20Sample=20with=20Dynam?= =?UTF-8?q?ic=20REF=C2=B4s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/z2ui5_cl_demo_app_000.clas.abap | 2 +- src/z2ui5_cl_demo_app_328.clas.abap | 98 ++++++++++++++++++++++------- src/z2ui5_cl_demo_app_329.clas.abap | 30 +++------ src/z2ui5_cl_demo_app_330.clas.abap | 31 --------- src/z2ui5_cl_demo_app_330.clas.xml | 16 ----- 5 files changed, 86 insertions(+), 91 deletions(-) delete mode 100644 src/z2ui5_cl_demo_app_330.clas.abap delete 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 ba50ef55..cda02914 100644 --- a/src/z2ui5_cl_demo_app_000.clas.abap +++ b/src/z2ui5_cl_demo_app_000.clas.abap @@ -360,7 +360,7 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. ). panel->generic_tile( header = 'Dynamic Objects IV' - subheader = 'User Generic Data Refs from Prev App' + subheader = 'User Generic Data Refs' press = client->_event( 'ZZ2UI5_CL_DEMO_APP_328' ) mode = 'LineMode' class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' diff --git a/src/z2ui5_cl_demo_app_328.clas.abap b/src/z2ui5_cl_demo_app_328.clas.abap index d294298c..aa382615 100644 --- a/src/z2ui5_cl_demo_app_328.clas.abap +++ b/src/z2ui5_cl_demo_app_328.clas.abap @@ -3,13 +3,14 @@ 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 mt_table TYPE REF TO data. + DATA mt_comp TYPE cl_abap_structdescr=>component_table. + DATA mo_table_obj TYPE REF TO z2ui5_cl_demo_app_329. - DATA mo_table_obj TYPE REF TO z2ui5_cl_demo_app_330. - - DATA client TYPE REF TO z2ui5_if_client. + DATA client TYPE REF TO z2ui5_if_client. PROTECTED SECTION. + METHODS get_data. PRIVATE SECTION. METHODS ui5_view_display. @@ -23,41 +24,94 @@ CLASS z2ui5_cl_demo_app_328 IMPLEMENTATION. me->client = client. IF client->check_on_init( ). - ui5_view_display( ). - ENDIF. - CASE client->get( )-event. + get_data( ). - WHEN 'BUTTON_POPUP'. + mo_table_obj = z2ui5_cl_demo_app_329=>factory( mt_table ). - SELECT * FROM z2ui5_t_01 INTO TABLE @mt_table UP TO 10 ROWS. + ui5_view_display( ). - mo_table_obj = z2ui5_cl_demo_app_330=>factory( REF #( mt_table ) ). + ENDIF. - client->nav_app_call( z2ui5_cl_demo_app_329=>factory( mo_table_obj ) ). + CASE client->get( )-event. WHEN 'BACK'. client->nav_app_leave( ). + WHEN 'SELECTION_CHANGE' OR 'GO'. + + IF mt_table->* <> mo_table_obj->mr_data->*. + client->message_toast_display( 'Error - MT_TABLE <> MO_TABLE_OBJ->MR_TABLE_DATA' ). + ENDIF. + 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 ) ). + DATA(page) = z2ui5_cl_xml_view=>factory( ). + + page->button( text = 'GO' + press = client->_event( 'GO' ) + type = 'Success' ). + + DATA(table) = page->table( growing = 'true' + width = 'auto' + items = client->_bind( mt_table->* ) + mode = 'MultiSelect' + selectionchange = client->_event( 'SELECTION_CHANGE' ) ). + + DATA(columns) = table->columns( ). + + LOOP AT mt_comp INTO DATA(comp) WHERE name CP `ID*`. + + columns->column( )->text( comp-name ). + + ENDLOOP. + + DATA(cells) = columns->get_parent( )->items( + )->column_list_item( valign = 'Middle' + type = 'Navigation' + )->cells( ). + + LOOP AT mt_comp INTO comp. + cells->object_identifier( text = |\{{ comp-name }\}| ). + ENDLOOP. + + client->view_display( page ). + + ENDMETHOD. + + METHOD get_data. + DATA selkz TYPE abap_bool. + + FIELD-SYMBOLS
TYPE STANDARD TABLE. + + mt_comp = z2ui5_cl_util=>rtti_get_t_attri_by_table_name( 'Z2UI5_T_01' ). + + APPEND LINES OF VALUE cl_abap_structdescr=>component_table( + ( name = 'SELKZ' + type = CAST #( cl_abap_datadescr=>describe_by_data( selkz ) ) ) ) TO mt_comp. + + TRY. + + DATA(new_struct_desc) = cl_abap_structdescr=>create( mt_comp ). + + DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc + p_table_kind = cl_abap_tabledescr=>tablekind_std ). + + CREATE DATA mt_table TYPE HANDLE new_table_desc. + + ASSIGN mt_table->* TO
. + + SELECT * FROM z2ui5_t_01 + INTO CORRESPONDING FIELDS OF TABLE @
+ UP TO 10 ROWS. - " 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' ) ). + CATCH cx_root. - client->view_display( lo_main->stringify( ) ). + ENDTRY. ENDMETHOD. diff --git a/src/z2ui5_cl_demo_app_329.clas.abap b/src/z2ui5_cl_demo_app_329.clas.abap index c19ec4bf..eac990f2 100644 --- a/src/z2ui5_cl_demo_app_329.clas.abap +++ b/src/z2ui5_cl_demo_app_329.clas.abap @@ -1,44 +1,32 @@ CLASS z2ui5_cl_demo_app_329 DEFINITION PUBLIC. PUBLIC SECTION. - INTERFACES z2ui5_if_app. + + INTERFACES if_serializable_object. + + DATA mr_data type ref to data. CLASS-METHODS factory IMPORTING - i_data TYPE REF TO z2ui5_cl_demo_app_330 + i_data TYPE ref to data 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. + +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. + result->mr_data = i_data. ENDMETHOD. ENDCLASS. + diff --git a/src/z2ui5_cl_demo_app_330.clas.abap b/src/z2ui5_cl_demo_app_330.clas.abap deleted file mode 100644 index bfbc8c49..00000000 --- a/src/z2ui5_cl_demo_app_330.clas.abap +++ /dev/null @@ -1,31 +0,0 @@ -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 deleted file mode 100644 index 8ece1360..00000000 --- a/src/z2ui5_cl_demo_app_330.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Z2UI5_CL_DEMO_APP_330 - E - Object with Ref for Sample 328 - 1 - X - X - X - - - -