Skip to content

Commit db699a6

Browse files
abapsheepViktor Hoffmannoblomov-dev
authored
Added Sort Feature (#29)
* update * Update - Add Sort Function * Update abaplint.jsonc * Update abaplint.jsonc * Update abaplint.jsonc * Update abap_cloud.jsonc --------- Co-authored-by: Viktor Hoffmann <[email protected]> Co-authored-by: oblomov-dev <[email protected]>
1 parent 51228b8 commit db699a6

9 files changed

+80
-33
lines changed

.github/abaplint/abap_cloud.jsonc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
"files": "/../../src/**/*.*"
44
},
55
"dependencies": [
6-
{
7-
"url": "https://github.com/abapedia/steampunk-2305-api-intersect-702",
8-
"folder": "/deps",
9-
"files": "/src/**/*.*"
10-
},
6+
{
7+
"url": "https://github.com/abapedia/steampunk-2305-api",
8+
"folder": "/deps",
9+
"files": "/src/**/*.*"
10+
},
1111
{
1212
"url": "https://github.com/abap2UI5/abap2UI5",
1313
"folder": "/abap2UI5",

src/01/z2ui5_cl_layo_sample_03.clas.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>
12-
<UNICODE>X</UNICODE>
12+
<UNICODE>5</UNICODE>
1313
</VSEOCLASS>
1414
</asx:values>
1515
</asx:abap>

src/01/z2ui5_cl_layo_sample_03a.clas.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>
12-
<UNICODE>X</UNICODE>
12+
<UNICODE>5</UNICODE>
1313
</VSEOCLASS>
1414
</asx:values>
1515
</asx:abap>

src/01/z2ui5_cl_layo_sample_04.clas.abap

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ CLASS z2ui5_cl_layo_sample_04 DEFINITION
55
PUBLIC SECTION.
66
INTERFACES z2ui5_if_app.
77

8-
DATA ms_data TYPE Z2UI5_T_11.
8+
DATA ms_data TYPE z2ui5_t_11.
99
DATA mo_layout TYPE REF TO z2ui5_cl_layo_manager.
1010

1111
PROTECTED SECTION.
12-
DATA client TYPE REF TO z2ui5_if_client.
12+
DATA client TYPE REF TO z2ui5_if_client.
1313

1414
METHODS on_init.
1515
METHODS on_event.
@@ -33,19 +33,20 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION.
3333
client->nav_app_leave( ).
3434

3535
WHEN OTHERS.
36+
3637
z2ui5_cl_layo_pop=>on_event_layout( client = client
3738
layout = mo_layout ).
3839

3940
ENDCASE.
40-
4141
ENDMETHOD.
4242

4343
METHOD on_init.
4444

4545
get_data( ).
46+
4647
init_layout( ).
47-
render_main( ).
4848

49+
render_main( ).
4950
ENDMETHOD.
5051

5152
METHOD render_main.
@@ -60,8 +61,7 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION.
6061
z2ui5_cl_layo_xml_builder=>xml_build_simple_form( i_data = REF #( ms_data )
6162
i_xml = page
6263
i_client = client
63-
i_layout = mo_layout
64-
).
64+
i_layout = mo_layout ).
6565

6666
client->view_display( view->stringify( ) ).
6767

@@ -76,15 +76,15 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION.
7676

7777
on_event( ).
7878

79-
IF client->check_on_navigated( ).
79+
IF client->get( )-check_on_navigated = abap_true.
8080
on_after_navigation( ).
8181
ENDIF.
8282

8383
ENDMETHOD.
8484

8585
METHOD get_data.
8686

87-
SELECT SINGLE * FROM Z2UI5_T_11 INTO @ms_data.
87+
SELECT SINGLE * FROM z2ui5_t_11 INTO @ms_data.
8888

8989
ENDMETHOD.
9090

@@ -95,6 +95,7 @@ CLASS z2ui5_cl_layo_sample_04 IMPLEMENTATION.
9595
ENDIF.
9696

9797
DATA(class) = z2ui5_cL_util=>rtti_get_classname_by_ref( me ).
98+
9899
mo_layout = z2ui5_cl_layo_manager=>factory( control = z2ui5_cl_layo_manager=>ui_simpleform
99100
data = REF #( ms_data )
100101
handle01 = class

src/02/package.devc.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<DEVC>
6+
<CTEXT>variant managment</CTEXT>
7+
</DEVC>
8+
</asx:values>
9+
</asx:abap>
10+
</abapGit>

src/03/z2ui5_cl_layo_manager.clas.abap

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
171180
ENDCLASS.
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.

src/03/z2ui5_cl_layo_pop.clas.abap

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ CLASS z2ui5_cl_layo_pop DEFINITION
1313
TYPES ty_t_sorting TYPE STANDARD TABLE OF ty_s_sorting WITH EMPTY KEY.
1414

1515
TYPES BEGIN OF ty_s_layo.
16-
INCLUDE TYPE z2ui5_t_11.
16+
INCLUDE TYPE z2ui5_t_11.
1717
TYPES selkz TYPE abap_bool.
1818
TYPES active TYPE c length 1.
1919
TYPES END OF ty_s_layo.
@@ -1133,23 +1133,22 @@ CLASS z2ui5_cl_layo_pop IMPLEMENTATION.
11331133
METHOD check_grid_sum.
11341134

11351135
IF ( value ) > 12.
1136-
DATA(ls_msg) = z2ui5_cl_util=>msg_get_by_msg(
1136+
DATA(msg) = z2ui5_cl_util=>msg_get_by_msg(
11371137
id = '/scmtms/common'
11381138
no = '154'
11391139
v1 = '12'
11401140
).
1141-
" MESSAGE e154(/scmtms/common) WITH '12' INTO msg.
11421141
result = abap_true.
11431142
ENDIF.
11441143

1145-
client->message_toast_display( ls_msg-text ).
1144+
client->message_toast_display( msg-text ).
11461145

11471146
ENDMETHOD.
11481147

11491148
METHOD render_add_gridlayout.
11501149

11511150
TYPES: BEGIN OF ty_s_col,
1152-
col TYPE c LENGTH 2,
1151+
col TYPE c length 2,
11531152
END OF ty_s_col.
11541153

11551154
DATA t_col TYPE STANDARD TABLE OF ty_s_col.

src/03/z2ui5_cl_layo_xml_builder.clas.abap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ CLASS z2ui5_cl_layo_xml_builder DEFINITION
2626
i_title TYPE string OPTIONAL.
2727

2828
PROTECTED SECTION.
29+
30+
31+
32+
2933
PRIVATE SECTION.
3034
TYPES: BEGIN OF ty_s_grid_layout,
3135
label TYPE string,

src/03/z2ui5_cl_layo_xml_builder.clas.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<STATE>1</STATE>
1010
<CLSCCINCL>X</CLSCCINCL>
1111
<FIXPT>X</FIXPT>
12-
<UNICODE>X</UNICODE>
12+
<UNICODE>5</UNICODE>
1313
</VSEOCLASS>
1414
</asx:values>
1515
</asx:abap>

0 commit comments

Comments
 (0)