diff --git a/.github/abaplint/abap_cloud.jsonc b/.github/abaplint/abap_cloud.jsonc index 97ed46d..ec9b92a 100644 --- a/.github/abaplint/abap_cloud.jsonc +++ b/.github/abaplint/abap_cloud.jsonc @@ -3,11 +3,11 @@ "files": "/../../src/**/*.*" }, "dependencies": [ - { - "url": "https://github.com/abapedia/steampunk-2305-api-intersect-702", - "folder": "/deps", - "files": "/src/**/*.*" - }, + { + "url": "https://github.com/abapedia/steampunk-2305-api", + "folder": "/deps", + "files": "/src/**/*.*" + }, { "url": "https://github.com/abap2UI5/abap2UI5", "folder": "/abap2UI5", diff --git a/src/01/z2ui5_cl_layo_sample_03.clas.xml b/src/01/z2ui5_cl_layo_sample_03.clas.xml index 4e2d9b6..540bb62 100644 --- a/src/01/z2ui5_cl_layo_sample_03.clas.xml +++ b/src/01/z2ui5_cl_layo_sample_03.clas.xml @@ -9,7 +9,7 @@ 1 X X - X + 5 diff --git a/src/01/z2ui5_cl_layo_sample_03a.clas.xml b/src/01/z2ui5_cl_layo_sample_03a.clas.xml index 6183fa6..117f499 100644 --- a/src/01/z2ui5_cl_layo_sample_03a.clas.xml +++ b/src/01/z2ui5_cl_layo_sample_03a.clas.xml @@ -9,7 +9,7 @@ 1 X X - X + 5 diff --git a/src/01/z2ui5_cl_layo_sample_04.clas.abap b/src/01/z2ui5_cl_layo_sample_04.clas.abap index 83b3982..e982833 100644 --- a/src/01/z2ui5_cl_layo_sample_04.clas.abap +++ b/src/01/z2ui5_cl_layo_sample_04.clas.abap @@ -5,11 +5,11 @@ CLASS z2ui5_cl_layo_sample_04 DEFINITION PUBLIC SECTION. INTERFACES z2ui5_if_app. - DATA ms_data TYPE Z2UI5_T_11. + DATA ms_data TYPE z2ui5_t_11. DATA mo_layout TYPE REF TO z2ui5_cl_layo_manager. PROTECTED SECTION. - DATA client TYPE REF TO z2ui5_if_client. + DATA client TYPE REF TO z2ui5_if_client. METHODS on_init. METHODS on_event. @@ -33,19 +33,20 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION. client->nav_app_leave( ). WHEN OTHERS. + z2ui5_cl_layo_pop=>on_event_layout( client = client layout = mo_layout ). ENDCASE. - ENDMETHOD. METHOD on_init. get_data( ). + init_layout( ). - render_main( ). + render_main( ). ENDMETHOD. METHOD render_main. @@ -60,8 +61,7 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION. z2ui5_cl_layo_xml_builder=>xml_build_simple_form( i_data = REF #( ms_data ) i_xml = page i_client = client - i_layout = mo_layout - ). + i_layout = mo_layout ). client->view_display( view->stringify( ) ). @@ -76,7 +76,7 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION. on_event( ). - IF client->check_on_navigated( ). + IF client->get( )-check_on_navigated = abap_true. on_after_navigation( ). ENDIF. @@ -84,7 +84,7 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION. METHOD get_data. - SELECT SINGLE * FROM Z2UI5_T_11 INTO @ms_data. + SELECT SINGLE * FROM z2ui5_t_11 INTO @ms_data. ENDMETHOD. @@ -95,6 +95,7 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION. ENDIF. DATA(class) = z2ui5_cL_util=>rtti_get_classname_by_ref( me ). + mo_layout = z2ui5_cl_layo_manager=>factory( control = z2ui5_cl_layo_manager=>ui_simpleform data = REF #( ms_data ) handle01 = class diff --git a/src/02/package.devc.xml b/src/02/package.devc.xml new file mode 100644 index 0000000..0bb968a --- /dev/null +++ b/src/02/package.devc.xml @@ -0,0 +1,10 @@ + + + + + + variant managment + + + + diff --git a/src/03/z2ui5_cl_layo_manager.clas.abap b/src/03/z2ui5_cl_layo_manager.clas.abap index 1f52be5..b6fec18 100644 --- a/src/03/z2ui5_cl_layo_manager.clas.abap +++ b/src/03/z2ui5_cl_layo_manager.clas.abap @@ -33,12 +33,12 @@ CLASS z2ui5_cl_layo_manager DEFINITION TYPES ty_t_sub_columns TYPE STANDARD TABLE OF ty_s_sub_columns WITH EMPTY KEY. TYPES BEGIN OF ty_s_positions. - INCLUDE TYPE z2ui5_t_12. - TYPES: tlabel TYPE string, - t_sub_col TYPE ty_t_sub_columns, - show_no_zeros TYPE abap_bool, - grid_layout TYPE string, - grid_layout_label TYPE string, + INCLUDE TYPE z2ui5_t_12. + TYPES: tlabel TYPE string, + t_sub_col TYPE ty_t_sub_columns, + show_no_zeros TYPE abap_bool, + grid_layout TYPE string, + grid_layout_label TYPE string, END OF ty_s_positions. TYPES ty_t_positions TYPE STANDARD TABLE OF ty_s_positions WITH EMPTY KEY. @@ -52,7 +52,8 @@ CLASS z2ui5_cl_layo_manager DEFINITION DATA ms_layout_tmp TYPE ty_s_layout. DATA mt_comps TYPE ty_t_positions. DATA mt_sub_cols TYPE ty_t_sub_columns. - DATA mr_data TYPE REF TO data. + DATA mr_data TYPE REF TO data. + DATA mr_data_tmp TYPE REF TO data. CLASS-METHODS factory IMPORTING @@ -124,7 +125,6 @@ CLASS z2ui5_cl_layo_manager DEFINITION METHODS sort. PRIVATE SECTION. - CLASS-METHODS create_layout_obj IMPORTING layout_guid TYPE clike OPTIONAL @@ -168,6 +168,15 @@ CLASS z2ui5_cl_layo_manager DEFINITION RETURNING VALUE(result) TYPE ty_s_positions. + CLASS-METHODS create_ref_of_data + IMPORTING + i_data TYPE REF TO data + i_comp TYPE cl_abap_structdescr=>component_table + !layout TYPE REF TO z2ui5_cl_layo_manager + RAISING + cx_sy_struct_creation + cx_sy_table_creation. + ENDCLASS. @@ -214,8 +223,6 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION. handle03 = handle03 handle04 = handle04 ). - result->mr_data = data. - ENDMETHOD. METHOD select_layouts. @@ -294,7 +301,7 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION. METHOD set_text. IF layout-alternative_text IS INITIAL. - result = z2ui5_cl_util=>rtti_get_data_element_texts( layout-rollname )-short. + result = z2ui5_cl_util=>rtti_get_data_element_texts( layout-rollname )-short. ELSE. result = z2ui5_cl_util=>rtti_get_data_element_texts( layout-alternative_text )-short. ENDIF. @@ -433,6 +440,12 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION. DATA(t_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( data ). + IF control <> others AND control <> ui_simpleform. + create_ref_of_data( i_data = data + i_comp = t_comp + layout = result ). + ENDIF. + LOOP AT t_comp INTO DATA(comp). IF comp-type->type_kind = cl_abap_elemdescr=>typekind_oref. DELETE t_comp. @@ -531,6 +544,21 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION. ENDMETHOD. + METHOD create_ref_of_data. + + layout->mr_data = i_data. + + DATA(new_struct_desc) = cl_abap_structdescr=>create( i_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 layout->mr_data_tmp TYPE HANDLE new_table_desc. + + layout->mr_data_tmp->* = layout->mr_data->*. + + ENDMETHOD. + METHOD check_zeros_option. IF i_typekind = cl_abap_elemdescr=>typekind_num @@ -546,7 +574,8 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION. result-fname = comp->name. result-rollname = comp->type->get_relative_name( ). - IF result-rollname IS INITIAL. + + IF result-rollname IS INITIAL. result-rollname = result-fname. ENDIF. @@ -635,10 +664,14 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION. TRY. +* IF mr_data->* <> mr_data_tmp->*. + ASSIGN mr_data->* TO . SORT
BY (sortorder). + +* ENDIF. CATCH cx_sy_dyn_table_ill_comp_val. "##NO_HANDLER CATCH cx_root. ENDTRY. diff --git a/src/03/z2ui5_cl_layo_pop.clas.abap b/src/03/z2ui5_cl_layo_pop.clas.abap index ae7d4b6..359ef37 100644 --- a/src/03/z2ui5_cl_layo_pop.clas.abap +++ b/src/03/z2ui5_cl_layo_pop.clas.abap @@ -13,7 +13,7 @@ CLASS z2ui5_cl_layo_pop DEFINITION TYPES ty_t_sorting TYPE STANDARD TABLE OF ty_s_sorting WITH EMPTY KEY. TYPES BEGIN OF ty_s_layo. - INCLUDE TYPE z2ui5_t_11. + INCLUDE TYPE z2ui5_t_11. TYPES selkz TYPE abap_bool. TYPES active TYPE c length 1. TYPES END OF ty_s_layo. @@ -1133,23 +1133,22 @@ CLASS z2ui5_cl_layo_pop IMPLEMENTATION. METHOD check_grid_sum. IF ( value ) > 12. - DATA(ls_msg) = z2ui5_cl_util=>msg_get_by_msg( + DATA(msg) = z2ui5_cl_util=>msg_get_by_msg( id = '/scmtms/common' no = '154' v1 = '12' ). - " MESSAGE e154(/scmtms/common) WITH '12' INTO msg. result = abap_true. ENDIF. - client->message_toast_display( ls_msg-text ). + client->message_toast_display( msg-text ). ENDMETHOD. METHOD render_add_gridlayout. TYPES: BEGIN OF ty_s_col, - col TYPE c LENGTH 2, + col TYPE c length 2, END OF ty_s_col. DATA t_col TYPE STANDARD TABLE OF ty_s_col. diff --git a/src/03/z2ui5_cl_layo_xml_builder.clas.abap b/src/03/z2ui5_cl_layo_xml_builder.clas.abap index 5728b74..9faab9e 100644 --- a/src/03/z2ui5_cl_layo_xml_builder.clas.abap +++ b/src/03/z2ui5_cl_layo_xml_builder.clas.abap @@ -26,6 +26,10 @@ CLASS z2ui5_cl_layo_xml_builder DEFINITION i_title TYPE string OPTIONAL. PROTECTED SECTION. + + + + PRIVATE SECTION. TYPES: BEGIN OF ty_s_grid_layout, label TYPE string, diff --git a/src/03/z2ui5_cl_layo_xml_builder.clas.xml b/src/03/z2ui5_cl_layo_xml_builder.clas.xml index d05e6dd..6d89dfb 100644 --- a/src/03/z2ui5_cl_layo_xml_builder.clas.xml +++ b/src/03/z2ui5_cl_layo_xml_builder.clas.xml @@ -9,7 +9,7 @@ 1XX - X + 5