mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:16:14 +08:00
Removed aliases (they causes an error with SAPLink)
git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@254 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
parent
17e02ddf6a
commit
0ccae1ac59
|
@ -6,16 +6,11 @@
|
|||
final
|
||||
create public .
|
||||
|
||||
public section.
|
||||
*"* public components of class ZCL_EXCEL_CONVERTER_ALV_GRID
|
||||
*"* do not include other source files here!!!
|
||||
public section.
|
||||
|
||||
interfaces ZIF_EXCEL_CONVERTER .
|
||||
|
||||
aliases CAN_CONVERT_OBJECT
|
||||
for ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT .
|
||||
aliases CREATE_FIELDCATALOG
|
||||
for ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG .</publicSection>
|
||||
interfaces ZIF_EXCEL_CONVERTER .</publicSection>
|
||||
<protectedSection>*"* protected components of class ZCL_EXCEL_CONVERTER_ALV_GRID
|
||||
*"* do not include other source files here!!!
|
||||
protected section.</protectedSection>
|
||||
|
@ -43,36 +38,36 @@ private section.</privateSection>
|
|||
endmethod.</source>
|
||||
</interfaceMethod>
|
||||
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
|
||||
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
|
||||
data: lo_alv type ref to cl_gui_alv_grid.
|
||||
data: ls_converter_fcat type zexcel_s_converter_fcat,
|
||||
lt_fcat type lvc_t_fcat,
|
||||
ls_fcat type lvc_s_fcat,
|
||||
ls_layout type lvc_s_layo.
|
||||
<source>METHOD zif_excel_converter~create_fieldcatalog.
|
||||
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
|
||||
DATA: ls_converter_fcat TYPE zexcel_s_converter_fcat,
|
||||
lt_fcat TYPE lvc_t_fcat,
|
||||
ls_fcat TYPE lvc_s_fcat,
|
||||
ls_layout TYPE lvc_s_layo.
|
||||
|
||||
field-symbols: <fs_stable> type any.
|
||||
try.
|
||||
can_convert_object( io_object = io_object ).
|
||||
endtry.
|
||||
FIELD-SYMBOLS: <fs_stable> TYPE any.
|
||||
TRY.
|
||||
zif_excel_converter~can_convert_object( io_object = io_object ).
|
||||
ENDTRY.
|
||||
|
||||
lo_alv ?= io_object.
|
||||
|
||||
clear: es_layout,
|
||||
CLEAR: es_layout,
|
||||
et_fieldcatalog.
|
||||
|
||||
if lo_alv is bound.
|
||||
lo_alv->get_frontend_fieldcatalog( importing et_fieldcatalog = lt_fcat ).
|
||||
lo_alv->get_frontend_layout( importing es_layout = ls_layout ).
|
||||
if ls_layout-zebra is not initial.
|
||||
IF lo_alv IS BOUND.
|
||||
lo_alv->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = lt_fcat ).
|
||||
lo_alv->get_frontend_layout( IMPORTING es_layout = ls_layout ).
|
||||
IF ls_layout-zebra IS NOT INITIAL.
|
||||
es_layout-is_stripped = abap_true.
|
||||
endif.
|
||||
if ls_layout-no_keyfix is initial or
|
||||
ENDIF.
|
||||
IF ls_layout-no_keyfix IS INITIAL OR
|
||||
ls_layout-no_keyfix = '0'.
|
||||
es_layout-is_fixed = abap_true.
|
||||
endif.
|
||||
loop at lt_fcat into ls_fcat.
|
||||
clear ls_converter_fcat.
|
||||
if ls_fcat-tech = abap_false.
|
||||
ENDIF.
|
||||
LOOP AT lt_fcat INTO ls_fcat.
|
||||
CLEAR ls_converter_fcat.
|
||||
IF ls_fcat-tech = abap_false.
|
||||
ls_converter_fcat-tabname = ls_fcat-tabname.
|
||||
ls_converter_fcat-fieldname = ls_fcat-fieldname .
|
||||
ls_converter_fcat-columnname = ls_fcat-fieldname .
|
||||
|
@ -81,128 +76,37 @@ endmethod.</source>
|
|||
ls_converter_fcat-scrtext_s = ls_fcat-scrtext_s .
|
||||
ls_converter_fcat-scrtext_m = ls_fcat-scrtext_m .
|
||||
ls_converter_fcat-scrtext_l = ls_fcat-scrtext_l.
|
||||
if ls_fcat-do_sum is not initial.
|
||||
IF ls_fcat-do_sum IS NOT INITIAL.
|
||||
ls_converter_fcat-totals_function = zcl_excel_table=>totals_function_sum.
|
||||
endif.
|
||||
ENDIF.
|
||||
ls_converter_fcat-fix_column = ls_fcat-fix_column.
|
||||
if ls_layout-cwidth_opt is initial.
|
||||
if ls_fcat-col_opt is not initial.
|
||||
IF ls_layout-cwidth_opt IS INITIAL.
|
||||
IF ls_fcat-col_opt IS NOT INITIAL.
|
||||
ls_converter_fcat-is_optimized = abap_true.
|
||||
endif.
|
||||
else.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
ls_converter_fcat-is_optimized = abap_true.
|
||||
endif.
|
||||
if ls_fcat-no_out is not initial.
|
||||
clear ls_converter_fcat-is_visible.
|
||||
else.
|
||||
ENDIF.
|
||||
IF ls_fcat-no_out IS NOT INITIAL.
|
||||
CLEAR ls_converter_fcat-is_visible.
|
||||
ELSE.
|
||||
ls_converter_fcat-is_visible = abap_true.
|
||||
endif.
|
||||
case ls_fcat-just.
|
||||
when 'R'.
|
||||
ENDIF.
|
||||
CASE ls_fcat-just.
|
||||
WHEN 'R'.
|
||||
ls_converter_fcat-alignment = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
when 'L'.
|
||||
WHEN 'L'.
|
||||
ls_converter_fcat-alignment = zcl_excel_style_alignment=>c_horizontal_left.
|
||||
when 'C'.
|
||||
WHEN 'C'.
|
||||
ls_converter_fcat-alignment = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
when others.
|
||||
clear ls_converter_fcat-alignment.
|
||||
endcase.
|
||||
append ls_converter_fcat to et_fieldcatalog.
|
||||
endif.
|
||||
endloop.
|
||||
endif.
|
||||
WHEN OTHERS.
|
||||
CLEAR ls_converter_fcat-alignment.
|
||||
ENDCASE.
|
||||
APPEND ls_converter_fcat TO et_fieldcatalog.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</interfaceMethod>
|
||||
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CMPNAME="CAN_CONVERT_OBJECT" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CAN_CONVERT_OBJECT" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
|
||||
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
|
||||
data: lo_alv type REF TO cl_gui_alv_grid.
|
||||
|
||||
try.
|
||||
lo_alv ?= io_object.
|
||||
catch cx_sy_move_cast_error .
|
||||
raise exception type zcx_excel.
|
||||
endtry.
|
||||
|
||||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV_GRID" CMPNAME="CREATE_FIELDCATALOG" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CREATE_FIELDCATALOG" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
|
||||
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
|
||||
data: lo_alv type ref to cl_gui_alv_grid.
|
||||
data: ls_converter_fcat type zexcel_s_converter_fcat,
|
||||
lt_fcat type lvc_t_fcat,
|
||||
ls_fcat type lvc_s_fcat,
|
||||
ls_layout type lvc_s_layo.
|
||||
|
||||
field-symbols: <fs_stable> type any.
|
||||
try.
|
||||
can_convert_object( io_object = io_object ).
|
||||
endtry.
|
||||
|
||||
lo_alv ?= io_object.
|
||||
|
||||
clear: es_layout,
|
||||
et_fieldcatalog.
|
||||
|
||||
if lo_alv is bound.
|
||||
lo_alv->get_frontend_fieldcatalog( importing et_fieldcatalog = lt_fcat ).
|
||||
lo_alv->get_frontend_layout( importing es_layout = ls_layout ).
|
||||
if ls_layout-zebra is not initial.
|
||||
es_layout-is_stripped = abap_true.
|
||||
endif.
|
||||
if ls_layout-no_keyfix is initial or
|
||||
ls_layout-no_keyfix = '0'.
|
||||
es_layout-is_fixed = abap_true.
|
||||
endif.
|
||||
loop at lt_fcat into ls_fcat.
|
||||
clear ls_converter_fcat.
|
||||
if ls_fcat-tech = abap_false.
|
||||
ls_converter_fcat-tabname = ls_fcat-tabname.
|
||||
ls_converter_fcat-fieldname = ls_fcat-fieldname .
|
||||
ls_converter_fcat-columnname = ls_fcat-fieldname .
|
||||
ls_converter_fcat-position = ls_fcat-col_pos.
|
||||
ls_converter_fcat-inttype = ls_fcat-inttype.
|
||||
ls_converter_fcat-scrtext_s = ls_fcat-scrtext_s .
|
||||
ls_converter_fcat-scrtext_m = ls_fcat-scrtext_m .
|
||||
ls_converter_fcat-scrtext_l = ls_fcat-scrtext_l.
|
||||
if ls_fcat-do_sum is not initial.
|
||||
ls_converter_fcat-totals_function = zcl_excel_table=>totals_function_sum.
|
||||
endif.
|
||||
ls_converter_fcat-fix_column = ls_fcat-fix_column.
|
||||
if ls_layout-cwidth_opt is initial.
|
||||
if ls_fcat-col_opt is not initial.
|
||||
ls_converter_fcat-is_optimized = abap_true.
|
||||
endif.
|
||||
else.
|
||||
ls_converter_fcat-is_optimized = abap_true.
|
||||
endif.
|
||||
if ls_fcat-no_out is not initial.
|
||||
clear ls_converter_fcat-is_visible.
|
||||
else.
|
||||
ls_converter_fcat-is_visible = abap_true.
|
||||
endif.
|
||||
case ls_fcat-just.
|
||||
when 'R'.
|
||||
ls_converter_fcat-alignment = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
when 'L'.
|
||||
ls_converter_fcat-alignment = zcl_excel_style_alignment=>c_horizontal_left.
|
||||
when 'C'.
|
||||
ls_converter_fcat-alignment = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
when others.
|
||||
clear ls_converter_fcat-alignment.
|
||||
endcase.
|
||||
append ls_converter_fcat to et_fieldcatalog.
|
||||
endif.
|
||||
endloop.
|
||||
endif.
|
||||
|
||||
endmethod.</source>
|
||||
</method>
|
||||
</CLAS>
|
||||
|
|
|
@ -6,16 +6,11 @@
|
|||
final
|
||||
create public .
|
||||
|
||||
public section.
|
||||
*"* public components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
|
||||
*"* do not include other source files here!!!
|
||||
public section.
|
||||
|
||||
interfaces ZIF_EXCEL_CONVERTER .
|
||||
|
||||
aliases CAN_CONVERT_OBJECT
|
||||
for ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT .
|
||||
aliases CREATE_FIELDCATALOG
|
||||
for ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG .</publicSection>
|
||||
interfaces ZIF_EXCEL_CONVERTER .</publicSection>
|
||||
<protectedSection>*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
|
||||
*"* do not include other source files here!!!
|
||||
protected section.</protectedSection>
|
||||
|
@ -43,244 +38,114 @@ private section.</privateSection>
|
|||
endmethod.</source>
|
||||
</interfaceMethod>
|
||||
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
|
||||
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
|
||||
data: lo_salv type ref to cl_salv_table.
|
||||
<source>METHOD zif_excel_converter~create_fieldcatalog.
|
||||
DATA: lo_salv TYPE REF TO cl_salv_table.
|
||||
|
||||
data: lo_columns type ref to cl_salv_columns_table,
|
||||
lo_column type ref to cl_salv_column_table,
|
||||
lo_aggregations type ref to cl_salv_aggregations,
|
||||
lo_aggregation type ref to cl_salv_aggregation,
|
||||
lo_sorts type ref to cl_salv_sorts,
|
||||
lo_sort type ref to cl_salv_sort,
|
||||
lo_display type ref to cl_salv_display_settings,
|
||||
l_agre type salv_de_aggregation,
|
||||
lt_column type salv_t_column_ref,
|
||||
ls_column type salv_s_column_ref,
|
||||
ls_fieldcatalog type zexcel_s_converter_fcat,
|
||||
ls_ref type salv_s_ddic_reference,
|
||||
l_alignment type salv_de_alignment,
|
||||
l_fix type sap_bool,
|
||||
l_optimized type sap_bool.
|
||||
DATA: lo_columns TYPE REF TO cl_salv_columns_table,
|
||||
lo_column TYPE REF TO cl_salv_column_table,
|
||||
lo_aggregations TYPE REF TO cl_salv_aggregations,
|
||||
lo_aggregation TYPE REF TO cl_salv_aggregation,
|
||||
lo_sorts TYPE REF TO cl_salv_sorts,
|
||||
lo_sort TYPE REF TO cl_salv_sort,
|
||||
lo_display TYPE REF TO cl_salv_display_settings,
|
||||
l_agre TYPE salv_de_aggregation,
|
||||
lt_column TYPE salv_t_column_ref,
|
||||
ls_column TYPE salv_s_column_ref,
|
||||
ls_fieldcatalog TYPE zexcel_s_converter_fcat,
|
||||
ls_ref TYPE salv_s_ddic_reference,
|
||||
l_alignment TYPE salv_de_alignment,
|
||||
l_fix TYPE sap_bool,
|
||||
l_optimized TYPE sap_bool.
|
||||
|
||||
field-symbols: <fs_stable> type any.
|
||||
try.
|
||||
can_convert_object( io_object = io_object ).
|
||||
endtry.
|
||||
FIELD-SYMBOLS: <fs_stable> TYPE any.
|
||||
TRY.
|
||||
zif_excel_converter~can_convert_object( io_object = io_object ).
|
||||
ENDTRY.
|
||||
|
||||
lo_salv ?= io_object.
|
||||
|
||||
clear: es_layout,
|
||||
CLEAR: es_layout,
|
||||
et_fieldcatalog.
|
||||
|
||||
if lo_salv is bound.
|
||||
IF lo_salv IS BOUND.
|
||||
lo_columns = lo_salv->get_columns( ).
|
||||
lt_column = lo_columns->get( ) .
|
||||
lo_aggregations = lo_salv->get_aggregations( ) .
|
||||
lo_display = lo_salv->get_display_settings( ) .
|
||||
es_layout-is_stripped = lo_display->is_striped_pattern( ) .
|
||||
l_optimized = lo_columns->is_optimized( ).
|
||||
loop at lt_column into ls_column.
|
||||
clear ls_fieldcatalog.
|
||||
if ls_column-r_column->is_technical( ) = abap_false.
|
||||
try.
|
||||
LOOP AT lt_column INTO ls_column.
|
||||
CLEAR ls_fieldcatalog.
|
||||
IF ls_column-r_column->is_technical( ) = abap_false.
|
||||
TRY.
|
||||
lo_column ?= lo_columns->get_column( columnname = ls_column-columnname ).
|
||||
catch cx_salv_not_found.
|
||||
raise exception type zcx_excel.
|
||||
endtry.
|
||||
CATCH cx_salv_not_found.
|
||||
RAISE EXCEPTION TYPE zcx_excel.
|
||||
ENDTRY.
|
||||
ls_ref = ls_column-r_column->get_ddic_reference( ).
|
||||
ls_fieldcatalog-tabname = ls_ref-table.
|
||||
ls_fieldcatalog-fieldname = ls_ref-field.
|
||||
ls_fieldcatalog-columnname = ls_column-columnname.
|
||||
try.
|
||||
TRY.
|
||||
ls_fieldcatalog-position = lo_columns->get_column_position( columnname = ls_column-columnname ).
|
||||
catch cx_salv_not_found.
|
||||
raise exception type zcx_excel.
|
||||
endtry.
|
||||
CATCH cx_salv_not_found.
|
||||
RAISE EXCEPTION TYPE zcx_excel.
|
||||
ENDTRY.
|
||||
ls_fieldcatalog-inttype = ls_column-r_column->get_ddic_inttype( ).
|
||||
ls_fieldcatalog-scrtext_s = ls_column-r_column->get_short_text( ) .
|
||||
ls_fieldcatalog-scrtext_m = ls_column-r_column->get_medium_text( ) .
|
||||
ls_fieldcatalog-scrtext_l = ls_column-r_column->get_long_text( ).
|
||||
try.
|
||||
TRY.
|
||||
lo_aggregation = lo_aggregations->get_aggregation( columnname = ls_column-columnname ) .
|
||||
catch cx_salv_not_found.
|
||||
clear lo_aggregation.
|
||||
endtry.
|
||||
if lo_aggregation is bound.
|
||||
CATCH cx_salv_not_found.
|
||||
CLEAR lo_aggregation.
|
||||
ENDTRY.
|
||||
IF lo_aggregation IS BOUND.
|
||||
l_agre = lo_aggregation->get( ).
|
||||
case l_agre.
|
||||
when if_salv_c_aggregation=>total. " Total
|
||||
CASE l_agre.
|
||||
WHEN if_salv_c_aggregation=>total. " Total
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum.
|
||||
when if_salv_c_aggregation=>minimum. " Minimum
|
||||
WHEN if_salv_c_aggregation=>minimum. " Minimum
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_min.
|
||||
when if_salv_c_aggregation=>maximum. " Maximum
|
||||
WHEN if_salv_c_aggregation=>maximum. " Maximum
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_max.
|
||||
when if_salv_c_aggregation=>average. " Mean Value
|
||||
WHEN if_salv_c_aggregation=>average. " Mean Value
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_average.
|
||||
when others.
|
||||
clear ls_fieldcatalog-totals_function.
|
||||
endcase.
|
||||
endif.
|
||||
WHEN OTHERS.
|
||||
CLEAR ls_fieldcatalog-totals_function.
|
||||
ENDCASE.
|
||||
ENDIF.
|
||||
ls_fieldcatalog-is_visible = ls_column-r_column->is_visible( ).
|
||||
ls_fieldcatalog-fix_column = lo_column->is_key( ).
|
||||
l_fix = lo_column->is_key_presence_required( ).
|
||||
|
||||
if l_optimized = '1' or l_optimized = abap_true.
|
||||
IF l_optimized = '1' OR l_optimized = abap_true.
|
||||
ls_fieldcatalog-is_optimized = abap_true.
|
||||
else.
|
||||
ELSE.
|
||||
l_optimized = ls_column-r_column->is_optimized( ).
|
||||
if l_optimized = '1' or l_optimized = abap_true.
|
||||
IF l_optimized = '1' OR l_optimized = abap_true.
|
||||
ls_fieldcatalog-is_optimized = abap_true.
|
||||
endif.
|
||||
endif.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
l_alignment = ls_column-r_column->get_alignment( ) .
|
||||
case l_alignment.
|
||||
when if_salv_c_alignment=>left. " Align left
|
||||
CASE l_alignment.
|
||||
WHEN if_salv_c_alignment=>left. " Align left
|
||||
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_left.
|
||||
when if_salv_c_alignment=>right. " Align right
|
||||
WHEN if_salv_c_alignment=>right. " Align right
|
||||
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
when if_salv_c_alignment=>centered. " Centered
|
||||
WHEN if_salv_c_alignment=>centered. " Centered
|
||||
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
when others.
|
||||
clear ls_fieldcatalog-alignment.
|
||||
endcase.
|
||||
append ls_fieldcatalog to et_fieldcatalog.
|
||||
endif.
|
||||
endloop.
|
||||
if l_fix is not initial.
|
||||
WHEN OTHERS.
|
||||
CLEAR ls_fieldcatalog-alignment.
|
||||
ENDCASE.
|
||||
APPEND ls_fieldcatalog TO et_fieldcatalog.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
IF l_fix IS NOT INITIAL.
|
||||
es_layout-is_fixed = abap_true.
|
||||
endif.
|
||||
endif.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</interfaceMethod>
|
||||
<method CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="CAN_CONVERT_OBJECT" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CAN_CONVERT_OBJECT" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CAN_CONVERT_OBJECT" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
|
||||
<source>method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
|
||||
data: lo_salv type ref to cl_salv_table.
|
||||
|
||||
try.
|
||||
lo_salv ?= io_object.
|
||||
catch cx_sy_move_cast_error .
|
||||
raise exception type zcx_excel.
|
||||
endtry.
|
||||
|
||||
endmethod.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_CONVERTER_SALV_TABLE" CMPNAME="CREATE_FIELDCATALOG" VERSION="1" LANGU="E" ALIAS="X" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDBY="FEMIA" CHANGEDON="20120120" MTDTYPE="0" MTDDECLTYP="0" REFCLSNAME="ZIF_EXCEL_CONVERTER" REFCMPNAME="CREATE_FIELDCATALOG" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<parameter VERSION="0" CMPTYPE="0" MTDTYPE="0" EDITORDER="0 " DISPID="0 " CREATEDON="00000000" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="0"/>
|
||||
<exception CLSNAME="ZIF_EXCEL_CONVERTER" CMPNAME="CREATE_FIELDCATALOG" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 " AUTHOR="FEMIA" CREATEDON="20120120" CHANGEDON="00000000"/>
|
||||
<source>method ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG.
|
||||
data: lo_salv type ref to cl_salv_table.
|
||||
|
||||
data: lo_columns type ref to cl_salv_columns_table,
|
||||
lo_column type ref to cl_salv_column_table,
|
||||
lo_aggregations type ref to cl_salv_aggregations,
|
||||
lo_aggregation type ref to cl_salv_aggregation,
|
||||
lo_sorts type ref to cl_salv_sorts,
|
||||
lo_sort type ref to cl_salv_sort,
|
||||
lo_display type ref to cl_salv_display_settings,
|
||||
l_agre type salv_de_aggregation,
|
||||
lt_column type salv_t_column_ref,
|
||||
ls_column type salv_s_column_ref,
|
||||
ls_fieldcatalog type zexcel_s_converter_fcat,
|
||||
ls_ref type salv_s_ddic_reference,
|
||||
l_alignment type salv_de_alignment,
|
||||
l_fix type sap_bool,
|
||||
l_optimized type sap_bool.
|
||||
|
||||
field-symbols: <fs_stable> type any.
|
||||
try.
|
||||
can_convert_object( io_object = io_object ).
|
||||
endtry.
|
||||
|
||||
lo_salv ?= io_object.
|
||||
|
||||
clear: es_layout,
|
||||
et_fieldcatalog.
|
||||
|
||||
if lo_salv is bound.
|
||||
lo_columns = lo_salv->get_columns( ).
|
||||
lt_column = lo_columns->get( ) .
|
||||
lo_aggregations = lo_salv->get_aggregations( ) .
|
||||
lo_display = lo_salv->get_display_settings( ) .
|
||||
es_layout-is_stripped = lo_display->is_striped_pattern( ) .
|
||||
l_optimized = lo_columns->is_optimized( ).
|
||||
loop at lt_column into ls_column.
|
||||
clear ls_fieldcatalog.
|
||||
if ls_column-r_column->is_technical( ) = abap_false.
|
||||
try.
|
||||
lo_column ?= lo_columns->get_column( columnname = ls_column-columnname ).
|
||||
catch cx_salv_not_found.
|
||||
raise exception type zcx_excel.
|
||||
endtry.
|
||||
ls_ref = ls_column-r_column->get_ddic_reference( ).
|
||||
ls_fieldcatalog-tabname = ls_ref-table.
|
||||
ls_fieldcatalog-fieldname = ls_ref-field.
|
||||
ls_fieldcatalog-columnname = ls_column-columnname.
|
||||
try.
|
||||
ls_fieldcatalog-position = lo_columns->get_column_position( columnname = ls_column-columnname ).
|
||||
catch cx_salv_not_found.
|
||||
raise exception type zcx_excel.
|
||||
endtry.
|
||||
ls_fieldcatalog-inttype = ls_column-r_column->get_ddic_inttype( ).
|
||||
ls_fieldcatalog-scrtext_s = ls_column-r_column->get_short_text( ) .
|
||||
ls_fieldcatalog-scrtext_m = ls_column-r_column->get_medium_text( ) .
|
||||
ls_fieldcatalog-scrtext_l = ls_column-r_column->get_long_text( ).
|
||||
try.
|
||||
lo_aggregation = lo_aggregations->get_aggregation( columnname = ls_column-columnname ) .
|
||||
catch cx_salv_not_found.
|
||||
clear lo_aggregation.
|
||||
endtry.
|
||||
if lo_aggregation is bound.
|
||||
l_agre = lo_aggregation->get( ).
|
||||
case l_agre.
|
||||
when if_salv_c_aggregation=>total. " Total
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum.
|
||||
when if_salv_c_aggregation=>minimum. " Minimum
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_min.
|
||||
when if_salv_c_aggregation=>maximum. " Maximum
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_max.
|
||||
when if_salv_c_aggregation=>average. " Mean Value
|
||||
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_average.
|
||||
when others.
|
||||
clear ls_fieldcatalog-totals_function.
|
||||
endcase.
|
||||
endif.
|
||||
ls_fieldcatalog-is_visible = ls_column-r_column->is_visible( ).
|
||||
ls_fieldcatalog-fix_column = lo_column->is_key( ).
|
||||
l_fix = lo_column->is_key_presence_required( ).
|
||||
|
||||
if l_optimized = '1' or l_optimized = abap_true.
|
||||
ls_fieldcatalog-is_optimized = abap_true.
|
||||
else.
|
||||
l_optimized = ls_column-r_column->is_optimized( ).
|
||||
if l_optimized = '1' or l_optimized = abap_true.
|
||||
ls_fieldcatalog-is_optimized = abap_true.
|
||||
endif.
|
||||
endif.
|
||||
l_alignment = ls_column-r_column->get_alignment( ) .
|
||||
case l_alignment.
|
||||
when if_salv_c_alignment=>left. " Align left
|
||||
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_left.
|
||||
when if_salv_c_alignment=>right. " Align right
|
||||
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
when if_salv_c_alignment=>centered. " Centered
|
||||
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
when others.
|
||||
clear ls_fieldcatalog-alignment.
|
||||
endcase.
|
||||
append ls_fieldcatalog to et_fieldcatalog.
|
||||
endif.
|
||||
endloop.
|
||||
if l_fix is not initial.
|
||||
es_layout-is_fixed = abap_true.
|
||||
endif.
|
||||
endif.
|
||||
|
||||
endmethod.</source>
|
||||
</method>
|
||||
</CLAS>
|
||||
|
|
Loading…
Reference in New Issue
Block a user