Pretty print (#781)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Mike Pokraka 2021-07-27 23:33:22 +01:00 committed by GitHub
parent 6edf73b01d
commit 2710dd9717
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
125 changed files with 21547 additions and 21498 deletions

View File

@ -10,28 +10,28 @@ REPORT zabap2xlsx_demo_show.
CLASS lcl_perform DEFINITION CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS: setup_objects,
collect_reports,
collect_reports,
handle_nav FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
handle_nav FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
PRIVATE SECTION.
TYPES: BEGIN OF ty_reports,
progname TYPE reposrc-progname,
sort TYPE reposrc-progname,
progname TYPE reposrc-progname,
sort TYPE reposrc-progname,
description TYPE repti,
filename TYPE string,
filename TYPE string,
END OF ty_reports.
CLASS-DATA:
lo_grid TYPE REF TO cl_gui_alv_grid,
lo_text TYPE REF TO cl_gui_textedit,
cl_document TYPE REF TO i_oi_document_proxy,
lo_grid TYPE REF TO cl_gui_alv_grid,
lo_text TYPE REF TO cl_gui_textedit,
cl_document TYPE REF TO i_oi_document_proxy,
t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY.
CLASS-DATA:error TYPE REF TO i_oi_error,
t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
cl_control TYPE REF TO i_oi_container_control. "Office Dokument
t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY.
CLASS-DATA:error TYPE REF TO i_oi_error,
t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
cl_control TYPE REF TO i_oi_container_control. "Office Dokument
ENDCLASS. "lcl_perform DEFINITION
@ -50,8 +50,8 @@ END-OF-SELECTION.
*----------------------------------------------------------------------*
CLASS lcl_perform IMPLEMENTATION.
METHOD setup_objects.
DATA: lo_split TYPE REF TO cl_gui_splitter_container,
lo_container TYPE REF TO cl_gui_container.
DATA: lo_split TYPE REF TO cl_gui_splitter_container,
lo_container TYPE REF TO cl_gui_container.
DATA: it_fieldcat TYPE lvc_t_fcat,
is_layout TYPE lvc_s_layo,
@ -202,13 +202,13 @@ CLASS lcl_perform IMPLEMENTATION.
METHOD handle_nav.
CONSTANTS: filename TYPE text80 VALUE 'ZABAP2XLSX_DEMO_SHOW.xlsx'.
DATA: wa_report LIKE LINE OF t_reports,
t_source TYPE STANDARD TABLE OF text255,
t_rawdata TYPE solix_tab,
wa_rawdata LIKE LINE OF t_rawdata,
bytecount TYPE i,
length TYPE i,
add_selopt TYPE flag.
DATA: wa_report LIKE LINE OF t_reports,
t_source TYPE STANDARD TABLE OF text255,
t_rawdata TYPE solix_tab,
wa_rawdata LIKE LINE OF t_rawdata,
bytecount TYPE i,
length TYPE i,
add_selopt TYPE flag.
READ TABLE t_reports INTO wa_report INDEX e_row-index.
@ -235,14 +235,14 @@ CLASS lcl_perform IMPLEMENTATION.
ENDIF.
ENDIF.
IF add_selopt IS INITIAL.
SUBMIT (wa_report-progname) AND RETURN "#EC CI_SUBMIT
SUBMIT (wa_report-progname) AND RETURN "#EC CI_SUBMIT
WITH p_backfn = filename
WITH rb_back = 'X'
WITH rb_down = ' '
WITH rb_send = ' '
WITH rb_show = ' '.
ELSE.
SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN "#EC CI_SUBMIT
SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN "#EC CI_SUBMIT
WITH p_backfn = filename
WITH rb_back = 'X'
WITH rb_down = ' '

View File

@ -8,44 +8,44 @@
REPORT zangry_birds.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_border_light TYPE REF TO zcl_excel_style_border,
lo_style_color0 TYPE REF TO zcl_excel_style,
lo_style_color1 TYPE REF TO zcl_excel_style,
lo_style_color2 TYPE REF TO zcl_excel_style,
lo_style_color3 TYPE REF TO zcl_excel_style,
lo_style_color4 TYPE REF TO zcl_excel_style,
lo_style_color5 TYPE REF TO zcl_excel_style,
lo_style_color6 TYPE REF TO zcl_excel_style,
lo_style_color7 TYPE REF TO zcl_excel_style,
lo_style_credit TYPE REF TO zcl_excel_style,
lo_style_link TYPE REF TO zcl_excel_style,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_border_light TYPE REF TO zcl_excel_style_border,
lo_style_color0 TYPE REF TO zcl_excel_style,
lo_style_color1 TYPE REF TO zcl_excel_style,
lo_style_color2 TYPE REF TO zcl_excel_style,
lo_style_color3 TYPE REF TO zcl_excel_style,
lo_style_color4 TYPE REF TO zcl_excel_style,
lo_style_color5 TYPE REF TO zcl_excel_style,
lo_style_color6 TYPE REF TO zcl_excel_style,
lo_style_color7 TYPE REF TO zcl_excel_style,
lo_style_credit TYPE REF TO zcl_excel_style,
lo_style_link TYPE REF TO zcl_excel_style,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_style_color0_guid TYPE zexcel_cell_style,
lv_style_color1_guid TYPE zexcel_cell_style,
lv_style_color2_guid TYPE zexcel_cell_style,
lv_style_color3_guid TYPE zexcel_cell_style,
lv_style_color4_guid TYPE zexcel_cell_style,
lv_style_color5_guid TYPE zexcel_cell_style,
lv_style_color6_guid TYPE zexcel_cell_style,
lv_style_color7_guid TYPE zexcel_cell_style,
lv_style_credit_guid TYPE zexcel_cell_style,
lv_style_link_guid TYPE zexcel_cell_style.
DATA: lv_style_color0_guid TYPE zexcel_cell_style,
lv_style_color1_guid TYPE zexcel_cell_style,
lv_style_color2_guid TYPE zexcel_cell_style,
lv_style_color3_guid TYPE zexcel_cell_style,
lv_style_color4_guid TYPE zexcel_cell_style,
lv_style_color5_guid TYPE zexcel_cell_style,
lv_style_color6_guid TYPE zexcel_cell_style,
lv_style_color7_guid TYPE zexcel_cell_style,
lv_style_credit_guid TYPE zexcel_cell_style,
lv_style_link_guid TYPE zexcel_cell_style.
DATA: lv_col_str TYPE zexcel_cell_column_alpha,
lv_row TYPE i,
lv_col TYPE i,
lt_mapper TYPE TABLE OF zexcel_cell_style,
ls_mapper TYPE zexcel_cell_style.
DATA: lv_col_str TYPE zexcel_cell_column_alpha,
lv_row TYPE i,
lv_col TYPE i,
lt_mapper TYPE TABLE OF zexcel_cell_style,
ls_mapper TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
@ -155,17 +155,17 @@ START-OF-SELECTION.
DO 30 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 3
" line 3
DO 28 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 4
" line 4
DO 27 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 5
" line 5
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 15 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
@ -173,7 +173,7 @@ START-OF-SELECTION.
DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 6
" line 6
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
@ -183,7 +183,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 7
" line 7
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -195,7 +195,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 8
" line 8
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -209,7 +209,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 9
" line 9
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -225,7 +225,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 10
" line 10
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -240,7 +240,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 11
" line 11
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -254,7 +254,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 12
" line 12
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -271,7 +271,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 13
" line 13
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -285,7 +285,7 @@ START-OF-SELECTION.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 14
" line 14
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -297,7 +297,7 @@ START-OF-SELECTION.
DO 12 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 15
" line 15
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -309,7 +309,7 @@ START-OF-SELECTION.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 16
" line 16
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -321,7 +321,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 17
" line 17
DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -331,7 +331,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 18
" line 18
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -339,13 +339,13 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 19
" line 19
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 27 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 20
" line 20
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -353,7 +353,7 @@ START-OF-SELECTION.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 21
" line 21
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -365,7 +365,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 22
" line 22
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -377,7 +377,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 23
" line 23
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -389,7 +389,7 @@ START-OF-SELECTION.
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 24
" line 24
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
@ -403,7 +403,7 @@ START-OF-SELECTION.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 25
" line 25
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -419,7 +419,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 26
" line 26
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -440,7 +440,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 27
" line 27
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -463,7 +463,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 28
" line 28
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -490,7 +490,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 29
" line 29
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -510,7 +510,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 30
" line 30
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -533,7 +533,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 31
" line 31
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
@ -554,7 +554,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 32
" line 32
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -567,7 +567,7 @@ START-OF-SELECTION.
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 33
" line 33
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -581,7 +581,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 34
" line 34
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -591,7 +591,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 35
" line 35
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -603,7 +603,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 36
" line 36
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -614,7 +614,7 @@ START-OF-SELECTION.
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 37
" line 37
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -625,7 +625,7 @@ START-OF-SELECTION.
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 38
" line 38
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -635,7 +635,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 39
" line 39
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -643,7 +643,7 @@ START-OF-SELECTION.
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 40
" line 40
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -651,7 +651,7 @@ START-OF-SELECTION.
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 41
" line 41
DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -659,7 +659,7 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 42
" line 42
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
@ -667,24 +667,24 @@ START-OF-SELECTION.
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 43
" line 43
DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
DO 7 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 44
" line 44
DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 45
" line 45
DO 16 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 13 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape
" line 46
" line 46
DO 18 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
APPEND INITIAL LINE TO lt_mapper. " escape

View File

@ -10,12 +10,12 @@
CLASS zcl_date_calculation DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: months_between_two_dates
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_incl_to TYPE flag
EXPORTING
e_month TYPE i.
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_incl_to TYPE flag
EXPORTING
e_month TYPE i.
ENDCLASS. "ZCL_DATE_CALCULATION
@ -29,14 +29,14 @@ CLASS zcl_date_calculation IMPLEMENTATION.
DATA: date_to TYPE datum.
DATA: BEGIN OF datum_von,
jjjj(4) TYPE n,
mm(2) TYPE n,
tt(2) TYPE n,
mm(2) TYPE n,
tt(2) TYPE n,
END OF datum_von.
DATA: BEGIN OF datum_bis,
jjjj(4) TYPE n,
mm(2) TYPE n,
tt(2) TYPE n,
mm(2) TYPE n,
tt(2) TYPE n,
END OF datum_bis.
e_month = 0.
@ -107,52 +107,52 @@ ENDCLASS. "zcl_date_calculation_test IMPLEMENTATION
CLASS zcl_helper DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
load_image
IMPORTING
filename TYPE string
RETURNING value(r_image) TYPE xstring,
add_calendar
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
i_day_style TYPE zexcel_cell_style
i_cw_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel,
add_calendar_landscape
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
i_day_style TYPE zexcel_cell_style
i_cw_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel,
add_a2x_footer
IMPORTING
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel,
add_calender_week
IMPORTING
i_date TYPE datum
i_row TYPE zexcel_cell_row
i_col TYPE zexcel_cell_column_alpha
i_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel.
load_image
IMPORTING
filename TYPE string
RETURNING VALUE(r_image) TYPE xstring,
add_calendar
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
i_day_style TYPE zexcel_cell_style
i_cw_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel,
add_calendar_landscape
IMPORTING
i_date_from TYPE datum
i_date_to TYPE datum
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
i_day_style TYPE zexcel_cell_style
i_cw_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel,
add_a2x_footer
IMPORTING
i_from_row TYPE zexcel_cell_row
i_from_col TYPE zexcel_cell_column_alpha
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel,
add_calender_week
IMPORTING
i_date TYPE datum
i_row TYPE zexcel_cell_row
i_col TYPE zexcel_cell_column_alpha
i_style TYPE zexcel_cell_style
CHANGING
c_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel.
ENDCLASS. "zcl_helper DEFINITION
*----------------------------------------------------------------------*
@ -216,21 +216,21 @@ CLASS zcl_helper IMPLEMENTATION.
ENDMETHOD. "load_image
METHOD add_calendar.
DATA: day_names TYPE TABLE OF t246.
DATA: row TYPE zexcel_cell_row,
row_max TYPE i,
col_int TYPE zexcel_cell_column,
col_max TYPE i,
from_col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_date TYPE datum,
value TYPE string,
weekday TYPE wotnr,
weekrow TYPE wotnr VALUE 1,
day TYPE i,
width TYPE f,
height TYPE f.
DATA: row TYPE zexcel_cell_row,
row_max TYPE i,
col_int TYPE zexcel_cell_column,
col_max TYPE i,
from_col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_date TYPE datum,
value TYPE string,
weekday TYPE wotnr,
weekrow TYPE wotnr VALUE 1,
day TYPE i,
width TYPE f,
height TYPE f.
DATA: hyperlink TYPE REF TO zcl_excel_hyperlink.
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.
@ -345,7 +345,7 @@ CLASS zcl_helper IMPLEMENTATION.
ENDWHILE.
ENDMETHOD. "add_calendar
METHOD add_a2x_footer.
DATA: value TYPE string,
DATA: value TYPE string,
hyperlink TYPE REF TO zcl_excel_hyperlink.
value = 'Created with abap2xlsx. Find more information at https://github.com/sapmentors/abap2xlsx.'(002).
@ -362,16 +362,16 @@ CLASS zcl_helper IMPLEMENTATION.
METHOD add_calendar_landscape.
DATA: day_names TYPE TABLE OF t246.
DATA: lv_date TYPE datum,
day TYPE i,
value TYPE string,
weekday TYPE wotnr.
DATA: row TYPE zexcel_cell_row,
from_col_int TYPE zexcel_cell_column,
col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha.
DATA: lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_date TYPE datum,
day TYPE i,
value TYPE string,
weekday TYPE wotnr.
DATA: row TYPE zexcel_cell_row,
from_col_int TYPE zexcel_cell_column,
col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha.
DATA: lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.

View File

@ -9,10 +9,10 @@
REPORT zdemo_excel1.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column.
CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -8,14 +8,14 @@
REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_column TYPE REF TO zcl_excel_column.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_column TYPE REF TO zcl_excel_column.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_iconset TYPE zexcel_conditional_iconset.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_iconset TYPE zexcel_conditional_iconset.
CONSTANTS: gc_save_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
@ -52,7 +52,7 @@ START-OF-SELECTION.
lo_style_cond->priority = 1.
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_test ).

View File

@ -10,11 +10,11 @@ REPORT zdemo_excel11.
TYPE-POOLS: abap.
DATA: central_search TYPE bapibus1006_central_search,
DATA: central_search TYPE bapibus1006_central_search,
addressdata_search TYPE bapibus1006_addr_search,
others_search TYPE bapibus1006_other_data.
others_search TYPE bapibus1006_other_data.
DATA: searchresult TYPE TABLE OF bapibus1006_bp_addr,
return TYPE TABLE OF bapiret2.
return TYPE TABLE OF bapiret2.
DATA: lines TYPE i.
FIELD-SYMBOLS: <searchresult_line> LIKE LINE OF searchresult.
DATA: centraldata TYPE bapibus1006_central,
@ -36,7 +36,7 @@ INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-00a.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE TEXT-00a.
PARAMETERS: partnerc TYPE bu_type DEFAULT 2, " Organizations
postlcod TYPE ad_pstcd1 DEFAULT '8334*',
country TYPE land1 DEFAULT 'DE',
@ -45,8 +45,8 @@ SELECTION-SCREEN END OF BLOCK a.
PARAMETERS: rel TYPE flag RADIOBUTTON GROUP act DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-00b.
PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011',
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE TEXT-00b.
PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011',
partner TYPE bu_partner DEFAULT '191'.
SELECTION-SCREEN END OF BLOCK b.
@ -63,7 +63,7 @@ START-OF-SELECTION.
EXPORTING
centraldata = central_search
addressdata = addressdata_search
OTHERS = others_search
others = others_search
TABLES
searchresult = searchresult
return = return.
@ -187,20 +187,20 @@ START-OF-SELECTION.
ENDLOOP.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green TYPE zexcel_cell_style.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green TYPE zexcel_cell_style.
DATA: row TYPE zexcel_cell_row.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings.
DATA: column TYPE zexcel_cell_column,
column_alpha TYPE zexcel_cell_column_alpha,
@ -358,8 +358,8 @@ START-OF-SELECTION.
lo_row->set_visible( abap_false ).
DATA: highest_column TYPE zexcel_cell_column,
count TYPE int4,
col_alpha TYPE zexcel_cell_column_alpha.
count TYPE int4,
col_alpha TYPE zexcel_cell_column_alpha.
highest_column = lo_worksheet->get_highest_column( ).
count = 1.

View File

@ -8,10 +8,10 @@
REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,

View File

@ -8,11 +8,11 @@
REPORT zdemo_excel13.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_bold_border_guid TYPE zexcel_cell_style,
lo_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border.
lo_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border.
CONSTANTS: gc_save_file_name TYPE string VALUE '13_MergedCells.xlsx'.

View File

@ -8,34 +8,34 @@
REPORT zdemo_excel14.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_center TYPE REF TO zcl_excel_style,
lo_style_right TYPE REF TO zcl_excel_style,
lo_style_left TYPE REF TO zcl_excel_style,
lo_style_general TYPE REF TO zcl_excel_style,
lo_style_bottom TYPE REF TO zcl_excel_style,
lo_style_middle TYPE REF TO zcl_excel_style,
lo_style_top TYPE REF TO zcl_excel_style,
lo_style_justify TYPE REF TO zcl_excel_style,
lo_style_mixed TYPE REF TO zcl_excel_style,
lo_style_mixed_wrap TYPE REF TO zcl_excel_style,
lo_style_rotated TYPE REF TO zcl_excel_style,
lo_style_shrink TYPE REF TO zcl_excel_style,
lo_style_indent TYPE REF TO zcl_excel_style,
lv_style_center_guid TYPE zexcel_cell_style,
lv_style_right_guid TYPE zexcel_cell_style,
lv_style_left_guid TYPE zexcel_cell_style,
lv_style_general_guid TYPE zexcel_cell_style,
lv_style_bottom_guid TYPE zexcel_cell_style,
lv_style_middle_guid TYPE zexcel_cell_style,
lv_style_top_guid TYPE zexcel_cell_style,
lv_style_justify_guid TYPE zexcel_cell_style,
lv_style_mixed_guid TYPE zexcel_cell_style,
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_center TYPE REF TO zcl_excel_style,
lo_style_right TYPE REF TO zcl_excel_style,
lo_style_left TYPE REF TO zcl_excel_style,
lo_style_general TYPE REF TO zcl_excel_style,
lo_style_bottom TYPE REF TO zcl_excel_style,
lo_style_middle TYPE REF TO zcl_excel_style,
lo_style_top TYPE REF TO zcl_excel_style,
lo_style_justify TYPE REF TO zcl_excel_style,
lo_style_mixed TYPE REF TO zcl_excel_style,
lo_style_mixed_wrap TYPE REF TO zcl_excel_style,
lo_style_rotated TYPE REF TO zcl_excel_style,
lo_style_shrink TYPE REF TO zcl_excel_style,
lo_style_indent TYPE REF TO zcl_excel_style,
lv_style_center_guid TYPE zexcel_cell_style,
lv_style_right_guid TYPE zexcel_cell_style,
lv_style_left_guid TYPE zexcel_cell_style,
lv_style_general_guid TYPE zexcel_cell_style,
lv_style_bottom_guid TYPE zexcel_cell_style,
lv_style_middle_guid TYPE zexcel_cell_style,
lv_style_top_guid TYPE zexcel_cell_style,
lv_style_justify_guid TYPE zexcel_cell_style,
lv_style_mixed_guid TYPE zexcel_cell_style,
lv_style_mixed_wrap_guid TYPE zexcel_cell_style,
lv_style_rotated_guid TYPE zexcel_cell_style,
lv_style_shrink_guid TYPE zexcel_cell_style,
lv_style_indent_guid TYPE zexcel_cell_style.
lv_style_rotated_guid TYPE zexcel_cell_style,
lv_style_shrink_guid TYPE zexcel_cell_style,
lv_style_indent_guid TYPE zexcel_cell_style.
DATA: lo_row TYPE REF TO zcl_excel_row.

View File

@ -8,9 +8,9 @@
REPORT zdemo_excel16.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: ls_io TYPE skwf_io.
@ -18,9 +18,9 @@ DATA: ls_io TYPE skwf_io.
CONSTANTS: gc_save_file_name TYPE string VALUE '16_Drawings.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ
p_class TYPE sdok_class DEFAULT 'M_IMAGE_P',
pobjtype TYPE skwf_ioty DEFAULT 'P'.
PARAMETERS: p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ
p_class TYPE sdok_class DEFAULT 'M_IMAGE_P',
pobjtype TYPE skwf_ioty DEFAULT 'P'.
START-OF-SELECTION.
@ -29,10 +29,10 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel.
"Load samle image
DATA: lt_bin TYPE solix_tab,
lv_len TYPE i,
DATA: lt_bin TYPE solix_tab,
lv_len TYPE i,
lv_content TYPE xstring,
ls_key TYPE wwwdatatab.
ls_key TYPE wwwdatatab.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING

View File

@ -8,12 +8,12 @@
REPORT zdemo_excel17.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style,
lo_style TYPE REF TO zcl_excel_style,
lv_style TYPE zexcel_cell_style.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style,
lo_style TYPE REF TO zcl_excel_style,
lv_style TYPE zexcel_cell_style.
CONSTANTS: gc_save_file_name TYPE string VALUE '17_SheetProtection.xlsx'.

View File

@ -8,9 +8,9 @@
REPORT zdemo_excel18.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_protection_guid TYPE zexcel_cell_style.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_protection_guid TYPE zexcel_cell_style.
CONSTANTS: gc_save_file_name TYPE string VALUE '18_BookProtection.xlsx'.

View File

@ -10,8 +10,8 @@ REPORT zdemo_excel19.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
CONSTANTS: gc_save_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'.

View File

@ -8,41 +8,41 @@
REPORT zdemo_excel2.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
lo_style_filled TYPE REF TO zcl_excel_style,
lo_style_border TYPE REF TO zcl_excel_style,
lo_style_button TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_border_light TYPE REF TO zcl_excel_style_border.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
lo_style_filled TYPE REF TO zcl_excel_style,
lo_style_border TYPE REF TO zcl_excel_style,
lo_style_button TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_border_light TYPE REF TO zcl_excel_style_border.
DATA: lv_style_bold_guid TYPE zexcel_cell_style,
lv_style_underline_guid TYPE zexcel_cell_style,
lv_style_filled_guid TYPE zexcel_cell_style,
lv_style_filled_green_guid TYPE zexcel_cell_style,
lv_style_border_guid TYPE zexcel_cell_style,
lv_style_button_guid TYPE zexcel_cell_style,
DATA: lv_style_bold_guid TYPE zexcel_cell_style,
lv_style_underline_guid TYPE zexcel_cell_style,
lv_style_filled_guid TYPE zexcel_cell_style,
lv_style_filled_green_guid TYPE zexcel_cell_style,
lv_style_border_guid TYPE zexcel_cell_style,
lv_style_button_guid TYPE zexcel_cell_style,
lv_style_filled_turquoise_guid TYPE zexcel_cell_style,
lv_style_gr_cornerlb_guid TYPE zexcel_cell_style,
lv_style_gr_cornerlt_guid TYPE zexcel_cell_style,
lv_style_gr_cornerrb_guid TYPE zexcel_cell_style,
lv_style_gr_cornerrt_guid TYPE zexcel_cell_style,
lv_style_gr_horizontal90_guid TYPE zexcel_cell_style,
lv_style_gr_cornerlb_guid TYPE zexcel_cell_style,
lv_style_gr_cornerlt_guid TYPE zexcel_cell_style,
lv_style_gr_cornerrb_guid TYPE zexcel_cell_style,
lv_style_gr_cornerrt_guid TYPE zexcel_cell_style,
lv_style_gr_horizontal90_guid TYPE zexcel_cell_style,
lv_style_gr_horizontal270_guid TYPE zexcel_cell_style,
lv_style_gr_horizontalb_guid TYPE zexcel_cell_style,
lv_style_gr_vertical_guid TYPE zexcel_cell_style,
lv_style_gr_vertical2_guid TYPE zexcel_cell_style,
lv_style_gr_fromcenter_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal45_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal45b_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal135_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal135b_guid TYPE zexcel_cell_style .
lv_style_gr_horizontalb_guid TYPE zexcel_cell_style,
lv_style_gr_vertical_guid TYPE zexcel_cell_style,
lv_style_gr_vertical2_guid TYPE zexcel_cell_style,
lv_style_gr_fromcenter_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal45_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal45b_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal135_guid TYPE zexcel_cell_style,
lv_style_gr_diagonal135b_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -32,15 +32,15 @@ ENDCLASS. "lcl_handle_events IMPLEMENTATION
* DATA DECLARATION
*--------------------------------------------------------------------*
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_alv TYPE REF TO cl_gui_alv_grid,
lo_salv TYPE REF TO cl_salv_table,
gr_events TYPE REF TO lcl_handle_events,
lr_events TYPE REF TO cl_salv_events_table,
gt_sbook TYPE TABLE OF sbook,
gt_listheader TYPE slis_t_listheader,
wa_listheader LIKE LINE OF gt_listheader.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_alv TYPE REF TO cl_gui_alv_grid,
lo_salv TYPE REF TO cl_salv_table,
gr_events TYPE REF TO lcl_handle_events,
lr_events TYPE REF TO cl_salv_events_table,
gt_sbook TYPE TABLE OF sbook,
gt_listheader TYPE slis_t_listheader,
wa_listheader LIKE LINE OF gt_listheader.
DATA: l_path TYPE string, " local dir
lv_workdir TYPE string,

View File

@ -14,9 +14,9 @@ TYPES:
style TYPE zexcel_cell_style,
END OF t_color_style.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_filled TYPE REF TO zcl_excel_style.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_filled TYPE REF TO zcl_excel_style.
DATA: color_styles TYPE TABLE OF t_color_style.
@ -36,7 +36,7 @@ DATA: red TYPE i,
blue_str TYPE string.
DATA: color TYPE zexcel_style_color_argb,
tint TYPE zexcel_style_color_tint.
tint TYPE zexcel_style_color_tint.
DATA: row TYPE i,
row_tmp TYPE i,

View File

@ -8,16 +8,16 @@
REPORT zdemo_excel22.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style,
lo_style_date TYPE REF TO zcl_excel_style,
lo_style_editable TYPE REF TO zcl_excel_style,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style,
lo_style_date TYPE REF TO zcl_excel_style,
lo_style_editable TYPE REF TO zcl_excel_style,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_table_settings_out TYPE zexcel_s_table_settings.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_table_settings_out TYPE zexcel_s_table_settings.
DATA: lv_style_guid TYPE zexcel_cell_style.
@ -39,7 +39,7 @@ START-OF-SELECTION.
lo_worksheet->set_title( ip_title = 'PN_MASSIVE' ).
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
" sheet style (white background)
lo_style = lo_excel->add_new_style( ).

View File

@ -10,9 +10,9 @@ REPORT zdemo_excel23.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
CONSTANTS: gc_save_file_name TYPE string VALUE '23_Sheets_with_and_without_grid_lines.xlsx'.
@ -36,7 +36,7 @@ START-OF-SELECTION.
lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected.
lo_worksheet->zif_excel_sheet_properties~zoomscale = 150.
lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_NORMAL = 150.
lo_worksheet->zif_excel_sheet_properties~zoomscale_normal = 150.
lo_worksheet->sheet_setup->vertical_centered = abap_true.
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
@ -53,7 +53,7 @@ START-OF-SELECTION.
lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected.
lo_worksheet->zif_excel_sheet_properties~zoomscale = 160.
lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_PAGELAYOUTVIEW = 200.
lo_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview = 200.
" Third sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
@ -67,7 +67,7 @@ START-OF-SELECTION.
lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected.
lo_worksheet->zif_excel_sheet_properties~zoomscale = 170.
lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_SHEETLAYOUTVIEW = 150.
lo_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview = 150.
" Fourth sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
@ -80,9 +80,9 @@ START-OF-SELECTION.
lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected.
lo_worksheet->zif_excel_sheet_properties~zoomscale = 150.
lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_NORMAL = 150.
lo_worksheet->zif_excel_sheet_properties~zoomscale_normal = 150.
" lo_worksheet->sheet_setup->vertical_centered = abap_true.
" lo_worksheet->sheet_setup->vertical_centered = abap_true.
lo_worksheet->sheet_setup->horizontal_centered = abap_true.

View File

@ -10,14 +10,14 @@ REPORT zdemo_excel24.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
@ -64,7 +64,7 @@ START-OF-SELECTION.
lo_worksheet = lo_excel->add_new_worksheet( ).
" TODO: It seems that the zcl_excel_style_number_format=>c_format_date_yyyymmddslash
" does not produce a valid output
lo_worksheet->set_default_excel_date_format( zcl_excel_style_number_format=>c_format_date_yyyymmddslash ).
lo_worksheet->set_default_excel_date_format( zcl_excel_style_number_format=>c_format_date_yyyymmddslash ).
lo_worksheet->set_title( ip_title = 'Sheet3' ).
lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Date Format set to YYYY/MM/DD' ).
" Insert current date
@ -81,7 +81,7 @@ START-OF-SELECTION.
" http://support.microsoft.com/kb/214326/en-us
lo_worksheet->set_title( ip_title = 'Sheet4' ).
" Loop from Start Date to the Max Date current data in daily steps
CONSTANTS: lv_max type d VALUE '19000302'.
CONSTANTS: lv_max TYPE d VALUE '19000302'.
DATA: lv_date TYPE d VALUE '19000226',
lv_row TYPE i.

View File

@ -8,10 +8,10 @@
REPORT zdemo_excel25.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_exception TYPE REF TO cx_root.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_exception TYPE REF TO cx_root.
DATA: lv_file TYPE xstring.

View File

@ -4,88 +4,88 @@
* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object
* to Excel.
*--------------------------------------------------------------------*
report zdemo_excel26.
REPORT zdemo_excel26.
*----------------------------------------------------------------------*
* CLASS lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events definition.
public section.
methods:
on_user_command for event added_function of cl_salv_events
importing e_salv_function.
endclass. "lcl_handle_events DEFINITION
CLASS lcl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS:
on_user_command FOR EVENT added_function OF cl_salv_events
IMPORTING e_salv_function.
ENDCLASS. "lcl_handle_events DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_handle_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_handle_events implementation.
method on_user_command.
perform user_command." using e_salv_function text-i08.
endmethod. "on_user_command
endclass. "lcl_handle_events IMPLEMENTATION
CLASS lcl_handle_events IMPLEMENTATION.
METHOD on_user_command.
PERFORM user_command." using e_salv_function text-i08.
ENDMETHOD. "on_user_command
ENDCLASS. "lcl_handle_events IMPLEMENTATION
*--------------------------------------------------------------------*
* DATA DECLARATION
*--------------------------------------------------------------------*
data: lo_excel type ref to zcl_excel,
lo_worksheet type ref to zcl_excel_worksheet,
lo_salv type ref to cl_salv_table,
gr_events type ref to lcl_handle_events,
lr_events type ref to cl_salv_events_table,
gt_sbook type table of sbook.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_salv TYPE REF TO cl_salv_table,
gr_events TYPE REF TO lcl_handle_events,
lr_events TYPE REF TO cl_salv_events_table,
gt_sbook TYPE TABLE OF sbook.
data: l_path type string, " local dir
lv_workdir type string,
lv_file_separator type c.
DATA: l_path TYPE string, " local dir
lv_workdir TYPE string,
lv_file_separator TYPE c.
constants:
lv_default_file_name type string value '26_Bind_ALV.xlsx'.
CONSTANTS:
lv_default_file_name TYPE string VALUE '26_Bind_ALV.xlsx'.
*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
start-of-selection.
START-OF-SELECTION.
* get data
* ------------------------------------------
select *
into table gt_sbook[]
from sbook "#EC CI_NOWHERE
up to 10 rows.
SELECT *
INTO TABLE gt_sbook[]
FROM sbook "#EC CI_NOWHERE
UP TO 10 ROWS.
* Display ALV
* ------------------------------------------
try.
TRY.
cl_salv_table=>factory(
exporting
EXPORTING
list_display = abap_false
importing
IMPORTING
r_salv_table = lo_salv
changing
CHANGING
t_table = gt_sbook[] ).
catch cx_salv_msg .
endtry.
CATCH cx_salv_msg .
ENDTRY.
try.
TRY.
lo_salv->set_screen_status(
exporting
EXPORTING
report = sy-repid
pfstatus = 'ALV_STATUS'
set_functions = lo_salv->c_functions_all ).
catch cx_salv_msg .
endtry.
CATCH cx_salv_msg .
ENDTRY.
lr_events = lo_salv->get_event( ).
create object gr_events.
set handler gr_events->on_user_command for lr_events.
CREATE OBJECT gr_events.
SET HANDLER gr_events->on_user_command FOR lr_events.
lo_salv->display( ).
@ -95,60 +95,60 @@ start-of-selection.
*&---------------------------------------------------------------------*
* ALV user command
*--------------------------------------------------------------------*
form user_command .
if sy-ucomm = 'EXCEL'.
FORM user_command .
IF sy-ucomm = 'EXCEL'.
* get save file path
cl_gui_frontend_services=>get_sapgui_workdir( changing sapworkdir = l_path ).
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ).
cl_gui_cfw=>flush( ).
cl_gui_frontend_services=>directory_browse(
exporting initial_folder = l_path
changing selected_folder = l_path ).
EXPORTING initial_folder = l_path
CHANGING selected_folder = l_path ).
if l_path is initial.
IF l_path IS INITIAL.
cl_gui_frontend_services=>get_sapgui_workdir(
changing sapworkdir = lv_workdir ).
CHANGING sapworkdir = lv_workdir ).
l_path = lv_workdir.
endif.
ENDIF.
cl_gui_frontend_services=>get_file_separator(
changing file_separator = lv_file_separator ).
CHANGING file_separator = lv_file_separator ).
concatenate l_path lv_file_separator lv_default_file_name
into l_path.
CONCATENATE l_path lv_file_separator lv_default_file_name
INTO l_path.
* export file to save file path
perform export_to_excel.
PERFORM export_to_excel.
endif.
endform. " USER_COMMAND
ENDIF.
ENDFORM. " USER_COMMAND
*--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL
*--------------------------------------------------------------------*
* This subroutine is principal demo session
*--------------------------------------------------------------------*
form export_to_excel raising zcx_excel.
FORM export_to_excel RAISING zcx_excel.
* create zcl_excel_worksheet object
create object lo_excel.
CREATE OBJECT lo_excel.
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( ip_title = 'Sheet1' ).
* write to excel using method Bin_object
try.
TRY.
lo_worksheet->bind_alv(
io_alv = lo_salv
it_table = gt_sbook
i_top = 2
i_left = 1
).
catch zcx_excel .
endtry.
CATCH zcx_excel .
ENDTRY.
perform write_file.
PERFORM write_file.
endform. "EXPORT_TO_EXCEL
ENDFORM. "EXPORT_TO_EXCEL
*&---------------------------------------------------------------------*
*& Form WRITE_FILE
*&---------------------------------------------------------------------*
@ -157,44 +157,44 @@ endform. "EXPORT_TO_EXCEL
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form write_file .
data: lt_file type solix_tab,
l_bytecount type i,
l_file type xstring.
FORM write_file .
DATA: lt_file TYPE solix_tab,
l_bytecount TYPE i,
l_file TYPE xstring.
data: lo_excel_writer type ref to zif_excel_writer.
DATA: lo_excel_writer TYPE REF TO zif_excel_writer.
data: ls_seoclass type seoclass.
DATA: ls_seoclass TYPE seoclass.
create object lo_excel_writer type zcl_excel_writer_2007.
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
l_file = lo_excel_writer->write_file( lo_excel ).
select single * into ls_seoclass
from seoclass
where clsname = 'CL_BCS_CONVERT'.
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = 'CL_BCS_CONVERT'.
if sy-subrc = 0.
call method (ls_seoclass-clsname)=>xstring_to_solix
exporting
IF sy-subrc = 0.
CALL METHOD (ls_seoclass-clsname)=>xstring_to_solix
EXPORTING
iv_xstring = l_file
receiving
RECEIVING
et_solix = lt_file.
l_bytecount = xstrlen( l_file ).
else.
ELSE.
" Convert to binary
call function 'SCMS_XSTRING_TO_BINARY'
exporting
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = l_file
importing
IMPORTING
output_length = l_bytecount
tables
TABLES
binary_tab = lt_file.
endif.
ENDIF.
cl_gui_frontend_services=>gui_download( exporting bin_filesize = l_bytecount
cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = l_bytecount
filename = l_path
filetype = 'BIN'
changing data_tab = lt_file ).
CHANGING data_tab = lt_file ).
endform. " WRITE_FILE
ENDFORM. " WRITE_FILE

View File

@ -10,16 +10,16 @@ REPORT zdemo_excel27.
CONSTANTS: c_fish TYPE string VALUE 'Fish'.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_style_1 TYPE REF TO zcl_excel_style,
lo_style_2 TYPE REF TO zcl_excel_style,
lv_style_1_guid TYPE zexcel_cell_style,
lv_style_2_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_style_1 TYPE REF TO zcl_excel_style,
lo_style_2 TYPE REF TO zcl_excel_style,
lv_style_1_guid TYPE zexcel_cell_style,
lv_style_2_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis.
DATA: lv_title TYPE zexcel_sheet_title.

View File

@ -8,14 +8,14 @@
REPORT zdemo_excel28.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -8,24 +8,24 @@
REPORT zdemo_excel29.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_excel_reader TYPE REF TO zif_excel_reader.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_excel_reader TYPE REF TO zif_excel_reader.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_filename TYPE string,
lv_workdir TYPE string.
DATA: lv_full_path TYPE string,
lv_filename TYPE string,
lv_workdir TYPE string.
PARAMETERS: p_path TYPE zexcel_export_dir OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
DATA: lt_filetable TYPE filetable,
lv_rc TYPE i.
lv_rc TYPE i.
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
cl_gui_cfw=>flush( ).

View File

@ -10,16 +10,16 @@ REPORT zdemo_excel3.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
row TYPE zexcel_cell_row VALUE 2,
row TYPE zexcel_cell_row VALUE 2,
lo_range TYPE REF TO zcl_excel_range.
DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation.
FIELD-SYMBOLS: <carr> LIKE LINE OF lt_carr.
@ -43,7 +43,7 @@ START-OF-SELECTION.
DATA lt_test TYPE TABLE OF sflight.
IF p_empty <> abap_true.
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
ENDIF.
ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium2.
@ -62,7 +62,7 @@ START-OF-SELECTION.
lv_title = 'Data Validation'.
lo_worksheet->set_title( lv_title ).
lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = c_airlines ).
SELECT * FROM scarr INTO TABLE lt_carr. "#EC CI_NOWHERE
SELECT * FROM scarr INTO TABLE lt_carr. "#EC CI_NOWHERE
LOOP AT lt_carr ASSIGNING <carr>.
lo_worksheet->set_cell( ip_row = row ip_column = 'A' ip_value = <carr>-carrid ).
row = row + 1.

View File

@ -8,10 +8,10 @@
REPORT zdemo_excel30.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column.
DATA: lv_value TYPE string,

View File

@ -8,10 +8,10 @@
REPORT zdemo_excel31.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column.
DATA: fieldval TYPE text80,

View File

@ -10,10 +10,10 @@ REPORT zdemo_excel33.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_converter TYPE REF TO zcl_excel_converter,
lo_autofilter TYPE REF TO zcl_excel_autofilter.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_converter TYPE REF TO zcl_excel_converter,
lo_autofilter TYPE REF TO zcl_excel_autofilter.
DATA lt_test TYPE TABLE OF t005t.

View File

@ -11,24 +11,24 @@ REPORT zdemo_excel34.
CONSTANTS: width TYPE f VALUE '10.14'.
CONSTANTS: height TYPE f VALUE '57.75'.
DATA: current_row TYPE i,
col TYPE i,
col_alpha TYPE zexcel_cell_column_alpha,
row TYPE i,
row_board TYPE i,
colorflag TYPE i,
color TYPE zexcel_style_color_argb,
DATA: current_row TYPE i,
col TYPE i,
col_alpha TYPE zexcel_cell_column_alpha,
row TYPE i,
row_board TYPE i,
colorflag TYPE i,
color TYPE zexcel_style_color_argb,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
writing1 TYPE string,
writing2 TYPE string.
writing1 TYPE string,
writing2 TYPE string.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
CONSTANTS: gc_save_file_name TYPE string VALUE '34_Static Styles_Chess.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -8,28 +8,28 @@
REPORT zdemo_excel35.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
lo_style_filled TYPE REF TO zcl_excel_style,
lo_style_border TYPE REF TO zcl_excel_style,
lo_style_button TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_border_light TYPE REF TO zcl_excel_style_border.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
lo_style_filled TYPE REF TO zcl_excel_style,
lo_style_border TYPE REF TO zcl_excel_style,
lo_style_button TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
lo_border_light TYPE REF TO zcl_excel_style_border.
DATA: lv_style_bold_guid TYPE zexcel_cell_style,
lv_style_underline_guid TYPE zexcel_cell_style,
lv_style_filled_guid TYPE zexcel_cell_style,
lv_style_filled_green_guid TYPE zexcel_cell_style,
lv_style_border_guid TYPE zexcel_cell_style,
lv_style_button_guid TYPE zexcel_cell_style,
DATA: lv_style_bold_guid TYPE zexcel_cell_style,
lv_style_underline_guid TYPE zexcel_cell_style,
lv_style_filled_guid TYPE zexcel_cell_style,
lv_style_filled_green_guid TYPE zexcel_cell_style,
lv_style_border_guid TYPE zexcel_cell_style,
lv_style_button_guid TYPE zexcel_cell_style,
lv_style_filled_turquoise_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
@ -46,7 +46,7 @@ AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
p_path = lv_workdir.
INITIALIZATION.
cl_gui_frontend_services=>GET_DESKTOP_DIRECTORY( CHANGING DESKTOP_DIRECTORY = lv_workdir ).
cl_gui_frontend_services=>get_desktop_directory( CHANGING desktop_directory = lv_workdir ).
cl_gui_cfw=>flush( ).
p_path = lv_workdir.

View File

@ -2,14 +2,14 @@
*& Report ZDEMO_EXCEL36
REPORT zdemo_excel36.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
col TYPE i.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
col TYPE i.
DATA: lo_style_arial20 TYPE REF TO zcl_excel_style,
lo_style_times11 TYPE REF TO zcl_excel_style,
lo_style_cambria8red TYPE REF TO zcl_excel_style.
DATA: lo_style_arial20 TYPE REF TO zcl_excel_style,
lo_style_times11 TYPE REF TO zcl_excel_style,
lo_style_cambria8red TYPE REF TO zcl_excel_style.
DATA: lv_style_arial20_guid TYPE zexcel_cell_style,
lv_style_times11_guid TYPE zexcel_cell_style,

View File

@ -20,12 +20,12 @@ SELECTION-SCREEN END OF BLOCK blx.
INCLUDE zdemo_excel_outputopt_incl.
SELECTION-SCREEN BEGIN OF BLOCK cls WITH FRAME TITLE text-cls.
SELECTION-SCREEN BEGIN OF BLOCK cls WITH FRAME TITLE TEXT-cls.
PARAMETERS: lb_read TYPE seoclsname AS LISTBOX VISIBLE LENGTH 40 LOWER CASE OBLIGATORY DEFAULT 'Autodetect'(001).
PARAMETERS: lb_write TYPE seoclsname AS LISTBOX VISIBLE LENGTH 40 LOWER CASE OBLIGATORY DEFAULT 'Autodetect'(001).
SELECTION-SCREEN END OF BLOCK cls.
SELECTION-SCREEN BEGIN OF BLOCK bl_err WITH FRAME TITLE text-err.
SELECTION-SCREEN BEGIN OF BLOCK bl_err WITH FRAME TITLE TEXT-err.
PARAMETERS: cb_errl AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: cb_dump AS CHECKBOX DEFAULT space.
@ -35,7 +35,7 @@ SELECTION-SCREEN END OF BLOCK bl_err.
INITIALIZATION.
PERFORM setup_listboxes.
cmt_dump = text-dum.
cmt_dump = TEXT-dum.
GET PARAMETER ID 'GR8' FIELD gv_memid_gr8.
p_upfile = gv_memid_gr8.

View File

@ -1,26 +1,26 @@
REPORT zdemo_excel38.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column TYPE REF TO zcl_excel_column,
lo_drawing TYPE REF TO zcl_excel_drawing.
TYPES: BEGIN OF gty_icon,
* name TYPE icon_name, "Fix #228
name TYPE iconname, "Fix #228
objid TYPE w3objid,
name TYPE iconname, "Fix #228
objid TYPE w3objid,
END OF gty_icon,
gtyt_icon TYPE STANDARD TABLE OF gty_icon WITH NON-UNIQUE DEFAULT KEY.
DATA: lt_icon TYPE gtyt_icon,
lv_row TYPE sytabix,
ls_wwwdatatab TYPE wwwdatatab,
lt_mimedata TYPE STANDARD TABLE OF w3mime WITH NON-UNIQUE DEFAULT KEY,
lv_xstring TYPE xstring.
DATA: lt_icon TYPE gtyt_icon,
lv_row TYPE sytabix,
ls_wwwdatatab TYPE wwwdatatab,
lt_mimedata TYPE STANDARD TABLE OF w3mime WITH NON-UNIQUE DEFAULT KEY,
lv_xstring TYPE xstring.
FIELD-SYMBOLS: <icon> LIKE LINE OF lt_icon,
<mimedata> LIKE LINE OF lt_mimedata.
FIELD-SYMBOLS: <icon> LIKE LINE OF lt_icon,
<mimedata> LIKE LINE OF lt_mimedata.
CONSTANTS: gc_save_file_name TYPE string VALUE '38_SAP-Icons.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -139,7 +139,7 @@ START-OF-SELECTION.
CALL METHOD lo_bar1_stacked->create_ax
EXPORTING
ip_type = zcl_excel_graph_bars=>c_catax .
ip_type = zcl_excel_graph_bars=>c_catax.
CALL METHOD lo_bar1_stacked->create_ax
EXPORTING

View File

@ -8,15 +8,15 @@
REPORT zdemo_excel4.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lv_tabcolor TYPE zexcel_s_tabcolor,
lv_tabcolor TYPE zexcel_s_tabcolor,
ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot.
ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot.
CONSTANTS: gc_save_file_name TYPE string VALUE '04_Sheets.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -1,14 +1,14 @@
REPORT zdemo_excel40.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_row TYPE zexcel_cell_row,
lv_col TYPE i,
lv_row_char TYPE char10,
lv_value TYPE string,
ls_fontcolor TYPE zexcel_style_color_argb.
DATA: lv_row TYPE zexcel_cell_row,
lv_col TYPE i,
lv_row_char TYPE char10,
lv_value TYPE string,
ls_fontcolor TYPE zexcel_style_color_argb.
CONSTANTS: gc_save_file_name TYPE string VALUE '40_Printsettings.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -9,7 +9,7 @@ CONSTANTS: gc_save_file_name TYPE string VALUE 'ABAP2XLSX Inheritance.xlsx'.
CLASS lcl_my_zcl_excel1 DEFINITION INHERITING FROM zcl_excel.
PUBLIC SECTION.
METHODS: constructor IMPORTING iv_sheetcount TYPE i DEFAULT 5
RAISING zcx_excel.
RAISING zcx_excel.
ENDCLASS.
CLASS lcl_my_zcl_excel1 IMPLEMENTATION.
@ -77,7 +77,7 @@ DATA: go_excel1 TYPE REF TO lcl_my_zcl_excel1.
DATA: go_excel2 TYPE REF TO lcl_my_zcl_excel2.
SELECTION-SCREEN BEGIN OF BLOCK bli WITH FRAME TITLE text-bli.
SELECTION-SCREEN BEGIN OF BLOCK bli WITH FRAME TITLE TEXT-bli.
PARAMETERS: rbi_1 RADIOBUTTON GROUP rbi DEFAULT 'X' , " Simple inheritance
rbi_2 RADIOBUTTON GROUP rbi.
SELECTION-SCREEN END OF BLOCK bli.

View File

@ -6,18 +6,18 @@
*&
*&---------------------------------------------------------------------*
REPORT ZDEMO_EXCEL42.
type-POOLS: vrm.
REPORT zdemo_excel42.
TYPE-POOLS: vrm.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_theme TYPE REF TO zcl_excel_theme,
lo_style type ref to zcl_excel_style,
lv_style_guid type ZEXCEL_CELL_STYLE.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_theme TYPE REF TO zcl_excel_theme,
lo_style TYPE REF TO zcl_excel_style,
lv_style_guid TYPE zexcel_cell_style.
DATA: gc_save_file_name TYPE string VALUE '42 Theme Manipulation demo.&'.
include zdemo_excel_outputopt_incl.
INCLUDE zdemo_excel_outputopt_incl.
initialization.
INITIALIZATION.
START-OF-SELECTION.
@ -41,62 +41,62 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Bold text' ip_style = lv_style_guid ).
"create theme
create object lo_theme.
CREATE OBJECT lo_theme.
lo_theme->set_theme_name( iv_name = 'Theme Demo 42 A2X' ).
lo_theme->set_color_scheme_name( iv_name = 'Demo 42 A2X' ).
"set theme colors
lo_theme->set_color(
exporting
EXPORTING
iv_type = zcl_excel_theme_color_scheme=>c_dark1
iv_srgb = '5F9EA0'
* iv_syscolorname =
* iv_syscolorlast =
).
lo_theme->set_color(
exporting
iv_type = zcl_excel_theme_color_scheme=>c_dark2
iv_srgb = 'FFA500'
lo_theme->set_color(
EXPORTING
iv_type = zcl_excel_theme_color_scheme=>c_dark2
iv_srgb = 'FFA500'
* iv_syscolorname =
* iv_syscolorlast =
).
lo_theme->set_color(
exporting
iv_type = zcl_excel_theme_color_scheme=>c_light1
iv_srgb = '778899'
).
lo_theme->set_color(
EXPORTING
iv_type = zcl_excel_theme_color_scheme=>c_light1
iv_srgb = '778899'
* iv_syscolorname =
* iv_syscolorlast =
).
).
lo_theme->set_color(
exporting
iv_type = zcl_excel_theme_color_scheme=>c_light1
iv_srgb = '9932CC'
lo_theme->set_color(
EXPORTING
iv_type = zcl_excel_theme_color_scheme=>c_light1
iv_srgb = '9932CC'
* iv_syscolorname =
* iv_syscolorlast =
).
).
lo_theme->set_font_scheme_name( iv_name = 'Demo 42 A2X' ).
"set theme latin fonts - major and minor
lo_theme->set_latin_font(
exporting
EXPORTING
iv_type = zcl_excel_theme_font_scheme=>c_major
iv_typeface = 'Britannic Bold'
* iv_panose =
* iv_pitchfamily =
* iv_charset =
).
lo_theme->set_latin_font(
exporting
iv_type = zcl_excel_theme_font_scheme=>c_minor
iv_typeface = 'Broadway'
lo_theme->set_latin_font(
EXPORTING
iv_type = zcl_excel_theme_font_scheme=>c_minor
iv_typeface = 'Broadway'
* iv_panose =
* iv_pitchfamily =
* iv_charset =
).
"push theme to file
lo_excel->set_theme( io_theme = lo_theme ).
).
"push theme to file
lo_excel->set_theme( io_theme = lo_theme ).
"output
lcl_output=>output( cl_excel = lo_excel ).
"output
lcl_output=>output( cl_excel = lo_excel ).

View File

@ -8,11 +8,11 @@
REPORT zdemo_excel5.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_cond TYPE REF TO zcl_excel_style_cond.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_cond TYPE REF TO zcl_excel_style_cond.
DATA: ls_iconset TYPE zexcel_conditional_iconset.
DATA: ls_iconset TYPE zexcel_conditional_iconset.

View File

@ -8,10 +8,10 @@
REPORT zdemo_excel6.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_row TYPE syindex,
lv_formula TYPE string.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_row TYPE syindex,
lv_formula TYPE string.
CONSTANTS: gc_save_file_name TYPE string VALUE '06_Formulas.xlsx'.

View File

@ -8,16 +8,16 @@
REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_cond TYPE REF TO zcl_excel_style_cond.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_cond TYPE REF TO zcl_excel_style_cond.
DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset,
ls_iconset5 TYPE zexcel_conditional_iconset,
ls_databar TYPE zexcel_conditional_databar,
ls_colorscale2 TYPE zexcel_conditional_colorscale,
ls_colorscale3 TYPE zexcel_conditional_colorscale.
DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset,
ls_iconset5 TYPE zexcel_conditional_iconset,
ls_databar TYPE zexcel_conditional_databar,
ls_colorscale2 TYPE zexcel_conditional_colorscale,
ls_colorscale3 TYPE zexcel_conditional_colorscale.
CONSTANTS: gc_save_file_name TYPE string VALUE '07_ConditionalAll.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -8,9 +8,9 @@
REPORT zdemo_excel8.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range.
DATA: lv_title TYPE zexcel_sheet_title.

View File

@ -13,10 +13,10 @@ CONSTANTS: c_fruits TYPE string VALUE 'Fruits',
c_meat TYPE string VALUE 'Meat',
c_fish TYPE string VALUE 'Fish'.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: row TYPE zexcel_cell_row.
@ -154,21 +154,21 @@ START-OF-SELECTION.
lo_data_validation->cell_row = row.
lo_data_validation->cell_column = 'A'.
lo_worksheet->set_cell( ip_row = row ip_column = 'A' ip_value = 'Select a value' ).
" 2nd
" 2nd
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = c_vegetables.
lo_data_validation->cell_row = row.
lo_data_validation->cell_column = 'B'.
lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = 'Select a value' ).
" 3rd
" 3rd
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = c_meat.
lo_data_validation->cell_row = row.
lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = 'Select a value' ).
" 4th
" 4th
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = c_fish.
@ -180,13 +180,13 @@ START-OF-SELECTION.
ENDWHILE.
IF p_sbook = abap_true.
DATA: bookings type TABLE OF sbook.
DATA: bookings TYPE TABLE OF sbook.
lo_worksheet = lo_excel->add_new_worksheet( ).
lv_title = 'SBOOK'.
lo_worksheet->set_title( lv_title ).
SELECT * from sbook INTO TABLE bookings UP TO 4000 ROWS.
SELECT * FROM sbook INTO TABLE bookings UP TO 4000 ROWS.
lo_worksheet->bind_table(
EXPORTING

View File

@ -7,11 +7,11 @@
*&---------------------------------------------------------------------*
REPORT zdemo_excel_comments.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_comment TYPE REF TO zcl_excel_comment,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lv_comment TYPE string.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_comment TYPE REF TO zcl_excel_comment,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lv_comment TYPE string.
CONSTANTS: gc_save_file_name TYPE string VALUE 'Comments.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -104,7 +104,7 @@ CLASS lcl_output IMPLEMENTATION.
IF sy-batch IS INITIAL.
cl_output->download_frontend( ).
ELSE.
MESSAGE e802(ZABAP2XLSX).
MESSAGE e802(zabap2xlsx).
ENDIF.
WHEN rb_back.
@ -114,7 +114,7 @@ CLASS lcl_output IMPLEMENTATION.
IF sy-batch IS INITIAL.
cl_output->display_online( ).
ELSE.
MESSAGE e803(ZABAP2XLSX).
MESSAGE e803(zabap2xlsx).
ENDIF.
WHEN rb_send.
@ -187,10 +187,10 @@ CLASS lcl_output IMPLEMENTATION.
* If started in language w/o textelements translated set defaults
* Furthermore I don't have to change the selectiontexts of all demoreports.
DEFINE default_parametertext.
if %_&1_%_app_%-text = '&1' or
%_&1_%_app_%-text is initial.
IF %_&1_%_app_%-text = '&1' OR
%_&1_%_app_%-text IS INITIAL.
%_&1_%_app_%-text = &2.
endif.
ENDIF.
END-OF-DEFINITION.
default_parametertext: rb_down 'Save to frontend',
@ -352,10 +352,10 @@ CLASS lcl_output IMPLEMENTATION.
COMMIT WORK.
IF sent = abap_true.
MESSAGE s805(ZABAP2XLSX).
MESSAGE s805(zabap2xlsx).
MESSAGE 'Document ready to be sent - Check SOST or SCOT' TYPE 'I'.
ELSE.
MESSAGE i804(ZABAP2XLSX) WITH p_email.
MESSAGE i804(zabap2xlsx) WITH p_email.
ENDIF.
CATCH cx_bcs INTO bcs_exception.

View File

@ -48,8 +48,17 @@
<TYPE>CL_WDY_MD_VIEW</TYPE>
<VIEW_CONTROLLER>V_MAIN</VIEW_CONTROLLER>
<ROOT_UI_CONT>ROOTUIELEMENTCONTAINER</ROOT_UI_CONT>
<IS_CONVERTED>E</IS_CONVERTED>
<DISPLAY_NAME>V_MAIN</DISPLAY_NAME>
</DEFINITION>
<DESCRIPTIONS>
<WDY_VIEWT>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<LANGU>E</LANGU>
<DESCRIPTION>Web Dynpro View</DESCRIPTION>
</WDY_VIEWT>
</DESCRIPTIONS>
<UI_ELEMENTS>
<WDY_UI_ELEMENT>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
@ -113,6 +122,13 @@
</WDY_UI_EVT_BIND>
</UI_EVENT_BINDINGS>
<UI_PROPERTIES>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<ELEMENT_NAME>BTN_DOWNLOAD</ELEMENT_NAME>
<VERSION>A</VERSION>
<PROPERTY_NAME>ACTIVATE_ACCESS_KEY</PROPERTY_NAME>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
@ -153,6 +169,13 @@
<PROPERTY_NAME>IMAGE_FIRST</PROPERTY_NAME>
<PROPERTY_VALUE>X</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<ELEMENT_NAME>BTN_DOWNLOAD</ELEMENT_NAME>
<VERSION>A</VERSION>
<PROPERTY_NAME>IMAGE_IS_DECORATIVE</PROPERTY_NAME>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
@ -185,6 +208,14 @@
<PROPERTY_NAME>V_GUTTER</PROPERTY_NAME>
<PROPERTY_VALUE>00</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<ELEMENT_NAME>ROOTUIELEMENTCONTAINER</ELEMENT_NAME>
<VERSION>A</VERSION>
<PROPERTY_NAME>ARIA_LANDMARK</PROPERTY_NAME>
<PROPERTY_VALUE>10</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
@ -201,6 +232,13 @@
<PROPERTY_NAME>ENABLED</PROPERTY_NAME>
<PROPERTY_VALUE>X</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<ELEMENT_NAME>ROOTUIELEMENTCONTAINER</ELEMENT_NAME>
<VERSION>A</VERSION>
<PROPERTY_NAME>HANDLE_HOTKEYS</PROPERTY_NAME>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
@ -217,6 +255,22 @@
<PROPERTY_NAME>SCROLLING_MODE</PROPERTY_NAME>
<PROPERTY_VALUE>02</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<ELEMENT_NAME>ROOTUIELEMENTCONTAINER</ELEMENT_NAME>
<VERSION>A</VERSION>
<PROPERTY_NAME>SCROLL_LEFT</PROPERTY_NAME>
<PROPERTY_VALUE>0</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
<ELEMENT_NAME>ROOTUIELEMENTCONTAINER</ELEMENT_NAME>
<VERSION>A</VERSION>
<PROPERTY_NAME>SCROLL_TOP</PROPERTY_NAME>
<PROPERTY_VALUE>0</PROPERTY_VALUE>
</WDY_UI_PROPERTY>
<WDY_UI_PROPERTY>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<VIEW_NAME>V_MAIN</VIEW_NAME>
@ -881,28 +935,28 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>3</LINE_NUMBER>
<SOURCE_LINE>DATA: lo_excel TYPE REF TO zcl_excel,</SOURCE_LINE>
<SOURCE_LINE> DATA: lo_excel TYPE REF TO zcl_excel,</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>4</LINE_NUMBER>
<SOURCE_LINE>lo_excel_writer TYPE REF TO zcl_excel_writer_2007,</SOURCE_LINE>
<SOURCE_LINE> lo_excel_writer TYPE REF TO zcl_excel_writer_2007,</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>5</LINE_NUMBER>
<SOURCE_LINE>lo_worksheet TYPE REF TO zcl_excel_worksheet.</SOURCE_LINE>
<SOURCE_LINE> lo_worksheet TYPE REF TO zcl_excel_worksheet.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>6</LINE_NUMBER>
<SOURCE_LINE>DATA: lv_content TYPE xstring.</SOURCE_LINE>
<SOURCE_LINE> DATA: lv_content TYPE xstring.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
@ -915,14 +969,14 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>8</LINE_NUMBER>
<SOURCE_LINE>CREATE OBJECT lo_excel.</SOURCE_LINE>
<SOURCE_LINE> CREATE OBJECT lo_excel.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>9</LINE_NUMBER>
<SOURCE_LINE>lo_worksheet = lo_excel-&gt;get_active_worksheet( ).</SOURCE_LINE>
<SOURCE_LINE> lo_worksheet = lo_excel-&gt;get_active_worksheet( ).</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
@ -935,21 +989,21 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>11</LINE_NUMBER>
<SOURCE_LINE>lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;</SOURCE_LINE>
<SOURCE_LINE> lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>12</LINE_NUMBER>
<SOURCE_LINE>ip_row = &apos;2&apos;</SOURCE_LINE>
<SOURCE_LINE> ip_row = &apos;2&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>13</LINE_NUMBER>
<SOURCE_LINE>ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).</SOURCE_LINE>
<SOURCE_LINE> ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
@ -962,14 +1016,14 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>15</LINE_NUMBER>
<SOURCE_LINE>CREATE OBJECT lo_excel_writer.</SOURCE_LINE>
<SOURCE_LINE> CREATE OBJECT lo_excel_writer.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>16</LINE_NUMBER>
<SOURCE_LINE>lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).</SOURCE_LINE>
<SOURCE_LINE> lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
@ -982,14 +1036,14 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>18</LINE_NUMBER>
<SOURCE_LINE>DATA: lv_filename TYPE string.</SOURCE_LINE>
<SOURCE_LINE> DATA: lv_filename TYPE string.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>19</LINE_NUMBER>
<SOURCE_LINE>lv_filename = &apos;wda01.xlsx&apos;.</SOURCE_LINE>
<SOURCE_LINE> lv_filename = &apos;wda01.xlsx&apos;.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
@ -1002,49 +1056,49 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>21</LINE_NUMBER>
<SOURCE_LINE>CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response</SOURCE_LINE>
<SOURCE_LINE> CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>22</LINE_NUMBER>
<SOURCE_LINE>EXPORTING</SOURCE_LINE>
<SOURCE_LINE> EXPORTING</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>23</LINE_NUMBER>
<SOURCE_LINE>i_filename = lv_filename</SOURCE_LINE>
<SOURCE_LINE> i_filename = lv_filename</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>24</LINE_NUMBER>
<SOURCE_LINE>i_content = lv_content</SOURCE_LINE>
<SOURCE_LINE> i_content = lv_content</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>25</LINE_NUMBER>
<SOURCE_LINE>i_mime_type = &apos;EXCEL&apos;</SOURCE_LINE>
<SOURCE_LINE> i_mime_type = &apos;EXCEL&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>26</LINE_NUMBER>
<SOURCE_LINE>i_in_new_window = abap_false</SOURCE_LINE>
<SOURCE_LINE> i_in_new_window = abap_false</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>27</LINE_NUMBER>
<SOURCE_LINE>i_inplace = abap_false.</SOURCE_LINE>
<SOURCE_LINE> i_inplace = abap_false.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>

View File

@ -12,13 +12,13 @@ REPORT zdemo_teched1.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,18 +12,18 @@ REPORT zdemo_teched10.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_reader TYPE REF TO zif_excel_reader,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_reader TYPE REF TO zif_excel_reader,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lt_files TYPE filetable,
ls_file TYPE file_table,
lv_rc TYPE i,
lv_value TYPE zexcel_cell_value.
DATA: lt_files TYPE filetable,
ls_file TYPE file_table,
lv_rc TYPE i,
lv_value TYPE zexcel_cell_value.
CONSTANTS: gc_save_file_name TYPE string VALUE 'TechEd01.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.

View File

@ -12,16 +12,16 @@ REPORT zdemo_teched2.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lv_style_title_guid TYPE zexcel_cell_style.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lv_style_title_guid TYPE zexcel_cell_style.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,18 +12,18 @@ REPORT zdemo_teched3.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,19 +12,19 @@ REPORT zdemo_teched4.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,20 +12,20 @@ REPORT zdemo_teched5.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,21 +12,21 @@ REPORT zdemo_teched6.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,21 +12,21 @@ REPORT zdemo_teched7.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,29 +12,29 @@ REPORT zdemo_teched8.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_style_green TYPE REF TO zcl_excel_style,
lo_style_yellow TYPE REF TO zcl_excel_style,
lo_style_red TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_cond,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
lv_style_yellow_guid TYPE zexcel_cell_style,
lv_style_red_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_style_green TYPE REF TO zcl_excel_style,
lo_style_yellow TYPE REF TO zcl_excel_style,
lo_style_red TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_cond,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
lv_style_yellow_guid TYPE zexcel_cell_style,
lv_style_red_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis,
ls_key TYPE wwwdatatab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lt_file_tab TYPE solix_tab.
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,

View File

@ -12,200 +12,200 @@ REPORT zdemo_teched9.
* Data Object declaration *
*******************************
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_style_green TYPE REF TO zcl_excel_style,
lo_style_yellow TYPE REF TO zcl_excel_style,
lo_style_red TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_cond,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
lv_style_yellow_guid TYPE zexcel_cell_style,
lv_style_red_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis,
ls_key TYPE wwwdatatab.
DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_style_green TYPE REF TO zcl_excel_style,
lo_style_yellow TYPE REF TO zcl_excel_style,
lo_style_red TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_cond,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
lv_style_yellow_guid TYPE zexcel_cell_style,
lv_style_red_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis,
ls_key TYPE wwwdatatab.
DATA: lo_send_request TYPE REF TO cl_bcs,
lo_document TYPE REF TO cl_document_bcs,
lo_sender TYPE REF TO cl_sapuser_bcs,
lo_recipient TYPE REF TO cl_sapuser_bcs.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lv_bytecount_c TYPE sood-objlen,
lt_file_tab TYPE solix_tab.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
lv_bytecount_c TYPE sood-objlen,
lt_file_tab TYPE solix_tab.
*******************************
* abap2xlsx create XLSX *
*******************************
" Create excel instance
CREATE OBJECT lo_excel.
" Create excel instance
CREATE OBJECT lo_excel.
" Styles
lo_style_title = lo_excel->add_new_style( ).
lo_style_title->font->bold = abap_true.
lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue.
lv_style_title_guid = lo_style_title->get_guid( ).
" Styles
lo_style_title = lo_excel->add_new_style( ).
lo_style_title->font->bold = abap_true.
lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue.
lv_style_title_guid = lo_style_title->get_guid( ).
" Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( ip_title = 'Demo TechEd' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ).
" Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( ip_title = 'Demo TechEd' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_value = 'Total score' ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 10 ip_formula = 'SUM(C7:C8)' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_value = 'Total score' ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 10 ip_formula = 'SUM(C7:C8)' ).
" add logo from SMWO
lo_drawing = lo_excel->add_new_drawing( ).
lo_drawing->set_position( ip_from_row = 2
ip_from_col = 'B' ).
" add logo from SMWO
lo_drawing = lo_excel->add_new_drawing( ).
lo_drawing->set_position( ip_from_row = 2
ip_from_col = 'B' ).
ls_key-relid = 'MI'.
ls_key-objid = 'SIWB_KW_LOGO'.
lo_drawing->set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
ls_key-relid = 'MI'.
ls_key-objid = 'SIWB_KW_LOGO'.
lo_drawing->set_media_www( ip_key = ls_key
ip_width = 140
ip_height = 64 ).
" assign drawing to the worksheet
lo_worksheet->add_drawing( lo_drawing ).
" assign drawing to the worksheet
lo_worksheet->add_drawing( lo_drawing ).
" Add new sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( ip_title = 'Values' ).
" Add new sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( ip_title = 'Values' ).
" Set values for range
lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ).
lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ).
lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ).
lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ).
lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ).
" Set values for range
lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ).
lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ).
lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ).
lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ).
lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ).
lo_range = lo_excel->add_new_range( ).
lo_range->name = 'Values'.
lo_range->set_value( ip_sheet_name = 'Values'
ip_start_column = 'A'
ip_start_row = 4
ip_stop_column = 'A'
ip_stop_row = 8 ).
lo_range = lo_excel->add_new_range( ).
lo_range->name = 'Values'.
lo_range->set_value( ip_sheet_name = 'Values'
ip_start_column = 'A'
ip_start_row = 4
ip_stop_column = 'A'
ip_stop_row = 8 ).
lo_excel->set_active_sheet_index( 1 ).
lo_excel->set_active_sheet_index( 1 ).
" add data validation
lo_worksheet = lo_excel->get_active_worksheet( ).
" add data validation
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = 'Values'.
lo_data_validation->cell_row = 7.
lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ).
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = 'Values'.
lo_data_validation->cell_row = 7.
lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ).
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = 'Values'.
lo_data_validation->cell_row = 8.
lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
lo_data_validation = lo_worksheet->add_new_data_validation( ).
lo_data_validation->type = zcl_excel_data_validation=>c_type_list.
lo_data_validation->formula1 = 'Values'.
lo_data_validation->cell_row = 8.
lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" add autosize (column width)
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles
lo_style_green = lo_excel->add_new_style( ).
lo_style_green->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
lo_style_green->fill->bgcolor-rgb = zcl_excel_style_color=>c_green.
lv_style_green_guid = lo_style_green->get_guid( ).
" defne conditional styles
lo_style_green = lo_excel->add_new_style( ).
lo_style_green->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
lo_style_green->fill->bgcolor-rgb = zcl_excel_style_color=>c_green.
lv_style_green_guid = lo_style_green->get_guid( ).
lo_style_yellow = lo_excel->add_new_style( ).
lo_style_yellow->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
lo_style_yellow->fill->bgcolor-rgb = zcl_excel_style_color=>c_yellow.
lv_style_yellow_guid = lo_style_yellow->get_guid( ).
lo_style_yellow = lo_excel->add_new_style( ).
lo_style_yellow->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
lo_style_yellow->fill->bgcolor-rgb = zcl_excel_style_color=>c_yellow.
lv_style_yellow_guid = lo_style_yellow->get_guid( ).
lo_style_red = lo_excel->add_new_style( ).
lo_style_red->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
lo_style_red->fill->bgcolor-rgb = zcl_excel_style_color=>c_red.
lv_style_red_guid = lo_style_red->get_guid( ).
lo_style_red = lo_excel->add_new_style( ).
lo_style_red->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
lo_style_red->fill->bgcolor-rgb = zcl_excel_style_color=>c_red.
lv_style_red_guid = lo_style_red->get_guid( ).
" add conditional formatting
lo_style_conditional = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '5'.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_greaterthan.
ls_cellis-cell_style = lv_style_green_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 1.
lo_style_conditional->set_range( ip_start_column = 'C'
ip_start_row = 10
ip_stop_column = 'C'
ip_stop_row = 10 ).
" add conditional formatting
lo_style_conditional = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '5'.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_greaterthan.
ls_cellis-cell_style = lv_style_green_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 1.
lo_style_conditional->set_range( ip_start_column = 'C'
ip_start_row = 10
ip_stop_column = 'C'
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '5'.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_equal.
ls_cellis-cell_style = lv_style_yellow_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 2.
lo_style_conditional->set_range( ip_start_column = 'C'
ip_start_row = 10
ip_stop_column = 'C'
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '5'.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_equal.
ls_cellis-cell_style = lv_style_yellow_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 2.
lo_style_conditional->set_range( ip_start_column = 'C'
ip_start_row = 10
ip_stop_column = 'C'
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '0'.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_greaterthan.
ls_cellis-cell_style = lv_style_red_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 3.
lo_style_conditional->set_range( ip_start_column = 'C'
ip_start_row = 10
ip_stop_column = 'C'
ip_stop_row = 10 ).
lo_style_conditional = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '0'.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_greaterthan.
ls_cellis-cell_style = lv_style_red_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 3.
lo_style_conditional->set_range( ip_start_column = 'C'
ip_start_row = 10
ip_stop_column = 'C'
ip_stop_row = 10 ).
" Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer->write_file( lo_excel ).
" Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer->write_file( lo_excel ).
*******************************
* Output *
*******************************
" Convert to binary
lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
lv_bytecount_c = lv_bytecount.
" Convert to binary
lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
lv_bytecount = xstrlen( lv_file ).
lv_bytecount_c = lv_bytecount.
" Send via email
lo_document = cl_document_bcs=>create_document( i_type = 'RAW'
i_subject = 'Demo TechEd' ).
" Send via email
lo_document = cl_document_bcs=>create_document( i_type = 'RAW'
i_subject = 'Demo TechEd' ).
lo_document->add_attachment( i_attachment_type = 'EXT'
i_attachment_subject = 'abap2xlsx.xlsx'
i_attachment_size = lv_bytecount_c
i_att_content_hex = lt_file_tab ).
lo_document->add_attachment( i_attachment_type = 'EXT'
i_attachment_subject = 'abap2xlsx.xlsx'
i_attachment_size = lv_bytecount_c
i_att_content_hex = lt_file_tab ).
lo_sender = cl_sapuser_bcs=>create( sy-uname ).
lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
lo_sender = cl_sapuser_bcs=>create( sy-uname ).
lo_recipient = cl_sapuser_bcs=>create( sy-uname ).
lo_send_request = cl_bcs=>create_persistent( ).
lo_send_request->set_document( lo_document ).
lo_send_request->set_sender( lo_sender ).
lo_send_request->add_recipient( lo_recipient ).
lo_send_request->set_send_immediately( abap_true ).
lo_send_request->send( ).
lo_send_request = cl_bcs=>create_persistent( ).
lo_send_request->set_document( lo_document ).
lo_send_request->set_sender( lo_sender ).
lo_send_request->add_recipient( lo_recipient ).
lo_send_request->set_send_immediately( abap_true ).
lo_send_request->send( ).

View File

@ -8,13 +8,13 @@
REPORT ztest_excel_image_header.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing,
ls_key TYPE wwwdatatab,
ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot,
lv_content TYPE xstring.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing,
ls_key TYPE wwwdatatab,
ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot,
lv_content TYPE xstring.
DATA: ls_io TYPE skwf_io.

File diff suppressed because it is too large Load Diff

View File

@ -1,100 +1,100 @@
class zcl_excel_aunit definition
public
final
create private.
CLASS zcl_excel_aunit DEFINITION
PUBLIC
FINAL
CREATE PRIVATE.
public section.
PUBLIC SECTION.
class-methods class_constructor.
CLASS-METHODS class_constructor.
class-methods assert_differs
importing
!exp type simple
!act type simple
!msg type csequence optional
!level type aunit_level default if_aunit_constants=>critical
!tol type f optional
!quit type aunit_flowctrl default if_aunit_constants=>method
returning
value(assertion_failed) type abap_bool.
CLASS-METHODS assert_differs
IMPORTING
!exp TYPE simple
!act TYPE simple
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!tol TYPE f OPTIONAL
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
RETURNING
VALUE(assertion_failed) TYPE abap_bool.
class-methods assert_equals
importing
!exp type any
!act type any
!msg type csequence optional
!level type aunit_level default if_aunit_constants=>critical
!tol type f optional
!quit type aunit_flowctrl default if_aunit_constants=>method
!ignore_hash_sequence type abap_bool default abap_false
returning
value(assertion_failed) type abap_bool.
CLASS-METHODS assert_equals
IMPORTING
!exp TYPE any
!act TYPE any
!msg TYPE csequence OPTIONAL
!level TYPE aunit_level DEFAULT if_aunit_constants=>critical
!tol TYPE f OPTIONAL
!quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
!ignore_hash_sequence TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(assertion_failed) TYPE abap_bool.
class-methods fail
importing
msg type csequence optional
level type aunit_level default if_aunit_constants=>critical
quit type aunit_flowctrl default if_aunit_constants=>method
detail type csequence optional.
CLASS-METHODS fail
IMPORTING
msg TYPE csequence OPTIONAL
level TYPE aunit_level DEFAULT if_aunit_constants=>critical
quit TYPE aunit_flowctrl DEFAULT if_aunit_constants=>method
detail TYPE csequence OPTIONAL.
protected section.
private section.
types tv_clsname type seoclass-clsname.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES tv_clsname TYPE seoclass-clsname.
constants:
begin of en_clsname,
new type tv_clsname value 'CL_ABAP_UNIT_ASSERT',
old type tv_clsname value 'CL_AUNIT_ASSERT',
none type tv_clsname value '',
end of en_clsname.
CONSTANTS:
BEGIN OF en_clsname,
new TYPE tv_clsname VALUE 'CL_ABAP_UNIT_ASSERT',
old TYPE tv_clsname VALUE 'CL_AUNIT_ASSERT',
none TYPE tv_clsname VALUE '',
END OF en_clsname.
class-data clsname type tv_clsname.
endclass.
CLASS-DATA clsname TYPE tv_clsname.
ENDCLASS.
class zcl_excel_aunit implementation.
CLASS zcl_excel_aunit IMPLEMENTATION.
method class_constructor.
METHOD class_constructor.
" Let see >=7.02
select single clsname into clsname
from seoclass
where clsname = en_clsname-new.
SELECT SINGLE clsname INTO clsname
FROM seoclass
WHERE clsname = en_clsname-new.
check sy-subrc <> 0.
CHECK sy-subrc <> 0.
" Let see >=7.00 or even lower
select single clsname into clsname
from seoclass
where clsname = en_clsname-old.
SELECT SINGLE clsname INTO clsname
FROM seoclass
WHERE clsname = en_clsname-old.
check sy-subrc <> 0.
CHECK sy-subrc <> 0.
" We do nothing for now not supported
endmethod.
ENDMETHOD.
method assert_differs.
check clsname = en_clsname-new or clsname = en_clsname-old.
METHOD assert_differs.
CHECK clsname = en_clsname-new OR clsname = en_clsname-old.
call method (clsname)=>assert_differs
exporting
CALL METHOD (clsname)=>assert_differs
EXPORTING
exp = exp
act = act
msg = msg
level = level
tol = tol
quit = quit
receiving
RECEIVING
assertion_failed = assertion_failed.
endmethod.
ENDMETHOD.
method assert_equals.
check clsname = en_clsname-new or clsname = en_clsname-old.
METHOD assert_equals.
CHECK clsname = en_clsname-new OR clsname = en_clsname-old.
call method (clsname)=>assert_equals
exporting
CALL METHOD (clsname)=>assert_equals
EXPORTING
exp = exp
act = act
msg = msg
@ -102,19 +102,19 @@ class zcl_excel_aunit implementation.
tol = tol
quit = quit
ignore_hash_sequence = ignore_hash_sequence
receiving
RECEIVING
assertion_failed = assertion_failed.
endmethod.
ENDMETHOD.
method fail.
check clsname = en_clsname-new or clsname = en_clsname-old.
METHOD fail.
CHECK clsname = en_clsname-new OR clsname = en_clsname-old.
call method (clsname)=>fail
exporting
CALL METHOD (clsname)=>fail
EXPORTING
msg = msg
level = level
quit = quit
detail = detail.
endmethod.
endclass.
ENDMETHOD.
ENDCLASS.

View File

@ -1,440 +1,440 @@
class ZCL_EXCEL_AUTOFILTER definition
public
final
create public .
CLASS zcl_excel_autofilter DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_AUTOFILTER
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
types TV_FILTER_RULE type STRING .
types TV_LOGICAL_OPERATOR type CHAR3 .
types:
BEGIN OF ts_filter,
column TYPE zexcel_cell_column,
rule TYPE tv_filter_rule,
t_values TYPE HASHED TABLE OF zexcel_cell_value WITH UNIQUE KEY table_line,
tr_textfilter1 TYPE range of string,
logical_operator TYPE tv_logical_operator,
tr_textfilter2 TYPE range of string,
TYPES tv_filter_rule TYPE string .
TYPES tv_logical_operator TYPE char3 .
TYPES:
BEGIN OF ts_filter,
column TYPE zexcel_cell_column,
rule TYPE tv_filter_rule,
t_values TYPE HASHED TABLE OF zexcel_cell_value WITH UNIQUE KEY table_line,
tr_textfilter1 TYPE RANGE OF string,
logical_operator TYPE tv_logical_operator,
tr_textfilter2 TYPE RANGE OF string,
END OF ts_filter .
types:
tt_filters TYPE HASHED TABLE OF ts_filter WITH UNIQUE KEY column .
TYPES:
tt_filters TYPE HASHED TABLE OF ts_filter WITH UNIQUE KEY column .
data FILTER_AREA type ZEXCEL_S_AUTOFILTER_AREA .
constants MC_FILTER_RULE_SINGLE_VALUES type TV_FILTER_RULE value 'single_values'. "#EC NOTEXT
constants MC_FILTER_RULE_TEXT_PATTERN type TV_FILTER_RULE value 'text_pattern'. "#EC NOTEXT
constants MC_LOGICAL_OPERATOR_AND type TV_LOGICAL_OPERATOR value 'and'. "#EC NOTEXT
constants MC_LOGICAL_OPERATOR_NONE type TV_LOGICAL_OPERATOR value SPACE. "#EC NOTEXT
constants MC_LOGICAL_OPERATOR_OR type TV_LOGICAL_OPERATOR value 'or'. "#EC NOTEXT
DATA filter_area TYPE zexcel_s_autofilter_area .
CONSTANTS mc_filter_rule_single_values TYPE tv_filter_rule VALUE 'single_values'. "#EC NOTEXT
CONSTANTS mc_filter_rule_text_pattern TYPE tv_filter_rule VALUE 'text_pattern'. "#EC NOTEXT
CONSTANTS mc_logical_operator_and TYPE tv_logical_operator VALUE 'and'. "#EC NOTEXT
CONSTANTS mc_logical_operator_none TYPE tv_logical_operator VALUE space. "#EC NOTEXT
CONSTANTS mc_logical_operator_or TYPE tv_logical_operator VALUE 'or'. "#EC NOTEXT
methods CONSTRUCTOR
importing
!IO_SHEET type ref to ZCL_EXCEL_WORKSHEET .
methods GET_FILTER_AREA
returning
value(RS_AREA) type ZEXCEL_S_AUTOFILTER_AREA .
methods GET_FILTER_RANGE
returning
value(R_RANGE) type ZEXCEL_CELL_VALUE
raising
ZCX_EXCEL.
methods GET_FILTER_REFERENCE
returning
value(R_REF) type ZEXCEL_RANGE_VALUE
raising
ZCX_EXCEL .
methods GET_VALUES
returning
value(RT_FILTER) type ZEXCEL_T_AUTOFILTER_VALUES .
type-pools ABAP .
methods IS_ROW_HIDDEN
importing
!IV_ROW type ZEXCEL_CELL_ROW
returning
value(RV_IS_HIDDEN) type ABAP_BOOL .
methods SET_FILTER_AREA
importing
!IS_AREA type ZEXCEL_S_AUTOFILTER_AREA .
methods SET_TEXT_FILTER
importing
!I_COLUMN type ZEXCEL_CELL_COLUMN
!IV_TEXTFILTER1 type CLIKE
!IV_LOGICAL_OPERATOR type TV_LOGICAL_OPERATOR default MC_LOGICAL_OPERATOR_NONE
!IV_TEXTFILTER2 type CLIKE optional .
methods SET_VALUE
importing
!I_COLUMN type ZEXCEL_CELL_COLUMN
!I_VALUE type ZEXCEL_CELL_VALUE .
methods SET_VALUES
importing
!IT_VALUES type ZEXCEL_T_AUTOFILTER_VALUES .
METHODS constructor
IMPORTING
!io_sheet TYPE REF TO zcl_excel_worksheet .
METHODS get_filter_area
RETURNING
VALUE(rs_area) TYPE zexcel_s_autofilter_area .
METHODS get_filter_range
RETURNING
VALUE(r_range) TYPE zexcel_cell_value
RAISING
zcx_excel.
METHODS get_filter_reference
RETURNING
VALUE(r_ref) TYPE zexcel_range_value
RAISING
zcx_excel .
METHODS get_values
RETURNING
VALUE(rt_filter) TYPE zexcel_t_autofilter_values .
TYPE-POOLS abap .
METHODS is_row_hidden
IMPORTING
!iv_row TYPE zexcel_cell_row
RETURNING
VALUE(rv_is_hidden) TYPE abap_bool .
METHODS set_filter_area
IMPORTING
!is_area TYPE zexcel_s_autofilter_area .
METHODS set_text_filter
IMPORTING
!i_column TYPE zexcel_cell_column
!iv_textfilter1 TYPE clike
!iv_logical_operator TYPE tv_logical_operator DEFAULT mc_logical_operator_none
!iv_textfilter2 TYPE clike OPTIONAL .
METHODS set_value
IMPORTING
!i_column TYPE zexcel_cell_column
!i_value TYPE zexcel_cell_value .
METHODS set_values
IMPORTING
!it_values TYPE zexcel_t_autofilter_values .
*"* protected components of class ZABAP_EXCEL_WORKSHEET
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
methods GET_COLUMN_FILTER
importing
!I_COLUMN type ZEXCEL_CELL_COLUMN
returning
value(RR_FILTER) type ref to TS_FILTER .
methods IS_ROW_HIDDEN_SINGLE_VALUES
importing
!IV_ROW type ZEXCEL_CELL_ROW
!IV_COL type ZEXCEL_CELL_COLUMN
!IS_FILTER type TS_FILTER
returning
value(RV_IS_HIDDEN) type ABAP_BOOL .
methods IS_ROW_HIDDEN_TEXT_PATTERN
importing
!IV_ROW type ZEXCEL_CELL_ROW
!IV_COL type ZEXCEL_CELL_COLUMN
!IS_FILTER type TS_FILTER
returning
value(RV_IS_HIDDEN) type ABAP_BOOL .
METHODS get_column_filter
IMPORTING
!i_column TYPE zexcel_cell_column
RETURNING
VALUE(rr_filter) TYPE REF TO ts_filter .
METHODS is_row_hidden_single_values
IMPORTING
!iv_row TYPE zexcel_cell_row
!iv_col TYPE zexcel_cell_column
!is_filter TYPE ts_filter
RETURNING
VALUE(rv_is_hidden) TYPE abap_bool .
METHODS is_row_hidden_text_pattern
IMPORTING
!iv_row TYPE zexcel_cell_row
!iv_col TYPE zexcel_cell_column
!is_filter TYPE ts_filter
RETURNING
VALUE(rv_is_hidden) TYPE abap_bool .
*"* private components of class ZCL_EXCEL_AUTOFILTER
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data WORKSHEET type ref to ZCL_EXCEL_WORKSHEET .
data MT_FILTERS type TT_FILTERS .
DATA worksheet TYPE REF TO zcl_excel_worksheet .
DATA mt_filters TYPE tt_filters .
methods VALIDATE_AREA
raising
ZCX_EXCEL .
METHODS validate_area
RAISING
zcx_excel .
ENDCLASS.
CLASS ZCL_EXCEL_AUTOFILTER IMPLEMENTATION.
CLASS zcl_excel_autofilter IMPLEMENTATION.
METHOD constructor.
worksheet = io_sheet.
ENDMETHOD.
METHOD constructor.
worksheet = io_sheet.
ENDMETHOD.
METHOD get_column_filter.
METHOD get_column_filter.
DATA: ls_filter LIKE LINE OF me->mt_filters.
DATA: ls_filter LIKE LINE OF me->mt_filters.
READ TABLE me->mt_filters REFERENCE INTO rr_filter WITH TABLE KEY column = i_column.
IF sy-subrc <> 0.
ls_filter-column = i_column.
INSERT ls_filter INTO TABLE me->mt_filters REFERENCE INTO rr_filter.
ENDIF.
READ TABLE me->mt_filters REFERENCE INTO rr_filter WITH TABLE KEY column = i_column.
IF sy-subrc <> 0.
ls_filter-column = i_column.
INSERT ls_filter INTO TABLE me->mt_filters REFERENCE INTO rr_filter.
ENDIF.
ENDMETHOD.
ENDMETHOD.
METHOD get_filter_area.
METHOD get_filter_area.
validate_area( ).
validate_area( ).
rs_area = filter_area.
rs_area = filter_area.
ENDMETHOD.
ENDMETHOD.
METHOD get_filter_range.
DATA: l_row_start_c TYPE string,
l_row_end_c TYPE string,
l_col_start_c TYPE string,
l_col_end_c TYPE string.
METHOD get_filter_range.
DATA: l_row_start_c TYPE string,
l_row_end_c TYPE string,
l_col_start_c TYPE string,
l_col_end_c TYPE string.
validate_area( ).
validate_area( ).
l_row_end_c = filter_area-row_end.
CONDENSE l_row_end_c NO-GAPS.
l_row_end_c = filter_area-row_end.
CONDENSE l_row_end_c NO-GAPS.
l_row_start_c = filter_area-row_start.
CONDENSE l_row_start_c NO-GAPS.
l_row_start_c = filter_area-row_start.
CONDENSE l_row_start_c NO-GAPS.
l_col_start_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_start ) .
l_col_end_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_end ) .
l_col_start_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_start ) .
l_col_end_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_end ) .
CONCATENATE l_col_start_c l_row_start_c ':' l_col_end_c l_row_end_c INTO r_range.
CONCATENATE l_col_start_c l_row_start_c ':' l_col_end_c l_row_end_c INTO r_range.
ENDMETHOD.
ENDMETHOD.
METHOD get_filter_reference.
DATA: l_row_start_c TYPE string,
l_row_end_c TYPE string,
l_col_start_c TYPE string,
l_col_end_c TYPE string,
l_value TYPE string.
METHOD get_filter_reference.
DATA: l_row_start_c TYPE string,
l_row_end_c TYPE string,
l_col_start_c TYPE string,
l_col_end_c TYPE string,
l_value TYPE string.
validate_area( ).
validate_area( ).
l_row_end_c = filter_area-row_end.
CONDENSE l_row_end_c NO-GAPS.
l_row_end_c = filter_area-row_end.
CONDENSE l_row_end_c NO-GAPS.
l_row_start_c = filter_area-row_start.
CONDENSE l_row_start_c NO-GAPS.
l_row_start_c = filter_area-row_start.
CONDENSE l_row_start_c NO-GAPS.
l_col_start_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_start ) .
l_col_end_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_end ) .
l_value = worksheet->get_title( ) .
l_col_start_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_start ) .
l_col_end_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_end ) .
l_value = worksheet->get_title( ) .
r_ref = zcl_excel_common=>escape_string( ip_value = l_value ).
r_ref = zcl_excel_common=>escape_string( ip_value = l_value ).
CONCATENATE r_ref '!$' l_col_start_c '$' l_row_start_c ':$' l_col_end_c '$' l_row_end_c INTO r_ref.
CONCATENATE r_ref '!$' l_col_start_c '$' l_row_start_c ':$' l_col_end_c '$' l_row_end_c INTO r_ref.
ENDMETHOD.
ENDMETHOD.
METHOD get_values.
METHOD get_values.
FIELD-SYMBOLS: <ls_filter> LIKE LINE OF me->mt_filters,
<ls_value> LIKE LINE OF <ls_filter>-t_values.
FIELD-SYMBOLS: <ls_filter> LIKE LINE OF me->mt_filters,
<ls_value> LIKE LINE OF <ls_filter>-t_values.
DATA: ls_filter LIKE LINE OF rt_filter.
DATA: ls_filter LIKE LINE OF rt_filter.
LOOP AT me->mt_filters ASSIGNING <ls_filter> WHERE rule = mc_filter_rule_single_values.
LOOP AT me->mt_filters ASSIGNING <ls_filter> WHERE rule = mc_filter_rule_single_values.
ls_filter-column = <ls_filter>-column.
LOOP AT <ls_filter>-t_values ASSIGNING <ls_value>.
ls_filter-value = <ls_value>.
APPEND ls_filter TO rt_filter.
ENDLOOP.
ls_filter-column = <ls_filter>-column.
LOOP AT <ls_filter>-t_values ASSIGNING <ls_value>.
ls_filter-value = <ls_value>.
APPEND ls_filter TO rt_filter.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
ENDMETHOD.
METHOD is_row_hidden.
METHOD is_row_hidden.
DATA: lr_filter TYPE REF TO ts_filter,
lv_col TYPE i.
DATA: lr_filter TYPE REF TO ts_filter,
lv_col TYPE i.
FIELD-SYMBOLS: <ls_filter> TYPE ts_filter.
FIELD-SYMBOLS: <ls_filter> TYPE ts_filter.
rv_is_hidden = abap_false.
rv_is_hidden = abap_false.
*--------------------------------------------------------------------*
* 1st row of filter area is never hidden, because here the filter
* symbol is being shown
*--------------------------------------------------------------------*
IF iv_row = me->filter_area-row_start.
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 <ls_filter>.
CASE <ls_filter>-rule.
WHEN mc_filter_rule_single_values.
rv_is_hidden = me->is_row_hidden_single_values( iv_row = iv_row
iv_col = lv_col
is_filter = <ls_filter> ).
WHEN mc_filter_rule_text_pattern.
rv_is_hidden = me->is_row_hidden_text_pattern( iv_row = iv_row
iv_col = lv_col
is_filter = <ls_filter> ).
ENDCASE.
IF rv_is_hidden = abap_true.
IF iv_row = me->filter_area-row_start.
RETURN.
ENDIF.
ADD 1 TO lv_col.
ENDWHILE.
lv_col = me->filter_area-col_start.
ENDMETHOD.
WHILE lv_col <= me->filter_area-col_end.
lr_filter = me->get_column_filter( lv_col ).
ASSIGN lr_filter->* TO <ls_filter>.
CASE <ls_filter>-rule.
WHEN mc_filter_rule_single_values.
rv_is_hidden = me->is_row_hidden_single_values( iv_row = iv_row
iv_col = lv_col
is_filter = <ls_filter> ).
WHEN mc_filter_rule_text_pattern.
rv_is_hidden = me->is_row_hidden_text_pattern( iv_row = iv_row
iv_col = lv_col
is_filter = <ls_filter> ).
ENDCASE.
IF rv_is_hidden = abap_true.
RETURN.
ENDIF.
METHOD is_row_hidden_single_values.
ADD 1 TO lv_col.
ENDWHILE.
DATA: lv_value TYPE string.
ENDMETHOD.
FIELD-SYMBOLS: <ls_sheet_content> LIKE LINE OF me->worksheet->sheet_content.
rv_is_hidden = abap_false. " Default setting is NOT HIDDEN = is in filter range
METHOD is_row_hidden_single_values.
DATA: lv_value TYPE string.
FIELD-SYMBOLS: <ls_sheet_content> LIKE LINE OF me->worksheet->sheet_content.
rv_is_hidden = abap_false. " Default setting is NOT HIDDEN = is in filter range
*--------------------------------------------------------------------*
* No filter values --> only symbol should be shown but nothing is being hidden
*--------------------------------------------------------------------*
IF is_filter-t_values IS INITIAL.
RETURN.
ENDIF.
IF is_filter-t_values IS INITIAL.
RETURN.
ENDIF.
*--------------------------------------------------------------------*
* Get value of cell
*--------------------------------------------------------------------*
READ TABLE me->worksheet->sheet_content ASSIGNING <ls_sheet_content> WITH TABLE KEY cell_row = iv_row
cell_column = iv_col.
IF sy-subrc = 0.
lv_value = <ls_sheet_content>-cell_value.
ELSE.
CLEAR lv_value.
ENDIF.
READ TABLE me->worksheet->sheet_content ASSIGNING <ls_sheet_content> WITH TABLE KEY cell_row = iv_row
cell_column = iv_col.
IF sy-subrc = 0.
lv_value = <ls_sheet_content>-cell_value.
ELSE.
CLEAR lv_value.
ENDIF.
*--------------------------------------------------------------------*
* Check whether it is affected by filter
* this needs to be extended if we support other filtertypes
* other than single values
*--------------------------------------------------------------------*
READ TABLE is_filter-t_values TRANSPORTING NO FIELDS WITH TABLE KEY table_line = lv_value.
IF sy-subrc <> 0.
rv_is_hidden = abap_true.
ENDIF.
READ TABLE is_filter-t_values TRANSPORTING NO FIELDS WITH TABLE KEY table_line = lv_value.
IF sy-subrc <> 0.
rv_is_hidden = abap_true.
ENDIF.
ENDMETHOD.
ENDMETHOD.
METHOD is_row_hidden_text_pattern.
METHOD is_row_hidden_text_pattern.
DATA: lv_value TYPE string.
DATA: lv_value TYPE string.
FIELD-SYMBOLS: <ls_sheet_content> LIKE LINE OF me->worksheet->sheet_content.
FIELD-SYMBOLS: <ls_sheet_content> LIKE LINE OF me->worksheet->sheet_content.
rv_is_hidden = abap_false. " Default setting is NOT HIDDEN = is in filter range
rv_is_hidden = abap_false. " Default setting is NOT HIDDEN = is in filter range
*--------------------------------------------------------------------*
* Get value of cell
*--------------------------------------------------------------------*
READ TABLE me->worksheet->sheet_content ASSIGNING <ls_sheet_content> WITH TABLE KEY cell_row = iv_row
cell_column = iv_col.
IF sy-subrc = 0.
lv_value = <ls_sheet_content>-cell_value.
ELSE.
CLEAR lv_value.
ENDIF.
READ TABLE me->worksheet->sheet_content ASSIGNING <ls_sheet_content> WITH TABLE KEY cell_row = iv_row
cell_column = iv_col.
IF sy-subrc = 0.
lv_value = <ls_sheet_content>-cell_value.
ELSE.
CLEAR lv_value.
ENDIF.
*--------------------------------------------------------------------*
* Check whether it is affected by filter
* this needs to be extended if we support other filtertypes
* other than single values
*--------------------------------------------------------------------*
IF lv_value NOT IN is_filter-tr_textfilter1.
rv_is_hidden = abap_true.
ENDIF.
IF lv_value NOT IN is_filter-tr_textfilter1.
rv_is_hidden = abap_true.
ENDIF.
ENDMETHOD.
ENDMETHOD.
METHOD set_filter_area.
METHOD set_filter_area.
filter_area = is_area.
filter_area = is_area.
ENDMETHOD.
ENDMETHOD.
METHOD set_text_filter.
METHOD set_text_filter.
* see method documentation how to use this
DATA: lr_filter TYPE REF TO ts_filter,
ls_value1 TYPE LINE OF ts_filter-tr_textfilter1.
DATA: lr_filter TYPE REF TO ts_filter,
ls_value1 TYPE LINE OF ts_filter-tr_textfilter1.
FIELD-SYMBOLS: <ls_filter> TYPE ts_filter.
FIELD-SYMBOLS: <ls_filter> TYPE ts_filter.
lr_filter = me->get_column_filter( i_column ).
ASSIGN lr_filter->* TO <ls_filter>.
lr_filter = me->get_column_filter( i_column ).
ASSIGN lr_filter->* TO <ls_filter>.
<ls_filter>-rule = mc_filter_rule_text_pattern.
CLEAR <ls_filter>-tr_textfilter1.
<ls_filter>-rule = mc_filter_rule_text_pattern.
CLEAR <ls_filter>-tr_textfilter1.
IF iv_textfilter1 CA '*+'. " Pattern
ls_value1-sign = 'I'.
ls_value1-option = 'CP'.
ls_value1-low = iv_textfilter1.
ELSE.
ls_value1-sign = 'I'.
ls_value1-option = 'EQ'.
ls_value1-low = iv_textfilter1.
ENDIF.
APPEND ls_value1 TO <ls_filter>-tr_textfilter1.
IF iv_textfilter1 CA '*+'. " Pattern
ls_value1-sign = 'I'.
ls_value1-option = 'CP'.
ls_value1-low = iv_textfilter1.
ELSE.
ls_value1-sign = 'I'.
ls_value1-option = 'EQ'.
ls_value1-low = iv_textfilter1.
ENDIF.
APPEND ls_value1 TO <ls_filter>-tr_textfilter1.
ENDMETHOD.
ENDMETHOD.
METHOD set_value.
METHOD set_value.
DATA: lr_filter TYPE REF TO ts_filter.
DATA: lr_filter TYPE REF TO ts_filter.
FIELD-SYMBOLS: <ls_filter> TYPE ts_filter.
FIELD-SYMBOLS: <ls_filter> TYPE ts_filter.
lr_filter = me->get_column_filter( i_column ).
ASSIGN lr_filter->* TO <ls_filter>.
lr_filter = me->get_column_filter( i_column ).
ASSIGN lr_filter->* TO <ls_filter>.
<ls_filter>-rule = mc_filter_rule_single_values.
<ls_filter>-rule = mc_filter_rule_single_values.
INSERT i_value INTO TABLE <ls_filter>-t_values.
INSERT i_value INTO TABLE <ls_filter>-t_values.
ENDMETHOD.
ENDMETHOD.
METHOD set_values.
METHOD set_values.
FIELD-SYMBOLS: <ls_value> LIKE LINE OF it_values.
FIELD-SYMBOLS: <ls_value> LIKE LINE OF it_values.
LOOP AT it_values ASSIGNING <ls_value>.
LOOP AT it_values ASSIGNING <ls_value>.
me->set_value( i_column = <ls_value>-column
i_value = <ls_value>-value ).
me->set_value( i_column = <ls_value>-column
i_value = <ls_value>-value ).
ENDLOOP.
ENDLOOP.
ENDMETHOD.
ENDMETHOD.
METHOD validate_area.
DATA: l_col TYPE zexcel_cell_column,
l_row TYPE zexcel_cell_row.
METHOD validate_area.
DATA: l_col TYPE zexcel_cell_column,
l_row TYPE zexcel_cell_row.
l_row = worksheet->get_highest_row( ) .
l_col = worksheet->get_highest_column( ) .
l_row = worksheet->get_highest_row( ) .
l_col = worksheet->get_highest_column( ) .
IF filter_area IS INITIAL.
filter_area-row_start = 1.
filter_area-col_start = 1.
filter_area-row_end = l_row .
filter_area-col_end = l_col .
ENDIF.
IF filter_area IS INITIAL.
filter_area-row_start = 1.
filter_area-col_start = 1.
filter_area-row_end = l_row .
filter_area-col_end = l_col .
ENDIF.
IF filter_area-row_start < 1.
filter_area-row_start = 1.
ENDIF.
IF filter_area-col_start < 1.
filter_area-col_start = 1.
ENDIF.
IF filter_area-row_end > l_row OR
filter_area-row_end < 1.
filter_area-row_end = l_row.
ENDIF.
IF filter_area-col_end > l_col OR
filter_area-col_end < 1.
filter_area-col_end = l_col.
ENDIF.
IF filter_area-row_start >= filter_area-row_end.
filter_area-row_start = filter_area-row_end - 1.
IF filter_area-row_start < 1.
filter_area-row_start = 1.
filter_area-row_end = 2.
ENDIF.
ENDIF.
IF filter_area-col_start > filter_area-col_end.
filter_area-col_start = filter_area-col_end.
ENDIF.
ENDMETHOD.
IF filter_area-col_start < 1.
filter_area-col_start = 1.
ENDIF.
IF filter_area-row_end > l_row OR
filter_area-row_end < 1.
filter_area-row_end = l_row.
ENDIF.
IF filter_area-col_end > l_col OR
filter_area-col_end < 1.
filter_area-col_end = l_col.
ENDIF.
IF filter_area-row_start >= filter_area-row_end.
filter_area-row_start = filter_area-row_end - 1.
IF filter_area-row_start < 1.
filter_area-row_start = 1.
filter_area-row_end = 2.
ENDIF.
ENDIF.
IF filter_area-col_start > filter_area-col_end.
filter_area-col_start = filter_area-col_end.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,122 +1,122 @@
class ZCL_EXCEL_AUTOFILTERS definition
public
final
create public .
CLASS zcl_excel_autofilters DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_AUTOFILTERS
*"* do not include other source files here!!!
type-pools ABAP .
TYPE-POOLS abap .
constants C_AUTOFILTER type STRING value '_xlnm._FilterDatabase'. "#EC NOTEXT
CONSTANTS c_autofilter TYPE string VALUE '_xlnm._FilterDatabase'. "#EC NOTEXT
methods ADD
importing
!IO_SHEET type ref to ZCL_EXCEL_WORKSHEET
returning
value(RO_AUTOFILTER) type ref to ZCL_EXCEL_AUTOFILTER
raising
ZCX_EXCEL .
methods CLEAR .
methods GET
importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET optional
!I_SHEET_GUID type sysuuid_x16 optional
returning
value(RO_AUTOFILTER) type ref to ZCL_EXCEL_AUTOFILTER .
methods IS_EMPTY
returning
value(R_EMPTY) type FLAG .
methods REMOVE
importing
!IO_SHEET type ANY .
methods SIZE
returning
value(R_SIZE) type I .
METHODS add
IMPORTING
!io_sheet TYPE REF TO zcl_excel_worksheet
RETURNING
VALUE(ro_autofilter) TYPE REF TO zcl_excel_autofilter
RAISING
zcx_excel .
METHODS clear .
METHODS get
IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet OPTIONAL
!i_sheet_guid TYPE sysuuid_x16 OPTIONAL
RETURNING
VALUE(ro_autofilter) TYPE REF TO zcl_excel_autofilter .
METHODS is_empty
RETURNING
VALUE(r_empty) TYPE flag .
METHODS remove
IMPORTING
!io_sheet TYPE any .
METHODS size
RETURNING
VALUE(r_size) TYPE i .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
private section.
PROTECTED SECTION.
PRIVATE SECTION.
types:
BEGIN OF ts_autofilter,
worksheet TYPE REF TO zcl_excel_worksheet,
autofilter TYPE REF TO zcl_excel_autofilter,
END OF ts_autofilter .
types:
tt_autofilters TYPE HASHED TABLE OF ts_autofilter WITH UNIQUE KEY worksheet .
TYPES:
BEGIN OF ts_autofilter,
worksheet TYPE REF TO zcl_excel_worksheet,
autofilter TYPE REF TO zcl_excel_autofilter,
END OF ts_autofilter .
TYPES:
tt_autofilters TYPE HASHED TABLE OF ts_autofilter WITH UNIQUE KEY worksheet .
data MT_AUTOFILTERS type TT_AUTOFILTERS .
DATA mt_autofilters TYPE tt_autofilters .
ENDCLASS.
CLASS ZCL_EXCEL_AUTOFILTERS IMPLEMENTATION.
CLASS zcl_excel_autofilters IMPLEMENTATION.
METHOD add.
METHOD add.
DATA: ls_autofilter LIKE LINE OF me->mt_autofilters.
DATA: ls_autofilter LIKE LINE OF me->mt_autofilters.
FIELD-SYMBOLS: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
FIELD-SYMBOLS: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
READ TABLE me->mt_autofilters ASSIGNING <ls_autofilter> WITH TABLE KEY worksheet = io_sheet.
IF sy-subrc = 0.
RAISE EXCEPTION TYPE zcx_excel. " adding another autofilter to sheet is not allowed
ENDIF.
READ TABLE me->mt_autofilters ASSIGNING <ls_autofilter> WITH TABLE KEY worksheet = io_sheet.
IF sy-subrc = 0.
RAISE EXCEPTION TYPE zcx_excel. " adding another autofilter to sheet is not allowed
ENDIF.
CREATE OBJECT ro_autofilter
EXPORTING
io_sheet = io_sheet.
CREATE OBJECT ro_autofilter
EXPORTING
io_sheet = io_sheet.
ls_autofilter-worksheet = io_sheet.
ls_autofilter-autofilter = ro_autofilter.
INSERT ls_autofilter INTO TABLE me->mt_autofilters.
ls_autofilter-worksheet = io_sheet.
ls_autofilter-autofilter = ro_autofilter.
INSERT ls_autofilter INTO TABLE me->mt_autofilters.
ENDMETHOD.
ENDMETHOD.
METHOD clear.
METHOD clear.
CLEAR me->mt_autofilters.
CLEAR me->mt_autofilters.
ENDMETHOD.
ENDMETHOD.
METHOD get.
METHOD get.
FIELD-SYMBOLS: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
FIELD-SYMBOLS: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
READ TABLE me->mt_autofilters ASSIGNING <ls_autofilter> WITH TABLE KEY worksheet = io_worksheet.
IF sy-subrc = 0.
ro_autofilter = <ls_autofilter>-autofilter.
ELSE.
CLEAR ro_autofilter.
ENDIF.
READ TABLE me->mt_autofilters ASSIGNING <ls_autofilter> WITH TABLE KEY worksheet = io_worksheet.
IF sy-subrc = 0.
ro_autofilter = <ls_autofilter>-autofilter.
ELSE.
CLEAR ro_autofilter.
ENDIF.
ENDMETHOD.
ENDMETHOD.
METHOD is_empty.
IF me->mt_autofilters IS INITIAL.
r_empty = abap_true.
ENDIF.
ENDMETHOD.
METHOD is_empty.
IF me->mt_autofilters IS INITIAL.
r_empty = abap_true.
ENDIF.
ENDMETHOD.
METHOD remove.
METHOD remove.
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet.
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet.
DELETE TABLE me->mt_autofilters WITH TABLE KEY worksheet = lo_worksheet.
DELETE TABLE me->mt_autofilters WITH TABLE KEY worksheet = lo_worksheet.
ENDMETHOD.
ENDMETHOD.
METHOD size.
DESCRIBE TABLE me->mt_autofilters LINES r_size.
ENDMETHOD.
METHOD size.
DESCRIBE TABLE me->mt_autofilters LINES r_size.
ENDMETHOD.
ENDCLASS.

View File

@ -1,226 +1,226 @@
class ZCL_EXCEL_COLUMN definition
public
final
create public .
CLASS zcl_excel_column DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_COLUMN
*"* do not include other source files here!!!
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
methods CONSTRUCTOR
importing
!IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA
!IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
!IP_EXCEL type ref to ZCL_EXCEL .
methods GET_AUTO_SIZE
returning
value(R_AUTO_SIZE) type ABAP_BOOL .
methods GET_COLLAPSED
returning
value(R_COLLAPSED) type ABAP_BOOL .
methods GET_COLUMN_INDEX
returning
value(R_COLUMN_INDEX) type INT4 .
methods GET_OUTLINE_LEVEL
returning
value(R_OUTLINE_LEVEL) type INT4 .
methods GET_VISIBLE
returning
value(R_VISIBLE) type ABAP_BOOL .
methods GET_WIDTH
returning
value(R_WIDTH) type FLOAT .
methods GET_XF_INDEX
returning
value(R_XF_INDEX) type INT4 .
methods SET_AUTO_SIZE
importing
!IP_AUTO_SIZE type ABAP_BOOL
returning
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_COLLAPSED
importing
!IP_COLLAPSED type ABAP_BOOL
returning
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_COLUMN_INDEX
importing
!IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA
returning
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_OUTLINE_LEVEL
importing
!IP_OUTLINE_LEVEL type INT4 .
methods SET_VISIBLE
importing
!IP_VISIBLE type ABAP_BOOL
returning
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_WIDTH
importing
!IP_WIDTH type SIMPLE
returning
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN
raising
ZCX_EXCEL .
methods SET_XF_INDEX
importing
!IP_XF_INDEX type INT4
returning
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_COLUMN_STYLE_BY_GUID
importing
!IP_STYLE_GUID type ZEXCEL_CELL_STYLE
raising
ZCX_EXCEL .
methods GET_COLUMN_STYLE_GUID
returning
value(EP_STYLE_GUID) type ZEXCEL_CELL_STYLE
raising
ZCX_EXCEL .
METHODS constructor
IMPORTING
!ip_index TYPE zexcel_cell_column_alpha
!ip_worksheet TYPE REF TO zcl_excel_worksheet
!ip_excel TYPE REF TO zcl_excel .
METHODS get_auto_size
RETURNING
VALUE(r_auto_size) TYPE abap_bool .
METHODS get_collapsed
RETURNING
VALUE(r_collapsed) TYPE abap_bool .
METHODS get_column_index
RETURNING
VALUE(r_column_index) TYPE int4 .
METHODS get_outline_level
RETURNING
VALUE(r_outline_level) TYPE int4 .
METHODS get_visible
RETURNING
VALUE(r_visible) TYPE abap_bool .
METHODS get_width
RETURNING
VALUE(r_width) TYPE float .
METHODS get_xf_index
RETURNING
VALUE(r_xf_index) TYPE int4 .
METHODS set_auto_size
IMPORTING
!ip_auto_size TYPE abap_bool
RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column .
METHODS set_collapsed
IMPORTING
!ip_collapsed TYPE abap_bool
RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column .
METHODS set_column_index
IMPORTING
!ip_index TYPE zexcel_cell_column_alpha
RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column .
METHODS set_outline_level
IMPORTING
!ip_outline_level TYPE int4 .
METHODS set_visible
IMPORTING
!ip_visible TYPE abap_bool
RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column .
METHODS set_width
IMPORTING
!ip_width TYPE simple
RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column
RAISING
zcx_excel .
METHODS set_xf_index
IMPORTING
!ip_xf_index TYPE int4
RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column .
METHODS set_column_style_by_guid
IMPORTING
!ip_style_guid TYPE zexcel_cell_style
RAISING
zcx_excel .
METHODS get_column_style_guid
RETURNING
VALUE(ep_style_guid) TYPE zexcel_cell_style
RAISING
zcx_excel .
*"* protected components of class ZCL_EXCEL_COLUMN
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_COLUMN
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data COLUMN_INDEX type INT4 .
data WIDTH type FLOAT .
data AUTO_SIZE type ABAP_BOOL .
data VISIBLE type ABAP_BOOL .
data OUTLINE_LEVEL type INT4 .
data COLLAPSED type ABAP_BOOL .
data XF_INDEX type INT4 .
data STYLE_GUID type ZEXCEL_CELL_STYLE .
data EXCEL type ref to ZCL_EXCEL .
data WORKSHEET type ref to ZCL_EXCEL_WORKSHEET .
DATA column_index TYPE int4 .
DATA width TYPE float .
DATA auto_size TYPE abap_bool .
DATA visible TYPE abap_bool .
DATA outline_level TYPE int4 .
DATA collapsed TYPE abap_bool .
DATA xf_index TYPE int4 .
DATA style_guid TYPE zexcel_cell_style .
DATA excel TYPE REF TO zcl_excel .
DATA worksheet TYPE REF TO zcl_excel_worksheet .
ENDCLASS.
CLASS ZCL_EXCEL_COLUMN IMPLEMENTATION.
CLASS zcl_excel_column IMPLEMENTATION.
method CONSTRUCTOR.
me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
me->width = -1.
me->auto_size = abap_false.
me->visible = abap_true.
me->outline_level = 0.
me->collapsed = abap_false.
me->excel = ip_excel. "ins issue #157 - Allow Style for columns
me->worksheet = ip_worksheet. "ins issue #157 - Allow Style for columns
METHOD constructor.
me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
me->width = -1.
me->auto_size = abap_false.
me->visible = abap_true.
me->outline_level = 0.
me->collapsed = abap_false.
me->excel = ip_excel. "ins issue #157 - Allow Style for columns
me->worksheet = ip_worksheet. "ins issue #157 - Allow Style for columns
" set default index to cellXf
me->xf_index = 0.
" set default index to cellXf
me->xf_index = 0.
endmethod.
ENDMETHOD.
method GET_AUTO_SIZE.
r_auto_size = me->auto_size.
endmethod.
METHOD get_auto_size.
r_auto_size = me->auto_size.
ENDMETHOD.
method GET_COLLAPSED.
r_Collapsed = me->Collapsed.
endmethod.
METHOD get_collapsed.
r_collapsed = me->collapsed.
ENDMETHOD.
method GET_COLUMN_INDEX.
r_column_index = me->column_index.
endmethod.
METHOD get_column_index.
r_column_index = me->column_index.
ENDMETHOD.
method GET_COLUMN_STYLE_GUID.
IF me->style_guid IS NOT INITIAL.
ep_style_guid = me->style_guid.
ELSE.
ep_style_guid = me->worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF.
endmethod.
METHOD get_column_style_guid.
IF me->style_guid IS NOT INITIAL.
ep_style_guid = me->style_guid.
ELSE.
ep_style_guid = me->worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF.
ENDMETHOD.
method GET_OUTLINE_LEVEL.
r_outline_level = me->outline_level.
endmethod.
METHOD get_outline_level.
r_outline_level = me->outline_level.
ENDMETHOD.
method GET_VISIBLE.
r_Visible = me->Visible.
endmethod.
METHOD get_visible.
r_visible = me->visible.
ENDMETHOD.
method GET_WIDTH.
r_WIDTH = me->WIDTH.
endmethod.
METHOD get_width.
r_width = me->width.
ENDMETHOD.
method GET_XF_INDEX.
r_xf_index = me->xf_index.
endmethod.
METHOD get_xf_index.
r_xf_index = me->xf_index.
ENDMETHOD.
METHOD set_auto_size.
me->auto_size = ip_auto_size.
io_column = me.
ENDMETHOD.
METHOD set_auto_size.
me->auto_size = ip_auto_size.
io_column = me.
ENDMETHOD.
METHOD set_collapsed.
me->collapsed = ip_collapsed.
io_column = me.
ENDMETHOD.
METHOD set_collapsed.
me->collapsed = ip_collapsed.
io_column = me.
ENDMETHOD.
METHOD set_column_index.
me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
io_column = me.
ENDMETHOD.
METHOD set_column_index.
me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
io_column = me.
ENDMETHOD.
method SET_COLUMN_STYLE_BY_GUID.
DATA: stylemapping TYPE zexcel_s_stylemapping.
METHOD set_column_style_by_guid.
DATA: stylemapping TYPE zexcel_s_stylemapping.
IF me->excel IS NOT BOUND.
zcx_excel=>raise_text( 'Internal error - reference to ZCL_EXCEL not bound' ).
ENDIF.
TRY.
stylemapping = me->excel->get_style_to_guid( ip_style_guid ).
me->style_guid = stylemapping-guid.
IF me->excel IS NOT BOUND.
zcx_excel=>raise_text( 'Internal error - reference to ZCL_EXCEL not bound' ).
ENDIF.
TRY.
stylemapping = me->excel->get_style_to_guid( ip_style_guid ).
me->style_guid = stylemapping-guid.
CATCH zcx_excel .
EXIT. " leave as is in case of error
ENDTRY.
CATCH zcx_excel .
EXIT. " leave as is in case of error
ENDTRY.
endmethod.
ENDMETHOD.
method SET_OUTLINE_LEVEL.
me->outline_level = ip_outline_level.
endmethod.
METHOD set_outline_level.
me->outline_level = ip_outline_level.
ENDMETHOD.
METHOD set_visible.
me->visible = ip_visible.
io_column = me.
ENDMETHOD.
METHOD set_visible.
me->visible = ip_visible.
io_column = me.
ENDMETHOD.
METHOD set_width.
TRY.
me->width = ip_width.
io_column = me.
CATCH cx_sy_conversion_no_number.
zcx_excel=>raise_text( 'Unable to interpret width as number' ).
ENDTRY.
ENDMETHOD.
METHOD set_width.
TRY.
me->width = ip_width.
io_column = me.
CATCH cx_sy_conversion_no_number.
zcx_excel=>raise_text( 'Unable to interpret width as number' ).
ENDTRY.
ENDMETHOD.
METHOD set_xf_index.
me->xf_index = ip_xf_index.
io_column = me.
ENDMETHOD.
METHOD set_xf_index.
me->xf_index = ip_xf_index.
io_column = me.
ENDMETHOD.
ENDCLASS.

View File

@ -1,108 +1,108 @@
class ZCL_EXCEL_COLUMNS definition
public
final
create public .
CLASS zcl_excel_columns DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_COLUMNS
*"* do not include other source files here!!!
public section.
types:
begin of MTY_S_HASHED_COLUMN,
COLUMN_INDEX type INT4,
COLUMN type ref to ZCL_EXCEL_COLUMN,
end of MTY_S_HASHED_COLUMN ,
MTY_TS_HASEHD_COLUMN type hashed table of MTY_S_HASHED_COLUMN with unique key COLUMN_INDEX.
PUBLIC SECTION.
TYPES:
BEGIN OF mty_s_hashed_column,
column_index TYPE int4,
column TYPE REF TO zcl_excel_column,
END OF mty_s_hashed_column ,
mty_ts_hasehd_column TYPE HASHED TABLE OF mty_s_hashed_column WITH UNIQUE KEY column_index.
methods ADD
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods SIZE
returning
value(EP_SIZE) type I .
METHODS add
IMPORTING
!io_column TYPE REF TO zcl_excel_column .
METHODS clear .
METHODS constructor .
METHODS get
IMPORTING
!ip_index TYPE i
RETURNING
VALUE(eo_column) TYPE REF TO zcl_excel_column .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
METHODS remove
IMPORTING
!io_column TYPE REF TO zcl_excel_column .
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data COLUMNS type ref to CL_OBJECT_COLLECTION .
data COLUMNS_HASEHD type MTY_TS_HASEHD_COLUMN .
DATA columns TYPE REF TO cl_object_collection .
DATA columns_hasehd TYPE mty_ts_hasehd_column .
ENDCLASS.
CLASS ZCL_EXCEL_COLUMNS IMPLEMENTATION.
CLASS zcl_excel_columns IMPLEMENTATION.
method ADD.
data: LS_HASHED_COLUMN type MTY_S_HASHED_COLUMN.
METHOD add.
DATA: ls_hashed_column TYPE mty_s_hashed_column.
LS_HASHED_COLUMN-COLUMN_INDEX = IO_COLUMN->GET_COLUMN_INDEX( ).
LS_HASHED_COLUMN-COLUMN = IO_COLUMN.
ls_hashed_column-column_index = io_column->get_column_index( ).
ls_hashed_column-column = io_column.
insert LS_HASHED_COLUMN into table COLUMNS_HASEHD .
INSERT ls_hashed_column INTO TABLE columns_hasehd .
COLUMNS->ADD( IO_COLUMN ).
endmethod.
columns->add( io_column ).
ENDMETHOD.
method CLEAR.
clear COLUMNS_HASEHD.
COLUMNS->CLEAR( ).
endmethod.
METHOD clear.
CLEAR columns_hasehd.
columns->clear( ).
ENDMETHOD.
method CONSTRUCTOR.
METHOD constructor.
create object COLUMNS.
CREATE OBJECT columns.
endmethod.
ENDMETHOD.
method GET.
field-symbols: <LS_HASHED_COLUMN> type MTY_S_HASHED_COLUMN.
METHOD get.
FIELD-SYMBOLS: <ls_hashed_column> TYPE mty_s_hashed_column.
read table COLUMNS_HASEHD with key COLUMN_INDEX = IP_INDEX assigning <LS_HASHED_COLUMN>.
if SY-SUBRC = 0.
EO_COLUMN = <LS_HASHED_COLUMN>-COLUMN.
endif.
endmethod.
READ TABLE columns_hasehd WITH KEY column_index = ip_index ASSIGNING <ls_hashed_column>.
IF sy-subrc = 0.
eo_column = <ls_hashed_column>-column.
ENDIF.
ENDMETHOD.
method GET_ITERATOR.
EO_ITERATOR ?= COLUMNS->GET_ITERATOR( ).
endmethod.
METHOD get_iterator.
eo_iterator ?= columns->get_iterator( ).
ENDMETHOD.
method IS_EMPTY.
IS_EMPTY = COLUMNS->IS_EMPTY( ).
endmethod.
METHOD is_empty.
is_empty = columns->is_empty( ).
ENDMETHOD.
method REMOVE.
delete table COLUMNS_HASEHD with table key COLUMN_INDEX = IO_COLUMN->GET_COLUMN_INDEX( ) .
COLUMNS->REMOVE( IO_COLUMN ).
endmethod.
METHOD remove.
DELETE TABLE columns_hasehd WITH TABLE KEY column_index = io_column->get_column_index( ) .
columns->remove( io_column ).
ENDMETHOD.
method SIZE.
EP_SIZE = COLUMNS->SIZE( ).
endmethod.
METHOD size.
ep_size = columns->size( ).
ENDMETHOD.
ENDCLASS.

View File

@ -1,67 +1,67 @@
class ZCL_EXCEL_COMMENT definition
public
final
create public .
CLASS zcl_excel_comment DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
methods CONSTRUCTOR .
methods GET_NAME
returning
value(R_NAME) type STRING .
methods GET_INDEX
returning
value(RP_INDEX) type STRING .
methods GET_REF
returning
value(RP_REF) type STRING .
methods GET_TEXT
returning
value(RP_TEXT) type STRING .
methods SET_TEXT
importing
!IP_TEXT type STRING
!IP_REF type STRING optional .
protected section.
private section.
METHODS constructor .
METHODS get_name
RETURNING
VALUE(r_name) TYPE string .
METHODS get_index
RETURNING
VALUE(rp_index) TYPE string .
METHODS get_ref
RETURNING
VALUE(rp_ref) TYPE string .
METHODS get_text
RETURNING
VALUE(rp_text) TYPE string .
METHODS set_text
IMPORTING
!ip_text TYPE string
!ip_ref TYPE string OPTIONAL .
PROTECTED SECTION.
PRIVATE SECTION.
data INDEX type STRING .
data REF type STRING .
data TEXT type STRING .
DATA index TYPE string .
DATA ref TYPE string .
DATA text TYPE string .
ENDCLASS.
CLASS ZCL_EXCEL_COMMENT IMPLEMENTATION.
CLASS zcl_excel_comment IMPLEMENTATION.
METHOD constructor.
METHOD constructor.
ENDMETHOD.
METHOD get_index.
METHOD get_index.
rp_index = me->index.
ENDMETHOD.
METHOD get_name.
METHOD get_name.
ENDMETHOD.
METHOD get_ref.
rp_ref = me->ref.
ENDMETHOD.
METHOD get_ref.
rp_ref = me->ref.
ENDMETHOD.
method GET_TEXT.
rp_text = me->text.
endmethod.
METHOD get_text.
rp_text = me->text.
ENDMETHOD.
METHOD set_text.
METHOD set_text.
me->text = ip_text.
IF ip_ref IS SUPPLIED.

View File

@ -1,100 +1,100 @@
class ZCL_EXCEL_COMMENTS definition
public
final
create public .
CLASS zcl_excel_comments DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
methods ADD
importing
!IP_COMMENT type ref to ZCL_EXCEL_COMMENT .
methods INCLUDE
importing
!IP_COMMENT type ref to ZCL_EXCEL_COMMENT .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET
returning
value(EO_COMMENT) type ref to ZCL_EXCEL_COMMENT .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IP_COMMENT type ref to ZCL_EXCEL_COMMENT .
methods SIZE
returning
value(EP_SIZE) type I .
protected section.
private section.
METHODS add
IMPORTING
!ip_comment TYPE REF TO zcl_excel_comment .
METHODS include
IMPORTING
!ip_comment TYPE REF TO zcl_excel_comment .
METHODS clear .
METHODS constructor .
METHODS get
IMPORTING
!ip_index TYPE zexcel_active_worksheet
RETURNING
VALUE(eo_comment) TYPE REF TO zcl_excel_comment .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
METHODS remove
IMPORTING
!ip_comment TYPE REF TO zcl_excel_comment .
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
PROTECTED SECTION.
PRIVATE SECTION.
data COMMENTS type ref to CL_OBJECT_COLLECTION .
DATA comments TYPE REF TO cl_object_collection .
ENDCLASS.
CLASS ZCL_EXCEL_COMMENTS IMPLEMENTATION.
CLASS zcl_excel_comments IMPLEMENTATION.
METHOD add.
DATA: lv_index TYPE i.
METHOD add.
DATA: lv_index TYPE i.
comments->add( ip_comment ).
lv_index = comments->size( ).
comments->add( ip_comment ).
lv_index = comments->size( ).
ENDMETHOD.
ENDMETHOD.
METHOD clear.
comments->clear( ).
METHOD clear.
comments->clear( ).
ENDMETHOD.
ENDMETHOD.
METHOD constructor.
CREATE OBJECT comments.
METHOD constructor.
CREATE OBJECT comments.
ENDMETHOD.
ENDMETHOD.
method GET.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_comment ?= comments->get( lv_index ).
METHOD get.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_comment ?= comments->get( lv_index ).
endmethod.
ENDMETHOD.
method GET_ITERATOR.
METHOD get_iterator.
eo_iterator ?= comments->get_iterator( ).
endmethod.
eo_iterator ?= comments->get_iterator( ).
ENDMETHOD.
METHOD include.
comments->add( ip_comment ).
ENDMETHOD.
METHOD include.
comments->add( ip_comment ).
ENDMETHOD.
method IS_EMPTY.
METHOD is_empty.
is_empty = comments->is_empty( ).
endmethod.
is_empty = comments->is_empty( ).
ENDMETHOD.
method REMOVE.
METHOD remove.
comments->remove( ip_comment ).
endmethod.
comments->remove( ip_comment ).
ENDMETHOD.
method SIZE.
METHOD size.
ep_size = comments->size( ).
endmethod.
ep_size = comments->size( ).
ENDMETHOD.
ENDCLASS.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,77 +1,77 @@
class ZCL_EXCEL_CONVERTER_ALV_GRID definition
public
inheriting from ZCL_EXCEL_CONVERTER_ALV
final
create public .
CLASS zcl_excel_converter_alv_grid DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_alv
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
methods ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT
redefinition .
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
*"* public components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*"* do not include other source files here!!!
methods ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG
redefinition .
methods ZIF_EXCEL_CONVERTER~GET_SUPPORTED_CLASS
redefinition .
protected section.
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*"* do not include other source files here!!!
*"* private components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_CONVERTER_ALV_GRID IMPLEMENTATION.
CLASS zcl_excel_converter_alv_grid IMPLEMENTATION.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_GUI_ALV_GRID'.
ENDMETHOD.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_GUI_ALV_GRID'.
ENDMETHOD.
method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
data: lo_alv type REF TO cl_gui_alv_grid.
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.
TRY.
lo_alv ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
endmethod.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
zif_excel_converter~can_convert_object( io_object = io_object ).
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
ws_option = is_option.
lo_alv ?= io_object.
lo_alv ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_alv IS BOUND.
lo_alv->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = wt_fcat ).
lo_alv->get_frontend_layout( IMPORTING es_layout = ws_layo ).
lo_alv->get_sort_criteria( IMPORTING et_sort = wt_sort ) .
lo_alv->get_filter_criteria( IMPORTING et_filter = wt_filt ) .
IF lo_alv IS BOUND.
lo_alv->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = wt_fcat ).
lo_alv->get_frontend_layout( IMPORTING es_layout = ws_layo ).
lo_alv->get_sort_criteria( IMPORTING et_sort = wt_sort ) .
lo_alv->get_filter_criteria( IMPORTING et_filter = wt_filt ) .
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,55 +1,55 @@
class ZCL_EXCEL_CONVERTER_RESULT definition
public
inheriting from ZCL_EXCEL_CONVERTER_ALV
abstract
create public .
CLASS zcl_excel_converter_result DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_alv
ABSTRACT
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
methods GET_TABLE
importing
!IO_OBJECT type ref to OBJECT
returning
value(RO_DATA) type ref to DATA .
METHODS get_table
IMPORTING
!io_object TYPE REF TO object
RETURNING
VALUE(ro_data) TYPE REF TO data .
*"* private components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
*"* private components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_CONVERTER_RESULT IMPLEMENTATION.
CLASS zcl_excel_converter_result IMPLEMENTATION.
method GET_TABLE.
DATA: lo_object TYPE REF TO object,
ls_seoclass TYPE seoclass,
l_method TYPE string.
METHOD get_table.
DATA: lo_object TYPE REF TO object,
ls_seoclass TYPE seoclass,
l_method TYPE string.
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = 'IF_SALV_BS_DATA_SOURCE'.
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = 'IF_SALV_BS_DATA_SOURCE'.
IF sy-subrc = 0.
l_method = 'GET_TABLE_REF'.
lo_object ?= io_object.
CALL METHOD lo_object->(l_method)
RECEIVING
value = ro_data.
ELSE.
l_method = 'GET_REF_TO_TABLE'.
lo_object ?= io_object.
CALL METHOD lo_object->(l_method)
RECEIVING
value = ro_data.
ENDIF.
IF sy-subrc = 0.
l_method = 'GET_TABLE_REF'.
lo_object ?= io_object.
CALL METHOD lo_object->(l_method)
RECEIVING
value = ro_data.
ELSE.
l_method = 'GET_REF_TO_TABLE'.
lo_object ?= io_object.
CALL METHOD lo_object->(l_method)
RECEIVING
value = ro_data.
ENDIF.
endmethod.
ENDMETHOD.
ENDCLASS.

View File

@ -1,97 +1,97 @@
class ZCL_EXCEL_CONVERTER_RESULT_EX definition
public
inheriting from ZCL_EXCEL_CONVERTER_RESULT
final
create public .
CLASS zcl_excel_converter_result_ex DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_result
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
methods ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT
redefinition .
methods ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG
redefinition .
methods zif_excel_converter~get_supported_class
REDEFINITION .
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_CONVERTER_EX_RESULT
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_CONVERTER_RESULT_EX IMPLEMENTATION.
CLASS zcl_excel_converter_result_ex IMPLEMENTATION.
METHOD ZIF_EXCEL_CONVERTER~GET_SUPPORTED_CLASS.
rv_supported_class = 'CL_SALV_EX_RESULT_DATA_TABLE'.
ENDMETHOD.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_EX_RESULT_DATA_TABLE'.
ENDMETHOD.
METHOD ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT.
METHOD zif_excel_converter~can_convert_object.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table.
TRY.
lo_result ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
TRY.
lo_result ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table,
lo_ex_cm TYPE REF TO cl_salv_ex_cm,
lo_data TYPE REF TO data.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table,
lo_ex_cm TYPE REF TO cl_salv_ex_cm,
lo_data TYPE REF TO data.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
zif_excel_converter~can_convert_object( io_object = io_object ).
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
ws_option = is_option.
lo_result ?= io_object.
lo_result ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
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> .
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> .
lo_ex_cm ?= lo_result->r_model->r_model.
ws_layo = lo_ex_cm->s_layo.
lo_ex_cm ?= lo_result->r_model->r_model.
ws_layo = lo_ex_cm->s_layo.
* T_DRDN Instance Attribute Public Type LVC_T_DROP
wt_fcat = lo_ex_cm->t_fcat.
wt_filt = lo_ex_cm->t_filt.
wt_fcat = lo_ex_cm->t_fcat.
wt_filt = lo_ex_cm->t_filt.
* T_HYPE Instance Attribute Public Type LVC_T_HYPE
* T_SELECTED_CELLS Instance Attribute Public Type LVC_T_CELL
* T_SELECTED_COLUMNS Instance Attribute Public Type LVC_T_COL
wt_sort = lo_ex_cm->t_sort.
wt_sort = lo_ex_cm->t_sort.
apply_sort( EXPORTING it_table = <fs_table>
IMPORTING eo_table = eo_table ) .
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_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
else.
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ELSE.
* We have a problem and should stop here.
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
ENDMETHOD.
ENDCLASS.

View File

@ -1,68 +1,68 @@
class ZCL_EXCEL_CONVERTER_RESULT_WD definition
public
inheriting from ZCL_EXCEL_CONVERTER_RESULT
final
create public .
CLASS zcl_excel_converter_result_wd DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_result
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
methods ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT
redefinition .
methods ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG
redefinition .
methods ZIF_EXCEL_CONVERTER~GET_SUPPORTED_CLASS
REDEFINITION .
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
protected section.
private section.
PROTECTED SECTION.
PRIVATE SECTION.
data WO_CONFIG type ref to CL_SALV_WD_CONFIG_TABLE .
data WT_FIELDS type SALV_WD_T_FIELD_REF .
data WT_COLUMNS type SALV_WD_T_COLUMN_REF .
DATA wo_config TYPE REF TO cl_salv_wd_config_table .
DATA wt_fields TYPE salv_wd_t_field_ref .
DATA wt_columns TYPE salv_wd_t_column_ref .
methods GET_COLUMNS_INFO
changing
!XS_FCAT type LVC_S_FCAT .
methods GET_FIELDS_INFO
changing
!XS_FCAT type LVC_S_FCAT .
methods CREATE_WT_SORT .
methods CREATE_WT_FILT .
methods CREATE_WT_FCAT
importing
!IO_TABLE type ref to DATA .
METHODS get_columns_info
CHANGING
!xs_fcat TYPE lvc_s_fcat .
METHODS get_fields_info
CHANGING
!xs_fcat TYPE lvc_s_fcat .
METHODS create_wt_sort .
METHODS create_wt_filt .
METHODS create_wt_fcat
IMPORTING
!io_table TYPE REF TO data .
ENDCLASS.
CLASS ZCL_EXCEL_CONVERTER_RESULT_WD IMPLEMENTATION.
CLASS zcl_excel_converter_result_wd IMPLEMENTATION.
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.
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.
DATA: ls_fcat TYPE lvc_s_fcat.
DATA: ls_fcat TYPE lvc_s_fcat.
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
ASSIGN io_table->* TO <fs_tab> .
CREATE DATA lr_data LIKE LINE OF <fs_tab>.
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 ).
lo_structdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ).
lt_dfies = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ).
lt_dfies = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ).
loop at lt_dfies into ls_dfies.
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.
@ -74,188 +74,188 @@ method CREATE_WT_FCAT.
get_columns_info( CHANGING xs_fcat = ls_fcat ) .
INSERT ls_fcat INTO TABLE wt_fcat.
endloop.
ENDLOOP.
endmethod.
ENDMETHOD.
method CREATE_WT_FILT.
METHOD create_wt_filt.
* No neeed for superclass.
* Only for WD
DATA: lt_filters TYPE salv_wd_t_filter_rule_ref,
ls_filt TYPE lvc_s_filt.
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.
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.
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.
ENDLOOP.
endmethod.
ENDMETHOD.
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.
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.
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.
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-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.
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.
INSERT ls_sort INTO TABLE wt_sort.
ENDIF.
ENDLOOP.
ENDMETHOD.
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.
ENDLOOP.
endmethod.
ENDMETHOD.
method GET_COLUMNS_INFO.
DATA: l_numc2 TYPE salv_wd_constant.
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.
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.
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.
METHOD ZIF_EXCEL_CONVERTER~GET_SUPPORTED_CLASS.
rv_supported_class = 'CL_SALV_WD_RESULT_DATA_TABLE'.
ENDMETHOD.
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.
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.
zif_excel_converter~can_convert_object( io_object = io_object ).
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( ) .
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.
create_wt_fcat( io_table = lo_data ).
create_wt_sort( ).
create_wt_filt( ).
ENDMETHOD.
apply_sort( EXPORTING it_table = <fs_table>
IMPORTING eo_table = eo_table ) .
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_WD_RESULT_DATA_TABLE'.
ENDMETHOD.
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.
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.
zif_excel_converter~can_convert_object( io_object = io_object ).
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 ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ELSE.
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ELSE.
* We have a problem and should stop here
ENDIF.
ENDIF.
ENDIF.
ENDMETHOD.
ENDMETHOD.
ENDCLASS.

View File

@ -1,258 +1,256 @@
class ZCL_EXCEL_CONVERTER_SALV_TABLE definition
public
inheriting from ZCL_EXCEL_CONVERTER_ALV
final
create public .
CLASS zcl_excel_converter_salv_table DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_alv
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
methods ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT
redefinition .
methods ZIF_EXCEL_CONVERTER~CREATE_FIELDCATALOG
redefinition .
methods ZIF_EXCEL_CONVERTER~GET_SUPPORTED_CLASS
redefinition .
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
protected section.
private section.
PROTECTED SECTION.
PRIVATE SECTION.
methods LOAD_DATA
importing
!IO_SALV type ref to CL_SALV_TABLE
!IT_TABLE type STANDARD TABLE .
METHODS load_data
IMPORTING
!io_salv TYPE REF TO cl_salv_table
!it_table TYPE STANDARD TABLE .
ENDCLASS.
CLASS ZCL_EXCEL_CONVERTER_SALV_TABLE IMPLEMENTATION.
CLASS zcl_excel_converter_salv_table IMPLEMENTATION.
method LOAD_DATA.
DATA: lo_columns TYPE REF TO cl_salv_columns_table,
lo_aggregations TYPE REF TO cl_salv_aggregations,
lo_sorts TYPE REF TO cl_salv_sorts,
lo_filters TYPE REF TO cl_salv_filters,
lo_functional TYPE REF TO cl_salv_functional_settings,
lo_display TYPE REF TO cl_salv_display_settings.
METHOD load_data.
DATA: lo_columns TYPE REF TO cl_salv_columns_table,
lo_aggregations TYPE REF TO cl_salv_aggregations,
lo_sorts TYPE REF TO cl_salv_sorts,
lo_filters TYPE REF TO cl_salv_filters,
lo_functional TYPE REF TO cl_salv_functional_settings,
lo_display TYPE REF TO cl_salv_display_settings.
DATA: ls_vari TYPE disvariant,
lo_layout TYPE REF TO cl_salv_layout.
DATA: ls_vari TYPE disvariant,
lo_layout TYPE REF TO cl_salv_layout.
DATA lt_kkblo_fieldcat TYPE kkblo_t_fieldcat.
DATA ls_kkblo_layout TYPE kkblo_layout.
DATA lt_kkblo_filter TYPE kkblo_t_filter.
DATA lt_kkblo_sort TYPE kkblo_t_sortinfo.
DATA lt_kkblo_fieldcat TYPE kkblo_t_fieldcat.
DATA ls_kkblo_layout TYPE kkblo_layout.
DATA lt_kkblo_filter TYPE kkblo_t_filter.
DATA lt_kkblo_sort TYPE kkblo_t_sortinfo.
lo_layout = io_salv->get_layout( ) .
lo_columns = io_salv->get_columns( ).
lo_aggregations = io_salv->get_aggregations( ) .
lo_sorts = io_salv->get_sorts( ) .
lo_filters = io_salv->get_filters( ) .
lo_display = io_salv->get_display_settings( ) .
lo_functional = io_salv->get_functional_settings( ) .
lo_layout = io_salv->get_layout( ) .
lo_columns = io_salv->get_columns( ).
lo_aggregations = io_salv->get_aggregations( ) .
lo_sorts = io_salv->get_sorts( ) .
lo_filters = io_salv->get_filters( ) .
lo_display = io_salv->get_display_settings( ) .
lo_functional = io_salv->get_functional_settings( ) .
REFRESH: wt_fcat,
wt_sort,
wt_filt.
REFRESH: wt_fcat,
wt_sort,
wt_filt.
* First update metadata if we can.
IF io_salv->is_offline( ) = abap_false.
io_salv->get_metadata( ) .
ELSE.
IF io_salv->is_offline( ) = abap_false.
io_salv->get_metadata( ) .
ELSE.
* If we are offline we need to build this.
cl_salv_controller_metadata=>get_variant(
EXPORTING
r_layout = lo_layout
CHANGING
s_variant = ls_vari ).
ENDIF.
cl_salv_controller_metadata=>get_variant(
EXPORTING
r_layout = lo_layout
CHANGING
s_variant = ls_vari ).
ENDIF.
*... get the column information
wt_fcat = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
r_columns = lo_columns
r_aggregations = lo_aggregations ).
wt_fcat = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
r_columns = lo_columns
r_aggregations = lo_aggregations ).
*... get the layout information
cl_salv_controller_metadata=>get_lvc_layout(
EXPORTING
r_functional_settings = lo_functional
r_display_settings = lo_display
r_columns = lo_columns
r_aggregations = lo_aggregations
CHANGING
s_layout = ws_layo ).
cl_salv_controller_metadata=>get_lvc_layout(
EXPORTING
r_functional_settings = lo_functional
r_display_settings = lo_display
r_columns = lo_columns
r_aggregations = lo_aggregations
CHANGING
s_layout = ws_layo ).
* the fieldcatalog is not complete yet!
CALL FUNCTION 'LVC_FIELDCAT_COMPLETE'
EXPORTING
i_complete = 'X'
i_refresh_buffer = space
i_buffer_active = space
is_layout = ws_layo
i_test = '1'
i_fcat_complete = 'X'
IMPORTING
* E_EDIT =
es_layout = ws_layo
CHANGING
ct_fieldcat = wt_fcat.
IF ls_vari IS NOT INITIAL AND io_salv->is_offline( ) = abap_true.
CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO'
CALL FUNCTION 'LVC_FIELDCAT_COMPLETE'
EXPORTING
it_fieldcat_lvc = wt_fcat
is_layout_lvc = ws_layo
i_complete = 'X'
i_refresh_buffer = space
i_buffer_active = space
is_layout = ws_layo
i_test = '1'
i_fcat_complete = 'X'
IMPORTING
et_fieldcat_kkblo = lt_kkblo_fieldcat
es_layout_kkblo = ls_kkblo_layout
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
it_fieldcat_lvc_missing = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'LT_VARIANT_LOAD'
EXPORTING
* I_TOOL = 'LT'
i_tabname = '1'
* I_TABNAME_SLAVE =
i_dialog = ' '
I_USER_SPECIFIC = 'X'
* I_DEFAULT = 'X'
* I_NO_REPTEXT_OPTIMIZE =
* I_VIA_GRID =
i_fcat_complete = 'X'
IMPORTING
* E_EXIT =
et_fieldcat = lt_kkblo_fieldcat
et_sort = lt_kkblo_sort
et_filter = lt_kkblo_filter
* E_EDIT =
es_layout = ws_layo
CHANGING
cs_layout = ls_kkblo_layout
ct_default_fieldcat = lt_kkblo_fieldcat
cs_variant = ls_vari
EXCEPTIONS
wrong_input = 1
fc_not_complete = 2
not_found = 3
OTHERS = 4
.
IF sy-subrc <> 0.
ct_fieldcat = wt_fcat.
IF ls_vari IS NOT INITIAL AND io_salv->is_offline( ) = abap_true.
CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO'
EXPORTING
it_fieldcat_lvc = wt_fcat
is_layout_lvc = ws_layo
IMPORTING
et_fieldcat_kkblo = lt_kkblo_fieldcat
es_layout_kkblo = ls_kkblo_layout
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
it_fieldcat_lvc_missing = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
CALL FUNCTION 'LVC_TRANSFER_FROM_KKBLO'
EXPORTING
* I_TECH_COMPLETE =
* I_STRUCTURE_NAME =
it_fieldcat_kkblo = lt_kkblo_fieldcat
it_sort_kkblo = lt_kkblo_sort
it_filter_kkblo = lt_kkblo_filter
* IT_SPECIAL_GROUPS_KKBLO =
* IT_FILTERED_ENTRIES_KKBLO =
* IT_GROUPLEVELS_KKBLO =
* IS_SUBTOT_OPTIONS_KKBLO =
is_layout_kkblo = ls_kkblo_layout
* IS_REPREP_ID_KKBLO =
* I_CALLBACK_PROGRAM_KKBLO =
* IT_ADD_FIELDCAT =
* IT_EXCLUDING_KKBLO =
* IT_EXCEPT_QINFO_KKBLO =
IMPORTING
et_fieldcat_lvc = wt_fcat
et_sort_lvc = wt_sort
et_filter_lvc = wt_filt
* ET_SPECIAL_GROUPS_LVC =
* ET_FILTER_INDEX_LVC =
* ET_GROUPLEVELS_LVC =
* ES_TOTAL_OPTIONS_LVC =
es_layout_lvc = ws_layo
* ES_VARIANT_LVC =
* E_VARIANT_SAVE_LVC =
* ES_PRINT_INFO_LVC =
* ES_REPREP_LVC =
* E_REPREP_ACTIVE_LVC =
* ET_EXCLUDING_LVC =
* ET_EXCEPT_QINFO_LVC =
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
OTHERS = 2
.
IF sy-subrc <> 0.
CALL FUNCTION 'LT_VARIANT_LOAD'
EXPORTING
* I_TOOL = 'LT'
i_tabname = '1'
* I_TABNAME_SLAVE =
i_dialog = ' '
i_user_specific = 'X'
* I_DEFAULT = 'X'
* I_NO_REPTEXT_OPTIMIZE =
* I_VIA_GRID =
i_fcat_complete = 'X'
IMPORTING
* E_EXIT =
et_fieldcat = lt_kkblo_fieldcat
et_sort = lt_kkblo_sort
et_filter = lt_kkblo_filter
CHANGING
cs_layout = ls_kkblo_layout
ct_default_fieldcat = lt_kkblo_fieldcat
cs_variant = ls_vari
EXCEPTIONS
wrong_input = 1
fc_not_complete = 2
not_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ELSE.
CALL FUNCTION 'LVC_TRANSFER_FROM_KKBLO'
EXPORTING
* I_TECH_COMPLETE =
* I_STRUCTURE_NAME =
it_fieldcat_kkblo = lt_kkblo_fieldcat
it_sort_kkblo = lt_kkblo_sort
it_filter_kkblo = lt_kkblo_filter
* IT_SPECIAL_GROUPS_KKBLO =
* IT_FILTERED_ENTRIES_KKBLO =
* IT_GROUPLEVELS_KKBLO =
* IS_SUBTOT_OPTIONS_KKBLO =
is_layout_kkblo = ls_kkblo_layout
* IS_REPREP_ID_KKBLO =
* I_CALLBACK_PROGRAM_KKBLO =
* IT_ADD_FIELDCAT =
* IT_EXCLUDING_KKBLO =
* IT_EXCEPT_QINFO_KKBLO =
IMPORTING
et_fieldcat_lvc = wt_fcat
et_sort_lvc = wt_sort
et_filter_lvc = wt_filt
* ET_SPECIAL_GROUPS_LVC =
* ET_FILTER_INDEX_LVC =
* ET_GROUPLEVELS_LVC =
* ES_TOTAL_OPTIONS_LVC =
es_layout_lvc = ws_layo
* ES_VARIANT_LVC =
* E_VARIANT_SAVE_LVC =
* ES_PRINT_INFO_LVC =
* ES_REPREP_LVC =
* E_REPREP_ACTIVE_LVC =
* ET_EXCLUDING_LVC =
* ET_EXCEPT_QINFO_LVC =
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
* ... get the sort information
wt_sort = cl_salv_controller_metadata=>get_lvc_sort( lo_sorts ).
wt_sort = cl_salv_controller_metadata=>get_lvc_sort( lo_sorts ).
* ... get the filter information
wt_filt = cl_salv_controller_metadata=>get_lvc_filter( lo_filters ).
ENDIF.
wt_filt = cl_salv_controller_metadata=>get_lvc_filter( lo_filters ).
ENDIF.
endmethod.
ENDMETHOD.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_TABLE'.
ENDMETHOD.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_TABLE'.
ENDMETHOD.
METHOD zif_excel_converter~can_convert_object.
METHOD zif_excel_converter~can_convert_object.
DATA: lo_salv TYPE REF TO cl_salv_table.
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.
TRY.
lo_salv ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_salv TYPE REF TO cl_salv_table.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_salv TYPE REF TO cl_salv_table.
zif_excel_converter~can_convert_object( io_object = io_object ).
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
ws_option = is_option.
lo_salv ?= io_object.
lo_salv ?= io_object.
CLEAR: es_layout,
et_fieldcatalog,
et_colors .
CLEAR: es_layout,
et_fieldcatalog,
et_colors .
IF lo_salv IS BOUND.
load_data( EXPORTING io_salv = lo_salv
it_table = it_table ).
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
IF lo_salv IS BOUND.
load_data( EXPORTING io_salv = lo_salv
it_table = it_table ).
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,20 +1,20 @@
class ZCL_EXCEL_CUSTOMUI definition
public
final
create public .
CLASS zcl_excel_customui DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_CUSTOMUI
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_CUSTOMUI
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_CUSTOMUI
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_CUSTOMUI IMPLEMENTATION.
CLASS zcl_excel_customui IMPLEMENTATION.
ENDCLASS.

View File

@ -1,22 +1,22 @@
class ZCL_EXCEL_CUSTOMUI_BUTTON definition
public
final
create public .
CLASS zcl_excel_customui_button DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_CUSTOMUI_BUTTON
*"* do not include other source files here!!!
interfaces ZIF_EXCEL_CUSTOMUI_ELEMENT .
protected section.
INTERFACES zif_excel_customui_element .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_CUSTOMUI_BUTTON
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_CUSTOMUI_BUTTON
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_CUSTOMUI_BUTTON IMPLEMENTATION.
CLASS zcl_excel_customui_button IMPLEMENTATION.
ENDCLASS.

View File

@ -1,83 +1,83 @@
class ZCL_EXCEL_DATA_VALIDATION definition
public
final
create public .
CLASS zcl_excel_data_validation DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_DATA_VALIDATION
*"* do not include other source files here!!!
type-pools ABAP .
TYPE-POOLS abap .
data ERRORSTYLE type ZEXCEL_DATA_VAL_ERROR_STYLE .
data OPERATOR type ZEXCEL_DATA_VAL_OPERATOR .
data ALLOWBLANK type FLAG value 'X'. "#EC NOTEXT . . . . . . . . . . " .
data CELL_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
data CELL_COLUMN_TO type ZEXCEL_CELL_COLUMN_ALPHA .
data CELL_ROW type ZEXCEL_CELL_ROW .
data CELL_ROW_TO type ZEXCEL_CELL_ROW .
constants C_TYPE_CUSTOM type ZEXCEL_DATA_VAL_TYPE value 'custom'. "#EC NOTEXT
constants C_TYPE_LIST type ZEXCEL_DATA_VAL_TYPE value 'list'. "#EC NOTEXT
data SHOWERRORMESSAGE type FLAG value 'X'. "#EC NOTEXT . . . . . . . . . . " .
data SHOWINPUTMESSAGE type FLAG value 'X'. "#EC NOTEXT . . . . . . . . . . " .
data TYPE type ZEXCEL_DATA_VAL_TYPE .
data FORMULA1 type ZEXCEL_VALIDATION_FORMULA1 .
data FORMULA2 type ZEXCEL_VALIDATION_FORMULA1 .
constants C_TYPE_NONE type ZEXCEL_DATA_VAL_TYPE value 'none'. "#EC NOTEXT
constants C_TYPE_DATE type ZEXCEL_DATA_VAL_TYPE value 'date'. "#EC NOTEXT
constants C_TYPE_DECIMAL type ZEXCEL_DATA_VAL_TYPE value 'decimal'. "#EC NOTEXT
constants C_TYPE_TEXTLENGTH type ZEXCEL_DATA_VAL_TYPE value 'textLength'. "#EC NOTEXT
constants C_TYPE_TIME type ZEXCEL_DATA_VAL_TYPE value 'time'. "#EC NOTEXT
constants C_TYPE_WHOLE type ZEXCEL_DATA_VAL_TYPE value 'whole'. "#EC NOTEXT
constants C_STYLE_STOP type ZEXCEL_DATA_VAL_ERROR_STYLE value 'stop'. "#EC NOTEXT
constants C_STYLE_WARNING type ZEXCEL_DATA_VAL_ERROR_STYLE value 'warning'. "#EC NOTEXT
constants C_STYLE_INFORMATION type ZEXCEL_DATA_VAL_ERROR_STYLE value 'information'. "#EC NOTEXT
constants C_OPERATOR_BETWEEN type ZEXCEL_DATA_VAL_OPERATOR value 'between'. "#EC NOTEXT
constants C_OPERATOR_EQUAL type ZEXCEL_DATA_VAL_OPERATOR value 'equal'. "#EC NOTEXT
constants C_OPERATOR_GREATERTHAN type ZEXCEL_DATA_VAL_OPERATOR value 'greaterThan'. "#EC NOTEXT
constants C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_DATA_VAL_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT
constants C_OPERATOR_LESSTHAN type ZEXCEL_DATA_VAL_OPERATOR value 'lessThan'. "#EC NOTEXT
constants C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_DATA_VAL_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT
constants C_OPERATOR_NOTBETWEEN type ZEXCEL_DATA_VAL_OPERATOR value 'notBetween'. "#EC NOTEXT
constants C_OPERATOR_NOTEQUAL type ZEXCEL_DATA_VAL_OPERATOR value 'notEqual'. "#EC NOTEXT
data SHOWDROPDOWN type FLAG .
data ERRORTITLE type STRING .
data ERROR type STRING .
data PROMPTTITLE type STRING .
data PROMPT type STRING .
DATA errorstyle TYPE zexcel_data_val_error_style .
DATA operator TYPE zexcel_data_val_operator .
DATA allowblank TYPE flag VALUE 'X'. "#EC NOTEXT . . . . . . . . . . " .
DATA cell_column TYPE zexcel_cell_column_alpha .
DATA cell_column_to TYPE zexcel_cell_column_alpha .
DATA cell_row TYPE zexcel_cell_row .
DATA cell_row_to TYPE zexcel_cell_row .
CONSTANTS c_type_custom TYPE zexcel_data_val_type VALUE 'custom'. "#EC NOTEXT
CONSTANTS c_type_list TYPE zexcel_data_val_type VALUE 'list'. "#EC NOTEXT
DATA showerrormessage TYPE flag VALUE 'X'. "#EC NOTEXT . . . . . . . . . . " .
DATA showinputmessage TYPE flag VALUE 'X'. "#EC NOTEXT . . . . . . . . . . " .
DATA type TYPE zexcel_data_val_type .
DATA formula1 TYPE zexcel_validation_formula1 .
DATA formula2 TYPE zexcel_validation_formula1 .
CONSTANTS c_type_none TYPE zexcel_data_val_type VALUE 'none'. "#EC NOTEXT
CONSTANTS c_type_date TYPE zexcel_data_val_type VALUE 'date'. "#EC NOTEXT
CONSTANTS c_type_decimal TYPE zexcel_data_val_type VALUE 'decimal'. "#EC NOTEXT
CONSTANTS c_type_textlength TYPE zexcel_data_val_type VALUE 'textLength'. "#EC NOTEXT
CONSTANTS c_type_time TYPE zexcel_data_val_type VALUE 'time'. "#EC NOTEXT
CONSTANTS c_type_whole TYPE zexcel_data_val_type VALUE 'whole'. "#EC NOTEXT
CONSTANTS c_style_stop TYPE zexcel_data_val_error_style VALUE 'stop'. "#EC NOTEXT
CONSTANTS c_style_warning TYPE zexcel_data_val_error_style VALUE 'warning'. "#EC NOTEXT
CONSTANTS c_style_information TYPE zexcel_data_val_error_style VALUE 'information'. "#EC NOTEXT
CONSTANTS c_operator_between TYPE zexcel_data_val_operator VALUE 'between'. "#EC NOTEXT
CONSTANTS c_operator_equal TYPE zexcel_data_val_operator VALUE 'equal'. "#EC NOTEXT
CONSTANTS c_operator_greaterthan TYPE zexcel_data_val_operator VALUE 'greaterThan'. "#EC NOTEXT
CONSTANTS c_operator_greaterthanorequal TYPE zexcel_data_val_operator VALUE 'greaterThanOrEqual'. "#EC NOTEXT
CONSTANTS c_operator_lessthan TYPE zexcel_data_val_operator VALUE 'lessThan'. "#EC NOTEXT
CONSTANTS c_operator_lessthanorequal TYPE zexcel_data_val_operator VALUE 'lessThanOrEqual'. "#EC NOTEXT
CONSTANTS c_operator_notbetween TYPE zexcel_data_val_operator VALUE 'notBetween'. "#EC NOTEXT
CONSTANTS c_operator_notequal TYPE zexcel_data_val_operator VALUE 'notEqual'. "#EC NOTEXT
DATA showdropdown TYPE flag .
DATA errortitle TYPE string .
DATA error TYPE string .
DATA prompttitle TYPE string .
DATA prompt TYPE string .
methods CONSTRUCTOR .
METHODS constructor .
*"* protected components of class ZCL_EXCEL_DATA_VALIDATION
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_DATA_VALIDATION
*"* do not include other source files here!!!
protected section.
private section.
PROTECTED SECTION.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_DATA_VALIDATION
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_DATA_VALIDATION IMPLEMENTATION.
CLASS zcl_excel_data_validation IMPLEMENTATION.
method CONSTRUCTOR.
" Initialise instance variables
formula1 = ''.
formula2 = ''.
type = me->c_type_none.
errorstyle = me->c_style_stop.
operator = ''.
allowblank = abap_false.
showdropdown = abap_false.
showinputmessage = abap_true.
showerrormessage = abap_true.
errortitle = ''.
error = ''.
prompttitle = ''.
prompt = ''.
METHOD constructor.
" Initialise instance variables
formula1 = ''.
formula2 = ''.
type = me->c_type_none.
errorstyle = me->c_style_stop.
operator = ''.
allowblank = abap_false.
showdropdown = abap_false.
showinputmessage = abap_true.
showerrormessage = abap_true.
errortitle = ''.
error = ''.
prompttitle = ''.
prompt = ''.
* inizialize dimension range
cell_row = 1.
cell_column = 'A'.
endmethod.
cell_row = 1.
cell_column = 'A'.
ENDMETHOD.
ENDCLASS.

View File

@ -1,78 +1,78 @@
class ZCL_EXCEL_DATA_VALIDATIONS definition
public
final
create public .
CLASS zcl_excel_data_validations DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_DATA_VALIDATIONS
*"* do not include other source files here!!!
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
methods ADD
importing
!IP_DATA_VALIDATION type ref to ZCL_EXCEL_DATA_VALIDATION .
methods CLEAR .
methods CONSTRUCTOR .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IP_DATA_VALIDATION type ref to ZCL_EXCEL_DATA_VALIDATION .
methods SIZE
returning
value(EP_SIZE) type I .
METHODS add
IMPORTING
!ip_data_validation TYPE REF TO zcl_excel_data_validation .
METHODS clear .
METHODS constructor .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
METHODS remove
IMPORTING
!ip_data_validation TYPE REF TO zcl_excel_data_validation .
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
*"* protected components of class ZCL_EXCEL_DATA_VALIDATIONS
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_DATA_VALIDATIONS
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data DATA_VALIDATIONS type ref to CL_OBJECT_COLLECTION .
DATA data_validations TYPE REF TO cl_object_collection .
ENDCLASS.
CLASS ZCL_EXCEL_DATA_VALIDATIONS IMPLEMENTATION.
CLASS zcl_excel_data_validations IMPLEMENTATION.
method ADD.
data_validations->add( ip_data_validation ).
endmethod.
METHOD add.
data_validations->add( ip_data_validation ).
ENDMETHOD.
method CLEAR.
data_validations->clear( ).
endmethod.
METHOD clear.
data_validations->clear( ).
ENDMETHOD.
method CONSTRUCTOR.
METHOD constructor.
CREATE OBJECT data_validations.
CREATE OBJECT data_validations.
endmethod.
ENDMETHOD.
method GET_ITERATOR.
eo_iterator ?= data_validations->get_iterator( ).
endmethod.
METHOD get_iterator.
eo_iterator ?= data_validations->get_iterator( ).
ENDMETHOD.
method IS_EMPTY.
is_empty = data_validations->is_empty( ).
endmethod.
METHOD is_empty.
is_empty = data_validations->is_empty( ).
ENDMETHOD.
method REMOVE.
data_validations->remove( ip_data_validation ).
endmethod.
METHOD remove.
data_validations->remove( ip_data_validation ).
ENDMETHOD.
method SIZE.
ep_size = data_validations->size( ).
endmethod.
METHOD size.
ep_size = data_validations->size( ).
ENDMETHOD.
ENDCLASS.

File diff suppressed because it is too large Load Diff

View File

@ -1,123 +1,123 @@
class ZCL_EXCEL_DRAWINGS definition
public
final
create public .
CLASS zcl_excel_drawings DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_DRAWINGS
*"* do not include other source files here!!!
data TYPE type ZEXCEL_DRAWING_TYPE read-only value 'IMAGE'. "#EC NOTEXT . . . . . . . . . . " .
DATA type TYPE zexcel_drawing_type READ-ONLY VALUE 'IMAGE'. "#EC NOTEXT . . . . . . . . . . " .
methods ADD
importing
!IP_DRAWING type ref to ZCL_EXCEL_DRAWING .
methods INCLUDE
importing
!IP_DRAWING type ref to ZCL_EXCEL_DRAWING .
methods CLEAR .
methods CONSTRUCTOR
importing
!IP_TYPE type ZEXCEL_DRAWING_TYPE .
methods GET
importing
!IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET
returning
value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IP_DRAWING type ref to ZCL_EXCEL_DRAWING .
methods SIZE
returning
value(EP_SIZE) type I .
methods GET_TYPE
returning
value(RP_TYPE) type ZEXCEL_DRAWING_TYPE .
METHODS add
IMPORTING
!ip_drawing TYPE REF TO zcl_excel_drawing .
METHODS include
IMPORTING
!ip_drawing TYPE REF TO zcl_excel_drawing .
METHODS clear .
METHODS constructor
IMPORTING
!ip_type TYPE zexcel_drawing_type .
METHODS get
IMPORTING
!ip_index TYPE zexcel_active_worksheet
RETURNING
VALUE(eo_drawing) TYPE REF TO zcl_excel_drawing .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
METHODS remove
IMPORTING
!ip_drawing TYPE REF TO zcl_excel_drawing .
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
METHODS get_type
RETURNING
VALUE(rp_type) TYPE zexcel_drawing_type .
*"* protected components of class ZCL_EXCEL_DRAWINGS
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_DRAWINGS
*"* do not include other source files here!!!
protected section.
private section.
PROTECTED SECTION.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_DRAWINGS
*"* do not include other source files here!!!
data DRAWINGS type ref to CL_OBJECT_COLLECTION .
DATA drawings TYPE REF TO cl_object_collection .
ENDCLASS.
CLASS ZCL_EXCEL_DRAWINGS IMPLEMENTATION.
CLASS zcl_excel_drawings IMPLEMENTATION.
method ADD.
DATA: lv_index TYPE i.
METHOD add.
DATA: lv_index TYPE i.
drawings->add( ip_drawing ).
lv_index = drawings->size( ).
ip_drawing->create_media_name(
ip_index = lv_index ).
endmethod.
drawings->add( ip_drawing ).
lv_index = drawings->size( ).
ip_drawing->create_media_name(
ip_index = lv_index ).
ENDMETHOD.
method CLEAR.
METHOD clear.
drawings->clear( ).
endmethod.
drawings->clear( ).
ENDMETHOD.
method CONSTRUCTOR.
METHOD constructor.
CREATE OBJECT drawings.
type = ip_type.
CREATE OBJECT drawings.
type = ip_type.
endmethod.
ENDMETHOD.
method GET.
METHOD get.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_drawing ?= drawings->get( lv_index ).
endmethod.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_drawing ?= drawings->get( lv_index ).
ENDMETHOD.
method GET_ITERATOR.
METHOD get_iterator.
eo_iterator ?= drawings->get_iterator( ).
endmethod.
eo_iterator ?= drawings->get_iterator( ).
ENDMETHOD.
method GET_TYPE.
rp_type = me->type.
endmethod.
METHOD get_type.
rp_type = me->type.
ENDMETHOD.
method INCLUDE.
drawings->add( ip_drawing ).
endmethod.
METHOD include.
drawings->add( ip_drawing ).
ENDMETHOD.
method IS_EMPTY.
METHOD is_empty.
is_empty = drawings->is_empty( ).
endmethod.
is_empty = drawings->is_empty( ).
ENDMETHOD.
method REMOVE.
METHOD remove.
drawings->remove( ip_drawing ).
endmethod.
drawings->remove( ip_drawing ).
ENDMETHOD.
method SIZE.
METHOD size.
ep_size = drawings->size( ).
endmethod.
ep_size = drawings->size( ).
ENDMETHOD.
ENDCLASS.

View File

@ -1,410 +1,410 @@
class ZCL_EXCEL_GRAPH definition
public
create public .
CLASS zcl_excel_graph DEFINITION
PUBLIC
CREATE PUBLIC .
public section.
PUBLIC SECTION.
types:
TYPES:
*"* public components of class ZCL_EXCEL_GRAPH
*"* do not include other source files here!!!
BEGIN OF s_style,
c14style type i,
cstyle type i,
end of s_style .
types:
BEGIN OF s_series,
idx TYPE i,
order TYPE i,
invertifnegative TYPE string,
symbol TYPE string,
smooth TYPE string,
lbl TYPE string,
ref TYPE string,
sername TYPE string,
END OF s_series .
types:
t_series TYPE STANDARD TABLE OF s_series .
types:
BEGIN OF s_pagemargins,
b TYPE string,
l TYPE string,
r TYPE string,
t TYPE string,
header TYPE string,
footer TYPE string,
END OF s_pagemargins .
BEGIN OF s_style,
c14style TYPE i,
cstyle TYPE i,
END OF s_style .
TYPES:
BEGIN OF s_series,
idx TYPE i,
order TYPE i,
invertifnegative TYPE string,
symbol TYPE string,
smooth TYPE string,
lbl TYPE string,
ref TYPE string,
sername TYPE string,
END OF s_series .
TYPES:
t_series TYPE STANDARD TABLE OF s_series .
TYPES:
BEGIN OF s_pagemargins,
b TYPE string,
l TYPE string,
r TYPE string,
t TYPE string,
header TYPE string,
footer TYPE string,
END OF s_pagemargins .
data NS_1904VAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data NS_LANGVAL type STRING value 'it-IT'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data NS_ROUNDEDCORNERSVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data PAGEMARGINS type S_PAGEMARGINS .
data NS_AUTOTITLEDELETEDVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data NS_PLOTVISONLYVAL type STRING value '1'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data NS_DISPBLANKSASVAL type STRING value 'gap'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data NS_SHOWDLBLSOVERMAXVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data TITLE type STRING . . . " .
data SERIES type T_SERIES .
data NS_C14STYLEVAL type STRING value '102'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data PRINT_LABEL type C value 'X'. "#EC NOTEXT . . . . . . . . . . . . . . " .
data NS_STYLEVAL type STRING value '2'. "#EC NOTEXT . . . . . . . . . . . . . . " .
constants:
BEGIN OF c_style_default,
c14style type i value 102,
cstyle type i value 2,
END OF c_style_default .
constants:
BEGIN OF c_style_1,
c14style type i value 101,
cstyle type i value 1,
END OF c_style_1 .
constants:
BEGIN OF c_style_3,
c14style type i value 103,
cstyle type i value 3,
END OF c_style_3 .
constants:
BEGIN OF c_style_4,
c14style type i value 104,
cstyle type i value 4,
END OF c_style_4 .
constants:
BEGIN OF c_style_5,
c14style type i value 105,
cstyle type i value 5,
END OF c_style_5 .
constants:
BEGIN OF c_style_6,
c14style type i value 106,
cstyle type i value 6,
END OF c_style_6 .
constants:
BEGIN OF c_style_7,
c14style type i value 107,
cstyle type i value 7,
END OF c_style_7 .
constants:
BEGIN OF c_style_8,
c14style type i value 108,
cstyle type i value 8,
END OF c_style_8 .
constants:
BEGIN OF c_style_9,
c14style type i value 109,
cstyle type i value 9,
END OF c_style_9 .
constants:
BEGIN OF c_style_10,
c14style type i value 110,
cstyle type i value 10,
END OF c_style_10 .
constants:
BEGIN OF c_style_11,
c14style type i value 111,
cstyle type i value 11,
END OF c_style_11 .
constants:
BEGIN OF c_style_12,
c14style type i value 112,
cstyle type i value 12,
END OF c_style_12 .
constants:
BEGIN OF c_style_13,
c14style type i value 113,
cstyle type i value 13,
END OF c_style_13 .
constants:
BEGIN OF c_style_14,
c14style type i value 114,
cstyle type i value 14,
END OF c_style_14 .
constants:
BEGIN OF c_style_15,
c14style type i value 115,
cstyle type i value 15,
END OF c_style_15 .
constants:
BEGIN OF c_style_16,
c14style type i value 116,
cstyle type i value 16,
END OF c_style_16 .
constants:
BEGIN OF c_style_17,
c14style type i value 117,
cstyle type i value 17,
END OF c_style_17 .
constants:
BEGIN OF c_style_18,
c14style type i value 118,
cstyle type i value 18,
END OF c_style_18 .
constants:
BEGIN OF c_style_19,
c14style type i value 119,
cstyle type i value 19,
END OF c_style_19 .
constants:
BEGIN OF c_style_20,
c14style type i value 120,
cstyle type i value 20,
END OF c_style_20 .
constants:
BEGIN OF c_style_21,
c14style type i value 121,
cstyle type i value 21,
END OF c_style_21 .
constants:
BEGIN OF c_style_22,
c14style type i value 122,
cstyle type i value 22,
END OF c_style_22 .
constants:
BEGIN OF c_style_23,
c14style type i value 123,
cstyle type i value 23,
END OF c_style_23 .
constants:
BEGIN OF c_style_24,
c14style type i value 124,
cstyle type i value 24,
END OF c_style_24 .
constants:
BEGIN OF c_style_25,
c14style type i value 125,
cstyle type i value 25,
END OF c_style_25 .
constants:
BEGIN OF c_style_26,
c14style type i value 126,
cstyle type i value 26,
END OF c_style_26 .
constants:
BEGIN OF c_style_27,
c14style type i value 127,
cstyle type i value 27,
END OF c_style_27 .
constants:
BEGIN OF c_style_28,
c14style type i value 128,
cstyle type i value 28,
END OF c_style_28 .
constants:
BEGIN OF c_style_29,
c14style type i value 129,
cstyle type i value 29,
END OF c_style_29 .
constants:
BEGIN OF c_style_30,
c14style type i value 130,
cstyle type i value 30,
END OF c_style_30 .
constants:
BEGIN OF c_style_31,
c14style type i value 131,
cstyle type i value 31,
END OF c_style_31 .
constants:
BEGIN OF c_style_32,
c14style type i value 132,
cstyle type i value 32,
END OF c_style_32 .
constants:
BEGIN OF c_style_33,
c14style type i value 133,
cstyle type i value 33,
END OF c_style_33 .
constants:
BEGIN OF c_style_34,
c14style type i value 134,
cstyle type i value 34,
END OF c_style_34 .
constants:
BEGIN OF c_style_35,
c14style type i value 135,
cstyle type i value 35,
END OF c_style_35 .
constants:
BEGIN OF c_style_36,
c14style type i value 136,
cstyle type i value 36,
END OF c_style_36 .
constants:
BEGIN OF c_style_37,
c14style type i value 137,
cstyle type i value 37,
END OF c_style_37 .
constants:
BEGIN OF c_style_38,
c14style type i value 138,
cstyle type i value 38,
END OF c_style_38 .
constants:
BEGIN OF c_style_39,
c14style type i value 139,
cstyle type i value 39,
END OF c_style_39 .
constants:
BEGIN OF c_style_40,
c14style type i value 140,
cstyle type i value 40,
END OF c_style_40 .
constants:
BEGIN OF c_style_41,
c14style type i value 141,
cstyle type i value 41,
END OF c_style_41 .
constants:
BEGIN OF c_style_42,
c14style type i value 142,
cstyle type i value 42,
END OF c_style_42 .
constants:
BEGIN OF c_style_43,
c14style type i value 143,
cstyle type i value 43,
END OF c_style_43 .
constants:
BEGIN OF c_style_44,
c14style type i value 144,
cstyle type i value 44,
END OF c_style_44 .
constants:
BEGIN OF c_style_45,
c14style type i value 145,
cstyle type i value 45,
END OF c_style_45 .
constants:
BEGIN OF c_style_46,
c14style type i value 146,
cstyle type i value 46,
END OF c_style_46 .
constants:
BEGIN OF c_style_47,
c14style type i value 147,
cstyle type i value 47,
END OF c_style_47 .
constants:
BEGIN OF c_style_48,
c14style type i value 148,
cstyle type i value 48,
END OF c_style_48 .
constants C_SHOW_TRUE type C value '1'. "#EC NOTEXT
constants C_SHOW_FALSE type C value '0'. "#EC NOTEXT
constants C_PRINT_LBL_TRUE type C value '1'. "#EC NOTEXT
constants C_PRINT_LBL_FALSE type C value '0'. "#EC NOTEXT
DATA ns_1904val TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA ns_langval TYPE string VALUE 'it-IT'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA ns_roundedcornersval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA pagemargins TYPE s_pagemargins .
DATA ns_autotitledeletedval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA ns_plotvisonlyval TYPE string VALUE '1'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA ns_dispblanksasval TYPE string VALUE 'gap'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA ns_showdlblsovermaxval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA title TYPE string . . . " .
DATA series TYPE t_series .
DATA ns_c14styleval TYPE string VALUE '102'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA print_label TYPE c VALUE 'X'. "#EC NOTEXT . . . . . . . . . . . . . . " .
DATA ns_styleval TYPE string VALUE '2'. "#EC NOTEXT . . . . . . . . . . . . . . " .
CONSTANTS:
BEGIN OF c_style_default,
c14style TYPE i VALUE 102,
cstyle TYPE i VALUE 2,
END OF c_style_default .
CONSTANTS:
BEGIN OF c_style_1,
c14style TYPE i VALUE 101,
cstyle TYPE i VALUE 1,
END OF c_style_1 .
CONSTANTS:
BEGIN OF c_style_3,
c14style TYPE i VALUE 103,
cstyle TYPE i VALUE 3,
END OF c_style_3 .
CONSTANTS:
BEGIN OF c_style_4,
c14style TYPE i VALUE 104,
cstyle TYPE i VALUE 4,
END OF c_style_4 .
CONSTANTS:
BEGIN OF c_style_5,
c14style TYPE i VALUE 105,
cstyle TYPE i VALUE 5,
END OF c_style_5 .
CONSTANTS:
BEGIN OF c_style_6,
c14style TYPE i VALUE 106,
cstyle TYPE i VALUE 6,
END OF c_style_6 .
CONSTANTS:
BEGIN OF c_style_7,
c14style TYPE i VALUE 107,
cstyle TYPE i VALUE 7,
END OF c_style_7 .
CONSTANTS:
BEGIN OF c_style_8,
c14style TYPE i VALUE 108,
cstyle TYPE i VALUE 8,
END OF c_style_8 .
CONSTANTS:
BEGIN OF c_style_9,
c14style TYPE i VALUE 109,
cstyle TYPE i VALUE 9,
END OF c_style_9 .
CONSTANTS:
BEGIN OF c_style_10,
c14style TYPE i VALUE 110,
cstyle TYPE i VALUE 10,
END OF c_style_10 .
CONSTANTS:
BEGIN OF c_style_11,
c14style TYPE i VALUE 111,
cstyle TYPE i VALUE 11,
END OF c_style_11 .
CONSTANTS:
BEGIN OF c_style_12,
c14style TYPE i VALUE 112,
cstyle TYPE i VALUE 12,
END OF c_style_12 .
CONSTANTS:
BEGIN OF c_style_13,
c14style TYPE i VALUE 113,
cstyle TYPE i VALUE 13,
END OF c_style_13 .
CONSTANTS:
BEGIN OF c_style_14,
c14style TYPE i VALUE 114,
cstyle TYPE i VALUE 14,
END OF c_style_14 .
CONSTANTS:
BEGIN OF c_style_15,
c14style TYPE i VALUE 115,
cstyle TYPE i VALUE 15,
END OF c_style_15 .
CONSTANTS:
BEGIN OF c_style_16,
c14style TYPE i VALUE 116,
cstyle TYPE i VALUE 16,
END OF c_style_16 .
CONSTANTS:
BEGIN OF c_style_17,
c14style TYPE i VALUE 117,
cstyle TYPE i VALUE 17,
END OF c_style_17 .
CONSTANTS:
BEGIN OF c_style_18,
c14style TYPE i VALUE 118,
cstyle TYPE i VALUE 18,
END OF c_style_18 .
CONSTANTS:
BEGIN OF c_style_19,
c14style TYPE i VALUE 119,
cstyle TYPE i VALUE 19,
END OF c_style_19 .
CONSTANTS:
BEGIN OF c_style_20,
c14style TYPE i VALUE 120,
cstyle TYPE i VALUE 20,
END OF c_style_20 .
CONSTANTS:
BEGIN OF c_style_21,
c14style TYPE i VALUE 121,
cstyle TYPE i VALUE 21,
END OF c_style_21 .
CONSTANTS:
BEGIN OF c_style_22,
c14style TYPE i VALUE 122,
cstyle TYPE i VALUE 22,
END OF c_style_22 .
CONSTANTS:
BEGIN OF c_style_23,
c14style TYPE i VALUE 123,
cstyle TYPE i VALUE 23,
END OF c_style_23 .
CONSTANTS:
BEGIN OF c_style_24,
c14style TYPE i VALUE 124,
cstyle TYPE i VALUE 24,
END OF c_style_24 .
CONSTANTS:
BEGIN OF c_style_25,
c14style TYPE i VALUE 125,
cstyle TYPE i VALUE 25,
END OF c_style_25 .
CONSTANTS:
BEGIN OF c_style_26,
c14style TYPE i VALUE 126,
cstyle TYPE i VALUE 26,
END OF c_style_26 .
CONSTANTS:
BEGIN OF c_style_27,
c14style TYPE i VALUE 127,
cstyle TYPE i VALUE 27,
END OF c_style_27 .
CONSTANTS:
BEGIN OF c_style_28,
c14style TYPE i VALUE 128,
cstyle TYPE i VALUE 28,
END OF c_style_28 .
CONSTANTS:
BEGIN OF c_style_29,
c14style TYPE i VALUE 129,
cstyle TYPE i VALUE 29,
END OF c_style_29 .
CONSTANTS:
BEGIN OF c_style_30,
c14style TYPE i VALUE 130,
cstyle TYPE i VALUE 30,
END OF c_style_30 .
CONSTANTS:
BEGIN OF c_style_31,
c14style TYPE i VALUE 131,
cstyle TYPE i VALUE 31,
END OF c_style_31 .
CONSTANTS:
BEGIN OF c_style_32,
c14style TYPE i VALUE 132,
cstyle TYPE i VALUE 32,
END OF c_style_32 .
CONSTANTS:
BEGIN OF c_style_33,
c14style TYPE i VALUE 133,
cstyle TYPE i VALUE 33,
END OF c_style_33 .
CONSTANTS:
BEGIN OF c_style_34,
c14style TYPE i VALUE 134,
cstyle TYPE i VALUE 34,
END OF c_style_34 .
CONSTANTS:
BEGIN OF c_style_35,
c14style TYPE i VALUE 135,
cstyle TYPE i VALUE 35,
END OF c_style_35 .
CONSTANTS:
BEGIN OF c_style_36,
c14style TYPE i VALUE 136,
cstyle TYPE i VALUE 36,
END OF c_style_36 .
CONSTANTS:
BEGIN OF c_style_37,
c14style TYPE i VALUE 137,
cstyle TYPE i VALUE 37,
END OF c_style_37 .
CONSTANTS:
BEGIN OF c_style_38,
c14style TYPE i VALUE 138,
cstyle TYPE i VALUE 38,
END OF c_style_38 .
CONSTANTS:
BEGIN OF c_style_39,
c14style TYPE i VALUE 139,
cstyle TYPE i VALUE 39,
END OF c_style_39 .
CONSTANTS:
BEGIN OF c_style_40,
c14style TYPE i VALUE 140,
cstyle TYPE i VALUE 40,
END OF c_style_40 .
CONSTANTS:
BEGIN OF c_style_41,
c14style TYPE i VALUE 141,
cstyle TYPE i VALUE 41,
END OF c_style_41 .
CONSTANTS:
BEGIN OF c_style_42,
c14style TYPE i VALUE 142,
cstyle TYPE i VALUE 42,
END OF c_style_42 .
CONSTANTS:
BEGIN OF c_style_43,
c14style TYPE i VALUE 143,
cstyle TYPE i VALUE 43,
END OF c_style_43 .
CONSTANTS:
BEGIN OF c_style_44,
c14style TYPE i VALUE 144,
cstyle TYPE i VALUE 44,
END OF c_style_44 .
CONSTANTS:
BEGIN OF c_style_45,
c14style TYPE i VALUE 145,
cstyle TYPE i VALUE 45,
END OF c_style_45 .
CONSTANTS:
BEGIN OF c_style_46,
c14style TYPE i VALUE 146,
cstyle TYPE i VALUE 46,
END OF c_style_46 .
CONSTANTS:
BEGIN OF c_style_47,
c14style TYPE i VALUE 147,
cstyle TYPE i VALUE 47,
END OF c_style_47 .
CONSTANTS:
BEGIN OF c_style_48,
c14style TYPE i VALUE 148,
cstyle TYPE i VALUE 48,
END OF c_style_48 .
CONSTANTS c_show_true TYPE c VALUE '1'. "#EC NOTEXT
CONSTANTS c_show_false TYPE c VALUE '0'. "#EC NOTEXT
CONSTANTS c_print_lbl_true TYPE c VALUE '1'. "#EC NOTEXT
CONSTANTS c_print_lbl_false TYPE c VALUE '0'. "#EC NOTEXT
methods CONSTRUCTOR .
methods CREATE_SERIE
importing
!IP_IDX type I optional
!IP_ORDER type I
!IP_INVERTIFNEGATIVE type STRING optional
!IP_SYMBOL type STRING optional
!IP_SMOOTH type C optional
!IP_LBL_FROM_COL type ZEXCEL_CELL_COLUMN_ALPHA optional
!IP_LBL_FROM_ROW type ZEXCEL_CELL_ROW optional
!IP_LBL_TO_COL type ZEXCEL_CELL_COLUMN_ALPHA optional
!IP_LBL_TO_ROW type ZEXCEL_CELL_ROW optional
!IP_LBL type STRING optional
!IP_REF_FROM_COL type ZEXCEL_CELL_COLUMN_ALPHA optional
!IP_REF_FROM_ROW type ZEXCEL_CELL_ROW optional
!IP_REF_TO_COL type ZEXCEL_CELL_COLUMN_ALPHA optional
!IP_REF_TO_ROW type ZEXCEL_CELL_ROW optional
!IP_REF type STRING optional
!IP_SERNAME type STRING
!IP_SHEET type ZEXCEL_SHEET_TITLE optional .
methods SET_STYLE
importing
!IP_STYLE type S_STYLE .
methods SET_PRINT_LBL
importing
!IP_VALUE type C .
methods SET_TITLE
importing
value(IP_VALUE) type STRING .
protected section.
METHODS constructor .
METHODS create_serie
IMPORTING
!ip_idx TYPE i OPTIONAL
!ip_order TYPE i
!ip_invertifnegative TYPE string OPTIONAL
!ip_symbol TYPE string OPTIONAL
!ip_smooth TYPE c OPTIONAL
!ip_lbl_from_col TYPE zexcel_cell_column_alpha OPTIONAL
!ip_lbl_from_row TYPE zexcel_cell_row OPTIONAL
!ip_lbl_to_col TYPE zexcel_cell_column_alpha OPTIONAL
!ip_lbl_to_row TYPE zexcel_cell_row OPTIONAL
!ip_lbl TYPE string OPTIONAL
!ip_ref_from_col TYPE zexcel_cell_column_alpha OPTIONAL
!ip_ref_from_row TYPE zexcel_cell_row OPTIONAL
!ip_ref_to_col TYPE zexcel_cell_column_alpha OPTIONAL
!ip_ref_to_row TYPE zexcel_cell_row OPTIONAL
!ip_ref TYPE string OPTIONAL
!ip_sername TYPE string
!ip_sheet TYPE zexcel_sheet_title OPTIONAL .
METHODS set_style
IMPORTING
!ip_style TYPE s_style .
METHODS set_print_lbl
IMPORTING
!ip_value TYPE c .
METHODS set_title
IMPORTING
VALUE(ip_value) TYPE string .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_GRAPH
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_GRAPH
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_GRAPH IMPLEMENTATION.
CLASS zcl_excel_graph IMPLEMENTATION.
method CONSTRUCTOR.
"Load default values
me->pagemargins-b = '0.75'.
me->pagemargins-l = '0.7'.
me->pagemargins-r = '0.7'.
me->pagemargins-t = '0.75'.
me->pagemargins-header = '0.3'.
me->pagemargins-footer = '0.3'.
endmethod.
METHOD constructor.
"Load default values
me->pagemargins-b = '0.75'.
me->pagemargins-l = '0.7'.
me->pagemargins-r = '0.7'.
me->pagemargins-t = '0.75'.
me->pagemargins-header = '0.3'.
me->pagemargins-footer = '0.3'.
ENDMETHOD.
method CREATE_SERIE.
DATA ls_serie TYPE s_series.
METHOD create_serie.
DATA ls_serie TYPE s_series.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7.
IF ip_lbl IS NOT SUPPLIED.
lv_stop_row_c = ip_lbl_to_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_lbl_from_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
ls_serie-lbl = ip_sheet.
ls_serie-lbl = zcl_excel_common=>escape_string( ip_value = ls_serie-lbl ).
CONCATENATE ls_serie-lbl '!$' ip_lbl_from_col '$' lv_start_row_c ':$' ip_lbl_to_col '$' lv_stop_row_c INTO ls_serie-lbl.
CLEAR: lv_start_row_c, lv_stop_row_c.
ELSE.
ls_serie-lbl = ip_lbl.
ENDIF.
IF ip_ref IS NOT SUPPLIED.
lv_stop_row_c = ip_ref_to_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_ref_from_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
ls_serie-ref = ip_sheet.
ls_serie-ref = zcl_excel_common=>escape_string( ip_value = ls_serie-ref ).
CONCATENATE ls_serie-ref '!$' ip_ref_from_col '$' lv_start_row_c ':$' ip_ref_to_col '$' lv_stop_row_c INTO ls_serie-ref.
CLEAR: lv_start_row_c, lv_stop_row_c.
ELSE.
ls_serie-ref = ip_ref.
ENDIF.
ls_serie-idx = ip_idx.
ls_serie-order = ip_order.
ls_serie-invertifnegative = ip_invertifnegative.
ls_serie-symbol = ip_symbol.
ls_serie-smooth = ip_smooth.
ls_serie-sername = ip_sername.
APPEND ls_serie TO me->series.
SORT me->series BY order ASCENDING.
endmethod.
IF ip_lbl IS NOT SUPPLIED.
lv_stop_row_c = ip_lbl_to_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_lbl_from_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
ls_serie-lbl = ip_sheet.
ls_serie-lbl = zcl_excel_common=>escape_string( ip_value = ls_serie-lbl ).
CONCATENATE ls_serie-lbl '!$' ip_lbl_from_col '$' lv_start_row_c ':$' ip_lbl_to_col '$' lv_stop_row_c INTO ls_serie-lbl.
CLEAR: lv_start_row_c, lv_stop_row_c.
ELSE.
ls_serie-lbl = ip_lbl.
ENDIF.
IF ip_ref IS NOT SUPPLIED.
lv_stop_row_c = ip_ref_to_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_ref_from_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
ls_serie-ref = ip_sheet.
ls_serie-ref = zcl_excel_common=>escape_string( ip_value = ls_serie-ref ).
CONCATENATE ls_serie-ref '!$' ip_ref_from_col '$' lv_start_row_c ':$' ip_ref_to_col '$' lv_stop_row_c INTO ls_serie-ref.
CLEAR: lv_start_row_c, lv_stop_row_c.
ELSE.
ls_serie-ref = ip_ref.
ENDIF.
ls_serie-idx = ip_idx.
ls_serie-order = ip_order.
ls_serie-invertifnegative = ip_invertifnegative.
ls_serie-symbol = ip_symbol.
ls_serie-smooth = ip_smooth.
ls_serie-sername = ip_sername.
APPEND ls_serie TO me->series.
SORT me->series BY order ASCENDING.
ENDMETHOD.
method SET_PRINT_LBL.
me->print_label = ip_value.
endmethod.
METHOD set_print_lbl.
me->print_label = ip_value.
ENDMETHOD.
method SET_STYLE.
me->ns_c14styleval = ip_style-c14style.
CONDENSE me->ns_c14styleval NO-GAPS.
me->ns_styleval = ip_style-cstyle.
CONDENSE me->ns_styleval NO-GAPS.
endmethod.
METHOD set_style.
me->ns_c14styleval = ip_style-c14style.
CONDENSE me->ns_c14styleval NO-GAPS.
me->ns_styleval = ip_style-cstyle.
CONDENSE me->ns_styleval NO-GAPS.
ENDMETHOD.
method SET_TITLE.
me->title = ip_value.
endmethod.
METHOD set_title.
me->title = ip_value.
ENDMETHOD.
ENDCLASS.

View File

@ -1,282 +1,282 @@
class ZCL_EXCEL_GRAPH_BARS definition
public
inheriting from ZCL_EXCEL_GRAPH
final
create public .
CLASS zcl_excel_graph_bars DEFINITION
PUBLIC
INHERITING FROM zcl_excel_graph
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
types:
TYPES:
*"* public components of class ZCL_EXCEL_GRAPH_BARS
*"* do not include other source files here!!!
BEGIN OF s_ax,
axid TYPE string,
type TYPE char5,
orientation TYPE string,
delete TYPE string,
axpos TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
majortickmark TYPE string,
minortickmark TYPE string,
ticklblpos TYPE string,
crossax TYPE string,
crosses TYPE string,
auto TYPE string,
lblalgn TYPE string,
lbloffset TYPE string,
nomultilvllbl TYPE string,
crossbetween TYPE string,
END OF s_ax .
types:
t_ax TYPE STANDARD TABLE OF s_ax .
BEGIN OF s_ax,
axid TYPE string,
type TYPE char5,
orientation TYPE string,
delete TYPE string,
axpos TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
majortickmark TYPE string,
minortickmark TYPE string,
ticklblpos TYPE string,
crossax TYPE string,
crosses TYPE string,
auto TYPE string,
lblalgn TYPE string,
lbloffset TYPE string,
nomultilvllbl TYPE string,
crossbetween TYPE string,
END OF s_ax .
TYPES:
t_ax TYPE STANDARD TABLE OF s_ax .
data NS_BARDIRVAL type STRING value 'col'. "#EC NOTEXT . . . . . . . . . . . " .
constants C_GROUPINGVAL_CLUSTERED type STRING value 'clustered'. "#EC NOTEXT
constants C_GROUPINGVAL_STACKED type STRING value 'stacked'. "#EC NOTEXT
data NS_GROUPINGVAL type STRING value C_GROUPINGVAL_CLUSTERED. "#EC NOTEXT . . . . . . . . . . . " .
data NS_VARYCOLORSVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_SHOWLEGENDKEYVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_SHOWVALVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_SHOWCATNAMEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_SHOWSERNAMEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_SHOWPERCENTVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_SHOWBUBBLESIZEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_GAPWIDTHVAL type STRING value '150'. "#EC NOTEXT . . . . . . . . . . . " .
data AXES type T_AX .
constants:
C_VALAX type c length 5 value 'VALAX'. "#EC NOTEXT
constants:
C_CATAX type c length 5 value 'CATAX'. "#EC NOTEXT
data NS_LEGENDPOSVAL type STRING value 'r'. "#EC NOTEXT . . . . . . . . . . . " .
data NS_OVERLAYVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . . " .
constants C_INVERTIFNEGATIVE_YES type STRING value '1'. "#EC NOTEXT
constants C_INVERTIFNEGATIVE_NO type STRING value '0'. "#EC NOTEXT
DATA ns_bardirval TYPE string VALUE 'col'. "#EC NOTEXT . . . . . . . . . . . " .
CONSTANTS c_groupingval_clustered TYPE string VALUE 'clustered'. "#EC NOTEXT
CONSTANTS c_groupingval_stacked TYPE string VALUE 'stacked'. "#EC NOTEXT
DATA ns_groupingval TYPE string VALUE c_groupingval_clustered. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_varycolorsval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_showlegendkeyval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_showvalval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_showcatnameval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_showsernameval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_showpercentval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_showbubblesizeval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_gapwidthval TYPE string VALUE '150'. "#EC NOTEXT . . . . . . . . . . . " .
DATA axes TYPE t_ax .
CONSTANTS:
c_valax TYPE c LENGTH 5 VALUE 'VALAX'. "#EC NOTEXT
CONSTANTS:
c_catax TYPE c LENGTH 5 VALUE 'CATAX'. "#EC NOTEXT
DATA ns_legendposval TYPE string VALUE 'r'. "#EC NOTEXT . . . . . . . . . . . " .
DATA ns_overlayval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . . " .
CONSTANTS c_invertifnegative_yes TYPE string VALUE '1'. "#EC NOTEXT
CONSTANTS c_invertifnegative_no TYPE string VALUE '0'. "#EC NOTEXT
methods CREATE_AX
importing
!IP_AXID type STRING optional
!IP_TYPE type CHAR5
!IP_ORIENTATION type STRING optional
!IP_DELETE type STRING optional
!IP_AXPOS type STRING optional
!IP_FORMATCODE type STRING optional
!IP_SOURCELINKED type STRING optional
!IP_MAJORTICKMARK type STRING optional
!IP_MINORTICKMARK type STRING optional
!IP_TICKLBLPOS type STRING optional
!IP_CROSSAX type STRING optional
!IP_CROSSES type STRING optional
!IP_AUTO type STRING optional
!IP_LBLALGN type STRING optional
!IP_LBLOFFSET type STRING optional
!IP_NOMULTILVLLBL type STRING optional
!IP_CROSSBETWEEN type STRING optional .
methods SET_SHOW_LEGEND_KEY
importing
!IP_VALUE type C .
methods SET_SHOW_VALUES
importing
!IP_VALUE type C .
methods SET_SHOW_CAT_NAME
importing
!IP_VALUE type C .
methods SET_SHOW_SER_NAME
importing
!IP_VALUE type C .
methods SET_SHOW_PERCENT
importing
!IP_VALUE type C .
methods SET_VARYCOLOR
importing
!IP_VALUE type C .
protected section.
METHODS create_ax
IMPORTING
!ip_axid TYPE string OPTIONAL
!ip_type TYPE char5
!ip_orientation TYPE string OPTIONAL
!ip_delete TYPE string OPTIONAL
!ip_axpos TYPE string OPTIONAL
!ip_formatcode TYPE string OPTIONAL
!ip_sourcelinked TYPE string OPTIONAL
!ip_majortickmark TYPE string OPTIONAL
!ip_minortickmark TYPE string OPTIONAL
!ip_ticklblpos TYPE string OPTIONAL
!ip_crossax TYPE string OPTIONAL
!ip_crosses TYPE string OPTIONAL
!ip_auto TYPE string OPTIONAL
!ip_lblalgn TYPE string OPTIONAL
!ip_lbloffset TYPE string OPTIONAL
!ip_nomultilvllbl TYPE string OPTIONAL
!ip_crossbetween TYPE string OPTIONAL .
METHODS set_show_legend_key
IMPORTING
!ip_value TYPE c .
METHODS set_show_values
IMPORTING
!ip_value TYPE c .
METHODS set_show_cat_name
IMPORTING
!ip_value TYPE c .
METHODS set_show_ser_name
IMPORTING
!ip_value TYPE c .
METHODS set_show_percent
IMPORTING
!ip_value TYPE c .
METHODS set_varycolor
IMPORTING
!ip_value TYPE c .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_GRAPH_BARS
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_GRAPH_BARS
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_GRAPH_BARS IMPLEMENTATION.
CLASS zcl_excel_graph_bars IMPLEMENTATION.
method CREATE_AX.
DATA ls_ax TYPE s_ax.
ls_ax-type = ip_type.
METHOD create_ax.
DATA ls_ax TYPE s_ax.
ls_ax-type = ip_type.
if ip_type = c_catax.
if ip_axid is SUPPLIED.
ls_ax-axid = ip_axid.
else.
ls_ax-axid = '1'.
endif.
if ip_orientation is SUPPLIED.
ls_ax-orientation = ip_orientation.
else.
ls_ax-orientation = 'minMax'.
endif.
if ip_delete is SUPPLIED.
ls_ax-delete = ip_delete.
else.
ls_ax-delete = '0'.
endif.
if ip_axpos is SUPPLIED.
ls_ax-axpos = ip_axpos.
else.
ls_ax-axpos = 'b'.
endif.
if ip_formatcode is SUPPLIED.
ls_ax-formatcode = ip_formatcode.
else.
ls_ax-formatcode = 'General'.
endif.
if ip_sourcelinked is SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
else.
ls_ax-sourcelinked = '1'.
endif.
if ip_majorTickMark is SUPPLIED.
ls_ax-majorTickMark = ip_majorTickMark.
else.
ls_ax-majorTickMark = 'out'.
endif.
if ip_minorTickMark is SUPPLIED.
ls_ax-minorTickMark = ip_minorTickMark.
else.
ls_ax-minorTickMark = 'none'.
endif.
if ip_ticklblpos is SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
else.
ls_ax-ticklblpos = 'nextTo'.
endif.
if ip_crossax is SUPPLIED.
ls_ax-crossax = ip_crossax.
else.
ls_ax-crossax = '2'.
endif.
if ip_crosses is SUPPLIED.
ls_ax-crosses = ip_crosses.
else.
ls_ax-crosses = 'autoZero'.
endif.
if ip_auto is SUPPLIED.
ls_ax-auto = ip_auto.
else.
ls_ax-auto = '1'.
endif.
if ip_lblAlgn is SUPPLIED.
ls_ax-lblAlgn = ip_lblAlgn.
else.
ls_ax-lblAlgn = 'ctr'.
endif.
if ip_lblOffset is SUPPLIED.
ls_ax-lblOffset = ip_lblOffset.
else.
ls_ax-lblOffset = '100'.
endif.
if ip_noMultiLvlLbl is SUPPLIED.
ls_ax-noMultiLvlLbl = ip_noMultiLvlLbl.
else.
ls_ax-noMultiLvlLbl = '0'.
endif.
elseif ip_type = c_valax.
if ip_axid is SUPPLIED.
ls_ax-axid = ip_axid.
else.
ls_ax-axid = '2'.
endif.
if ip_orientation is SUPPLIED.
ls_ax-orientation = ip_orientation.
else.
ls_ax-orientation = 'minMax'.
endif.
if ip_delete is SUPPLIED.
ls_ax-delete = ip_delete.
else.
ls_ax-delete = '0'.
endif.
if ip_axpos is SUPPLIED.
ls_ax-axpos = ip_axpos.
else.
ls_ax-axpos = 'l'.
endif.
if ip_formatcode is SUPPLIED.
ls_ax-formatcode = ip_formatcode.
else.
ls_ax-formatcode = 'General'.
endif.
if ip_sourcelinked is SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
else.
ls_ax-sourcelinked = '1'.
endif.
if ip_majorTickMark is SUPPLIED.
ls_ax-majorTickMark = ip_majorTickMark.
else.
ls_ax-majorTickMark = 'out'.
endif.
if ip_minorTickMark is SUPPLIED.
ls_ax-minorTickMark = ip_minorTickMark.
else.
ls_ax-minorTickMark = 'none'.
endif.
if ip_ticklblpos is SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
else.
ls_ax-ticklblpos = 'nextTo'.
endif.
if ip_crossax is SUPPLIED.
ls_ax-crossax = ip_crossax.
else.
ls_ax-crossax = '1'.
endif.
if ip_crosses is SUPPLIED.
ls_ax-crosses = ip_crosses.
else.
ls_ax-crosses = 'autoZero'.
endif.
if ip_crossBetween is SUPPLIED.
ls_ax-crossBetween = ip_crossBetween.
else.
ls_ax-crossBetween = 'between'.
endif.
endif.
IF ip_type = c_catax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = '1'.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = 'minMax'.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = '0'.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = 'b'.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = 'General'.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = '1'.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = 'out'.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = 'none'.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = 'nextTo'.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = '2'.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = 'autoZero'.
ENDIF.
IF ip_auto IS SUPPLIED.
ls_ax-auto = ip_auto.
ELSE.
ls_ax-auto = '1'.
ENDIF.
IF ip_lblalgn IS SUPPLIED.
ls_ax-lblalgn = ip_lblalgn.
ELSE.
ls_ax-lblalgn = 'ctr'.
ENDIF.
IF ip_lbloffset IS SUPPLIED.
ls_ax-lbloffset = ip_lbloffset.
ELSE.
ls_ax-lbloffset = '100'.
ENDIF.
IF ip_nomultilvllbl IS SUPPLIED.
ls_ax-nomultilvllbl = ip_nomultilvllbl.
ELSE.
ls_ax-nomultilvllbl = '0'.
ENDIF.
ELSEIF ip_type = c_valax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = '2'.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = 'minMax'.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = '0'.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = 'l'.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = 'General'.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = '1'.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = 'out'.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = 'none'.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = 'nextTo'.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = '1'.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = 'autoZero'.
ENDIF.
IF ip_crossbetween IS SUPPLIED.
ls_ax-crossbetween = ip_crossbetween.
ELSE.
ls_ax-crossbetween = 'between'.
ENDIF.
ENDIF.
APPEND ls_ax TO me->axes.
sort me->axes by axid ascending.
endmethod.
APPEND ls_ax TO me->axes.
SORT me->axes BY axid ASCENDING.
ENDMETHOD.
method SET_SHOW_CAT_NAME.
METHOD set_show_cat_name.
ns_showcatnameval = ip_value.
endmethod.
ENDMETHOD.
method SET_SHOW_LEGEND_KEY.
ns_showlegendkeyval = ip_value.
endmethod.
METHOD set_show_legend_key.
ns_showlegendkeyval = ip_value.
ENDMETHOD.
method SET_SHOW_PERCENT.
ns_showpercentval = ip_value.
endmethod.
METHOD set_show_percent.
ns_showpercentval = ip_value.
ENDMETHOD.
method SET_SHOW_SER_NAME.
ns_showsernameval = ip_value.
endmethod.
METHOD set_show_ser_name.
ns_showsernameval = ip_value.
ENDMETHOD.
method SET_SHOW_VALUES.
ns_showvalval = ip_value.
endmethod.
METHOD set_show_values.
ns_showvalval = ip_value.
ENDMETHOD.
method SET_VARYCOLOR.
ns_varycolorsval = ip_value.
endmethod.
METHOD set_varycolor.
ns_varycolorsval = ip_value.
ENDMETHOD.
ENDCLASS.

View File

@ -1,280 +1,280 @@
class ZCL_EXCEL_GRAPH_LINE definition
public
inheriting from ZCL_EXCEL_GRAPH
final
create public .
CLASS zcl_excel_graph_line DEFINITION
PUBLIC
INHERITING FROM zcl_excel_graph
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
types:
TYPES:
*"* public components of class ZCL_EXCEL_GRAPH_LINE
*"* do not include other source files here!!!
BEGIN OF s_ax,
axid TYPE string,
type TYPE char5,
orientation TYPE string,
delete TYPE string,
axpos TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
majortickmark TYPE string,
minortickmark TYPE string,
ticklblpos TYPE string,
crossax TYPE string,
crosses TYPE string,
auto TYPE string,
lblalgn TYPE string,
lbloffset TYPE string,
nomultilvllbl TYPE string,
crossbetween TYPE string,
END OF s_ax .
types:
t_ax TYPE STANDARD TABLE OF s_ax .
BEGIN OF s_ax,
axid TYPE string,
type TYPE char5,
orientation TYPE string,
delete TYPE string,
axpos TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
majortickmark TYPE string,
minortickmark TYPE string,
ticklblpos TYPE string,
crossax TYPE string,
crosses TYPE string,
auto TYPE string,
lblalgn TYPE string,
lbloffset TYPE string,
nomultilvllbl TYPE string,
crossbetween TYPE string,
END OF s_ax .
TYPES:
t_ax TYPE STANDARD TABLE OF s_ax .
data NS_GROUPINGVAL type STRING value 'standard'. "#EC NOTEXT . . . . . . . . . . " .
data NS_VARYCOLORSVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWLEGENDKEYVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWVALVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWCATNAMEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWSERNAMEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWPERCENTVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWBUBBLESIZEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_MARKERVAL type STRING value '1'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SMOOTHVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data AXES type T_AX .
constants:
C_VALAX type c length 5 value 'VALAX'. "#EC NOTEXT
constants:
C_CATAX type c length 5 value 'CATAX'. "#EC NOTEXT
data NS_LEGENDPOSVAL type STRING value 'r'. "#EC NOTEXT . . . . . . . . . . " .
data NS_OVERLAYVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
constants C_SYMBOL_AUTO type STRING value 'auto'. "#EC NOTEXT
constants C_SYMBOL_NONE type STRING value 'none'. "#EC NOTEXT
DATA ns_groupingval TYPE string VALUE 'standard'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_varycolorsval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showlegendkeyval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showvalval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showcatnameval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showsernameval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showpercentval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showbubblesizeval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_markerval TYPE string VALUE '1'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_smoothval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA axes TYPE t_ax .
CONSTANTS:
c_valax TYPE c LENGTH 5 VALUE 'VALAX'. "#EC NOTEXT
CONSTANTS:
c_catax TYPE c LENGTH 5 VALUE 'CATAX'. "#EC NOTEXT
DATA ns_legendposval TYPE string VALUE 'r'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_overlayval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
CONSTANTS c_symbol_auto TYPE string VALUE 'auto'. "#EC NOTEXT
CONSTANTS c_symbol_none TYPE string VALUE 'none'. "#EC NOTEXT
methods CREATE_AX
importing
!IP_AXID type STRING optional
!IP_TYPE type CHAR5
!IP_ORIENTATION type STRING optional
!IP_DELETE type STRING optional
!IP_AXPOS type STRING optional
!IP_FORMATCODE type STRING optional
!IP_SOURCELINKED type STRING optional
!IP_MAJORTICKMARK type STRING optional
!IP_MINORTICKMARK type STRING optional
!IP_TICKLBLPOS type STRING optional
!IP_CROSSAX type STRING optional
!IP_CROSSES type STRING optional
!IP_AUTO type STRING optional
!IP_LBLALGN type STRING optional
!IP_LBLOFFSET type STRING optional
!IP_NOMULTILVLLBL type STRING optional
!IP_CROSSBETWEEN type STRING optional .
methods SET_SHOW_LEGEND_KEY
importing
!IP_VALUE type C .
methods SET_SHOW_VALUES
importing
!IP_VALUE type C .
methods SET_SHOW_CAT_NAME
importing
!IP_VALUE type C .
methods SET_SHOW_SER_NAME
importing
!IP_VALUE type C .
methods SET_SHOW_PERCENT
importing
!IP_VALUE type C .
methods SET_VARYCOLOR
importing
!IP_VALUE type C .
protected section.
METHODS create_ax
IMPORTING
!ip_axid TYPE string OPTIONAL
!ip_type TYPE char5
!ip_orientation TYPE string OPTIONAL
!ip_delete TYPE string OPTIONAL
!ip_axpos TYPE string OPTIONAL
!ip_formatcode TYPE string OPTIONAL
!ip_sourcelinked TYPE string OPTIONAL
!ip_majortickmark TYPE string OPTIONAL
!ip_minortickmark TYPE string OPTIONAL
!ip_ticklblpos TYPE string OPTIONAL
!ip_crossax TYPE string OPTIONAL
!ip_crosses TYPE string OPTIONAL
!ip_auto TYPE string OPTIONAL
!ip_lblalgn TYPE string OPTIONAL
!ip_lbloffset TYPE string OPTIONAL
!ip_nomultilvllbl TYPE string OPTIONAL
!ip_crossbetween TYPE string OPTIONAL .
METHODS set_show_legend_key
IMPORTING
!ip_value TYPE c .
METHODS set_show_values
IMPORTING
!ip_value TYPE c .
METHODS set_show_cat_name
IMPORTING
!ip_value TYPE c .
METHODS set_show_ser_name
IMPORTING
!ip_value TYPE c .
METHODS set_show_percent
IMPORTING
!ip_value TYPE c .
METHODS set_varycolor
IMPORTING
!ip_value TYPE c .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_GRAPH_LINE
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_GRAPH_LINE
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_GRAPH_LINE IMPLEMENTATION.
CLASS zcl_excel_graph_line IMPLEMENTATION.
method CREATE_AX.
DATA ls_ax TYPE s_ax.
ls_ax-type = ip_type.
METHOD create_ax.
DATA ls_ax TYPE s_ax.
ls_ax-type = ip_type.
IF ip_type = c_catax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = '1'.
IF ip_type = c_catax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = '1'.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = 'minMax'.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = '0'.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = 'b'.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = 'General'.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = '1'.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = 'out'.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = 'none'.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = 'nextTo'.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = '2'.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = 'autoZero'.
ENDIF.
IF ip_auto IS SUPPLIED.
ls_ax-auto = ip_auto.
ELSE.
ls_ax-auto = '1'.
ENDIF.
IF ip_lblalgn IS SUPPLIED.
ls_ax-lblalgn = ip_lblalgn.
ELSE.
ls_ax-lblalgn = 'ctr'.
ENDIF.
IF ip_lbloffset IS SUPPLIED.
ls_ax-lbloffset = ip_lbloffset.
ELSE.
ls_ax-lbloffset = '100'.
ENDIF.
IF ip_nomultilvllbl IS SUPPLIED.
ls_ax-nomultilvllbl = ip_nomultilvllbl.
ELSE.
ls_ax-nomultilvllbl = '0'.
ENDIF.
ELSEIF ip_type = c_valax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = '2'.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = 'minMax'.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = '0'.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = 'l'.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = 'General'.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = '1'.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = 'out'.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = 'none'.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = 'nextTo'.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = '1'.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = 'autoZero'.
ENDIF.
IF ip_crossbetween IS SUPPLIED.
ls_ax-crossbetween = ip_crossbetween.
ELSE.
ls_ax-crossbetween = 'between'.
ENDIF.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = 'minMax'.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = '0'.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = 'b'.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = 'General'.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = '1'.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = 'out'.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = 'none'.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = 'nextTo'.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = '2'.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = 'autoZero'.
ENDIF.
IF ip_auto IS SUPPLIED.
ls_ax-auto = ip_auto.
ELSE.
ls_ax-auto = '1'.
ENDIF.
IF ip_lblalgn IS SUPPLIED.
ls_ax-lblalgn = ip_lblalgn.
ELSE.
ls_ax-lblalgn = 'ctr'.
ENDIF.
IF ip_lbloffset IS SUPPLIED.
ls_ax-lbloffset = ip_lbloffset.
ELSE.
ls_ax-lbloffset = '100'.
ENDIF.
IF ip_nomultilvllbl IS SUPPLIED.
ls_ax-nomultilvllbl = ip_nomultilvllbl.
ELSE.
ls_ax-nomultilvllbl = '0'.
ENDIF.
ELSEIF ip_type = c_valax.
IF ip_axid IS SUPPLIED.
ls_ax-axid = ip_axid.
ELSE.
ls_ax-axid = '2'.
ENDIF.
IF ip_orientation IS SUPPLIED.
ls_ax-orientation = ip_orientation.
ELSE.
ls_ax-orientation = 'minMax'.
ENDIF.
IF ip_delete IS SUPPLIED.
ls_ax-delete = ip_delete.
ELSE.
ls_ax-delete = '0'.
ENDIF.
IF ip_axpos IS SUPPLIED.
ls_ax-axpos = ip_axpos.
ELSE.
ls_ax-axpos = 'l'.
ENDIF.
IF ip_formatcode IS SUPPLIED.
ls_ax-formatcode = ip_formatcode.
ELSE.
ls_ax-formatcode = 'General'.
ENDIF.
IF ip_sourcelinked IS SUPPLIED.
ls_ax-sourcelinked = ip_sourcelinked.
ELSE.
ls_ax-sourcelinked = '1'.
ENDIF.
IF ip_majortickmark IS SUPPLIED.
ls_ax-majortickmark = ip_majortickmark.
ELSE.
ls_ax-majortickmark = 'out'.
ENDIF.
IF ip_minortickmark IS SUPPLIED.
ls_ax-minortickmark = ip_minortickmark.
ELSE.
ls_ax-minortickmark = 'none'.
ENDIF.
IF ip_ticklblpos IS SUPPLIED.
ls_ax-ticklblpos = ip_ticklblpos.
ELSE.
ls_ax-ticklblpos = 'nextTo'.
ENDIF.
IF ip_crossax IS SUPPLIED.
ls_ax-crossax = ip_crossax.
ELSE.
ls_ax-crossax = '1'.
ENDIF.
IF ip_crosses IS SUPPLIED.
ls_ax-crosses = ip_crosses.
ELSE.
ls_ax-crosses = 'autoZero'.
ENDIF.
IF ip_crossbetween IS SUPPLIED.
ls_ax-crossbetween = ip_crossbetween.
ELSE.
ls_ax-crossbetween = 'between'.
ENDIF.
ENDIF.
APPEND ls_ax TO me->axes.
SORT me->axes BY axid ASCENDING.
endmethod.
APPEND ls_ax TO me->axes.
SORT me->axes BY axid ASCENDING.
ENDMETHOD.
method SET_SHOW_CAT_NAME.
METHOD set_show_cat_name.
ns_showcatnameval = ip_value.
endmethod.
ENDMETHOD.
method SET_SHOW_LEGEND_KEY.
ns_showlegendkeyval = ip_value.
endmethod.
METHOD set_show_legend_key.
ns_showlegendkeyval = ip_value.
ENDMETHOD.
method SET_SHOW_PERCENT.
ns_showpercentval = ip_value.
endmethod.
METHOD set_show_percent.
ns_showpercentval = ip_value.
ENDMETHOD.
method SET_SHOW_SER_NAME.
ns_showsernameval = ip_value.
endmethod.
METHOD set_show_ser_name.
ns_showsernameval = ip_value.
ENDMETHOD.
method SET_SHOW_VALUES.
ns_showvalval = ip_value.
endmethod.
METHOD set_show_values.
ns_showvalval = ip_value.
ENDMETHOD.
method SET_VARYCOLOR.
ns_varycolorsval = ip_value.
endmethod.
METHOD set_varycolor.
ns_varycolorsval = ip_value.
ENDMETHOD.
ENDCLASS.

View File

@ -1,92 +1,92 @@
class ZCL_EXCEL_GRAPH_PIE definition
public
inheriting from ZCL_EXCEL_GRAPH
final
create public .
CLASS zcl_excel_graph_pie DEFINITION
PUBLIC
INHERITING FROM zcl_excel_graph
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_GRAPH_PIE
*"* do not include other source files here!!!
data NS_LEGENDPOSVAL type STRING value 'r'. "#EC NOTEXT . . . . . . . . . . " .
data NS_OVERLAYVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_PPRRTL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_ENDPARARPRLANG type STRING value 'it-IT'. "#EC NOTEXT . . . . . . . . . . " .
data NS_VARYCOLORSVAL type STRING value '1'. "#EC NOTEXT . . . . . . . . . . " .
data NS_FIRSTSLICEANGVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWLEGENDKEYVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWVALVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWCATNAMEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWSERNAMEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWPERCENTVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWBUBBLESIZEVAL type STRING value '0'. "#EC NOTEXT . . . . . . . . . . " .
data NS_SHOWLEADERLINESVAL type STRING value '1'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_legendposval TYPE string VALUE 'r'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_overlayval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_pprrtl TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_endpararprlang TYPE string VALUE 'it-IT'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_varycolorsval TYPE string VALUE '1'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_firstsliceangval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showlegendkeyval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showvalval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showcatnameval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showsernameval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showpercentval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showbubblesizeval TYPE string VALUE '0'. "#EC NOTEXT . . . . . . . . . . " .
DATA ns_showleaderlinesval TYPE string VALUE '1'. "#EC NOTEXT . . . . . . . . . . " .
methods SET_SHOW_LEGEND_KEY
importing
!IP_VALUE type C .
methods SET_SHOW_VALUES
importing
!IP_VALUE type C .
methods SET_SHOW_CAT_NAME
importing
!IP_VALUE type C .
methods SET_SHOW_SER_NAME
importing
!IP_VALUE type C .
methods SET_SHOW_PERCENT
importing
!IP_VALUE type C .
methods SET_SHOW_LEADER_LINES
importing
!IP_VALUE type C .
methods SET_VARYCOLOR
importing
!IP_VALUE type C .
protected section.
METHODS set_show_legend_key
IMPORTING
!ip_value TYPE c .
METHODS set_show_values
IMPORTING
!ip_value TYPE c .
METHODS set_show_cat_name
IMPORTING
!ip_value TYPE c .
METHODS set_show_ser_name
IMPORTING
!ip_value TYPE c .
METHODS set_show_percent
IMPORTING
!ip_value TYPE c .
METHODS set_show_leader_lines
IMPORTING
!ip_value TYPE c .
METHODS set_varycolor
IMPORTING
!ip_value TYPE c .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_GRAPH_PIE
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_GRAPH_PIE
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_GRAPH_PIE IMPLEMENTATION.
CLASS zcl_excel_graph_pie IMPLEMENTATION.
method SET_SHOW_CAT_NAME.
ns_showcatnameval = ip_value.
endmethod.
METHOD set_show_cat_name.
ns_showcatnameval = ip_value.
ENDMETHOD.
method SET_SHOW_LEADER_LINES.
ns_showleaderlinesval = ip_value.
endmethod.
METHOD set_show_leader_lines.
ns_showleaderlinesval = ip_value.
ENDMETHOD.
method SET_SHOW_LEGEND_KEY.
ns_showlegendkeyval = ip_value.
endmethod.
METHOD set_show_legend_key.
ns_showlegendkeyval = ip_value.
ENDMETHOD.
method SET_SHOW_PERCENT.
ns_showpercentval = ip_value.
endmethod.
METHOD set_show_percent.
ns_showpercentval = ip_value.
ENDMETHOD.
method SET_SHOW_SER_NAME.
ns_showsernameval = ip_value.
endmethod.
METHOD set_show_ser_name.
ns_showsernameval = ip_value.
ENDMETHOD.
method SET_SHOW_VALUES.
ns_showvalval = ip_value.
endmethod.
METHOD set_show_values.
ns_showvalval = ip_value.
ENDMETHOD.
method SET_VARYCOLOR.
ns_varycolorsval = ip_value.
endmethod.
METHOD set_varycolor.
ns_varycolorsval = ip_value.
ENDMETHOD.
ENDCLASS.

View File

@ -1,108 +1,108 @@
class ZCL_EXCEL_HYPERLINK definition
public
final
create private .
CLASS zcl_excel_hyperlink DEFINITION
PUBLIC
FINAL
CREATE PRIVATE .
*"* public components of class ZCL_EXCEL_HYPERLINK
*"* do not include other source files here!!!
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
class-methods CREATE_EXTERNAL_LINK
importing
!IV_URL type STRING
returning
value(OV_LINK) type ref to ZCL_EXCEL_HYPERLINK .
class-methods CREATE_INTERNAL_LINK
importing
!IV_LOCATION type STRING
returning
value(OV_LINK) type ref to ZCL_EXCEL_HYPERLINK .
methods IS_INTERNAL
returning
value(EV_RET) type ABAP_BOOL .
methods SET_CELL_REFERENCE
importing
!IP_COLUMN type SIMPLE
!IP_ROW type ZEXCEL_CELL_ROW
raising
ZCX_EXCEL .
methods GET_REF
returning
value(EV_REF) type STRING .
methods GET_URL
returning
value(EV_URL) type STRING .
CLASS-METHODS create_external_link
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(ov_link) TYPE REF TO zcl_excel_hyperlink .
CLASS-METHODS create_internal_link
IMPORTING
!iv_location TYPE string
RETURNING
VALUE(ov_link) TYPE REF TO zcl_excel_hyperlink .
METHODS is_internal
RETURNING
VALUE(ev_ret) TYPE abap_bool .
METHODS set_cell_reference
IMPORTING
!ip_column TYPE simple
!ip_row TYPE zexcel_cell_row
RAISING
zcx_excel .
METHODS get_ref
RETURNING
VALUE(ev_ref) TYPE string .
METHODS get_url
RETURNING
VALUE(ev_url) TYPE string .
*"* protected components of class ZCL_EXCEL_HYPERLINK
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_HYPERLINK
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data LOCATION type STRING .
data CELL_REFERENCE type STRING .
data INTERNAL type ABAP_BOOL .
data COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
data ROW type ZEXCEL_CELL_ROW .
DATA location TYPE string .
DATA cell_reference TYPE string .
DATA internal TYPE abap_bool .
DATA column TYPE zexcel_cell_column_alpha .
DATA row TYPE zexcel_cell_row .
class-methods CREATE
importing
!IV_URL type STRING
!IV_INTERNAL type ABAP_BOOL
returning
value(OV_LINK) type ref to ZCL_EXCEL_HYPERLINK .
CLASS-METHODS create
IMPORTING
!iv_url TYPE string
!iv_internal TYPE abap_bool
RETURNING
VALUE(ov_link) TYPE REF TO zcl_excel_hyperlink .
ENDCLASS.
CLASS ZCL_EXCEL_HYPERLINK IMPLEMENTATION.
CLASS zcl_excel_hyperlink IMPLEMENTATION.
method CREATE.
data: lo_hyperlink type REF TO zcl_excel_hyperlink.
METHOD create.
DATA: lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
create OBJECT lo_hyperlink.
CREATE OBJECT lo_hyperlink.
lo_hyperlink->location = iv_url.
lo_hyperlink->internal = iv_internal.
lo_hyperlink->location = iv_url.
lo_hyperlink->internal = iv_internal.
ov_link = lo_hyperlink.
endmethod.
ov_link = lo_hyperlink.
ENDMETHOD.
method CREATE_EXTERNAL_LINK.
METHOD create_external_link.
ov_link = zcl_excel_hyperlink=>create( iv_url = iv_url
iv_internal = abap_false ).
endmethod.
ov_link = zcl_excel_hyperlink=>create( iv_url = iv_url
iv_internal = abap_false ).
ENDMETHOD.
method CREATE_INTERNAL_LINK.
ov_link = zcl_excel_hyperlink=>create( iv_url = iv_location
iv_internal = abap_true ).
endmethod.
METHOD create_internal_link.
ov_link = zcl_excel_hyperlink=>create( iv_url = iv_location
iv_internal = abap_true ).
ENDMETHOD.
method GET_REF.
ev_ref = row.
CONDENSE ev_ref.
CONCATENATE column ev_ref INTO ev_ref.
endmethod.
METHOD get_ref.
ev_ref = row.
CONDENSE ev_ref.
CONCATENATE column ev_ref INTO ev_ref.
ENDMETHOD.
method GET_URL.
ev_url = me->location.
endmethod.
METHOD get_url.
ev_url = me->location.
ENDMETHOD.
method IS_INTERNAL.
ev_ret = me->internal.
endmethod.
METHOD is_internal.
ev_ret = me->internal.
ENDMETHOD.
method SET_CELL_REFERENCE.
me->column = zcl_excel_common=>convert_column2alpha( ip_column ). " issue #155 - less restrictive typing for ip_column
me->row = ip_row.
endmethod.
METHOD set_cell_reference.
me->column = zcl_excel_common=>convert_column2alpha( ip_column ). " issue #155 - less restrictive typing for ip_column
me->row = ip_row.
ENDMETHOD.
ENDCLASS.

View File

@ -1,162 +1,162 @@
class ZCL_EXCEL_LEGACY_PALETTE definition
public
create public .
CLASS zcl_excel_legacy_palette DEFINITION
PUBLIC
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_LEGACY_PALETTE
*"* do not include other source files here!!!
type-pools ABAP .
TYPE-POOLS abap .
methods CONSTRUCTOR .
methods IS_MODIFIED
returning
value(EP_MODIFIED) type ABAP_BOOL .
methods GET_COLOR
importing
!IP_INDEX type I
returning
value(EP_COLOR) type ZEXCEL_STYLE_COLOR_ARGB
raising
ZCX_EXCEL .
methods GET_COLORS
returning
value(EP_COLORS) type ZEXCEL_T_STYLE_COLOR_ARGB .
methods SET_COLOR
importing
!IP_INDEX type I
!IP_COLOR type ZEXCEL_STYLE_COLOR_ARGB
raising
ZCX_EXCEL .
protected section.
METHODS constructor .
METHODS is_modified
RETURNING
VALUE(ep_modified) TYPE abap_bool .
METHODS get_color
IMPORTING
!ip_index TYPE i
RETURNING
VALUE(ep_color) TYPE zexcel_style_color_argb
RAISING
zcx_excel .
METHODS get_colors
RETURNING
VALUE(ep_colors) TYPE zexcel_t_style_color_argb .
METHODS set_color
IMPORTING
!ip_index TYPE i
!ip_color TYPE zexcel_style_color_argb
RAISING
zcx_excel .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_LEGACY_PALETTE
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_LEGACY_PALETTE
*"* do not include other source files here!!!
data MODIFIED type ABAP_BOOL value ABAP_FALSE. "#EC NOTEXT . . . . . . . . . . " .
data COLORS type ZEXCEL_T_STYLE_COLOR_ARGB .
DATA modified TYPE abap_bool VALUE abap_false. "#EC NOTEXT . . . . . . . . . . " .
DATA colors TYPE zexcel_t_style_color_argb .
ENDCLASS.
CLASS ZCL_EXCEL_LEGACY_PALETTE IMPLEMENTATION.
CLASS zcl_excel_legacy_palette IMPLEMENTATION.
method CONSTRUCTOR.
" default Excel palette based on
" http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.indexedcolors.aspx
METHOD constructor.
" default Excel palette based on
" http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.indexedcolors.aspx
APPEND '00000000' TO colors.
APPEND '00FFFFFF' TO colors.
APPEND '00FF0000' TO colors.
APPEND '0000FF00' TO colors.
APPEND '000000FF' TO colors.
APPEND '00FFFF00' TO colors.
APPEND '00FF00FF' TO colors.
APPEND '0000FFFF' TO colors.
APPEND '00000000' TO colors.
APPEND '00FFFFFF' TO colors.
APPEND '00000000' TO colors.
APPEND '00FFFFFF' TO colors.
APPEND '00FF0000' TO colors.
APPEND '0000FF00' TO colors.
APPEND '000000FF' TO colors.
APPEND '00FFFF00' TO colors.
APPEND '00FF00FF' TO colors.
APPEND '0000FFFF' TO colors.
APPEND '00000000' TO colors.
APPEND '00FFFFFF' TO colors.
APPEND '00FF0000' TO colors.
APPEND '0000FF00' TO colors.
APPEND '000000FF' TO colors.
APPEND '00FFFF00' TO colors.
APPEND '00FF00FF' TO colors.
APPEND '0000FFFF' TO colors.
APPEND '00800000' TO colors.
APPEND '00008000' TO colors.
APPEND '00000080' TO colors.
APPEND '00808000' TO colors.
APPEND '00FF0000' TO colors.
APPEND '0000FF00' TO colors.
APPEND '000000FF' TO colors.
APPEND '00FFFF00' TO colors.
APPEND '00FF00FF' TO colors.
APPEND '0000FFFF' TO colors.
APPEND '00800000' TO colors.
APPEND '00008000' TO colors.
APPEND '00000080' TO colors.
APPEND '00808000' TO colors.
APPEND '00800080' TO colors.
APPEND '00008080' TO colors.
APPEND '00C0C0C0' TO colors.
APPEND '00808080' TO colors.
APPEND '009999FF' TO colors.
APPEND '00993366' TO colors.
APPEND '00FFFFCC' TO colors.
APPEND '00CCFFFF' TO colors.
APPEND '00660066' TO colors.
APPEND '00FF8080' TO colors.
APPEND '00800080' TO colors.
APPEND '00008080' TO colors.
APPEND '00C0C0C0' TO colors.
APPEND '00808080' TO colors.
APPEND '009999FF' TO colors.
APPEND '00993366' TO colors.
APPEND '00FFFFCC' TO colors.
APPEND '00CCFFFF' TO colors.
APPEND '00660066' TO colors.
APPEND '00FF8080' TO colors.
APPEND '000066CC' TO colors.
APPEND '00CCCCFF' TO colors.
APPEND '00000080' TO colors.
APPEND '00FF00FF' TO colors.
APPEND '00FFFF00' TO colors.
APPEND '0000FFFF' TO colors.
APPEND '00800080' TO colors.
APPEND '00800000' TO colors.
APPEND '00008080' TO colors.
APPEND '000000FF' TO colors.
APPEND '000066CC' TO colors.
APPEND '00CCCCFF' TO colors.
APPEND '00000080' TO colors.
APPEND '00FF00FF' TO colors.
APPEND '00FFFF00' TO colors.
APPEND '0000FFFF' TO colors.
APPEND '00800080' TO colors.
APPEND '00800000' TO colors.
APPEND '00008080' TO colors.
APPEND '000000FF' TO colors.
APPEND '0000CCFF' TO colors.
APPEND '00CCFFFF' TO colors.
APPEND '00CCFFCC' TO colors.
APPEND '00FFFF99' TO colors.
APPEND '0099CCFF' TO colors.
APPEND '00FF99CC' TO colors.
APPEND '00CC99FF' TO colors.
APPEND '00FFCC99' TO colors.
APPEND '003366FF' TO colors.
APPEND '0033CCCC' TO colors.
APPEND '0000CCFF' TO colors.
APPEND '00CCFFFF' TO colors.
APPEND '00CCFFCC' TO colors.
APPEND '00FFFF99' TO colors.
APPEND '0099CCFF' TO colors.
APPEND '00FF99CC' TO colors.
APPEND '00CC99FF' TO colors.
APPEND '00FFCC99' TO colors.
APPEND '003366FF' TO colors.
APPEND '0033CCCC' TO colors.
APPEND '0099CC00' TO colors.
APPEND '00FFCC00' TO colors.
APPEND '00FF9900' TO colors.
APPEND '00FF6600' TO colors.
APPEND '00666699' TO colors.
APPEND '00969696' TO colors.
APPEND '00003366' TO colors.
APPEND '00339966' TO colors.
APPEND '00003300' TO colors.
APPEND '00333300' TO colors.
APPEND '0099CC00' TO colors.
APPEND '00FFCC00' TO colors.
APPEND '00FF9900' TO colors.
APPEND '00FF6600' TO colors.
APPEND '00666699' TO colors.
APPEND '00969696' TO colors.
APPEND '00003366' TO colors.
APPEND '00339966' TO colors.
APPEND '00003300' TO colors.
APPEND '00333300' TO colors.
APPEND '00993300' TO colors.
APPEND '00993366' TO colors.
APPEND '00333399' TO colors.
APPEND '00333333' TO colors.
APPEND '00993300' TO colors.
APPEND '00993366' TO colors.
APPEND '00333399' TO colors.
APPEND '00333333' TO colors.
endmethod.
ENDMETHOD.
method GET_COLOR.
DATA: lv_index type i.
METHOD get_color.
DATA: lv_index TYPE i.
lv_index = ip_index + 1.
READ TABLE colors INTO ep_color INDEX lv_index.
IF sy-subrc <> 0.
zcx_excel=>raise_text( 'Invalid color index' ).
ENDIF.
endmethod.
lv_index = ip_index + 1.
READ TABLE colors INTO ep_color INDEX lv_index.
IF sy-subrc <> 0.
zcx_excel=>raise_text( 'Invalid color index' ).
ENDIF.
ENDMETHOD.
method GET_COLORS.
ep_colors = colors.
endmethod.
METHOD get_colors.
ep_colors = colors.
ENDMETHOD.
method IS_MODIFIED.
ep_modified = modified.
endmethod.
METHOD is_modified.
ep_modified = modified.
ENDMETHOD.
method SET_COLOR.
DATA: lv_index TYPE i.
METHOD set_color.
DATA: lv_index TYPE i.
FIELD-SYMBOLS: <lv_color> LIKE LINE OF colors.
FIELD-SYMBOLS: <lv_color> LIKE LINE OF colors.
lv_index = ip_index + 1.
READ TABLE colors ASSIGNING <lv_color> INDEX lv_index.
IF sy-subrc <> 0.
zcx_excel=>raise_text( 'Invalid color index' ).
ENDIF.
lv_index = ip_index + 1.
READ TABLE colors ASSIGNING <lv_color> INDEX lv_index.
IF sy-subrc <> 0.
zcx_excel=>raise_text( 'Invalid color index' ).
ENDIF.
IF <lv_color> <> ip_color.
modified = abap_true.
<lv_color> = ip_color.
ENDIF.
IF <lv_color> <> ip_color.
modified = abap_true.
<lv_color> = ip_color.
ENDIF.
endmethod.
ENDMETHOD.
ENDCLASS.

View File

@ -1,27 +1,27 @@
class ZCL_EXCEL_OBSOLETE_FUNC_WRAP definition
public
create public .
CLASS zcl_excel_obsolete_func_wrap DEFINITION
PUBLIC
CREATE PUBLIC .
public section.
PUBLIC SECTION.
class-methods GUID_CREATE
returning
value(RV_GUID_16) type GUID_16 .
protected section.
private section.
CLASS-METHODS guid_create
RETURNING
VALUE(rv_guid_16) TYPE guid_16 .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_OBSOLETE_FUNC_WRAP IMPLEMENTATION.
CLASS zcl_excel_obsolete_func_wrap IMPLEMENTATION.
METHOD guid_create.
METHOD guid_create.
TRY.
rv_guid_16 = cl_system_uuid=>if_system_uuid_static~create_uuid_x16( ).
CATCH cx_uuid_error.
ENDTRY.
TRY.
rv_guid_16 = cl_system_uuid=>if_system_uuid_static~create_uuid_x16( ).
CATCH cx_uuid_error.
ENDTRY.
*--------------------------------------------------------------------*
* If you are on a release that does not yet have the class cl_system_uuid
@ -34,5 +34,5 @@ METHOD guid_create.
* IMPORTING
* ev_guid_16 = rv_guid_16.
ENDMETHOD.
ENDMETHOD.
ENDCLASS.

View File

@ -1,45 +1,45 @@
class ZCL_EXCEL_PROPERTIES definition
public
final
create public .
CLASS zcl_excel_properties DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
data CREATOR type ZEXCEL_CREATOR value 'Ivan Femia'. "#EC NOTEXT . . . " .
data LASTMODIFIEDBY type ZEXCEL_CREATOR value 'Ivan Femia'. "#EC NOTEXT . . . " .
data CREATED type TIMESTAMPL .
data MODIFIED type TIMESTAMPL .
data TITLE type ZEXCEL_TITLE value 'abap2xlsx'. "#EC NOTEXT . . . " .
data SUBJECT type ZEXCEL_SUBJECT .
data DESCRIPTION type ZEXCEL_DESCRIPTION value 'Created using abap2xlsx'. "#EC NOTEXT . . . " .
data KEYWORDS type ZEXCEL_KEYWORDS .
data CATEGORY type ZEXCEL_CATEGORY .
data COMPANY type ZEXCEL_COMPANY value 'abap2xlsx'. "#EC NOTEXT . . . " .
data APPLICATION type ZEXCEL_APPLICATION value 'Microsoft Excel'. "#EC NOTEXT . . . " .
data DOCSECURITY type ZEXCEL_DOCSECURITY value '0'. "#EC NOTEXT . . . " .
data SCALECROP type ZEXCEL_SCALECROP value ''. "#EC NOTEXT . . . " .
data LINKSUPTODATE type FLAG .
data SHAREDDOC type FLAG .
data HYPERLINKSCHANGED type FLAG .
data APPVERSION type ZEXCEL_APPVERSION value '12.0000'. "#EC NOTEXT . . . " .
DATA creator TYPE zexcel_creator VALUE 'Ivan Femia'. "#EC NOTEXT . . . " .
DATA lastmodifiedby TYPE zexcel_creator VALUE 'Ivan Femia'. "#EC NOTEXT . . . " .
DATA created TYPE timestampl .
DATA modified TYPE timestampl .
DATA title TYPE zexcel_title VALUE 'abap2xlsx'. "#EC NOTEXT . . . " .
DATA subject TYPE zexcel_subject .
DATA description TYPE zexcel_description VALUE 'Created using abap2xlsx'. "#EC NOTEXT . . . " .
DATA keywords TYPE zexcel_keywords .
DATA category TYPE zexcel_category .
DATA company TYPE zexcel_company VALUE 'abap2xlsx'. "#EC NOTEXT . . . " .
DATA application TYPE zexcel_application VALUE 'Microsoft Excel'. "#EC NOTEXT . . . " .
DATA docsecurity TYPE zexcel_docsecurity VALUE '0'. "#EC NOTEXT . . . " .
DATA scalecrop TYPE zexcel_scalecrop VALUE ''. "#EC NOTEXT . . . " .
DATA linksuptodate TYPE flag .
DATA shareddoc TYPE flag .
DATA hyperlinkschanged TYPE flag .
DATA appversion TYPE zexcel_appversion VALUE '12.0000'. "#EC NOTEXT . . . " .
methods CONSTRUCTOR .
protected section.
private section.
METHODS constructor .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_PROPERTIES IMPLEMENTATION.
CLASS zcl_excel_properties IMPLEMENTATION.
method CONSTRUCTOR.
METHOD constructor.
DATA: lv_timestamp TYPE timestampl.
DATA: lv_timestamp TYPE timestampl.
GET TIME STAMP FIELD lv_timestamp.
created = lv_timestamp.
modified = lv_timestamp.
GET TIME STAMP FIELD lv_timestamp.
created = lv_timestamp.
modified = lv_timestamp.
endmethod.
ENDMETHOD.
ENDCLASS.

View File

@ -1,83 +1,83 @@
class ZCL_EXCEL_RANGE definition
public
final
create public .
CLASS zcl_excel_range DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_RANGE
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
constants GCV_PRINT_TITLE_NAME type STRING value '_xlnm.Print_Titles'. "#EC NOTEXT
data NAME type ZEXCEL_RANGE_NAME .
data GUID type ZEXCEL_RANGE_GUID .
CONSTANTS gcv_print_title_name TYPE string VALUE '_xlnm.Print_Titles'. "#EC NOTEXT
DATA name TYPE zexcel_range_name .
DATA guid TYPE zexcel_range_guid .
methods GET_GUID
returning
value(EP_GUID) type ZEXCEL_RANGE_GUID .
methods SET_VALUE
importing
!IP_SHEET_NAME type ZEXCEL_SHEET_TITLE
!IP_START_ROW type ZEXCEL_CELL_ROW
!IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!IP_STOP_ROW type ZEXCEL_CELL_ROW
!IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
methods GET_VALUE
returning
value(EP_VALUE) type ZEXCEL_RANGE_VALUE .
methods SET_RANGE_VALUE
importing
!IP_VALUE type ZEXCEL_RANGE_VALUE .
METHODS get_guid
RETURNING
VALUE(ep_guid) TYPE zexcel_range_guid .
METHODS set_value
IMPORTING
!ip_sheet_name TYPE zexcel_sheet_title
!ip_start_row TYPE zexcel_cell_row
!ip_start_column TYPE zexcel_cell_column_alpha
!ip_stop_row TYPE zexcel_cell_row
!ip_stop_column TYPE zexcel_cell_column_alpha .
METHODS get_value
RETURNING
VALUE(ep_value) TYPE zexcel_range_value .
METHODS set_range_value
IMPORTING
!ip_value TYPE zexcel_range_value .
*"* protected components of class ZABAP_EXCEL_WORKSHEET
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_RANGE
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data VALUE type ZEXCEL_RANGE_VALUE .
DATA value TYPE zexcel_range_value .
ENDCLASS.
CLASS ZCL_EXCEL_RANGE IMPLEMENTATION.
CLASS zcl_excel_range IMPLEMENTATION.
method GET_GUID.
METHOD get_guid.
ep_guid = me->guid.
ep_guid = me->guid.
endmethod.
ENDMETHOD.
method GET_VALUE.
METHOD get_value.
ep_value = me->value.
ep_value = me->value.
endmethod.
ENDMETHOD.
method SET_RANGE_VALUE.
me->value = ip_value.
endmethod.
METHOD set_range_value.
me->value = ip_value.
ENDMETHOD.
method SET_VALUE.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7,
lv_value TYPE string.
lv_stop_row_c = ip_stop_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_start_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
lv_value = ip_sheet_name.
me->value = zcl_excel_common=>escape_string( ip_value = lv_value ).
METHOD set_value.
DATA: lv_start_row_c TYPE char7,
lv_stop_row_c TYPE char7,
lv_value TYPE string.
lv_stop_row_c = ip_stop_row.
SHIFT lv_stop_row_c RIGHT DELETING TRAILING space.
SHIFT lv_stop_row_c LEFT DELETING LEADING space.
lv_start_row_c = ip_start_row.
SHIFT lv_start_row_c RIGHT DELETING TRAILING space.
SHIFT lv_start_row_c LEFT DELETING LEADING space.
lv_value = ip_sheet_name.
me->value = zcl_excel_common=>escape_string( ip_value = lv_value ).
IF ip_stop_column IS INITIAL AND ip_stop_row IS INITIAL.
CONCATENATE me->value '!$' ip_start_column '$' lv_start_row_c INTO me->value.
ELSE.
CONCATENATE me->value '!$' ip_start_column '$' lv_start_row_c ':$' ip_stop_column '$' lv_stop_row_c INTO me->value.
ENDIF.
endmethod.
IF ip_stop_column IS INITIAL AND ip_stop_row IS INITIAL.
CONCATENATE me->value '!$' ip_start_column '$' lv_start_row_c INTO me->value.
ELSE.
CONCATENATE me->value '!$' ip_start_column '$' lv_start_row_c ':$' ip_stop_column '$' lv_stop_row_c INTO me->value.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,88 +1,88 @@
class ZCL_EXCEL_RANGES definition
public
final
create public .
CLASS zcl_excel_ranges DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_RANGES
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
methods ADD
importing
!IP_RANGE type ref to ZCL_EXCEL_RANGE .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_RANGE) type ref to ZCL_EXCEL_RANGE .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IP_RANGE type ref to ZCL_EXCEL_RANGE .
methods SIZE
returning
value(EP_SIZE) type I .
METHODS add
IMPORTING
!ip_range TYPE REF TO zcl_excel_range .
METHODS clear .
METHODS constructor .
METHODS get
IMPORTING
!ip_index TYPE i
RETURNING
VALUE(eo_range) TYPE REF TO zcl_excel_range .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
METHODS remove
IMPORTING
!ip_range TYPE REF TO zcl_excel_range .
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data RANGES type ref to CL_OBJECT_COLLECTION .
DATA ranges TYPE REF TO cl_object_collection .
ENDCLASS.
CLASS ZCL_EXCEL_RANGES IMPLEMENTATION.
CLASS zcl_excel_ranges IMPLEMENTATION.
method ADD.
ranges->add( ip_range ).
endmethod.
METHOD add.
ranges->add( ip_range ).
ENDMETHOD.
method CLEAR.
ranges->clear( ).
endmethod.
METHOD clear.
ranges->clear( ).
ENDMETHOD.
method CONSTRUCTOR.
METHOD constructor.
CREATE OBJECT ranges.
CREATE OBJECT ranges.
endmethod.
ENDMETHOD.
method GET.
eo_range ?= ranges->get( ip_index ).
endmethod.
METHOD get.
eo_range ?= ranges->get( ip_index ).
ENDMETHOD.
method GET_ITERATOR.
eo_iterator ?= ranges->get_iterator( ).
endmethod.
METHOD get_iterator.
eo_iterator ?= ranges->get_iterator( ).
ENDMETHOD.
method IS_EMPTY.
is_empty = ranges->is_empty( ).
endmethod.
METHOD is_empty.
is_empty = ranges->is_empty( ).
ENDMETHOD.
method REMOVE.
ranges->remove( ip_range ).
endmethod.
METHOD remove.
ranges->remove( ip_range ).
ENDMETHOD.
method SIZE.
ep_size = ranges->size( ).
endmethod.
METHOD size.
ep_size = ranges->size( ).
ENDMETHOD.
ENDCLASS.

File diff suppressed because it is too large Load Diff

View File

@ -1,314 +1,314 @@
class ZCL_EXCEL_READER_HUGE_FILE definition
public
inheriting from ZCL_EXCEL_READER_2007
create public .
CLASS zcl_excel_reader_huge_file DEFINITION
PUBLIC
INHERITING FROM zcl_excel_reader_2007
CREATE PUBLIC .
public section.
protected section.
PUBLIC SECTION.
PROTECTED SECTION.
methods LOAD_SHARED_STRINGS
redefinition .
methods LOAD_WORKSHEET
redefinition .
private section.
METHODS load_shared_strings
REDEFINITION .
METHODS load_worksheet
REDEFINITION .
PRIVATE SECTION.
types:
begin of t_cell_content,
datatype type zexcel_cell_data_type,
value type zexcel_cell_value,
formula type zexcel_cell_formula,
style type zexcel_cell_style,
end of t_cell_content .
types:
begin of t_cell_coord,
row type zexcel_cell_row,
column type zexcel_cell_column_alpha,
end of t_cell_coord .
types:
begin of t_cell.
include type t_cell_coord as coord.
include type t_cell_content as content.
types: end of t_cell .
TYPES:
BEGIN OF t_cell_content,
datatype TYPE zexcel_cell_data_type,
value TYPE zexcel_cell_value,
formula TYPE zexcel_cell_formula,
style TYPE zexcel_cell_style,
END OF t_cell_content .
TYPES:
BEGIN OF t_cell_coord,
row TYPE zexcel_cell_row,
column TYPE zexcel_cell_column_alpha,
END OF t_cell_coord .
TYPES:
BEGIN OF t_cell.
INCLUDE TYPE t_cell_coord AS coord.
INCLUDE TYPE t_cell_content AS content.
TYPES: END OF t_cell .
interface IF_SXML_NODE load .
constants C_END_OF_STREAM type IF_SXML_NODE=>NODE_TYPE value IF_SXML_NODE=>CO_NT_FINAL. "#EC NOTEXT
constants C_ELEMENT_OPEN type IF_SXML_NODE=>NODE_TYPE value IF_SXML_NODE=>CO_NT_ELEMENT_OPEN. "#EC NOTEXT
constants C_ELEMENT_CLOSE type IF_SXML_NODE=>NODE_TYPE value IF_SXML_NODE=>CO_NT_ELEMENT_CLOSE. "#EC NOTEXT
data:
begin of gs_buffer_style,
index type i value -1,
guid type zexcel_cell_style,
end of gs_buffer_style .
constants C_ATTRIBUTE type IF_SXML_NODE=>NODE_TYPE value IF_SXML_NODE=>CO_NT_ATTRIBUTE. "#EC NOTEXT
constants C_NODE_VALUE type IF_SXML_NODE=>NODE_TYPE value IF_SXML_NODE=>CO_NT_VALUE. "#EC NOTEXT
INTERFACE if_sxml_node LOAD .
CONSTANTS c_end_of_stream TYPE if_sxml_node=>node_type VALUE if_sxml_node=>co_nt_final. "#EC NOTEXT
CONSTANTS c_element_open TYPE if_sxml_node=>node_type VALUE if_sxml_node=>co_nt_element_open. "#EC NOTEXT
CONSTANTS c_element_close TYPE if_sxml_node=>node_type VALUE if_sxml_node=>co_nt_element_close. "#EC NOTEXT
DATA:
BEGIN OF gs_buffer_style,
index TYPE i VALUE -1,
guid TYPE zexcel_cell_style,
END OF gs_buffer_style .
CONSTANTS c_attribute TYPE if_sxml_node=>node_type VALUE if_sxml_node=>co_nt_attribute. "#EC NOTEXT
CONSTANTS c_node_value TYPE if_sxml_node=>node_type VALUE if_sxml_node=>co_nt_value. "#EC NOTEXT
methods SKIP_TO
importing
!IV_ELEMENT_NAME type STRING
!IO_READER type ref to IF_SXML_READER
raising
LCX_NOT_FOUND .
methods FILL_CELL_FROM_ATTRIBUTES
importing
!IO_READER type ref to IF_SXML_READER
returning
value(ES_CELL) type T_CELL
raising
LCX_NOT_FOUND .
methods READ_SHARED_STRINGS
importing
!IO_READER type ref to IF_SXML_READER
returning
value(ET_SHARED_STRINGS) type STRINGTAB .
methods GET_CELL_COORD
importing
!IV_COORD type STRING
returning
value(ES_COORD) type T_CELL_COORD .
methods PUT_CELL_TO_WORKSHEET
importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
!IS_CELL type T_CELL .
methods GET_SHARED_STRING
importing
!IV_INDEX type ANY
returning
value(EV_VALUE) type STRING
raising
LCX_NOT_FOUND .
methods GET_STYLE
importing
!IV_INDEX type ANY
returning
value(EV_STYLE_GUID) type ZEXCEL_CELL_STYLE
raising
LCX_NOT_FOUND .
methods READ_WORKSHEET_DATA
importing
!IO_READER type ref to IF_SXML_READER
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
raising
LCX_NOT_FOUND .
methods GET_SXML_READER
importing
!IV_PATH type STRING
returning
value(EO_READER) type ref to IF_SXML_READER
raising
ZCX_EXCEL .
METHODS skip_to
IMPORTING
!iv_element_name TYPE string
!io_reader TYPE REF TO if_sxml_reader
RAISING
lcx_not_found .
METHODS fill_cell_from_attributes
IMPORTING
!io_reader TYPE REF TO if_sxml_reader
RETURNING
VALUE(es_cell) TYPE t_cell
RAISING
lcx_not_found .
METHODS read_shared_strings
IMPORTING
!io_reader TYPE REF TO if_sxml_reader
RETURNING
VALUE(et_shared_strings) TYPE stringtab .
METHODS get_cell_coord
IMPORTING
!iv_coord TYPE string
RETURNING
VALUE(es_coord) TYPE t_cell_coord .
METHODS put_cell_to_worksheet
IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet
!is_cell TYPE t_cell .
METHODS get_shared_string
IMPORTING
!iv_index TYPE any
RETURNING
VALUE(ev_value) TYPE string
RAISING
lcx_not_found .
METHODS get_style
IMPORTING
!iv_index TYPE any
RETURNING
VALUE(ev_style_guid) TYPE zexcel_cell_style
RAISING
lcx_not_found .
METHODS read_worksheet_data
IMPORTING
!io_reader TYPE REF TO if_sxml_reader
!io_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
lcx_not_found .
METHODS get_sxml_reader
IMPORTING
!iv_path TYPE string
RETURNING
VALUE(eo_reader) TYPE REF TO if_sxml_reader
RAISING
zcx_excel .
ENDCLASS.
CLASS ZCL_EXCEL_READER_HUGE_FILE IMPLEMENTATION.
CLASS zcl_excel_reader_huge_file IMPLEMENTATION.
method FILL_CELL_FROM_ATTRIBUTES.
METHOD fill_cell_from_attributes.
while io_reader->node_type ne c_end_of_stream.
io_reader->next_attribute( ).
if io_reader->node_type ne c_attribute.
exit.
endif.
case io_reader->name.
when `t`.
es_cell-datatype = io_reader->value.
when `s`.
if io_reader->value is not initial.
es_cell-style = get_style( io_reader->value ).
endif.
when `r`.
es_cell-coord = get_cell_coord( io_reader->value ).
endcase.
endwhile.
WHILE io_reader->node_type NE c_end_of_stream.
io_reader->next_attribute( ).
IF io_reader->node_type NE c_attribute.
EXIT.
ENDIF.
CASE io_reader->name.
WHEN `t`.
es_cell-datatype = io_reader->value.
WHEN `s`.
IF io_reader->value IS NOT INITIAL.
es_cell-style = get_style( io_reader->value ).
ENDIF.
WHEN `r`.
es_cell-coord = get_cell_coord( io_reader->value ).
ENDCASE.
ENDWHILE.
endmethod.
ENDMETHOD.
method GET_CELL_COORD.
METHOD get_cell_coord.
zcl_excel_common=>convert_columnrow2column_a_row(
exporting
i_columnrow = iv_coord
importing
e_column = es_coord-column
e_row = es_coord-row
).
zcl_excel_common=>convert_columnrow2column_a_row(
EXPORTING
i_columnrow = iv_coord
IMPORTING
e_column = es_coord-column
e_row = es_coord-row
).
endmethod.
ENDMETHOD.
method GET_SHARED_STRING.
data: lv_tabix type i,
lv_error type string.
lv_tabix = iv_index + 1.
read table shared_strings into ev_value index lv_tabix.
if sy-subrc ne 0.
concatenate 'Entry ' iv_index ' not found in Shared String Table' into lv_error.
raise exception type lcx_not_found
exporting
error = lv_error.
endif.
endmethod.
method GET_STYLE.
data: lv_tabix type i,
lo_style type ref to zcl_excel_style,
lv_error type string.
if gs_buffer_style-index ne iv_index.
METHOD get_shared_string.
DATA: lv_tabix TYPE i,
lv_error TYPE string.
lv_tabix = iv_index + 1.
read table styles into lo_style index lv_tabix.
if sy-subrc ne 0.
concatenate 'Entry ' iv_index ' not found in Style Table' into lv_error.
raise exception type lcx_not_found
exporting
READ TABLE shared_strings INTO ev_value INDEX lv_tabix.
IF sy-subrc NE 0.
CONCATENATE 'Entry ' iv_index ' not found in Shared String Table' INTO lv_error.
RAISE EXCEPTION TYPE lcx_not_found
EXPORTING
error = lv_error.
else.
gs_buffer_style-index = iv_index.
gs_buffer_style-guid = lo_style->get_guid( ).
endif.
endif.
ev_style_guid = gs_buffer_style-guid.
endmethod.
ENDIF.
ENDMETHOD.
method GET_SXML_READER.
METHOD get_style.
data: lv_xml type xstring.
DATA: lv_tabix TYPE i,
lo_style TYPE REF TO zcl_excel_style,
lv_error TYPE string.
lv_xml = get_from_zip_archive( iv_path ).
eo_reader = cl_sxml_string_reader=>create( lv_xml ).
IF gs_buffer_style-index NE iv_index.
lv_tabix = iv_index + 1.
READ TABLE styles INTO lo_style INDEX lv_tabix.
IF sy-subrc NE 0.
CONCATENATE 'Entry ' iv_index ' not found in Style Table' INTO lv_error.
RAISE EXCEPTION TYPE lcx_not_found
EXPORTING
error = lv_error.
ELSE.
gs_buffer_style-index = iv_index.
gs_buffer_style-guid = lo_style->get_guid( ).
ENDIF.
ENDIF.
endmethod.
ev_style_guid = gs_buffer_style-guid.
ENDMETHOD.
method LOAD_SHARED_STRINGS.
METHOD get_sxml_reader.
data: lo_reader type ref to if_sxml_reader.
DATA: lv_xml TYPE xstring.
lo_reader = get_sxml_reader( ip_path ).
lv_xml = get_from_zip_archive( iv_path ).
eo_reader = cl_sxml_string_reader=>create( lv_xml ).
shared_strings = read_shared_strings( lo_reader ).
endmethod.
ENDMETHOD.
method LOAD_WORKSHEET.
METHOD load_shared_strings.
data: lo_reader type ref to if_sxml_reader.
data: lx_not_found type ref to lcx_not_found.
DATA: lo_reader TYPE REF TO if_sxml_reader.
lo_reader = get_sxml_reader( ip_path ).
lo_reader = get_sxml_reader( ip_path ).
try.
shared_strings = read_shared_strings( lo_reader ).
read_worksheet_data( io_reader = lo_reader
io_worksheet = io_worksheet ).
catch lcx_not_found into lx_not_found.
zcx_excel=>raise_text( lx_not_found->error ).
endtry.
endmethod.
ENDMETHOD.
method PUT_CELL_TO_WORKSHEET.
check is_cell-value is not initial
or is_cell-formula is not initial
or is_cell-style is not initial.
call method io_worksheet->set_cell
exporting
ip_column = is_cell-column
ip_row = is_cell-row
ip_value = is_cell-value
ip_formula = is_cell-formula
ip_data_type = is_cell-datatype
ip_style = is_cell-style.
endmethod.
METHOD load_worksheet.
DATA: lo_reader TYPE REF TO if_sxml_reader.
DATA: lx_not_found TYPE REF TO lcx_not_found.
lo_reader = get_sxml_reader( ip_path ).
TRY.
read_worksheet_data( io_reader = lo_reader
io_worksheet = io_worksheet ).
CATCH lcx_not_found INTO lx_not_found.
zcx_excel=>raise_text( lx_not_found->error ).
ENDTRY.
ENDMETHOD.
method read_shared_strings.
data lv_value type string.
while io_reader->node_type ne c_end_of_stream.
io_reader->next_node( ).
if io_reader->name eq `t`.
case io_reader->node_type .
when c_element_open .
clear lv_value .
when c_node_value .
lv_value = lv_value && io_reader->value .
when c_element_close .
append lv_value to et_shared_strings.
endcase .
endif.
endwhile.
endmethod.
METHOD put_cell_to_worksheet.
CHECK is_cell-value IS NOT INITIAL
OR is_cell-formula IS NOT INITIAL
OR is_cell-style IS NOT INITIAL.
CALL METHOD io_worksheet->set_cell
EXPORTING
ip_column = is_cell-column
ip_row = is_cell-row
ip_value = is_cell-value
ip_formula = is_cell-formula
ip_data_type = is_cell-datatype
ip_style = is_cell-style.
ENDMETHOD.
method READ_WORKSHEET_DATA.
METHOD read_shared_strings.
data: ls_cell type t_cell.
DATA lv_value TYPE string.
WHILE io_reader->node_type NE c_end_of_stream.
io_reader->next_node( ).
IF io_reader->name EQ `t`.
CASE io_reader->node_type .
WHEN c_element_open .
CLEAR lv_value .
WHEN c_node_value .
lv_value = lv_value && io_reader->value .
WHEN c_element_close .
APPEND lv_value TO et_shared_strings.
ENDCASE .
ENDIF.
ENDWHILE.
ENDMETHOD.
METHOD read_worksheet_data.
DATA: ls_cell TYPE t_cell.
* Skip to <sheetData> element
skip_to( iv_element_name = `sheetData` io_reader = io_reader ).
skip_to( iv_element_name = `sheetData` io_reader = io_reader ).
* Main loop: Evaluate the <c> elements and its children
while io_reader->node_type ne c_end_of_stream.
io_reader->next_node( ).
case io_reader->node_type.
when c_element_open.
if io_reader->name eq `c`.
ls_cell = fill_cell_from_attributes( io_reader ).
endif.
when c_node_value.
case io_reader->name.
when `f`.
ls_cell-formula = io_reader->value.
when `v`.
if ls_cell-datatype eq `s`.
ls_cell-value = get_shared_string( io_reader->value ).
else.
WHILE io_reader->node_type NE c_end_of_stream.
io_reader->next_node( ).
CASE io_reader->node_type.
WHEN c_element_open.
IF io_reader->name EQ `c`.
ls_cell = fill_cell_from_attributes( io_reader ).
ENDIF.
WHEN c_node_value.
CASE io_reader->name.
WHEN `f`.
ls_cell-formula = io_reader->value.
WHEN `v`.
IF ls_cell-datatype EQ `s`.
ls_cell-value = get_shared_string( io_reader->value ).
ELSE.
ls_cell-value = io_reader->value.
ENDIF.
WHEN `t` OR `is`.
ls_cell-value = io_reader->value.
endif.
when `t` or `is`.
ls_cell-value = io_reader->value.
endcase.
when c_element_close.
case io_reader->name.
when `c`.
put_cell_to_worksheet( is_cell = ls_cell io_worksheet = io_worksheet ).
when `sheetData`.
exit.
endcase.
endcase.
endwhile.
ENDCASE.
WHEN c_element_close.
CASE io_reader->name.
WHEN `c`.
put_cell_to_worksheet( is_cell = ls_cell io_worksheet = io_worksheet ).
WHEN `sheetData`.
EXIT.
ENDCASE.
ENDCASE.
ENDWHILE.
endmethod.
ENDMETHOD.
method SKIP_TO.
METHOD skip_to.
data: lv_error type string.
DATA: lv_error TYPE string.
* Skip forward to given element
while io_reader->name ne iv_element_name or
io_reader->node_type ne c_element_open.
io_reader->next_node( ).
if io_reader->node_type = c_end_of_stream.
concatenate 'XML error: Didn''t find element <' iv_element_name '>' into lv_error.
raise exception type lcx_not_found
exporting
error = lv_error.
endif.
endwhile.
WHILE io_reader->name NE iv_element_name OR
io_reader->node_type NE c_element_open.
io_reader->next_node( ).
IF io_reader->node_type = c_end_of_stream.
CONCATENATE 'XML error: Didn''t find element <' iv_element_name '>' INTO lv_error.
RAISE EXCEPTION TYPE lcx_not_found
EXPORTING
error = lv_error.
ENDIF.
ENDWHILE.
endmethod.
ENDMETHOD.
ENDCLASS.

View File

@ -1,38 +1,38 @@
class ZCL_EXCEL_READER_XLSM definition
public
inheriting from ZCL_EXCEL_READER_2007
final
create public .
CLASS zcl_excel_reader_xlsm DEFINITION
PUBLIC
INHERITING FROM zcl_excel_reader_2007
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_READER_XLSM
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_READER_XLSM
*"* do not include other source files here!!!
methods LOAD_WORKBOOK
redefinition .
methods LOAD_WORKSHEET
redefinition .
private section.
METHODS load_workbook
REDEFINITION .
METHODS load_worksheet
REDEFINITION .
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_READER_XLSM
*"* do not include other source files here!!!
methods LOAD_VBAPROJECT
importing
!IP_PATH type STRING
!IP_EXCEL type ref to ZCL_EXCEL
raising
ZCX_EXCEL .
METHODS load_vbaproject
IMPORTING
!ip_path TYPE string
!ip_excel TYPE REF TO zcl_excel
RAISING
zcx_excel .
ENDCLASS.
CLASS ZCL_EXCEL_READER_XLSM IMPLEMENTATION.
CLASS zcl_excel_reader_xlsm IMPLEMENTATION.
METHOD load_vbaproject.
METHOD load_vbaproject.
DATA lv_content TYPE xstring.
@ -43,96 +43,96 @@ METHOD load_vbaproject.
ENDMETHOD.
method LOAD_WORKBOOK.
super->load_workbook( EXPORTING iv_workbook_full_filename = iv_workbook_full_filename
io_excel = io_excel ).
METHOD load_workbook.
super->load_workbook( EXPORTING iv_workbook_full_filename = iv_workbook_full_filename
io_excel = io_excel ).
CONSTANTS: lc_vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'.
CONSTANTS: lc_vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'.
DATA: rels_workbook_path TYPE string,
rels_workbook TYPE REF TO if_ixml_document,
path TYPE string,
node TYPE REF TO if_ixml_element,
workbook TYPE REF TO if_ixml_document,
stripped_name TYPE chkfile,
dirname TYPE string,
relationship TYPE t_relationship,
fileversion TYPE t_fileversion,
workbookpr TYPE t_workbookpr.
DATA: rels_workbook_path TYPE string,
rels_workbook TYPE REF TO if_ixml_document,
path TYPE string,
node TYPE REF TO if_ixml_element,
workbook TYPE REF TO if_ixml_document,
stripped_name TYPE chkfile,
dirname TYPE string,
relationship TYPE t_relationship,
fileversion TYPE t_fileversion,
workbookpr TYPE t_workbookpr.
CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = iv_workbook_full_filename
IMPORTING
stripped_name = stripped_name
file_path = dirname.
CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = iv_workbook_full_filename
IMPORTING
stripped_name = stripped_name
file_path = dirname.
" Read Workbook Relationships
CONCATENATE dirname '_rels/' stripped_name '.rels'
INTO rels_workbook_path.
" Read Workbook Relationships
CONCATENATE dirname '_rels/' stripped_name '.rels'
INTO rels_workbook_path.
rels_workbook = me->get_ixml_from_zip_archive( rels_workbook_path ).
rels_workbook = me->get_ixml_from_zip_archive( rels_workbook_path ).
node ?= rels_workbook->find_from_name( 'Relationship' ).
WHILE node IS BOUND.
me->fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ).
node ?= rels_workbook->find_from_name( 'Relationship' ).
WHILE node IS BOUND.
me->fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ).
CASE relationship-type.
WHEN lc_vba_project.
" Read VBA binary
CONCATENATE dirname relationship-target INTO path.
me->load_vbaproject( ip_path = path
ip_excel = io_excel ).
WHEN OTHERS.
ENDCASE.
CASE relationship-type.
WHEN lc_vba_project.
" Read VBA binary
CONCATENATE dirname relationship-target INTO path.
me->load_vbaproject( ip_path = path
ip_excel = io_excel ).
WHEN OTHERS.
ENDCASE.
node ?= node->get_next( ).
ENDWHILE.
node ?= node->get_next( ).
ENDWHILE.
" Read Workbook codeName
workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ).
node ?= workbook->find_from_name( 'fileVersion' ).
IF node IS BOUND.
" Read Workbook codeName
workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ).
node ?= workbook->find_from_name( 'fileVersion' ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = fileversion ).
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = fileversion ).
io_excel->zif_excel_book_vba_project~set_codename( fileversion-codename ).
ENDIF.
" Read Workbook codeName
workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ).
node ?= workbook->find_from_name( 'workbookPr' ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = workbookpr ).
io_excel->zif_excel_book_vba_project~set_codename_pr( workbookpr-codename ).
ENDIF.
endmethod.
METHOD load_worksheet.
super->load_worksheet( EXPORTING ip_path = ip_path
io_worksheet = io_worksheet ).
DATA: node TYPE REF TO if_ixml_element,
worksheet TYPE REF TO if_ixml_document,
sheetpr TYPE t_sheetpr.
" Read Workbook codeName
worksheet = me->get_ixml_from_zip_archive( ip_path ).
node ?= worksheet->find_from_name( 'sheetPr' ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = sheetpr ).
IF sheetpr-codename IS NOT INITIAL.
io_worksheet->zif_excel_sheet_vba_project~set_codename_pr( sheetpr-codename ).
io_excel->zif_excel_book_vba_project~set_codename( fileversion-codename ).
ENDIF.
ENDIF.
ENDMETHOD.
" Read Workbook codeName
workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ).
node ?= workbook->find_from_name( 'workbookPr' ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = workbookpr ).
io_excel->zif_excel_book_vba_project~set_codename_pr( workbookpr-codename ).
ENDIF.
ENDMETHOD.
METHOD load_worksheet.
super->load_worksheet( EXPORTING ip_path = ip_path
io_worksheet = io_worksheet ).
DATA: node TYPE REF TO if_ixml_element,
worksheet TYPE REF TO if_ixml_document,
sheetpr TYPE t_sheetpr.
" Read Workbook codeName
worksheet = me->get_ixml_from_zip_archive( ip_path ).
node ?= worksheet->find_from_name( 'sheetPr' ).
IF node IS BOUND.
fill_struct_from_attributes( EXPORTING ip_element = node
CHANGING cp_structure = sheetpr ).
IF sheetpr-codename IS NOT INITIAL.
io_worksheet->zif_excel_sheet_vba_project~set_codename_pr( sheetpr-codename ).
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,234 +1,234 @@
class ZCL_EXCEL_ROW definition
public
final
create public .
CLASS zcl_excel_row DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!!
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
methods CONSTRUCTOR
importing
!IP_INDEX type INT4 default 0 .
methods GET_COLLAPSED
importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET optional
returning
value(R_COLLAPSED) type abap_bool .
methods GET_OUTLINE_LEVEL
importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET optional
returning
value(R_OUTLINE_LEVEL) type INT4 .
methods GET_ROW_HEIGHT
returning
value(R_ROW_HEIGHT) type FLOAT .
methods GET_CUSTOM_HEIGHT
returning
value(R_CUSTOM_HEIGHT) type ABAP_BOOL .
methods GET_ROW_INDEX
returning
value(R_ROW_INDEX) type INT4 .
methods GET_VISIBLE
importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET optional
returning
value(R_VISIBLE) type abap_bool .
methods GET_XF_INDEX
returning
value(R_XF_INDEX) type INT4 .
methods SET_COLLAPSED
importing
!IP_COLLAPSED type abap_bool .
methods SET_OUTLINE_LEVEL
importing
!IP_OUTLINE_LEVEL type INT4
raising
ZCX_EXCEL .
methods SET_ROW_HEIGHT
importing
!IP_ROW_HEIGHT type SIMPLE
!IP_CUSTOM_HEIGHT type abap_bool default abap_true
raising
ZCX_EXCEL .
methods SET_ROW_INDEX
importing
!IP_INDEX type INT4 .
methods SET_VISIBLE
importing
!IP_VISIBLE type abap_bool .
methods SET_XF_INDEX
importing
!IP_XF_INDEX type INT4 .
METHODS constructor
IMPORTING
!ip_index TYPE int4 DEFAULT 0 .
METHODS get_collapsed
IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet OPTIONAL
RETURNING
VALUE(r_collapsed) TYPE abap_bool .
METHODS get_outline_level
IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet OPTIONAL
RETURNING
VALUE(r_outline_level) TYPE int4 .
METHODS get_row_height
RETURNING
VALUE(r_row_height) TYPE float .
METHODS get_custom_height
RETURNING
VALUE(r_custom_height) TYPE abap_bool .
METHODS get_row_index
RETURNING
VALUE(r_row_index) TYPE int4 .
METHODS get_visible
IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet OPTIONAL
RETURNING
VALUE(r_visible) TYPE abap_bool .
METHODS get_xf_index
RETURNING
VALUE(r_xf_index) TYPE int4 .
METHODS set_collapsed
IMPORTING
!ip_collapsed TYPE abap_bool .
METHODS set_outline_level
IMPORTING
!ip_outline_level TYPE int4
RAISING
zcx_excel .
METHODS set_row_height
IMPORTING
!ip_row_height TYPE simple
!ip_custom_height TYPE abap_bool DEFAULT abap_true
RAISING
zcx_excel .
METHODS set_row_index
IMPORTING
!ip_index TYPE int4 .
METHODS set_visible
IMPORTING
!ip_visible TYPE abap_bool .
METHODS set_xf_index
IMPORTING
!ip_xf_index TYPE int4 .
*"* protected components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data ROW_INDEX type INT4 .
data ROW_HEIGHT type FLOAT .
data VISIBLE type abap_bool .
data OUTLINE_LEVEL type INT4 value 0. "#EC NOTEXT . . . . . . . . . " .
data COLLAPSED type abap_bool .
data XF_INDEX type INT4 .
data CUSTOM_HEIGHT type abap_bool .
DATA row_index TYPE int4 .
DATA row_height TYPE float .
DATA visible TYPE abap_bool .
DATA outline_level TYPE int4 VALUE 0. "#EC NOTEXT . . . . . . . . . " .
DATA collapsed TYPE abap_bool .
DATA xf_index TYPE int4 .
DATA custom_height TYPE abap_bool .
ENDCLASS.
CLASS ZCL_EXCEL_ROW IMPLEMENTATION.
CLASS zcl_excel_row IMPLEMENTATION.
method CONSTRUCTOR.
" Initialise values
me->row_index = ip_index.
me->row_height = -1.
me->visible = abap_true.
me->outline_level = 0.
me->collapsed = abap_false.
METHOD constructor.
" Initialise values
me->row_index = ip_index.
me->row_height = -1.
me->visible = abap_true.
me->outline_level = 0.
me->collapsed = abap_false.
" set row dimension as unformatted by default
me->xf_index = 0.
me->custom_height = abap_false.
endmethod.
" set row dimension as unformatted by default
me->xf_index = 0.
me->custom_height = abap_false.
ENDMETHOD.
METHOD GET_COLLAPSED.
METHOD get_collapsed.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
lv_previous_row TYPE i,
lv_following_row TYPE i.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
lv_previous_row TYPE i,
lv_following_row TYPE i.
r_collapsed = me->collapsed.
r_collapsed = me->collapsed.
CHECK r_collapsed = abap_false. " Maybe new method for outlines is being used
CHECK io_worksheet IS BOUND.
CHECK r_collapsed = abap_false. " Maybe new method for outlines is being used
CHECK io_worksheet IS BOUND.
* If an outline is collapsed ( even inside an outer outline ) the line following the last line
* of the group gets the flag "collapsed"
IF io_worksheet->zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=>c_below_off.
lv_following_row = me->row_index + 1.
lt_row_outlines = io_worksheet->get_row_outlines( ).
READ TABLE lt_row_outlines TRANSPORTING NO FIELDS WITH KEY row_from = lv_following_row " first line of an outline
collapsed = abap_true. " that is collapsed
ELSE.
lv_previous_row = me->row_index - 1.
lt_row_outlines = io_worksheet->get_row_outlines( ).
READ TABLE lt_row_outlines TRANSPORTING NO FIELDS WITH KEY row_to = lv_previous_row " last line of an outline
collapsed = abap_true. " that is collapsed
ENDIF.
CHECK sy-subrc = 0. " ok - we found it
r_collapsed = abap_true.
IF io_worksheet->zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=>c_below_off.
lv_following_row = me->row_index + 1.
lt_row_outlines = io_worksheet->get_row_outlines( ).
READ TABLE lt_row_outlines TRANSPORTING NO FIELDS WITH KEY row_from = lv_following_row " first line of an outline
collapsed = abap_true. " that is collapsed
ELSE.
lv_previous_row = me->row_index - 1.
lt_row_outlines = io_worksheet->get_row_outlines( ).
READ TABLE lt_row_outlines TRANSPORTING NO FIELDS WITH KEY row_to = lv_previous_row " last line of an outline
collapsed = abap_true. " that is collapsed
ENDIF.
CHECK sy-subrc = 0. " ok - we found it
r_collapsed = abap_true.
ENDMETHOD.
ENDMETHOD.
METHOD GET_OUTLINE_LEVEL.
METHOD get_outline_level.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.
* if someone has set the outline level explicitly - just use that
IF me->outline_level IS NOT INITIAL.
r_outline_level = me->outline_level.
RETURN.
ENDIF.
IF me->outline_level IS NOT INITIAL.
r_outline_level = me->outline_level.
RETURN.
ENDIF.
* Maybe we can use the outline information in the worksheet
CHECK io_worksheet IS BOUND.
CHECK io_worksheet IS BOUND.
lt_row_outlines = io_worksheet->get_row_outlines( ).
LOOP AT lt_row_outlines ASSIGNING <ls_row_outline> WHERE row_from <= me->row_index
AND row_to >= me->row_index.
lt_row_outlines = io_worksheet->get_row_outlines( ).
LOOP AT lt_row_outlines ASSIGNING <ls_row_outline> WHERE row_from <= me->row_index
AND row_to >= me->row_index.
ADD 1 TO r_outline_level.
ADD 1 TO r_outline_level.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
ENDMETHOD.
method GET_ROW_HEIGHT.
r_row_height = me->row_height.
endmethod.
METHOD get_row_height.
r_row_height = me->row_height.
ENDMETHOD.
METHOD GET_CUSTOM_HEIGHT.
METHOD get_custom_height.
r_custom_height = me->custom_height.
ENDMETHOD.
method GET_ROW_INDEX.
r_row_index = me->row_index.
endmethod.
METHOD get_row_index.
r_row_index = me->row_index.
ENDMETHOD.
METHOD GET_VISIBLE.
METHOD get_visible.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.
r_visible = me->visible.
CHECK r_visible = abap_true. " Currently visible --> but maybe the new outline methodology will hide it implicitly
CHECK io_worksheet IS BOUND. " But we have to see the worksheet to make sure
r_visible = me->visible.
CHECK r_visible = abap_true. " Currently visible --> but maybe the new outline methodology will hide it implicitly
CHECK io_worksheet IS BOUND. " But we have to see the worksheet to make sure
lt_row_outlines = io_worksheet->get_row_outlines( ).
LOOP AT lt_row_outlines ASSIGNING <ls_row_outline> WHERE row_from <= me->row_index
AND row_to >= me->row_index
AND collapsed = abap_true. " row is in a collapsed outline --> not visible
CLEAR r_visible.
RETURN. " one hit is enough to ensure invisibility
lt_row_outlines = io_worksheet->get_row_outlines( ).
LOOP AT lt_row_outlines ASSIGNING <ls_row_outline> WHERE row_from <= me->row_index
AND row_to >= me->row_index
AND collapsed = abap_true. " row is in a collapsed outline --> not visible
CLEAR r_visible.
RETURN. " one hit is enough to ensure invisibility
ENDLOOP.
ENDLOOP.
ENDMETHOD.
ENDMETHOD.
method GET_XF_INDEX.
r_xf_index = me->xf_index.
endmethod.
METHOD get_xf_index.
r_xf_index = me->xf_index.
ENDMETHOD.
method SET_COLLAPSED.
me->collapsed = ip_collapsed.
endmethod.
METHOD set_collapsed.
me->collapsed = ip_collapsed.
ENDMETHOD.
method SET_OUTLINE_LEVEL.
IF ip_outline_level < 0
OR ip_outline_level > 7.
METHOD set_outline_level.
IF ip_outline_level < 0
OR ip_outline_level > 7.
zcx_excel=>raise_text( 'Outline level must range between 0 and 7.' ).
zcx_excel=>raise_text( 'Outline level must range between 0 and 7.' ).
ENDIF.
me->outline_level = ip_outline_level.
endmethod.
ENDIF.
me->outline_level = ip_outline_level.
ENDMETHOD.
method SET_ROW_HEIGHT.
TRY.
me->row_height = ip_row_height.
CATCH cx_sy_conversion_no_number.
zcx_excel=>raise_text( 'Unable to interpret ip_row_height as number' ).
ENDTRY.
me->custom_height = ip_custom_height.
endmethod.
METHOD set_row_height.
TRY.
me->row_height = ip_row_height.
CATCH cx_sy_conversion_no_number.
zcx_excel=>raise_text( 'Unable to interpret ip_row_height as number' ).
ENDTRY.
me->custom_height = ip_custom_height.
ENDMETHOD.
method SET_ROW_INDEX.
me->row_index = ip_index.
endmethod.
METHOD set_row_index.
me->row_index = ip_index.
ENDMETHOD.
method SET_VISIBLE.
me->visible = ip_visible.
endmethod.
METHOD set_visible.
me->visible = ip_visible.
ENDMETHOD.
method SET_XF_INDEX.
me->XF_INDEX = ip_XF_INDEX.
endmethod.
METHOD set_xf_index.
me->xf_index = ip_xf_index.
ENDMETHOD.
ENDCLASS.

View File

@ -3,120 +3,120 @@
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class ZCL_EXCEL_ROWS definition
public
final
create public .
CLASS zcl_excel_rows DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_ROWS
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
public section.
types:
begin of MTY_S_HASHED_ROW,
ROW_INDEX type INT4,
ROW type ref to ZCL_EXCEL_ROW,
end of MTY_S_HASHED_ROW ,
MTY_TS_HASEHD_ROW type hashed table of MTY_S_HASHED_ROW with unique key ROW_INDEX.
PUBLIC SECTION.
TYPES:
BEGIN OF mty_s_hashed_row,
row_index TYPE int4,
row TYPE REF TO zcl_excel_row,
END OF mty_s_hashed_row ,
mty_ts_hasehd_row TYPE HASHED TABLE OF mty_s_hashed_row WITH UNIQUE KEY row_index.
methods ADD
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods SIZE
returning
value(EP_SIZE) type I .
methods GET_MIN_INDEX
returning
value(EP_INDEX) type I .
methods GET_MAX_INDEX
returning
value(EP_INDEX) type I .
protected section.
METHODS add
IMPORTING
!io_row TYPE REF TO zcl_excel_row .
METHODS clear .
METHODS constructor .
METHODS get
IMPORTING
!ip_index TYPE i
RETURNING
VALUE(eo_row) TYPE REF TO zcl_excel_row .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
METHODS remove
IMPORTING
!io_row TYPE REF TO zcl_excel_row .
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
METHODS get_min_index
RETURNING
VALUE(ep_index) TYPE i .
METHODS get_max_index
RETURNING
VALUE(ep_index) TYPE i .
PROTECTED SECTION.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data ROWS type ref to CL_OBJECT_COLLECTION .
data ROWS_HASEHD type MTY_TS_HASEHD_ROW .
DATA rows TYPE REF TO cl_object_collection .
DATA rows_hasehd TYPE mty_ts_hasehd_row .
ENDCLASS.
CLASS ZCL_EXCEL_ROWS IMPLEMENTATION.
CLASS zcl_excel_rows IMPLEMENTATION.
method ADD.
data: LS_HASHED_ROW type MTY_S_HASHED_ROW.
METHOD add.
DATA: ls_hashed_row TYPE mty_s_hashed_row.
LS_HASHED_ROW-ROW_INDEX = IO_ROW->GET_ROW_INDEX( ).
LS_HASHED_ROW-ROW = IO_ROW.
ls_hashed_row-row_index = io_row->get_row_index( ).
ls_hashed_row-row = io_row.
insert LS_HASHED_ROW into table ROWS_HASEHD.
INSERT ls_hashed_row INTO TABLE rows_hasehd.
ROWS->ADD( IO_ROW ).
endmethod. "ADD
rows->add( io_row ).
ENDMETHOD. "ADD
method CLEAR.
clear ROWS_HASEHD.
ROWS->CLEAR( ).
endmethod. "CLEAR
METHOD clear.
CLEAR rows_hasehd.
rows->clear( ).
ENDMETHOD. "CLEAR
method CONSTRUCTOR.
METHOD constructor.
create object ROWS.
CREATE OBJECT rows.
endmethod. "CONSTRUCTOR
ENDMETHOD. "CONSTRUCTOR
method GET.
field-symbols: <LS_HASHED_ROW> type MTY_S_HASHED_ROW.
METHOD get.
FIELD-SYMBOLS: <ls_hashed_row> TYPE mty_s_hashed_row.
read table ROWS_HASEHD with key ROW_INDEX = IP_INDEX assigning <LS_HASHED_ROW>.
if SY-SUBRC = 0.
EO_ROW = <LS_HASHED_ROW>-ROW.
endif.
endmethod. "GET
READ TABLE rows_hasehd WITH KEY row_index = ip_index ASSIGNING <ls_hashed_row>.
IF sy-subrc = 0.
eo_row = <ls_hashed_row>-row.
ENDIF.
ENDMETHOD. "GET
method GET_ITERATOR.
EO_ITERATOR ?= ROWS->GET_ITERATOR( ).
endmethod. "GET_ITERATOR
METHOD get_iterator.
eo_iterator ?= rows->get_iterator( ).
ENDMETHOD. "GET_ITERATOR
method IS_EMPTY.
IS_EMPTY = ROWS->IS_EMPTY( ).
endmethod. "IS_EMPTY
METHOD is_empty.
is_empty = rows->is_empty( ).
ENDMETHOD. "IS_EMPTY
method REMOVE.
delete table ROWS_HASEHD with table key ROW_INDEX = IO_ROW->GET_ROW_INDEX( ) .
ROWS->REMOVE( IO_ROW ).
endmethod. "REMOVE
METHOD remove.
DELETE TABLE rows_hasehd WITH TABLE KEY row_index = io_row->get_row_index( ) .
rows->remove( io_row ).
ENDMETHOD. "REMOVE
method SIZE.
EP_SIZE = ROWS->SIZE( ).
endmethod. "SIZE
METHOD size.
ep_size = rows->size( ).
ENDMETHOD. "SIZE
METHOD get_min_index.
FIELD-SYMBOLS: <ls_hashed_row> TYPE mty_s_hashed_row.

View File

@ -1,40 +1,40 @@
class ZCL_EXCEL_SECURITY definition
public
final
create public .
CLASS zcl_excel_security DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_SECURITY
*"* do not include other source files here!!!
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
data LOCKREVISION type FLAG .
data LOCKSTRUCTURE type FLAG .
data LOCKWINDOWS type FLAG .
data REVISIONSPASSWORD type ZEXCEL_REVISIONSPASSWORD .
data WORKBOOKPASSWORD type ZEXCEL_WORKBOOKPASSWORD .
DATA lockrevision TYPE flag .
DATA lockstructure TYPE flag .
DATA lockwindows TYPE flag .
DATA revisionspassword TYPE zexcel_revisionspassword .
DATA workbookpassword TYPE zexcel_workbookpassword .
methods IS_SECURITY_ENABLED
returning
value(EP_SECURITY_ENABLED) type FLAG .
METHODS is_security_enabled
RETURNING
VALUE(ep_security_enabled) TYPE flag .
*"* protected components of class ZABAP_EXCEL_SECURITY
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_SECURITY
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZABAP_EXCEL_SECURITY
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_SECURITY IMPLEMENTATION.
CLASS zcl_excel_security IMPLEMENTATION.
METHOD is_security_enabled.
IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true.
ep_security_enabled = abap_true.
ENDIF.
ENDMETHOD.
METHOD is_security_enabled.
IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true.
ep_security_enabled = abap_true.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -1,210 +1,210 @@
class ZCL_EXCEL_SHEET_SETUP definition
public
final
create public .
CLASS zcl_excel_sheet_setup DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_SHEET_SETUP
*"* do not include other source files here!!!
type-pools ABAP .
TYPE-POOLS abap .
data BLACK_AND_WHITE type FLAG .
data CELL_COMMENTS type STRINGVAL .
data COPIES type INT2 .
constants C_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT
constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT
constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT
constants C_CC_AS_DISPLAYED type STRING value 'asDisplayed'. "#EC NOTEXT
constants C_CC_AT_END type STRING value 'atEnd'. "#EC NOTEXT
constants C_CC_NONE type STRING value 'none'. "#EC NOTEXT
constants C_ORD_DOWNTHENOVER type STRING value 'downThenOver'. "#EC NOTEXT
constants C_ORD_OVERTHENDOWN type STRING value 'overThenDown'. "#EC NOTEXT
constants C_ORIENTATION_DEFAULT type ZEXCEL_SHEET_ORIENATATION value 'default'. "#EC NOTEXT
constants C_ORIENTATION_LANDSCAPE type ZEXCEL_SHEET_ORIENATATION value 'landscape'. "#EC NOTEXT
constants C_ORIENTATION_PORTRAIT type ZEXCEL_SHEET_ORIENATATION value 'portrait'. "#EC NOTEXT
constants C_PAPERSIZE_6_3_4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 38. "#EC NOTEXT
constants C_PAPERSIZE_A2_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 64. "#EC NOTEXT
constants C_PAPERSIZE_A3 type ZEXCEL_SHEET_PAPER_SIZE value 8. "#EC NOTEXT
constants C_PAPERSIZE_A3_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 61. "#EC NOTEXT
constants C_PAPERSIZE_A3_EXTRA_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 66. "#EC NOTEXT
constants C_PAPERSIZE_A3_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 65. "#EC NOTEXT
constants C_PAPERSIZE_A4 type ZEXCEL_SHEET_PAPER_SIZE value 9. "#EC NOTEXT
constants C_PAPERSIZE_A4_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 51. "#EC NOTEXT
constants C_PAPERSIZE_A4_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 58. "#EC NOTEXT
constants C_PAPERSIZE_A4_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 10. "#EC NOTEXT
constants C_PAPERSIZE_A4_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 53. "#EC NOTEXT
constants C_PAPERSIZE_A5 type ZEXCEL_SHEET_PAPER_SIZE value 11. "#EC NOTEXT
constants C_PAPERSIZE_A5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 62. "#EC NOTEXT
constants C_PAPERSIZE_A5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 59. "#EC NOTEXT
constants C_PAPERSIZE_B4 type ZEXCEL_SHEET_PAPER_SIZE value 12. "#EC NOTEXT
constants C_PAPERSIZE_B4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 33. "#EC NOTEXT
constants C_PAPERSIZE_B5 type ZEXCEL_SHEET_PAPER_SIZE value 13. "#EC NOTEXT
constants C_PAPERSIZE_B5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 34. "#EC NOTEXT
constants C_PAPERSIZE_B6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 35. "#EC NOTEXT
constants C_PAPERSIZE_C type ZEXCEL_SHEET_PAPER_SIZE value 24. "#EC NOTEXT
constants C_PAPERSIZE_C3_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 29. "#EC NOTEXT
constants C_PAPERSIZE_C4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 30. "#EC NOTEXT
constants C_PAPERSIZE_C5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 28. "#EC NOTEXT
constants C_PAPERSIZE_C65_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 32. "#EC NOTEXT
constants C_PAPERSIZE_C6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 31. "#EC NOTEXT
constants C_PAPERSIZE_D type ZEXCEL_SHEET_PAPER_SIZE value 25. "#EC NOTEXT
constants C_PAPERSIZE_DE_LEG_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 41. "#EC NOTEXT
constants C_PAPERSIZE_DE_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 40. "#EC NOTEXT
constants C_PAPERSIZE_DL_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 27. "#EC NOTEXT
constants C_PAPERSIZE_E type ZEXCEL_SHEET_PAPER_SIZE value 26. "#EC NOTEXT
constants C_PAPERSIZE_EXECUTIVE type ZEXCEL_SHEET_PAPER_SIZE value 7. "#EC NOTEXT
constants C_PAPERSIZE_FOLIO type ZEXCEL_SHEET_PAPER_SIZE value 14. "#EC NOTEXT
constants C_PAPERSIZE_INVITE_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 47. "#EC NOTEXT
constants C_PAPERSIZE_ISO_B4 type ZEXCEL_SHEET_PAPER_SIZE value 42. "#EC NOTEXT
constants C_PAPERSIZE_ISO_B5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 63. "#EC NOTEXT
constants C_PAPERSIZE_ITALY_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 36. "#EC NOTEXT
constants C_PAPERSIZE_JIS_B5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 60. "#EC NOTEXT
constants C_PAPERSIZE_JPN_DBL_POSTCARD type ZEXCEL_SHEET_PAPER_SIZE value 43. "#EC NOTEXT
constants C_PAPERSIZE_LEDGER type ZEXCEL_SHEET_PAPER_SIZE value 4. "#EC NOTEXT
constants C_PAPERSIZE_LEGAL type ZEXCEL_SHEET_PAPER_SIZE value 5. "#EC NOTEXT
constants C_PAPERSIZE_LEGAL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 49. "#EC NOTEXT
constants C_PAPERSIZE_LETTER type ZEXCEL_SHEET_PAPER_SIZE value 1. "#EC NOTEXT
constants C_PAPERSIZE_LETTER_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 48. "#EC NOTEXT
constants C_PAPERSIZE_LETTER_EXTV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 54. "#EC NOTEXT
constants C_PAPERSIZE_LETTER_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 57. "#EC NOTEXT
constants C_PAPERSIZE_LETTER_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 2. "#EC NOTEXT
constants C_PAPERSIZE_LETTER_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 52. "#EC NOTEXT
constants C_PAPERSIZE_MONARCH_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 37. "#EC NOTEXT
constants C_PAPERSIZE_NO10_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 20. "#EC NOTEXT
constants C_PAPERSIZE_NO11_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 21. "#EC NOTEXT
constants C_PAPERSIZE_NO12_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 22. "#EC NOTEXT
constants C_PAPERSIZE_NO14_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 23. "#EC NOTEXT
constants C_PAPERSIZE_NO9_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 19. "#EC NOTEXT
constants C_PAPERSIZE_NOTE type ZEXCEL_SHEET_PAPER_SIZE value 18. "#EC NOTEXT
constants C_PAPERSIZE_QUARTO type ZEXCEL_SHEET_PAPER_SIZE value 15. "#EC NOTEXT
constants C_PAPERSIZE_STANDARD_1 type ZEXCEL_SHEET_PAPER_SIZE value 16. "#EC NOTEXT
constants C_PAPERSIZE_STANDARD_2 type ZEXCEL_SHEET_PAPER_SIZE value 17. "#EC NOTEXT
constants C_PAPERSIZE_STANDARD_PAPER_1 type ZEXCEL_SHEET_PAPER_SIZE value 44. "#EC NOTEXT
constants C_PAPERSIZE_STANDARD_PAPER_2 type ZEXCEL_SHEET_PAPER_SIZE value 45. "#EC NOTEXT
constants C_PAPERSIZE_STANDARD_PAPER_3 type ZEXCEL_SHEET_PAPER_SIZE value 46. "#EC NOTEXT
constants C_PAPERSIZE_STATEMENT type ZEXCEL_SHEET_PAPER_SIZE value 6. "#EC NOTEXT
constants C_PAPERSIZE_SUPERA_A4_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 55. "#EC NOTEXT
constants C_PAPERSIZE_SUPERB_A3_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 56. "#EC NOTEXT
constants C_PAPERSIZE_TABLOID type ZEXCEL_SHEET_PAPER_SIZE value 3. "#EC NOTEXT
constants C_PAPERSIZE_TABL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 50. "#EC NOTEXT
constants C_PAPERSIZE_US_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 39. "#EC NOTEXT
constants C_PE_BLANK type STRING value 'blank'. "#EC NOTEXT
constants C_PE_DASH type STRING value 'dash'. "#EC NOTEXT
constants C_PE_DISPLAYED type STRING value 'displayed'. "#EC NOTEXT
constants C_PE_NA type STRING value 'NA'. "#EC NOTEXT
data DIFF_ODDEVEN_HEADERFOOTER type FLAG .
data DRAFT type FLAG .
data ERRORS type STRINGVAL .
data EVEN_FOOTER type ZEXCEL_S_WORKSHEET_HEAD_FOOT .
data EVEN_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT .
data FIRST_PAGE_NUMBER type INT2 .
data FIT_TO_HEIGHT type INT2 .
data FIT_TO_PAGE type FLAG .
data FIT_TO_WIDTH type INT2 .
data HORIZONTAL_CENTERED type FLAG .
data HORIZONTAL_DPI type INT2 .
data MARGIN_BOTTOM type ZEXCEL_DEC_8_2 .
data MARGIN_FOOTER type ZEXCEL_DEC_8_2 .
data MARGIN_HEADER type ZEXCEL_DEC_8_2 .
data MARGIN_LEFT type ZEXCEL_DEC_8_2 .
data MARGIN_RIGHT type ZEXCEL_DEC_8_2 .
data MARGIN_TOP type ZEXCEL_DEC_8_2 .
data ODD_FOOTER type ZEXCEL_S_WORKSHEET_HEAD_FOOT .
data ODD_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT .
data ORIENTATION type ZEXCEL_SHEET_ORIENATATION .
data PAGE_ORDER type STRING .
data PAPER_HEIGHT type STRING .
data PAPER_SIZE type INT2 .
data PAPER_WIDTH type STRING .
data SCALE type INT2 .
data USE_FIRST_PAGE_NUM type FLAG .
data USE_PRINTER_DEFAULTS type FLAG .
data VERTICAL_CENTERED type FLAG .
data VERTICAL_DPI type INT2 .
DATA black_and_white TYPE flag .
DATA cell_comments TYPE stringval .
DATA copies TYPE int2 .
CONSTANTS c_break_column TYPE zexcel_break VALUE 2. "#EC NOTEXT
CONSTANTS c_break_none TYPE zexcel_break VALUE 0. "#EC NOTEXT
CONSTANTS c_break_row TYPE zexcel_break VALUE 1. "#EC NOTEXT
CONSTANTS c_cc_as_displayed TYPE string VALUE 'asDisplayed'. "#EC NOTEXT
CONSTANTS c_cc_at_end TYPE string VALUE 'atEnd'. "#EC NOTEXT
CONSTANTS c_cc_none TYPE string VALUE 'none'. "#EC NOTEXT
CONSTANTS c_ord_downthenover TYPE string VALUE 'downThenOver'. "#EC NOTEXT
CONSTANTS c_ord_overthendown TYPE string VALUE 'overThenDown'. "#EC NOTEXT
CONSTANTS c_orientation_default TYPE zexcel_sheet_orienatation VALUE 'default'. "#EC NOTEXT
CONSTANTS c_orientation_landscape TYPE zexcel_sheet_orienatation VALUE 'landscape'. "#EC NOTEXT
CONSTANTS c_orientation_portrait TYPE zexcel_sheet_orienatation VALUE 'portrait'. "#EC NOTEXT
CONSTANTS c_papersize_6_3_4_envelope TYPE zexcel_sheet_paper_size VALUE 38. "#EC NOTEXT
CONSTANTS c_papersize_a2_paper TYPE zexcel_sheet_paper_size VALUE 64. "#EC NOTEXT
CONSTANTS c_papersize_a3 TYPE zexcel_sheet_paper_size VALUE 8. "#EC NOTEXT
CONSTANTS c_papersize_a3_extra_paper TYPE zexcel_sheet_paper_size VALUE 61. "#EC NOTEXT
CONSTANTS c_papersize_a3_extra_tv_paper TYPE zexcel_sheet_paper_size VALUE 66. "#EC NOTEXT
CONSTANTS c_papersize_a3_tv_paper TYPE zexcel_sheet_paper_size VALUE 65. "#EC NOTEXT
CONSTANTS c_papersize_a4 TYPE zexcel_sheet_paper_size VALUE 9. "#EC NOTEXT
CONSTANTS c_papersize_a4_extra_paper TYPE zexcel_sheet_paper_size VALUE 51. "#EC NOTEXT
CONSTANTS c_papersize_a4_plus_paper TYPE zexcel_sheet_paper_size VALUE 58. "#EC NOTEXT
CONSTANTS c_papersize_a4_small TYPE zexcel_sheet_paper_size VALUE 10. "#EC NOTEXT
CONSTANTS c_papersize_a4_tv_paper TYPE zexcel_sheet_paper_size VALUE 53. "#EC NOTEXT
CONSTANTS c_papersize_a5 TYPE zexcel_sheet_paper_size VALUE 11. "#EC NOTEXT
CONSTANTS c_papersize_a5_extra_paper TYPE zexcel_sheet_paper_size VALUE 62. "#EC NOTEXT
CONSTANTS c_papersize_a5_tv_paper TYPE zexcel_sheet_paper_size VALUE 59. "#EC NOTEXT
CONSTANTS c_papersize_b4 TYPE zexcel_sheet_paper_size VALUE 12. "#EC NOTEXT
CONSTANTS c_papersize_b4_envelope TYPE zexcel_sheet_paper_size VALUE 33. "#EC NOTEXT
CONSTANTS c_papersize_b5 TYPE zexcel_sheet_paper_size VALUE 13. "#EC NOTEXT
CONSTANTS c_papersize_b5_envelope TYPE zexcel_sheet_paper_size VALUE 34. "#EC NOTEXT
CONSTANTS c_papersize_b6_envelope TYPE zexcel_sheet_paper_size VALUE 35. "#EC NOTEXT
CONSTANTS c_papersize_c TYPE zexcel_sheet_paper_size VALUE 24. "#EC NOTEXT
CONSTANTS c_papersize_c3_envelope TYPE zexcel_sheet_paper_size VALUE 29. "#EC NOTEXT
CONSTANTS c_papersize_c4_envelope TYPE zexcel_sheet_paper_size VALUE 30. "#EC NOTEXT
CONSTANTS c_papersize_c5_envelope TYPE zexcel_sheet_paper_size VALUE 28. "#EC NOTEXT
CONSTANTS c_papersize_c65_envelope TYPE zexcel_sheet_paper_size VALUE 32. "#EC NOTEXT
CONSTANTS c_papersize_c6_envelope TYPE zexcel_sheet_paper_size VALUE 31. "#EC NOTEXT
CONSTANTS c_papersize_d TYPE zexcel_sheet_paper_size VALUE 25. "#EC NOTEXT
CONSTANTS c_papersize_de_leg_fanfold TYPE zexcel_sheet_paper_size VALUE 41. "#EC NOTEXT
CONSTANTS c_papersize_de_std_fanfold TYPE zexcel_sheet_paper_size VALUE 40. "#EC NOTEXT
CONSTANTS c_papersize_dl_envelope TYPE zexcel_sheet_paper_size VALUE 27. "#EC NOTEXT
CONSTANTS c_papersize_e TYPE zexcel_sheet_paper_size VALUE 26. "#EC NOTEXT
CONSTANTS c_papersize_executive TYPE zexcel_sheet_paper_size VALUE 7. "#EC NOTEXT
CONSTANTS c_papersize_folio TYPE zexcel_sheet_paper_size VALUE 14. "#EC NOTEXT
CONSTANTS c_papersize_invite_envelope TYPE zexcel_sheet_paper_size VALUE 47. "#EC NOTEXT
CONSTANTS c_papersize_iso_b4 TYPE zexcel_sheet_paper_size VALUE 42. "#EC NOTEXT
CONSTANTS c_papersize_iso_b5_extra_paper TYPE zexcel_sheet_paper_size VALUE 63. "#EC NOTEXT
CONSTANTS c_papersize_italy_envelope TYPE zexcel_sheet_paper_size VALUE 36. "#EC NOTEXT
CONSTANTS c_papersize_jis_b5_tv_paper TYPE zexcel_sheet_paper_size VALUE 60. "#EC NOTEXT
CONSTANTS c_papersize_jpn_dbl_postcard TYPE zexcel_sheet_paper_size VALUE 43. "#EC NOTEXT
CONSTANTS c_papersize_ledger TYPE zexcel_sheet_paper_size VALUE 4. "#EC NOTEXT
CONSTANTS c_papersize_legal TYPE zexcel_sheet_paper_size VALUE 5. "#EC NOTEXT
CONSTANTS c_papersize_legal_extra_paper TYPE zexcel_sheet_paper_size VALUE 49. "#EC NOTEXT
CONSTANTS c_papersize_letter TYPE zexcel_sheet_paper_size VALUE 1. "#EC NOTEXT
CONSTANTS c_papersize_letter_extra_paper TYPE zexcel_sheet_paper_size VALUE 48. "#EC NOTEXT
CONSTANTS c_papersize_letter_extv_paper TYPE zexcel_sheet_paper_size VALUE 54. "#EC NOTEXT
CONSTANTS c_papersize_letter_plus_paper TYPE zexcel_sheet_paper_size VALUE 57. "#EC NOTEXT
CONSTANTS c_papersize_letter_small TYPE zexcel_sheet_paper_size VALUE 2. "#EC NOTEXT
CONSTANTS c_papersize_letter_tv_paper TYPE zexcel_sheet_paper_size VALUE 52. "#EC NOTEXT
CONSTANTS c_papersize_monarch_envelope TYPE zexcel_sheet_paper_size VALUE 37. "#EC NOTEXT
CONSTANTS c_papersize_no10_envelope TYPE zexcel_sheet_paper_size VALUE 20. "#EC NOTEXT
CONSTANTS c_papersize_no11_envelope TYPE zexcel_sheet_paper_size VALUE 21. "#EC NOTEXT
CONSTANTS c_papersize_no12_envelope TYPE zexcel_sheet_paper_size VALUE 22. "#EC NOTEXT
CONSTANTS c_papersize_no14_envelope TYPE zexcel_sheet_paper_size VALUE 23. "#EC NOTEXT
CONSTANTS c_papersize_no9_envelope TYPE zexcel_sheet_paper_size VALUE 19. "#EC NOTEXT
CONSTANTS c_papersize_note TYPE zexcel_sheet_paper_size VALUE 18. "#EC NOTEXT
CONSTANTS c_papersize_quarto TYPE zexcel_sheet_paper_size VALUE 15. "#EC NOTEXT
CONSTANTS c_papersize_standard_1 TYPE zexcel_sheet_paper_size VALUE 16. "#EC NOTEXT
CONSTANTS c_papersize_standard_2 TYPE zexcel_sheet_paper_size VALUE 17. "#EC NOTEXT
CONSTANTS c_papersize_standard_paper_1 TYPE zexcel_sheet_paper_size VALUE 44. "#EC NOTEXT
CONSTANTS c_papersize_standard_paper_2 TYPE zexcel_sheet_paper_size VALUE 45. "#EC NOTEXT
CONSTANTS c_papersize_standard_paper_3 TYPE zexcel_sheet_paper_size VALUE 46. "#EC NOTEXT
CONSTANTS c_papersize_statement TYPE zexcel_sheet_paper_size VALUE 6. "#EC NOTEXT
CONSTANTS c_papersize_supera_a4_paper TYPE zexcel_sheet_paper_size VALUE 55. "#EC NOTEXT
CONSTANTS c_papersize_superb_a3_paper TYPE zexcel_sheet_paper_size VALUE 56. "#EC NOTEXT
CONSTANTS c_papersize_tabloid TYPE zexcel_sheet_paper_size VALUE 3. "#EC NOTEXT
CONSTANTS c_papersize_tabl_extra_paper TYPE zexcel_sheet_paper_size VALUE 50. "#EC NOTEXT
CONSTANTS c_papersize_us_std_fanfold TYPE zexcel_sheet_paper_size VALUE 39. "#EC NOTEXT
CONSTANTS c_pe_blank TYPE string VALUE 'blank'. "#EC NOTEXT
CONSTANTS c_pe_dash TYPE string VALUE 'dash'. "#EC NOTEXT
CONSTANTS c_pe_displayed TYPE string VALUE 'displayed'. "#EC NOTEXT
CONSTANTS c_pe_na TYPE string VALUE 'NA'. "#EC NOTEXT
DATA diff_oddeven_headerfooter TYPE flag .
DATA draft TYPE flag .
DATA errors TYPE stringval .
DATA even_footer TYPE zexcel_s_worksheet_head_foot .
DATA even_header TYPE zexcel_s_worksheet_head_foot .
DATA first_page_number TYPE int2 .
DATA fit_to_height TYPE int2 .
DATA fit_to_page TYPE flag .
DATA fit_to_width TYPE int2 .
DATA horizontal_centered TYPE flag .
DATA horizontal_dpi TYPE int2 .
DATA margin_bottom TYPE zexcel_dec_8_2 .
DATA margin_footer TYPE zexcel_dec_8_2 .
DATA margin_header TYPE zexcel_dec_8_2 .
DATA margin_left TYPE zexcel_dec_8_2 .
DATA margin_right TYPE zexcel_dec_8_2 .
DATA margin_top TYPE zexcel_dec_8_2 .
DATA odd_footer TYPE zexcel_s_worksheet_head_foot .
DATA odd_header TYPE zexcel_s_worksheet_head_foot .
DATA orientation TYPE zexcel_sheet_orienatation .
DATA page_order TYPE string .
DATA paper_height TYPE string .
DATA paper_size TYPE int2 .
DATA paper_width TYPE string .
DATA scale TYPE int2 .
DATA use_first_page_num TYPE flag .
DATA use_printer_defaults TYPE flag .
DATA vertical_centered TYPE flag .
DATA vertical_dpi TYPE int2 .
methods CONSTRUCTOR .
methods SET_PAGE_MARGINS
importing
!IP_BOTTOM type FLOAT optional
!IP_FOOTER type FLOAT optional
!IP_HEADER type FLOAT optional
!IP_LEFT type FLOAT optional
!IP_RIGHT type FLOAT optional
!IP_TOP type FLOAT optional
!IP_UNIT type CSEQUENCE default 'in' .
methods SET_HEADER_FOOTER
importing
!IP_ODD_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT optional
!IP_ODD_FOOTER type ZEXCEL_S_WORKSHEET_HEAD_FOOT optional
!IP_EVEN_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT optional
!IP_EVEN_FOOTER type ZEXCEL_S_WORKSHEET_HEAD_FOOT optional .
methods GET_HEADER_FOOTER_STRING
exporting
!EP_ODD_HEADER type STRING
!EP_ODD_FOOTER type STRING
!EP_EVEN_HEADER type STRING
!EP_EVEN_FOOTER type STRING .
methods GET_HEADER_FOOTER
exporting
!EP_ODD_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT
!EP_ODD_FOOTER type ZEXCEL_S_WORKSHEET_HEAD_FOOT
!EP_EVEN_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT
!EP_EVEN_FOOTER type ZEXCEL_S_WORKSHEET_HEAD_FOOT .
protected section.
METHODS constructor .
METHODS set_page_margins
IMPORTING
!ip_bottom TYPE float OPTIONAL
!ip_footer TYPE float OPTIONAL
!ip_header TYPE float OPTIONAL
!ip_left TYPE float OPTIONAL
!ip_right TYPE float OPTIONAL
!ip_top TYPE float OPTIONAL
!ip_unit TYPE csequence DEFAULT 'in' .
METHODS set_header_footer
IMPORTING
!ip_odd_header TYPE zexcel_s_worksheet_head_foot OPTIONAL
!ip_odd_footer TYPE zexcel_s_worksheet_head_foot OPTIONAL
!ip_even_header TYPE zexcel_s_worksheet_head_foot OPTIONAL
!ip_even_footer TYPE zexcel_s_worksheet_head_foot OPTIONAL .
METHODS get_header_footer_string
EXPORTING
!ep_odd_header TYPE string
!ep_odd_footer TYPE string
!ep_even_header TYPE string
!ep_even_footer TYPE string .
METHODS get_header_footer
EXPORTING
!ep_odd_header TYPE zexcel_s_worksheet_head_foot
!ep_odd_footer TYPE zexcel_s_worksheet_head_foot
!ep_even_header TYPE zexcel_s_worksheet_head_foot
!ep_even_footer TYPE zexcel_s_worksheet_head_foot .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_SHEET_SETUP
*"* do not include other source files here!!!
methods PROCESS_HEADER_FOOTER
importing
!IP_HEADER type ZEXCEL_S_WORKSHEET_HEAD_FOOT
!IP_SIDE type STRING
returning
value(RV_PROCESSED_STRING) type STRING .
private section.
METHODS process_header_footer
IMPORTING
!ip_header TYPE zexcel_s_worksheet_head_foot
!ip_side TYPE string
RETURNING
VALUE(rv_processed_string) TYPE string .
PRIVATE SECTION.
*"* private components of class ZCL_EXCEL_SHEET_SETUP
*"* do not include other source files here!!!
ENDCLASS.
CLASS ZCL_EXCEL_SHEET_SETUP IMPLEMENTATION.
CLASS zcl_excel_sheet_setup IMPLEMENTATION.
method CONSTRUCTOR.
orientation = me->c_orientation_default.
METHOD constructor.
orientation = me->c_orientation_default.
* default margins
margin_bottom = '0.75'.
margin_footer = '0.3'.
margin_header = '0.3'.
margin_left = '0.7'.
margin_right = '0.7'.
margin_top = '0.75'.
margin_bottom = '0.75'.
margin_footer = '0.3'.
margin_header = '0.3'.
margin_left = '0.7'.
margin_right = '0.7'.
margin_top = '0.75'.
* clear page settings
CLEAR: black_and_white,
cell_comments,
copies,
draft,
errors,
first_page_number,
fit_to_page,
fit_to_height,
fit_to_width,
horizontal_dpi,
orientation,
page_order,
paper_height,
paper_size,
paper_width,
scale,
use_first_page_num,
use_printer_defaults,
vertical_dpi.
endmethod.
CLEAR: black_and_white,
cell_comments,
copies,
draft,
errors,
first_page_number,
fit_to_page,
fit_to_height,
fit_to_width,
horizontal_dpi,
orientation,
page_order,
paper_height,
paper_size,
paper_width,
scale,
use_first_page_num,
use_printer_defaults,
vertical_dpi.
ENDMETHOD.
METHOD get_header_footer.
METHOD get_header_footer.
* Only Basic font/text formatting possible:
* Bold (yes / no), Font Type, Font Size
@ -223,207 +223,207 @@ METHOD get_header_footer.
*
* DO NOT USE &L , &C or &R which automatically created as position markers
ep_odd_header = me->odd_header.
ep_odd_footer = me->odd_footer.
ep_even_header = me->even_header.
ep_even_footer = me->even_footer.
ep_odd_header = me->odd_header.
ep_odd_footer = me->odd_footer.
ep_even_header = me->even_header.
ep_even_footer = me->even_footer.
ENDMETHOD.
ENDMETHOD.
METHOD get_header_footer_string.
METHOD get_header_footer_string.
* ----------------------------------------------------------------------
DATA: lc_marker_left(2) TYPE c VALUE '&L'
, lc_marker_right(2) TYPE c VALUE '&R'
, lc_marker_center(2) TYPE c VALUE '&C'
, lv_value TYPE string
.
DATA: lc_marker_left(2) TYPE c VALUE '&L'
, lc_marker_right(2) TYPE c VALUE '&R'
, lc_marker_center(2) TYPE c VALUE '&C'
, lv_value TYPE string
.
* ----------------------------------------------------------------------
IF ep_odd_header IS SUPPLIED.
IF ep_odd_header IS SUPPLIED.
IF me->odd_header-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'CENTER' ).
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'CENTER' ).
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'RIGHT' ).
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'RIGHT' ).
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_header.
ENDIF.
IF me->odd_header-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_header.
ENDIF.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
IF ep_odd_footer IS SUPPLIED.
IF ep_odd_footer IS SUPPLIED.
IF me->odd_footer-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'CENTER' ).
CONCATENATE ep_odd_footer lc_marker_center lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'CENTER' ).
CONCATENATE ep_odd_footer lc_marker_center lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'RIGHT' ).
CONCATENATE ep_odd_footer lc_marker_right lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'RIGHT' ).
CONCATENATE ep_odd_footer lc_marker_right lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_footer.
ENDIF.
IF me->odd_footer-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_footer.
ENDIF.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
IF ep_even_header IS SUPPLIED.
IF ep_even_header IS SUPPLIED.
IF me->even_header-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'CENTER' ).
CONCATENATE ep_even_header lc_marker_center lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'CENTER' ).
CONCATENATE ep_even_header lc_marker_center lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'RIGHT' ).
CONCATENATE ep_even_header lc_marker_right lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'RIGHT' ).
CONCATENATE ep_even_header lc_marker_right lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_even_header.
ENDIF.
IF me->even_header-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_even_header.
ENDIF.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
IF ep_even_footer IS SUPPLIED.
IF ep_even_footer IS SUPPLIED.
IF me->even_footer-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-left_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'LEFT' ).
CONCATENATE lc_marker_left lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'CENTER' ).
CONCATENATE ep_even_footer lc_marker_center lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-center_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'CENTER' ).
CONCATENATE ep_even_footer lc_marker_center lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'RIGHT' ).
CONCATENATE ep_even_footer lc_marker_right lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-right_value IS NOT INITIAL.
lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'RIGHT' ).
CONCATENATE ep_even_footer lc_marker_right lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-left_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_left lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-center_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_even_footer.
ENDIF.
IF me->even_footer-right_image IS NOT INITIAL.
lv_value = '&G'.
CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_even_footer.
ENDIF.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
ENDMETHOD.
ENDMETHOD.
METHOD process_header_footer.
METHOD process_header_footer.
* ----------------------------------------------------------------------
* Only Basic font/text formatting possible:
* Bold (yes / no), Font Type, Font Size
DATA: lv_fname(12) TYPE c
, lv_string TYPE string
.
DATA: lv_fname(12) TYPE c
, lv_string TYPE string
.
FIELD-SYMBOLS: <lv_value> TYPE string
, <ls_font> TYPE zexcel_s_style_font
.
FIELD-SYMBOLS: <lv_value> TYPE string
, <ls_font> TYPE zexcel_s_style_font
.
* ----------------------------------------------------------------------
CONCATENATE ip_side '_VALUE' INTO lv_fname.
ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO <lv_value>.
CONCATENATE ip_side '_VALUE' INTO lv_fname.
ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO <lv_value>.
CONCATENATE ip_side '_FONT' INTO lv_fname.
ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO <ls_font>.
CONCATENATE ip_side '_FONT' INTO lv_fname.
ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO <ls_font>.
IF <ls_font> IS ASSIGNED AND <lv_value> IS ASSIGNED.
IF <ls_font> IS ASSIGNED AND <lv_value> IS ASSIGNED.
IF <lv_value> = '&G'. "image header
rv_processed_string = <lv_value>.
ELSE.
IF <ls_font>-name IS NOT INITIAL.
CONCATENATE '&"' <ls_font>-name ',' INTO rv_processed_string.
IF <lv_value> = '&G'. "image header
rv_processed_string = <lv_value>.
ELSE.
rv_processed_string = '&"-,'.
ENDIF.
IF <ls_font>-bold = abap_true.
CONCATENATE rv_processed_string 'Bold"' INTO rv_processed_string.
ELSE.
CONCATENATE rv_processed_string 'Standard"' INTO rv_processed_string.
ENDIF.
IF <ls_font>-name IS NOT INITIAL.
CONCATENATE '&"' <ls_font>-name ',' INTO rv_processed_string.
ELSE.
rv_processed_string = '&"-,'.
ENDIF.
IF <ls_font>-size IS NOT INITIAL.
lv_string = <ls_font>-size.
CONCATENATE rv_processed_string '&' lv_string INTO rv_processed_string.
CONDENSE rv_processed_string NO-GAPS.
ENDIF.
IF <ls_font>-bold = abap_true.
CONCATENATE rv_processed_string 'Bold"' INTO rv_processed_string.
ELSE.
CONCATENATE rv_processed_string 'Standard"' INTO rv_processed_string.
ENDIF.
CONCATENATE rv_processed_string <lv_value> INTO rv_processed_string.
IF <ls_font>-size IS NOT INITIAL.
lv_string = <ls_font>-size.
CONCATENATE rv_processed_string '&' lv_string INTO rv_processed_string.
CONDENSE rv_processed_string NO-GAPS.
ENDIF.
CONCATENATE rv_processed_string <lv_value> INTO rv_processed_string.
ENDIF.
ENDIF.
ENDIF.
* ----------------------------------------------------------------------
ENDMETHOD.
ENDMETHOD.
method SET_HEADER_FOOTER.
METHOD set_header_footer.
* Only Basic font/text formatting possible:
* Bold (yes / no), Font Type, Font Size
@ -442,38 +442,38 @@ method SET_HEADER_FOOTER.
*
* DO NOT USE &L , &C or &R which automatically created as position markers
me->odd_header = ip_odd_header.
me->odd_footer = ip_odd_footer.
me->even_header = ip_even_header.
me->even_footer = ip_even_footer.
me->odd_header = ip_odd_header.
me->odd_footer = ip_odd_footer.
me->even_header = ip_even_header.
me->even_footer = ip_even_footer.
IF me->even_header IS NOT INITIAL OR me->even_footer IS NOT INITIAL.
me->diff_oddeven_headerfooter = abap_true.
ENDIF.
IF me->even_header IS NOT INITIAL OR me->even_footer IS NOT INITIAL.
me->diff_oddeven_headerfooter = abap_true.
ENDIF.
endmethod.
ENDMETHOD.
method SET_PAGE_MARGINS.
DATA: lv_coef TYPE f,
lv_unit TYPE string.
METHOD set_page_margins.
DATA: lv_coef TYPE f,
lv_unit TYPE string.
lv_unit = ip_unit.
TRANSLATE lv_unit TO UPPER CASE.
lv_unit = ip_unit.
TRANSLATE lv_unit TO UPPER CASE.
CASE lv_unit.
WHEN 'IN'. lv_coef = 1.
WHEN 'CM'. lv_coef = '0.393700787'.
WHEN 'MM'. lv_coef = '0.0393700787'.
ENDCASE.
CASE lv_unit.
WHEN 'IN'. lv_coef = 1.
WHEN 'CM'. lv_coef = '0.393700787'.
WHEN 'MM'. lv_coef = '0.0393700787'.
ENDCASE.
IF ip_bottom IS SUPPLIED. margin_bottom = lv_coef * ip_bottom. ENDIF.
IF ip_footer IS SUPPLIED. margin_footer = lv_coef * ip_footer. ENDIF.
IF ip_header IS SUPPLIED. margin_header = lv_coef * ip_header. ENDIF.
IF ip_left IS SUPPLIED. margin_left = lv_coef * ip_left. ENDIF.
IF ip_right IS SUPPLIED. margin_right = lv_coef * ip_right. ENDIF.
IF ip_top IS SUPPLIED. margin_top = lv_coef * ip_top. ENDIF.
IF ip_bottom IS SUPPLIED. margin_bottom = lv_coef * ip_bottom. ENDIF.
IF ip_footer IS SUPPLIED. margin_footer = lv_coef * ip_footer. ENDIF.
IF ip_header IS SUPPLIED. margin_header = lv_coef * ip_header. ENDIF.
IF ip_left IS SUPPLIED. margin_left = lv_coef * ip_left. ENDIF.
IF ip_right IS SUPPLIED. margin_right = lv_coef * ip_right. ENDIF.
IF ip_top IS SUPPLIED. margin_top = lv_coef * ip_top. ENDIF.
endmethod.
ENDMETHOD.
ENDCLASS.

View File

@ -1,62 +1,62 @@
class ZCL_EXCEL_STYLE definition
public
final
create public .
CLASS zcl_excel_style DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_STYLE
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
data FONT type ref to ZCL_EXCEL_STYLE_FONT .
data FILL type ref to ZCL_EXCEL_STYLE_FILL .
data BORDERS type ref to ZCL_EXCEL_STYLE_BORDERS .
data ALIGNMENT type ref to ZCL_EXCEL_STYLE_ALIGNMENT .
data NUMBER_FORMAT type ref to ZCL_EXCEL_STYLE_NUMBER_FORMAT .
data PROTECTION type ref to ZCL_EXCEL_STYLE_PROTECTION .
DATA font TYPE REF TO zcl_excel_style_font .
DATA fill TYPE REF TO zcl_excel_style_fill .
DATA borders TYPE REF TO zcl_excel_style_borders .
DATA alignment TYPE REF TO zcl_excel_style_alignment .
DATA number_format TYPE REF TO zcl_excel_style_number_format .
DATA protection TYPE REF TO zcl_excel_style_protection .
methods CONSTRUCTOR
importing
!IP_GUID type ZEXCEL_CELL_STYLE optional .
methods GET_GUID
returning
value(EP_GUID) type ZEXCEL_CELL_STYLE .
METHODS constructor
IMPORTING
!ip_guid TYPE zexcel_cell_style OPTIONAL .
METHODS get_guid
RETURNING
VALUE(ep_guid) TYPE zexcel_cell_style .
*"* protected components of class ZABAP_EXCEL_STYLE
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_STYLE
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
data GUID type ZEXCEL_CELL_STYLE .
DATA guid TYPE zexcel_cell_style .
ENDCLASS.
CLASS ZCL_EXCEL_STYLE IMPLEMENTATION.
CLASS zcl_excel_style IMPLEMENTATION.
METHOD constructor.
METHOD constructor.
CREATE OBJECT font.
CREATE OBJECT fill.
CREATE OBJECT borders.
CREATE OBJECT alignment.
CREATE OBJECT number_format.
CREATE OBJECT protection.
CREATE OBJECT font.
CREATE OBJECT fill.
CREATE OBJECT borders.
CREATE OBJECT alignment.
CREATE OBJECT number_format.
CREATE OBJECT protection.
IF ip_guid IS NOT INITIAL.
me->guid = ip_guid.
ELSE.
me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ).
ENDIF.
IF ip_guid IS NOT INITIAL.
me->guid = ip_guid.
ELSE.
me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ).
ENDIF.
ENDMETHOD.
ENDMETHOD.
method GET_GUID.
METHOD get_guid.
ep_guid = me->guid.
endmethod.
ep_guid = me->guid.
ENDMETHOD.
ENDCLASS.

View File

@ -1,65 +1,65 @@
class ZCL_EXCEL_STYLE_ALIGNMENT definition
public
final
create public .
CLASS zcl_excel_style_alignment DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_STYLE_ALIGNMENT
*"* do not include other source files here!!!
public section.
type-pools ABAP .
PUBLIC SECTION.
TYPE-POOLS abap .
constants C_HORIZONTAL_GENERAL type ZEXCEL_ALIGNMENT value 'general'. "#EC NOTEXT
constants C_HORIZONTAL_LEFT type ZEXCEL_ALIGNMENT value 'left'. "#EC NOTEXT
constants C_HORIZONTAL_RIGHT type ZEXCEL_ALIGNMENT value 'right'. "#EC NOTEXT
constants C_HORIZONTAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT
constants C_HORIZONTAL_CENTER_CONTINUOUS type ZEXCEL_ALIGNMENT value 'centerContinuous'. "#EC NOTEXT
constants C_HORIZONTAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT
constants C_VERTICAL_BOTTOM type ZEXCEL_ALIGNMENT value 'bottom'. "#EC NOTEXT
constants C_VERTICAL_TOP type ZEXCEL_ALIGNMENT value 'top'. "#EC NOTEXT
constants C_VERTICAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT
constants C_VERTICAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT
data HORIZONTAL type ZEXCEL_ALIGNMENT .
data VERTICAL type ZEXCEL_ALIGNMENT .
data TEXTROTATION type ZEXCEL_TEXT_ROTATION value 0. "#EC NOTEXT . . . . . . . . . . " .
data WRAPTEXT type FLAG .
data SHRINKTOFIT type FLAG .
data INDENT type ZEXCEL_INDENT value 0. "#EC NOTEXT . . . . . . . . . . " .
CONSTANTS c_horizontal_general TYPE zexcel_alignment VALUE 'general'. "#EC NOTEXT
CONSTANTS c_horizontal_left TYPE zexcel_alignment VALUE 'left'. "#EC NOTEXT
CONSTANTS c_horizontal_right TYPE zexcel_alignment VALUE 'right'. "#EC NOTEXT
CONSTANTS c_horizontal_center TYPE zexcel_alignment VALUE 'center'. "#EC NOTEXT
CONSTANTS c_horizontal_center_continuous TYPE zexcel_alignment VALUE 'centerContinuous'. "#EC NOTEXT
CONSTANTS c_horizontal_justify TYPE zexcel_alignment VALUE 'justify'. "#EC NOTEXT
CONSTANTS c_vertical_bottom TYPE zexcel_alignment VALUE 'bottom'. "#EC NOTEXT
CONSTANTS c_vertical_top TYPE zexcel_alignment VALUE 'top'. "#EC NOTEXT
CONSTANTS c_vertical_center TYPE zexcel_alignment VALUE 'center'. "#EC NOTEXT
CONSTANTS c_vertical_justify TYPE zexcel_alignment VALUE 'justify'. "#EC NOTEXT
DATA horizontal TYPE zexcel_alignment .
DATA vertical TYPE zexcel_alignment .
DATA textrotation TYPE zexcel_text_rotation VALUE 0. "#EC NOTEXT . . . . . . . . . . " .
DATA wraptext TYPE flag .
DATA shrinktofit TYPE flag .
DATA indent TYPE zexcel_indent VALUE 0. "#EC NOTEXT . . . . . . . . . . " .
methods CONSTRUCTOR .
methods GET_STRUCTURE
returning
value(ES_ALIGNMENT) type ZEXCEL_S_STYLE_ALIGNMENT .
METHODS constructor .
METHODS get_structure
RETURNING
VALUE(es_alignment) TYPE zexcel_s_style_alignment .
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_STYLE_ALIGNMENT
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_STYLE_ALIGNMENT IMPLEMENTATION.
CLASS zcl_excel_style_alignment IMPLEMENTATION.
method CONSTRUCTOR.
horizontal = me->c_horizontal_general.
vertical = me->c_vertical_bottom.
wrapText = abap_false.
shrinkToFit = abap_false.
endmethod.
METHOD constructor.
horizontal = me->c_horizontal_general.
vertical = me->c_vertical_bottom.
wraptext = abap_false.
shrinktofit = abap_false.
ENDMETHOD.
method GET_STRUCTURE.
METHOD get_structure.
es_alignment-horizontal = me->horizontal.
es_alignment-vertical = me->vertical.
es_alignment-textrotation = me->textrotation.
es_alignment-wraptext = me->wraptext.
es_alignment-shrinktofit = me->shrinktofit.
es_alignment-indent = me->indent.
es_alignment-horizontal = me->horizontal.
es_alignment-vertical = me->vertical.
es_alignment-textrotation = me->textrotation.
es_alignment-wraptext = me->wraptext.
es_alignment-shrinktofit = me->shrinktofit.
es_alignment-indent = me->indent.
endmethod.
ENDMETHOD.
ENDCLASS.

View File

@ -1,48 +1,48 @@
class ZCL_EXCEL_STYLE_BORDER definition
public
final
create public .
CLASS zcl_excel_style_border DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
public section.
PUBLIC SECTION.
*"* public components of class ZCL_EXCEL_STYLE_BORDER
*"* do not include other source files here!!!
data BORDER_STYLE type ZEXCEL_BORDER .
data BORDER_COLOR type ZEXCEL_S_STYLE_COLOR .
constants C_BORDER_NONE type ZEXCEL_BORDER value 'none'. "#EC NOTEXT
constants C_BORDER_DASHDOT type ZEXCEL_BORDER value 'dashDot'. "#EC NOTEXT
constants C_BORDER_DASHDOTDOT type ZEXCEL_BORDER value 'dashDotDot'. "#EC NOTEXT
constants C_BORDER_DASHED type ZEXCEL_BORDER value 'dashed'. "#EC NOTEXT
constants C_BORDER_DOTTED type ZEXCEL_BORDER value 'dotted'. "#EC NOTEXT
constants C_BORDER_DOUBLE type ZEXCEL_BORDER value 'double'. "#EC NOTEXT
constants C_BORDER_HAIR type ZEXCEL_BORDER value 'hair'. "#EC NOTEXT
constants C_BORDER_MEDIUM type ZEXCEL_BORDER value 'medium'. "#EC NOTEXT
constants C_BORDER_MEDIUMDASHDOT type ZEXCEL_BORDER value 'mediumDashDot'. "#EC NOTEXT
constants C_BORDER_MEDIUMDASHDOTDOT type ZEXCEL_BORDER value 'mediumDashDotDot'. "#EC NOTEXT
constants C_BORDER_MEDIUMDASHED type ZEXCEL_BORDER value 'mediumDashed'. "#EC NOTEXT
constants C_BORDER_SLANTDASHDOT type ZEXCEL_BORDER value 'slantDashDot'. "#EC NOTEXT
constants C_BORDER_THICK type ZEXCEL_BORDER value 'thick'. "#EC NOTEXT
constants C_BORDER_THIN type ZEXCEL_BORDER value 'thin'. "#EC NOTEXT
DATA border_style TYPE zexcel_border .
DATA border_color TYPE zexcel_s_style_color .
CONSTANTS c_border_none TYPE zexcel_border VALUE 'none'. "#EC NOTEXT
CONSTANTS c_border_dashdot TYPE zexcel_border VALUE 'dashDot'. "#EC NOTEXT
CONSTANTS c_border_dashdotdot TYPE zexcel_border VALUE 'dashDotDot'. "#EC NOTEXT
CONSTANTS c_border_dashed TYPE zexcel_border VALUE 'dashed'. "#EC NOTEXT
CONSTANTS c_border_dotted TYPE zexcel_border VALUE 'dotted'. "#EC NOTEXT
CONSTANTS c_border_double TYPE zexcel_border VALUE 'double'. "#EC NOTEXT
CONSTANTS c_border_hair TYPE zexcel_border VALUE 'hair'. "#EC NOTEXT
CONSTANTS c_border_medium TYPE zexcel_border VALUE 'medium'. "#EC NOTEXT
CONSTANTS c_border_mediumdashdot TYPE zexcel_border VALUE 'mediumDashDot'. "#EC NOTEXT
CONSTANTS c_border_mediumdashdotdot TYPE zexcel_border VALUE 'mediumDashDotDot'. "#EC NOTEXT
CONSTANTS c_border_mediumdashed TYPE zexcel_border VALUE 'mediumDashed'. "#EC NOTEXT
CONSTANTS c_border_slantdashdot TYPE zexcel_border VALUE 'slantDashDot'. "#EC NOTEXT
CONSTANTS c_border_thick TYPE zexcel_border VALUE 'thick'. "#EC NOTEXT
CONSTANTS c_border_thin TYPE zexcel_border VALUE 'thin'. "#EC NOTEXT
methods CONSTRUCTOR .
METHODS constructor .
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_STYLE_BORDER
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_STYLE_BORDER IMPLEMENTATION.
CLASS zcl_excel_style_border IMPLEMENTATION.
method CONSTRUCTOR.
border_style = zcl_excel_style_border=>c_border_none.
border_color-theme = zcl_excel_style_color=>c_theme_not_set.
border_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
endmethod.
METHOD constructor.
border_style = zcl_excel_style_border=>c_border_none.
border_color-theme = zcl_excel_style_color=>c_theme_not_set.
border_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
ENDMETHOD.
ENDCLASS.

View File

@ -1,103 +1,103 @@
class ZCL_EXCEL_STYLE_BORDERS definition
public
final
create public .
CLASS zcl_excel_style_borders DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_STYLE_BORDERS
*"* do not include other source files here!!!
public section.
PUBLIC SECTION.
data ALLBORDERS type ref to ZCL_EXCEL_STYLE_BORDER .
constants C_DIAGONAL_BOTH type ZEXCEL_DIAGONAL value 3. "#EC NOTEXT
constants C_DIAGONAL_DOWN type ZEXCEL_DIAGONAL value 2. "#EC NOTEXT
constants C_DIAGONAL_NONE type ZEXCEL_DIAGONAL value 0. "#EC NOTEXT
constants C_DIAGONAL_UP type ZEXCEL_DIAGONAL value 1. "#EC NOTEXT
data DIAGONAL type ref to ZCL_EXCEL_STYLE_BORDER .
data DIAGONAL_MODE type ZEXCEL_DIAGONAL .
data DOWN type ref to ZCL_EXCEL_STYLE_BORDER .
data LEFT type ref to ZCL_EXCEL_STYLE_BORDER .
data RIGHT type ref to ZCL_EXCEL_STYLE_BORDER .
data TOP type ref to ZCL_EXCEL_STYLE_BORDER .
DATA allborders TYPE REF TO zcl_excel_style_border .
CONSTANTS c_diagonal_both TYPE zexcel_diagonal VALUE 3. "#EC NOTEXT
CONSTANTS c_diagonal_down TYPE zexcel_diagonal VALUE 2. "#EC NOTEXT
CONSTANTS c_diagonal_none TYPE zexcel_diagonal VALUE 0. "#EC NOTEXT
CONSTANTS c_diagonal_up TYPE zexcel_diagonal VALUE 1. "#EC NOTEXT
DATA diagonal TYPE REF TO zcl_excel_style_border .
DATA diagonal_mode TYPE zexcel_diagonal .
DATA down TYPE REF TO zcl_excel_style_border .
DATA left TYPE REF TO zcl_excel_style_border .
DATA right TYPE REF TO zcl_excel_style_border .
DATA top TYPE REF TO zcl_excel_style_border .
methods GET_STRUCTURE
returning
value(ES_FILL) type ZEXCEL_S_STYLE_BORDER .
METHODS get_structure
RETURNING
VALUE(es_fill) TYPE zexcel_s_style_border .
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
protected section.
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_STYLE_BORDERS
*"* do not include other source files here!!!
private section.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_EXCEL_STYLE_BORDERS IMPLEMENTATION.
CLASS zcl_excel_style_borders IMPLEMENTATION.
method GET_STRUCTURE.
METHOD get_structure.
*initialize colors to 'not set'
es_fill-left_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-left_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-right_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-right_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-top_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-top_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-bottom_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-bottom_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-diagonal_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-diagonal_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-left_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-left_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-right_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-right_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-top_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-top_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-bottom_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-bottom_color-theme = zcl_excel_style_color=>c_theme_not_set.
es_fill-diagonal_color-indexed = zcl_excel_style_color=>c_indexed_not_set.
es_fill-diagonal_color-theme = zcl_excel_style_color=>c_theme_not_set.
* Check if all borders is set otherwise check single border
IF me->allborders IS BOUND.
es_fill-left_color = me->allborders->border_color.
es_fill-left_style = me->allborders->border_style.
es_fill-right_color = me->allborders->border_color.
es_fill-right_style = me->allborders->border_style.
es_fill-top_color = me->allborders->border_color.
es_fill-top_style = me->allborders->border_style.
es_fill-bottom_color = me->allborders->border_color.
es_fill-bottom_style = me->allborders->border_style.
ELSE.
IF me->left IS BOUND.
es_fill-left_color = me->left->border_color.
es_fill-left_style = me->left->border_style.
IF me->allborders IS BOUND.
es_fill-left_color = me->allborders->border_color.
es_fill-left_style = me->allborders->border_style.
es_fill-right_color = me->allborders->border_color.
es_fill-right_style = me->allborders->border_style.
es_fill-top_color = me->allborders->border_color.
es_fill-top_style = me->allborders->border_style.
es_fill-bottom_color = me->allborders->border_color.
es_fill-bottom_style = me->allborders->border_style.
ELSE.
IF me->left IS BOUND.
es_fill-left_color = me->left->border_color.
es_fill-left_style = me->left->border_style.
ENDIF.
IF me->right IS BOUND.
es_fill-right_color = me->right->border_color.
es_fill-right_style = me->right->border_style.
ENDIF.
IF me->top IS BOUND.
es_fill-top_color = me->top->border_color.
es_fill-top_style = me->top->border_style.
ENDIF.
IF me->down IS BOUND.
es_fill-bottom_color = me->down->border_color.
es_fill-bottom_style = me->down->border_style.
ENDIF.
ENDIF.
IF me->right IS BOUND.
es_fill-right_color = me->right->border_color.
es_fill-right_style = me->right->border_style.
ENDIF.
IF me->top IS BOUND.
es_fill-top_color = me->top->border_color.
es_fill-top_style = me->top->border_style.
ENDIF.
IF me->down IS BOUND.
es_fill-bottom_color = me->down->border_color.
es_fill-bottom_style = me->down->border_style.
ENDIF.
ENDIF.
* Check if diagonal is set
IF me->diagonal IS BOUND.
es_fill-diagonal_color = me->diagonal->border_color.
es_fill-diagonal_style = me->diagonal->border_style.
CASE me->diagonal_mode.
WHEN 1.
es_fill-diagonalup = 1.
es_fill-diagonaldown = 0.
WHEN 2.
es_fill-diagonalup = 0.
es_fill-diagonaldown = 1.
WHEN 3.
es_fill-diagonalup = 1.
es_fill-diagonaldown = 1.
WHEN OTHERS.
es_fill-diagonalup = 0.
es_fill-diagonaldown = 0.
ENDCASE.
ENDIF.
IF me->diagonal IS BOUND.
es_fill-diagonal_color = me->diagonal->border_color.
es_fill-diagonal_style = me->diagonal->border_style.
CASE me->diagonal_mode.
WHEN 1.
es_fill-diagonalup = 1.
es_fill-diagonaldown = 0.
WHEN 2.
es_fill-diagonalup = 0.
es_fill-diagonaldown = 1.
WHEN 3.
es_fill-diagonalup = 1.
es_fill-diagonaldown = 1.
WHEN OTHERS.
es_fill-diagonalup = 0.
es_fill-diagonaldown = 0.
ENDCASE.
ENDIF.
endmethod.
ENDMETHOD.
ENDCLASS.

Some files were not shown because too many files have changed in this diff Show More