mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:16:14 +08:00
Support also landscape output for the calendar demo
git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@403 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
parent
5c0c447d6d
commit
2de54c6cbb
|
@ -7,12 +7,15 @@
|
|||
<textElement ID="R" ENTRY="abap2xlsx Demo: Erzeugen eines Kalenders mit Bildern" LENGTH="70 "/>
|
||||
</language>
|
||||
<language SPRAS="E">
|
||||
<textElement ID="I" KEY="000" ENTRY="Orientation" LENGTH="11 "/>
|
||||
<textElement ID="I" KEY="001" ENTRY="CW" LENGTH="4 "/>
|
||||
<textElement ID="I" KEY="002" ENTRY="Created with abap2xlsx. Find more information at http://abap2xlsx.org." LENGTH="100 "/>
|
||||
<textElement ID="R" ENTRY="abap2xlsx Demo: Create Calendar with Pictures" LENGTH="45 "/>
|
||||
<textElement ID="S" KEY="P_FROM" ENTRY="D ." LENGTH="9 "/>
|
||||
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
|
||||
<textElement ID="S" KEY="P_TO" ENTRY="D ." LENGTH="9 "/>
|
||||
<textElement ID="S" KEY="P_FROM" ENTRY="D ." LENGTH="17 "/>
|
||||
<textElement ID="S" KEY="P_LANDS" ENTRY=" Landscape" LENGTH="17 "/>
|
||||
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
|
||||
<textElement ID="S" KEY="P_PORTR" ENTRY=" Portrait" LENGTH="16 "/>
|
||||
<textElement ID="S" KEY="P_TO" ENTRY="D ." LENGTH="15 "/>
|
||||
</language>
|
||||
</textPool>
|
||||
<source>*&---------------------------------------------------------------------*
|
||||
|
@ -28,6 +31,7 @@
|
|||
*& Month (with leading 0)
|
||||
*& Image Filename
|
||||
*& Image Description
|
||||
*& URL for the Description
|
||||
*&
|
||||
*& The Images should be landscape JPEG's with a 3:2 ratio and min.
|
||||
*& 450 pixel height. They must also be saved in the Export Directory.
|
||||
|
@ -39,24 +43,25 @@
|
|||
REPORT zdemo_calendar.
|
||||
|
||||
TYPE-POOLS: abap.
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE 'Calendar.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
INCLUDE zdemo_calendar_classes.
|
||||
|
||||
DATA: lv_workdir TYPE string.
|
||||
|
||||
PARAMETERS: p_path TYPE zexcel_export_dir.
|
||||
PARAMETERS: p_from TYPE dfrom DEFAULT '20120101',
|
||||
p_to TYPE dto DEFAULT '20121231'.
|
||||
PARAMETERS: p_from TYPE dfrom DEFAULT '20130101',
|
||||
p_to TYPE dto DEFAULT '20131231'.
|
||||
|
||||
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
|
||||
lv_workdir = p_path.
|
||||
cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
|
||||
CHANGING selected_folder = lv_workdir ).
|
||||
p_path = lv_workdir.
|
||||
SELECTION-SCREEN BEGIN OF BLOCK orientation WITH FRAME TITLE orient.
|
||||
PARAMETERS: p_portr TYPE flag RADIOBUTTON GROUP orie,
|
||||
p_lands TYPE flag RADIOBUTTON GROUP orie DEFAULT 'X'.
|
||||
SELECTION-SCREEN END OF BLOCK orientation.
|
||||
|
||||
INITIALIZATION.
|
||||
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
|
||||
cl_gui_cfw=>flush( ).
|
||||
p_path = lv_workdir.
|
||||
orient = 'Orientation'(000).
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
|
@ -64,7 +69,8 @@ START-OF-SELECTION.
|
|||
lo_excel_writer TYPE REF TO zif_excel_writer,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
|
||||
lo_row_dim TYPE REF TO ZCL_EXCEL_WORKSHEET_ROWDIMENSI,
|
||||
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
|
||||
hyperlink TYPE REF TO zcl_excel_hyperlink,
|
||||
lo_drawing TYPE REF TO zcl_excel_drawing.
|
||||
|
||||
DATA: lo_style_month TYPE REF TO zcl_excel_style,
|
||||
|
@ -83,7 +89,9 @@ START-OF-SELECTION.
|
|||
image_descr_path TYPE string,
|
||||
lv_file_separator TYPE c.
|
||||
DATA: lv_content TYPE xstring,
|
||||
width TYPE i.
|
||||
width TYPE i,
|
||||
lv_height TYPE i,
|
||||
lv_from_row TYPE zexcel_cell_row.
|
||||
|
||||
DATA: month TYPE i,
|
||||
month_nr TYPE fcmnr,
|
||||
|
@ -94,7 +102,9 @@ START-OF-SELECTION.
|
|||
date_from TYPE datum,
|
||||
date_to TYPE datum,
|
||||
row TYPE zexcel_cell_row,
|
||||
to_row TYPE zexcel_cell_row,
|
||||
to_col TYPE zexcel_cell_column_alpha,
|
||||
to_col_end TYPE zexcel_cell_column_alpha,
|
||||
to_col_int TYPE i.
|
||||
|
||||
DATA: month_names TYPE TABLE OF t247.
|
||||
|
@ -104,15 +114,18 @@ START-OF-SELECTION.
|
|||
month_nr TYPE fcmnr,
|
||||
filename TYPE string,
|
||||
descr TYPE string,
|
||||
url TYPE string,
|
||||
END OF tt_datatab.
|
||||
|
||||
DATA: image_descriptions TYPE TABLE OF tt_datatab.
|
||||
FIELD-SYMBOLS: <img_descr> LIKE LINE OF image_descriptions.
|
||||
|
||||
CONSTANTS: lv_default_file_name TYPE string VALUE 'Calendar', "#EC NOTEXT
|
||||
from_row TYPE zexcel_cell_row VALUE 28,
|
||||
c_from_row_portrait TYPE zexcel_cell_row VALUE 28,
|
||||
c_from_row_landscape TYPE zexcel_cell_row VALUE 38,
|
||||
from_col TYPE zexcel_cell_column_alpha VALUE 'C',
|
||||
c_height TYPE i VALUE 450, " Image Height
|
||||
c_height_portrait TYPE i VALUE 450, " Image Height in Portrait Mode
|
||||
c_height_landscape TYPE i VALUE 670, " Image Height in Landscape Mode
|
||||
c_factor TYPE f VALUE '1.5'. " Image Ratio, default 3:2
|
||||
|
||||
IF p_path IS INITIAL.
|
||||
|
@ -187,7 +200,6 @@ START-OF-SELECTION.
|
|||
lo_style_center->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top.
|
||||
lv_style_center_guid = lo_style_center->get_guid( ).
|
||||
|
||||
|
||||
" Get Month Names
|
||||
CALL FUNCTION 'MONTH_NAMES_GET'
|
||||
TABLES
|
||||
|
@ -221,68 +233,131 @@ START-OF-SELECTION.
|
|||
lo_worksheet->set_title( title ).
|
||||
lo_worksheet->set_print_gridlines( abap_false ).
|
||||
lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4.
|
||||
lo_worksheet->sheet_setup->margin_top = '0.80'.
|
||||
lo_worksheet->sheet_setup->margin_left = '0.55'.
|
||||
lo_worksheet->sheet_setup->margin_right = '0.05'.
|
||||
lo_worksheet->sheet_setup->margin_bottom = '0.30'.
|
||||
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
|
||||
lo_worksheet->sheet_setup->vertical_centered = abap_true.
|
||||
lo_col_dim = lo_worksheet->get_column_dimension( 'A' ).
|
||||
lo_col_dim->set_width( '1.0' ).
|
||||
lo_col_dim = lo_worksheet->get_column_dimension( 'B' ).
|
||||
lo_col_dim->set_width( '2.0' ).
|
||||
lo_col_dim = lo_worksheet->get_column_dimension( 'K' ).
|
||||
lo_col_dim->set_width( '3.0' ).
|
||||
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
|
||||
IF p_lands = abap_true.
|
||||
lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape.
|
||||
lv_height = c_height_landscape.
|
||||
lv_from_row = c_from_row_landscape.
|
||||
lo_worksheet->sheet_setup->margin_top = '0.10'.
|
||||
lo_worksheet->sheet_setup->margin_left = '0.10'.
|
||||
lo_worksheet->sheet_setup->margin_right = '0.10'.
|
||||
lo_worksheet->sheet_setup->margin_bottom = '0.10'.
|
||||
ELSE.
|
||||
lo_col_dim = lo_worksheet->get_column_dimension( 'K' ).
|
||||
lo_col_dim->set_width( '3.0' ).
|
||||
lo_worksheet->sheet_setup->margin_top = '0.80'.
|
||||
lo_worksheet->sheet_setup->margin_left = '0.55'.
|
||||
lo_worksheet->sheet_setup->margin_right = '0.05'.
|
||||
lo_worksheet->sheet_setup->margin_bottom = '0.30'.
|
||||
lv_height = c_height_portrait.
|
||||
lv_from_row = c_from_row_portrait.
|
||||
ENDIF.
|
||||
|
||||
" Add Month Name
|
||||
month_nr = date_from+4(2).
|
||||
READ TABLE month_names WITH KEY mnr = month_nr ASSIGNING <month_name>.
|
||||
CONCATENATE <month_name>-ltx ` ` date_from(4) INTO value.
|
||||
row = from_row - 2.
|
||||
IF p_portr = abap_true.
|
||||
READ TABLE month_names WITH KEY mnr = month_nr ASSIGNING <month_name>.
|
||||
CONCATENATE <month_name>-ltx ` ` date_from(4) INTO value.
|
||||
row = lv_from_row - 2.
|
||||
to_col = from_col.
|
||||
ELSE.
|
||||
row = lv_from_row - 1.
|
||||
to_col_int = zcl_excel_common=>convert_column2int( from_col ) + 32.
|
||||
to_col = zcl_excel_common=>convert_column2alpha( to_col_int ).
|
||||
to_col_int = to_col_int + 1.
|
||||
to_col_end = zcl_excel_common=>convert_column2alpha( to_col_int ).
|
||||
CONCATENATE month_nr '/' date_from+2(2) INTO value.
|
||||
to_row = row + 2.
|
||||
lo_worksheet->set_merge(
|
||||
EXPORTING
|
||||
ip_column_start = to_col " Cell Column Start
|
||||
ip_column_end = to_col_end " Cell Column End
|
||||
ip_row = row " Cell Row
|
||||
ip_row_to = to_row " Cell Row
|
||||
).
|
||||
ENDIF.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_column = to_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = lv_style_month_guid
|
||||
).
|
||||
|
||||
to_col_int = zcl_excel_common=>convert_column2int( from_col ) + 7.
|
||||
to_col = zcl_excel_common=>convert_column2alpha( to_col_int ).
|
||||
|
||||
lo_worksheet->set_merge(
|
||||
EXPORTING
|
||||
ip_column_start = from_col " Cell Column Start
|
||||
ip_column_end = to_col " Cell Column End
|
||||
ip_row = row " Cell Row
|
||||
ip_row_to = row " Cell Row
|
||||
).
|
||||
* to_col_int = zcl_excel_common=>convert_column2int( from_col ) + 7.
|
||||
* to_col = zcl_excel_common=>convert_column2alpha( to_col_int ).
|
||||
*
|
||||
* lo_worksheet->set_merge(
|
||||
* EXPORTING
|
||||
* ip_column_start = from_col " Cell Column Start
|
||||
* ip_column_end = to_col " Cell Column End
|
||||
* ip_row = row " Cell Row
|
||||
* ip_row_to = row " Cell Row
|
||||
* ).
|
||||
|
||||
" Add drawing from a XSTRING read from a file
|
||||
UNASSIGN <img_descr>.
|
||||
READ TABLE image_descriptions WITH KEY month_nr = month_nr ASSIGNING <img_descr>.
|
||||
IF <img_descr> IS ASSIGNED.
|
||||
value = <img_descr>-descr.
|
||||
row = from_row - 3.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
).
|
||||
IF p_portr = abap_true.
|
||||
row = lv_from_row - 3.
|
||||
ELSE.
|
||||
row = lv_from_row - 2.
|
||||
ENDIF.
|
||||
IF NOT <img_descr>-url IS INITIAL.
|
||||
hyperlink = zcl_excel_hyperlink=>create_external_link( <img_descr>-url ).
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_hyperlink = hyperlink
|
||||
).
|
||||
ELSE.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
).
|
||||
ENDIF.
|
||||
lo_row_dim = lo_worksheet->get_row_dimension( row ).
|
||||
lo_row_dim->set_row_height( '22.0' ).
|
||||
|
||||
" In Landscape mode the row between the description and the
|
||||
" dates should be not so high
|
||||
IF p_lands = abap_true.
|
||||
row = lv_from_row - 3.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = ' ' " Cell Value
|
||||
).
|
||||
lo_row_dim = lo_worksheet->get_row_dimension( row ).
|
||||
lo_row_dim->set_row_height( '7.0' ).
|
||||
row = lv_from_row - 1.
|
||||
lo_row_dim = lo_worksheet->get_row_dimension( row ).
|
||||
lo_row_dim->set_row_height( '5.0' ).
|
||||
ENDIF.
|
||||
|
||||
CONCATENATE p_path lv_file_separator <img_descr>-filename INTO image_path.
|
||||
lo_drawing = lo_excel->add_new_drawing( ).
|
||||
lo_drawing->set_position( ip_from_row = 1
|
||||
ip_from_col = 'B' ).
|
||||
|
||||
lv_content = zcl_helper=>load_image( image_path ).
|
||||
width = c_height * c_factor.
|
||||
width = lv_height * c_factor.
|
||||
lo_drawing->set_media( ip_media = lv_content
|
||||
ip_media_type = zcl_excel_drawing=>c_media_type_jpg
|
||||
ip_width = width
|
||||
ip_height = c_height ).
|
||||
ip_height = lv_height ).
|
||||
lo_worksheet->add_drawing( lo_drawing ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -292,74 +367,36 @@ START-OF-SELECTION.
|
|||
day_in = date_from
|
||||
IMPORTING
|
||||
last_day_of_month = date_to.
|
||||
|
||||
zcl_helper=>add_calendar(
|
||||
EXPORTING
|
||||
i_date_from = date_from
|
||||
i_date_to = date_to
|
||||
i_from_row = from_row
|
||||
i_from_col = from_col
|
||||
i_day_style = lv_style_border_guid
|
||||
i_cw_style = lv_style_center_guid
|
||||
CHANGING
|
||||
c_worksheet = lo_worksheet
|
||||
).
|
||||
|
||||
IF p_portr = abap_true.
|
||||
zcl_helper=>add_calendar(
|
||||
EXPORTING
|
||||
i_date_from = date_from
|
||||
i_date_to = date_to
|
||||
i_from_row = lv_from_row
|
||||
i_from_col = from_col
|
||||
i_day_style = lv_style_border_guid
|
||||
i_cw_style = lv_style_center_guid
|
||||
CHANGING
|
||||
c_worksheet = lo_worksheet
|
||||
).
|
||||
ELSE.
|
||||
zcl_helper=>add_calendar_landscape(
|
||||
EXPORTING
|
||||
i_date_from = date_from
|
||||
i_date_to = date_to
|
||||
i_from_row = lv_from_row
|
||||
i_from_col = from_col
|
||||
i_day_style = lv_style_border_guid
|
||||
i_cw_style = lv_style_center_guid
|
||||
CHANGING
|
||||
c_worksheet = lo_worksheet
|
||||
).
|
||||
ENDIF.
|
||||
count = count + 1.
|
||||
date_from = date_to + 1.
|
||||
ENDWHILE.
|
||||
|
||||
lo_excel->set_active_sheet_index_by_name( '1' ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
|
||||
lv_file = lo_excel_writer->write_file( lo_excel ).
|
||||
|
||||
" Convert to binary
|
||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||
EXPORTING
|
||||
buffer = lv_file
|
||||
IMPORTING
|
||||
output_length = lv_bytecount
|
||||
TABLES
|
||||
binary_tab = lt_file_tab.
|
||||
* " This method is only available on AS ABAP > 6.40
|
||||
* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
|
||||
* lv_bytecount = xstrlen( lv_file ).
|
||||
|
||||
" Save the file
|
||||
cl_gui_frontend_services=>gui_download(
|
||||
EXPORTING bin_filesize = lv_bytecount
|
||||
filename = lv_full_path
|
||||
filetype = 'BIN'
|
||||
CHANGING data_tab = lt_file_tab
|
||||
EXCEPTIONS
|
||||
file_write_error = 1
|
||||
no_batch = 2
|
||||
gui_refuse_filetransfer = 3
|
||||
invalid_type = 4
|
||||
no_authority = 5
|
||||
unknown_error = 6
|
||||
header_not_allowed = 7
|
||||
separator_not_allowed = 8
|
||||
filesize_not_allowed = 9
|
||||
header_too_long = 10
|
||||
dp_error_create = 11
|
||||
dp_error_send = 12
|
||||
dp_error_write = 13
|
||||
unknown_dp_error = 14
|
||||
access_denied = 15
|
||||
dp_out_of_memory = 16
|
||||
disk_full = 17
|
||||
dp_timeout = 18
|
||||
file_not_found = 19
|
||||
dataprovider_exception = 20
|
||||
control_flush_error = 21
|
||||
not_supported_by_gui = 22
|
||||
error_no_gui = 23
|
||||
OTHERS = 24
|
||||
).
|
||||
IF sy-subrc <> 0.
|
||||
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
||||
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
|
||||
ENDIF.</source>
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).</source>
|
||||
</PROG>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<PROG NAME="ZDEMO_CALENDAR_CLASSES" VARCL="X" SUBC="I" CNAM="DEVELOPER" CDAT="20111229" UNAM="DEVELOPER" UDAT="20120619" VERN="000062" RMAND="001" RLOAD="E" SDATE="20120619" STIME="060152" IDATE="20120619" ITIME="060152" UCCHECK="X">
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PROG NAME="ZDEMO_CALENDAR_CLASSES" VARCL="X" SUBC="I" RMAND="001" RLOAD="E" UCCHECK="X">
|
||||
<textPool>
|
||||
<language SPRAS="E">
|
||||
<textElement ID="R" ENTRY="Include ZDEMO_CALENDAR_CLASSES" LENGTH="30 "/>
|
||||
|
@ -130,6 +130,22 @@ CLASS zcl_helper DEFINITION.
|
|||
i_cw_style TYPE zexcel_cell_style
|
||||
CHANGING
|
||||
c_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
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,
|
||||
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,
|
||||
add_calender_week
|
||||
IMPORTING
|
||||
i_date TYPE datum
|
||||
|
@ -200,6 +216,7 @@ CLASS zcl_helper IMPLEMENTATION.
|
|||
ENDIF.
|
||||
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,
|
||||
|
@ -217,7 +234,6 @@ CLASS zcl_helper IMPLEMENTATION.
|
|||
height TYPE f.
|
||||
DATA: hyperlink TYPE REF TO zcl_excel_hyperlink.
|
||||
|
||||
DATA: day_names TYPE TABLE OF t246.
|
||||
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.
|
||||
|
||||
lv_date = i_date_from.
|
||||
|
@ -300,14 +316,12 @@ CLASS zcl_helper IMPLEMENTATION.
|
|||
).
|
||||
" Add Created with abap2xlsx
|
||||
row = row + 2.
|
||||
value = 'Created with abap2xlsx. Find more information at http://abap2xlsx.org.'(002).
|
||||
hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://abap2xlsx.org' ). "#EC NOTEXT
|
||||
c_worksheet->set_cell(
|
||||
zcl_helper=>add_a2x_footer(
|
||||
EXPORTING
|
||||
ip_column = i_from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_hyperlink = hyperlink
|
||||
i_from_row = row
|
||||
i_from_col = i_from_col
|
||||
CHANGING
|
||||
c_worksheet = c_worksheet
|
||||
).
|
||||
col_int = from_col_int.
|
||||
col_max = from_col_int + 7.
|
||||
|
@ -331,6 +345,113 @@ CLASS zcl_helper IMPLEMENTATION.
|
|||
row = row + 1.
|
||||
ENDWHILE.
|
||||
ENDMETHOD. "add_calendar
|
||||
METHOD add_a2x_footer.
|
||||
DATA: value TYPE string,
|
||||
hyperlink TYPE REF TO zcl_excel_hyperlink.
|
||||
|
||||
value = 'Created with abap2xlsx. Find more information at http://abap2xlsx.org.'(002).
|
||||
hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://abap2xlsx.org' ). "#EC NOTEXT
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = i_from_col " Cell Column
|
||||
ip_row = i_from_row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_hyperlink = hyperlink
|
||||
).
|
||||
|
||||
ENDMETHOD. "add_a2x_footer
|
||||
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_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
|
||||
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
|
||||
|
||||
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.
|
||||
|
||||
lv_date = i_date_from.
|
||||
" Add Days
|
||||
CALL FUNCTION 'DAY_NAMES_GET'
|
||||
TABLES
|
||||
day_names = day_names.
|
||||
|
||||
WHILE lv_date <= i_date_to.
|
||||
day = lv_date+6(2).
|
||||
CALL FUNCTION 'FIMA_X_DAY_IN_MONTH_COMPUTE'
|
||||
EXPORTING
|
||||
i_datum = lv_date
|
||||
IMPORTING
|
||||
e_wochentag_nr = weekday.
|
||||
" Day name row
|
||||
row = i_from_row.
|
||||
col_int = from_col_int + day + 2.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
READ TABLE day_names ASSIGNING <day_name>
|
||||
WITH KEY wotnr = weekday.
|
||||
value = <day_name>-kurzt.
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_cw_style
|
||||
).
|
||||
|
||||
" Day row
|
||||
row = i_from_row + 1.
|
||||
value = day.
|
||||
CONDENSE value.
|
||||
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_day_style " Single-Character Indicator
|
||||
).
|
||||
" width
|
||||
lo_col_dim = c_worksheet->get_column_dimension( col ).
|
||||
lo_col_dim->set_width( '3.6' ).
|
||||
|
||||
|
||||
lv_date = lv_date + 1.
|
||||
ENDWHILE.
|
||||
" Add ABAP2XLSX Footer
|
||||
row = i_from_row + 2.
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = ' ' " Cell Value
|
||||
).
|
||||
lo_row_dim = c_worksheet->get_row_dimension( row ).
|
||||
lo_row_dim->set_row_height( '5.0' ).
|
||||
row = i_from_row + 3.
|
||||
zcl_helper=>add_a2x_footer(
|
||||
EXPORTING
|
||||
i_from_row = row
|
||||
i_from_col = i_from_col
|
||||
CHANGING
|
||||
c_worksheet = c_worksheet
|
||||
).
|
||||
|
||||
" Set with for all 31 coulumns
|
||||
WHILE day < 32.
|
||||
day = day + 1.
|
||||
col_int = from_col_int + day + 2.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
" width
|
||||
lo_col_dim = c_worksheet->get_column_dimension( col ).
|
||||
lo_col_dim->set_width( '3.6' ).
|
||||
ENDWHILE.
|
||||
ENDMETHOD. "ADD_CALENDAR_LANDSCAPE
|
||||
|
||||
METHOD add_calender_week.
|
||||
DATA: week TYPE kweek,
|
||||
|
|
Loading…
Reference in New Issue
Block a user