mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-04 20:28:22 +08:00

Update of all the slinkees files with the latest version of SAPLink to simplify merge of pull request
239 lines
11 KiB
XML
239 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" VERSION="1" LANGU="E" DESCRIPT="SALV converter for web dynpro" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT">
|
|
<localImplementation>*"* local class implementation for public class
|
|
*"* use this source file for the implementation part of
|
|
*"* local helper classes</localImplementation>
|
|
<localTypes>*"* use this source file for any type declarations (class
|
|
*"* definitions, interfaces or data types) you need for method
|
|
*"* implementation or private method's signature</localTypes>
|
|
<localMacros>*"* use this source file for any macro definitions you need
|
|
*"* in the implementation part of the class</localMacros>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="WO_CONFIG" VERSION="1" LANGU="E" DESCRIPT="Configuration of the ALV Output" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="CL_SALV_WD_CONFIG_TABLE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="WT_COLUMNS" VERSION="1" LANGU="E" DESCRIPT="SALV_WD_T_COLUMN_REF" EXPOSURE="0" STATE="1" EDITORDER="3 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SALV_WD_T_COLUMN_REF" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="WT_FIELDS" VERSION="1" LANGU="E" DESCRIPT="SALV_WD_T_FIELD_REF" EXPOSURE="0" STATE="1" EDITORDER="2 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SALV_WD_T_FIELD_REF" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
|
|
<inheritance CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" STATE="1">
|
|
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT" EXPOSURE="0"/>
|
|
<redefinition CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" REFCLSNAME="ZCL_EXCEL_CONVERTER_RESULT" VERSION="1" MTDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG" EXPOSURE="0"/>
|
|
</inheritance>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CPDNAME="ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT">
|
|
<source>METHOD ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
|
|
|
|
DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table.
|
|
|
|
TRY.
|
|
lo_result ?= io_object.
|
|
CATCH cx_sy_move_cast_error .
|
|
RAISE EXCEPTION TYPE zcx_excel.
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.</source>
|
|
</interfaceMethod>
|
|
<interfaceMethod CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CPDNAME="ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG">
|
|
<source>METHOD zif_excel_converter~create_fieldcatalog.
|
|
DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table,
|
|
lo_data TYPE REF TO data.
|
|
|
|
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
|
|
|
|
TRY.
|
|
zif_excel_converter~can_convert_object( io_object = io_object ).
|
|
ENDTRY.
|
|
|
|
ws_option = is_option.
|
|
|
|
lo_result ?= io_object.
|
|
|
|
CLEAR: es_layout,
|
|
et_fieldcatalog.
|
|
|
|
IF lo_result IS BOUND.
|
|
lo_data = get_table( io_object = lo_result->r_model->r_data ).
|
|
IF lo_data IS BOUND.
|
|
ASSIGN lo_data->* TO <fs_table> .
|
|
|
|
wo_config ?= lo_result->r_model->r_model.
|
|
|
|
IF wo_config IS BOUND.
|
|
wt_fields = wo_config->if_salv_wd_field_settings~get_fields( ) .
|
|
wt_columns = wo_config->if_salv_wd_column_settings~get_columns( ) .
|
|
ENDIF.
|
|
|
|
create_wt_fcat( io_table = lo_data ).
|
|
create_wt_sort( ).
|
|
create_wt_filt( ).
|
|
|
|
apply_sort( EXPORTING it_table = <fs_table>
|
|
IMPORTING eo_table = eo_table ) .
|
|
|
|
* get_color( EXPORTING io_table = eo_table
|
|
* IMPORTING et_colors = et_colors ) .
|
|
|
|
get_filter( IMPORTING et_filter = et_filter
|
|
CHANGING xo_table = eo_table ) .
|
|
|
|
update_catalog( CHANGING cs_layout = es_layout
|
|
ct_fieldcatalog = et_fieldcatalog ).
|
|
ELSE.
|
|
* We have a problem and should stop here
|
|
ENDIF.
|
|
ENDIF.
|
|
ENDMETHOD.</source>
|
|
</interfaceMethod>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_FCAT" VERSION="1" LANGU="E" DESCRIPT="Create wt_fcat for WD interface" EXPOSURE="0" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_FCAT" SCONAME="IO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
|
|
<source>method CREATE_WT_FCAT.
|
|
DATA: lr_data TYPE REF TO data,
|
|
lo_structdescr TYPE REF TO cl_abap_structdescr,
|
|
lt_dfies TYPE ddfields,
|
|
ls_dfies TYPE dfies,
|
|
lv_sytabix TYPE sytabix.
|
|
|
|
DATA: ls_fcat TYPE lvc_s_fcat.
|
|
|
|
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
|
|
|
|
ASSIGN io_table->* TO <fs_tab> .
|
|
CREATE DATA lr_data LIKE LINE OF <fs_tab>.
|
|
|
|
lo_structdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ).
|
|
|
|
lt_dfies = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ).
|
|
|
|
loop at lt_dfies into ls_dfies.
|
|
MOVE-CORRESPONDING ls_dfies TO ls_fcat.
|
|
* ls_fcat-columnname = ls_dfies-fieldname.
|
|
ls_fcat-col_pos = ls_dfies-position.
|
|
ls_fcat-key = ls_dfies-keyflag.
|
|
get_fields_info( CHANGING xs_fcat = ls_fcat ) .
|
|
|
|
ls_fcat-col_opt = abap_true.
|
|
|
|
get_columns_info( CHANGING xs_fcat = ls_fcat ) .
|
|
|
|
INSERT ls_fcat INTO TABLE wt_fcat.
|
|
endloop.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_FILT" VERSION="1" LANGU="E" DESCRIPT="Create wt_filt for WD interface" EXPOSURE="0" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<source>method CREATE_WT_FILT.
|
|
* No neeed for superclass.
|
|
* Only for WD
|
|
DATA: lt_otab TYPE abap_sortorder_tab,
|
|
ls_otab TYPE abap_sortorder.
|
|
DATA: lt_filters TYPE salv_wd_t_filter_rule_ref,
|
|
ls_filt TYPE lvc_s_filt.
|
|
|
|
FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref,
|
|
<fs_filter> TYPE salv_wd_s_filter_rule_ref.
|
|
|
|
LOOP AT wt_fields ASSIGNING <fs_fields>.
|
|
REFRESH lt_filters.
|
|
lt_filters = <fs_fields>-r_field->if_salv_wd_filter~get_filter_rules( ) .
|
|
LOOP AT lt_filters ASSIGNING <fs_filter>.
|
|
ls_filt-fieldname = <fs_fields>-fieldname.
|
|
IF <fs_filter>-r_filter_rule->get_included( ) = abap_true.
|
|
ls_filt-sign = 'I'.
|
|
ELSE.
|
|
ls_filt-sign = 'E'.
|
|
ENDIF.
|
|
ls_filt-option = <fs_filter>-r_filter_rule->get_operator( ).
|
|
ls_filt-high = <fs_filter>-r_filter_rule->get_high_value( ) .
|
|
ls_filt-low = <fs_filter>-r_filter_rule->get_low_value( ) .
|
|
INSERT ls_filt INTO TABLE wt_filt.
|
|
ENDLOOP.
|
|
ENDLOOP.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="CREATE_WT_SORT" VERSION="1" LANGU="E" DESCRIPT="Create wt_sort for WD interface" EXPOSURE="0" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<source>method CREATE_WT_SORT.
|
|
DATA: lo_sort TYPE REF TO cl_salv_wd_sort_rule,
|
|
l_sort_order TYPE salv_wd_constant,
|
|
ls_sort TYPE lvc_s_sort.
|
|
|
|
FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref.
|
|
|
|
LOOP AT wt_fields ASSIGNING <fs_fields>.
|
|
lo_sort = <fs_fields>-r_field->if_salv_wd_sort~get_sort_rule( ) .
|
|
IF lo_sort IS BOUND.
|
|
l_sort_order = lo_sort->get_sort_order( ).
|
|
IF l_sort_order <> if_salv_wd_c_sort=>sort_order.
|
|
CLEAR ls_sort.
|
|
ls_sort-spos = lo_sort->get_sort_position( ).
|
|
ls_sort-fieldname = <fs_fields>-fieldname.
|
|
* ls_sort-GROUP
|
|
ls_sort-subtot = lo_sort->get_group_aggregation( ).
|
|
* ls_sort-COMP
|
|
* ls_sort-EXPA
|
|
* ls_sort-SELTEXT
|
|
* ls_sort-OBLIGATORY
|
|
* ls_sort-LEVEL
|
|
* ls_sort-NO_OUT
|
|
IF l_sort_order = if_salv_wd_c_sort=>sort_order_ascending.
|
|
ls_sort-up = abap_true.
|
|
ELSE.
|
|
ls_sort-down = abap_true.
|
|
ENDIF.
|
|
INSERT ls_sort INTO TABLE wt_sort.
|
|
ENDIF.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_COLUMNS_INFO" VERSION="1" LANGU="E" DESCRIPT="Read data from WD columns object" EXPOSURE="0" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_COLUMNS_INFO" SCONAME="XS_FCAT" VERSION="1" LANGU="E" DESCRIPT="ALV control: Field catalog" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="LVC_S_FCAT"/>
|
|
<source>method GET_COLUMNS_INFO.
|
|
DATA: l_numc2 TYPE salv_wd_constant.
|
|
|
|
|
|
FIELD-SYMBOLS: <fs_column> TYPE salv_wd_s_column_ref.
|
|
|
|
READ TABLE wt_columns ASSIGNING <fs_column> WITH KEY id = xs_fcat-fieldname .
|
|
IF sy-subrc = 0.
|
|
xs_fcat-col_pos = <fs_column>-r_column->get_position( ) .
|
|
l_numc2 = <fs_column>-r_column->get_fixed_position( ).
|
|
IF l_numc2 = '02'.
|
|
xs_fcat-fix_column = abap_true .
|
|
ENDIF.
|
|
l_numc2 = <fs_column>-r_column->get_visible( ).
|
|
IF l_numc2 = '01'.
|
|
xs_fcat-no_out = abap_true .
|
|
ENDIF.
|
|
ENDIF.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_FIELDS_INFO" VERSION="1" LANGU="E" DESCRIPT="Get aggregation from field table" EXPOSURE="0" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_RESULT_WD" CMPNAME="GET_FIELDS_INFO" SCONAME="XS_FCAT" VERSION="1" LANGU="E" DESCRIPT="ALV control: Field catalog" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="LVC_S_FCAT"/>
|
|
<source>method GET_FIELDS_INFO.
|
|
DATA: lo_aggr TYPE REF TO cl_salv_wd_aggr_rule,
|
|
l_aggrtype TYPE salv_wd_constant.
|
|
|
|
FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref.
|
|
|
|
READ TABLE wt_fields ASSIGNING <fs_fields> WITH KEY fieldname = xs_fcat-fieldname.
|
|
IF sy-subrc = 0.
|
|
lo_aggr = <fs_fields>-r_field->if_salv_wd_aggr~get_aggr_rule( ) .
|
|
IF lo_aggr IS BOUND.
|
|
l_aggrtype = lo_aggr->get_aggregation_type( ) .
|
|
CASE l_aggrtype.
|
|
WHEN if_salv_wd_c_aggregation=>aggrtype_total.
|
|
xs_fcat-do_sum = abap_true.
|
|
WHEN if_salv_wd_c_aggregation=>aggrtype_minimum.
|
|
xs_fcat-do_sum = 'A'.
|
|
WHEN if_salv_wd_c_aggregation=>aggrtype_maximum .
|
|
xs_fcat-do_sum = 'B'.
|
|
WHEN if_salv_wd_c_aggregation=>aggrtype_average .
|
|
xs_fcat-do_sum = 'C'.
|
|
WHEN OTHERS.
|
|
CLEAR xs_fcat-do_sum .
|
|
ENDCASE.
|
|
ENDIF.
|
|
ENDIF.
|
|
|
|
endmethod.</source>
|
|
</method>
|
|
</CLAS>
|