@@ -33,12 +33,12 @@ CLASS z2ui5_cl_layo_manager DEFINITION
3333 TYPES ty_t_sub_columns TYPE STANDARD TABLE OF ty_s_sub_columns WITH EMPTY KEY .
3434
3535 TYPES BEGIN OF ty_s_positions.
36- INCLUDE TYPE z2ui5_t_12.
37- TYPES : tlabel TYPE string ,
38- t_sub_col TYPE ty_t_sub_columns,
39- show_no_zeros TYPE abap_bool ,
40- grid_layout TYPE string ,
41- grid_layout_label TYPE string ,
36+ INCLUDE TYPE z2ui5_t_12.
37+ TYPES : tlabel TYPE string ,
38+ t_sub_col TYPE ty_t_sub_columns,
39+ show_no_zeros TYPE abap_bool ,
40+ grid_layout TYPE string ,
41+ grid_layout_label TYPE string ,
4242 END OF ty_s_positions.
4343 TYPES ty_t_positions TYPE STANDARD TABLE OF ty_s_positions WITH EMPTY KEY .
4444
@@ -52,7 +52,8 @@ CLASS z2ui5_cl_layo_manager DEFINITION
5252 DATA ms_layout_tmp TYPE ty_s_layout.
5353 DATA mt_comps TYPE ty_t_positions.
5454 DATA mt_sub_cols TYPE ty_t_sub_columns.
55- DATA mr_data TYPE REF TO data .
55+ DATA mr_data TYPE REF TO data .
56+ DATA mr_data_tmp TYPE REF TO data .
5657
5758 CLASS-METHODS factory
5859 IMPORTING
@@ -124,7 +125,6 @@ CLASS z2ui5_cl_layo_manager DEFINITION
124125 METHODS sort .
125126
126127 PRIVATE SECTION .
127-
128128 CLASS-METHODS create_layout_obj
129129 IMPORTING
130130 layout_guid TYPE clike OPTIONAL
@@ -168,6 +168,15 @@ CLASS z2ui5_cl_layo_manager DEFINITION
168168 RETURNING
169169 VALUE (result ) TYPE ty_s_positions.
170170
171+ CLASS-METHODS create_ref_of_data
172+ IMPORTING
173+ i_data TYPE REF TO data
174+ i_comp TYPE cl_abap_structdescr=>component_table
175+ !layout TYPE REF TO z2ui5_cl_layo_manager
176+ RAISING
177+ cx_sy_struct_creation
178+ cx_sy_table_creation.
179+
171180ENDCLASS .
172181
173182
@@ -214,8 +223,6 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION.
214223 handle03 = handle03
215224 handle04 = handle04 ).
216225
217- result->mr_data = data .
218-
219226 ENDMETHOD .
220227
221228 METHOD select_layouts .
@@ -294,7 +301,7 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION.
294301 METHOD set_text .
295302
296303 IF layout-alternative_text IS INITIAL .
297- result = z2ui5_cl_util=>rtti_get_data_element_texts( layout-rollname )-short.
304+ result = z2ui5_cl_util=>rtti_get_data_element_texts( layout-rollname )-short.
298305 ELSE .
299306 result = z2ui5_cl_util=>rtti_get_data_element_texts( layout-alternative_text )-short.
300307 ENDIF .
@@ -433,6 +440,12 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION.
433440
434441 DATA (t_comp ) = z2ui5_cl_util=>rtti_get_t_attri_by_any( data ).
435442
443+ IF control <> others AND control <> ui_simpleform.
444+ create_ref_of_data( i_data = data
445+ i_comp = t_comp
446+ layout = result ).
447+ ENDIF .
448+
436449 LOOP AT t_comp INTO DATA (comp ).
437450 IF comp-type->type_kind = cl_abap_elemdescr=>typekind_oref.
438451 DELETE t_comp.
@@ -531,6 +544,21 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION.
531544
532545 ENDMETHOD .
533546
547+ METHOD create_ref_of_data .
548+
549+ layout->mr_data = i_data.
550+
551+ DATA (new_struct_desc ) = cl_abap_structdescr=>create( i_comp ).
552+
553+ DATA (new_table_desc ) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
554+
555+ p_table_kind = cl_abap_tabledescr=>tablekind_std ).
556+ CREATE DATA layout->mr_data_tmp TYPE HANDLE new_table_desc.
557+
558+ layout->mr_data_tmp->* = layout->mr_data->*.
559+
560+ ENDMETHOD .
561+
534562 METHOD check_zeros_option .
535563
536564 IF i_typekind = cl_abap_elemdescr=>typekind_num
@@ -546,7 +574,8 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION.
546574
547575 result-fname = comp->name.
548576 result-rollname = comp->type->get_relative_name( ).
549- IF result-rollname IS INITIAL .
577+
578+ IF result-rollname IS INITIAL .
550579 result-rollname = result-fname.
551580 ENDIF .
552581
@@ -635,10 +664,14 @@ CLASS z2ui5_cl_layo_manager IMPLEMENTATION.
635664
636665 TRY .
637666
667+ * IF mr_data->* <> mr_data_tmp->*.
668+
638669 ASSIGN mr_data->* TO <table> .
639670
640671 SORT <table>
641672 BY (sortorder).
673+
674+ * ENDIF.
642675 CATCH cx_sy_dyn_table_ill_comp_val. "##NO_HANDLER
643676 CATCH cx_root.
644677 ENDTRY .
0 commit comments