From de4a9e2f7e5473c2d6093258c860155c12cde884 Mon Sep 17 00:00:00 2001 From: darnoc312 <135710507+darnoc312@users.noreply.github.com> Date: Sat, 26 Aug 2023 11:30:37 +0200 Subject: [PATCH] Update zcl_excel_autofilter.clas.abap WHILE Loop in is_row_hidden deleted. No more insertion of empty column entries in mt_filters table without rule and values. --- src/zcl_excel_autofilter.clas.abap | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/zcl_excel_autofilter.clas.abap b/src/zcl_excel_autofilter.clas.abap index 7f32b0d..8eca672 100644 --- a/src/zcl_excel_autofilter.clas.abap +++ b/src/zcl_excel_autofilter.clas.abap @@ -207,10 +207,6 @@ CLASS zcl_excel_autofilter IMPLEMENTATION. METHOD is_row_hidden. - - DATA: lr_filter TYPE REF TO ts_filter, - lv_col TYPE i. - FIELD-SYMBOLS: TYPE ts_filter. rv_is_hidden = abap_false. @@ -219,29 +215,25 @@ CLASS zcl_excel_autofilter IMPLEMENTATION. * 1st row of filter area is never hidden, because here the filter * symbol is being shown *--------------------------------------------------------------------* - IF iv_row = me->filter_area-row_start. + IF iv_row <= me->filter_area-row_start OR + iv_row > me->filter_area-row_end. RETURN. ENDIF. - lv_col = me->filter_area-col_start. - - - WHILE lv_col <= me->filter_area-col_end. - - lr_filter = me->get_column_filter( lv_col ). - ASSIGN lr_filter->* TO . + LOOP AT mt_filters ASSIGNING WHERE column >= me->filter_area-col_start + AND column <= me->filter_area-col_end. CASE -rule. WHEN mc_filter_rule_single_values. rv_is_hidden = me->is_row_hidden_single_values( iv_row = iv_row - iv_col = lv_col + iv_col = -column is_filter = ). WHEN mc_filter_rule_text_pattern. rv_is_hidden = me->is_row_hidden_text_pattern( iv_row = iv_row - iv_col = lv_col + iv_col = -column is_filter = ). ENDCASE. @@ -250,10 +242,7 @@ CLASS zcl_excel_autofilter IMPLEMENTATION. RETURN. ENDIF. - - ADD 1 TO lv_col. - - ENDWHILE. + ENDLOOP. ENDMETHOD.