mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-04 23:19:45 +08:00
re #51 Modify table binding to avoid errors and create valid oXml in case empty table is passed
git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@87 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
parent
047330e494
commit
9573bcea90
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<CLAS CLSNAME="ZCL_EXCEL_TABLE" VERSION="1" LANGU="E" DESCRIPT="Represents Excel Table" UUID="A1497B4C00CDF215E1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="BCUSER" CREATEDON="20100731" CHANGEDON="00000000" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
||||
<CLAS CLSNAME="ZCL_EXCEL_TABLE" VERSION="1" LANGU="E" DESCRIPT="Represents Excel Table" UUID="A1497B4C00CDF215E1000000C0A8FA19" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="BCUSER" CREATEDON="20100731" CHANGEDBY="BCUSER" CHANGEDON="20101021" CHGDANYON="00000000" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="701" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
||||
<publicSection>class ZCL_EXCEL_TABLE definition
|
||||
public
|
||||
final
|
||||
|
@ -135,7 +135,7 @@ endmethod.</source>
|
|||
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_REFERENCE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_REFERENCE" SCONAME="IP_INCLUDE_TOTALS_ROW" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ABAP_BOOL" PARVALUE="ABAP_TRUE"/>
|
||||
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_REFERENCE" SCONAME="OV_REFERENCE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDON="00000000" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
|
||||
<source>method GET_REFERENCE.
|
||||
<source>METHOD get_reference.
|
||||
DATA: lv_column TYPE zexcel_cell_column,
|
||||
lv_table_lines TYPE i,
|
||||
lv_right_column TYPE zexcel_cell_column_alpha,
|
||||
|
@ -147,31 +147,34 @@ endmethod.</source>
|
|||
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
|
||||
|
||||
*column
|
||||
lv_column = zcl_excel_common=>convert_column2int( settings-top_left_column ).
|
||||
lv_table_lines = 0.
|
||||
LOOP AT fieldcat INTO ls_field_catalog WHERE dynpfld EQ abap_true.
|
||||
ADD 1 TO lv_table_lines.
|
||||
ENDLOOP.
|
||||
lv_column = lv_column + lv_table_lines - 1.
|
||||
lv_right_column = zcl_excel_common=>convert_column2alpha( lv_column ).
|
||||
lv_column = zcl_excel_common=>convert_column2int( settings-top_left_column ).
|
||||
lv_table_lines = 0.
|
||||
LOOP AT fieldcat INTO ls_field_catalog WHERE dynpfld EQ abap_true.
|
||||
ADD 1 TO lv_table_lines.
|
||||
ENDLOOP.
|
||||
lv_column = lv_column + lv_table_lines - 1.
|
||||
lv_right_column = zcl_excel_common=>convert_column2alpha( lv_column ).
|
||||
|
||||
*row
|
||||
ASSIGN table_data->* TO <fs_table>.
|
||||
DESCRIBE TABLE <fs_table> LINES lv_table_lines.
|
||||
lv_bottom_row = settings-top_left_row + lv_table_lines .
|
||||
ASSIGN table_data->* TO <fs_table>.
|
||||
DESCRIBE TABLE <fs_table> LINES lv_table_lines.
|
||||
IF lv_table_lines = 0.
|
||||
lv_table_lines = 1. "table needs at least 1 data row
|
||||
ENDIF.
|
||||
lv_bottom_row = settings-top_left_row + lv_table_lines .
|
||||
|
||||
IF me->has_totals( ) = abap_true AND ip_include_totals_row = abap_true.
|
||||
add 1 to lv_bottom_row.
|
||||
ENDIF.
|
||||
IF me->has_totals( ) = abap_true AND ip_include_totals_row = abap_true.
|
||||
ADD 1 TO lv_bottom_row.
|
||||
ENDIF.
|
||||
|
||||
lv_top_row_string = zcl_excel_common=>number_to_excel_string( settings-top_left_row ).
|
||||
lv_bottom_row_string = zcl_excel_common=>number_to_excel_string( lv_bottom_row ).
|
||||
lv_top_row_string = zcl_excel_common=>number_to_excel_string( settings-top_left_row ).
|
||||
lv_bottom_row_string = zcl_excel_common=>number_to_excel_string( lv_bottom_row ).
|
||||
|
||||
CONCATENATE settings-top_left_column lv_top_row_string
|
||||
':'
|
||||
lv_right_column lv_bottom_row_string INTO ov_reference.
|
||||
CONCATENATE settings-top_left_column lv_top_row_string
|
||||
':'
|
||||
lv_right_column lv_bottom_row_string INTO ov_reference.
|
||||
|
||||
endmethod.</source>
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
<method CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_TOTALS_FORMULA" VERSION="1" LANGU="E" DESCRIPT="Returns formula for totals row based on column name and fun" EXPOSURE="2" STATE="1" EDITORDER="0 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="701" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZCL_EXCEL_TABLE" CMPNAME="GET_TOTALS_FORMULA" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20100831" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="CLIKE"/>
|
||||
|
|
|
@ -2670,6 +2670,12 @@ endmethod.</source>
|
|||
ENDIF.
|
||||
ADD 1 TO lv_row_int.
|
||||
ENDLOOP.
|
||||
IF sy-subrc <> 0. "create empty row if table has no data
|
||||
me->set_cell( ip_column = lv_column_alpha
|
||||
ip_row = lv_row_int
|
||||
ip_value = space ).
|
||||
ADD 1 TO lv_row_int.
|
||||
ENDIF.
|
||||
|
||||
" totals
|
||||
IF <ls_field_catalog>-totals_function IS NOT INITIAL.
|
||||
|
|
Loading…
Reference in New Issue
Block a user