diff --git a/build/ABAP2XLSX_V_7_0.nugg b/build/ABAP2XLSX_V_7_0.nugg
index 769d980..8237b75 100644
--- a/build/ABAP2XLSX_V_7_0.nugg
+++ b/build/ABAP2XLSX_V_7_0.nugg
@@ -457,7 +457,7 @@
- method GET_IXML_FROM_ZIP_ARCHIVE.
+ METHOD get_ixml_from_zip_archive.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Add comment what is being achieved here
@@ -496,7 +496,7 @@
lo_parser->set_validating( mode = if_ixml_parser=>co_no_validation ).
lo_parser->parse( ).
- endmethod.
+ENDMETHOD.
@@ -1918,7 +1918,7 @@
- method LOAD_WORKSHEET.
+ METHOD load_worksheet.
*--------------------------------------------------------------------*
* ToDos:
* 2do§1 Header/footer
@@ -2127,6 +2127,9 @@
lv_datavalidation_range TYPE string,
lt_datavalidation_range TYPE TABLE OF string.
+ DATA: lv_errormessage TYPE string,
+ lo_ex TYPE REF TO cx_root.
+
*--------------------------------------------------------------------*
* §2 We need to read the the file "\\_rels\.rels" because it tells
* us where in this folder structure the data for the workbook
@@ -2310,8 +2313,11 @@
ls_ref_formula-ref = ls_formula_attributes-ref.
ls_ref_formula-formula = lv_cell_formula.
INSERT ls_ref_formula INTO TABLE me->mt_ref_formulae.
- CATCH cx_root.
- BREAK-POINT.
+ CATCH cx_root INTO lo_ex.
+ lv_errormessage = lo_ex->if_message~get_text( ).
+ RAISE EXCEPTION TYPE zcx_excel
+ EXPORTING
+ error = lv_errormessage.
ENDTRY.
ENDIF.
*--------------------------------------------------------------------*
@@ -2573,16 +2579,16 @@
ip_element = lo_ixml_datavalidation_elem
CHANGING
cp_structure = ls_datavalidation ).
- clear lo_ixml_formula_elem.
+ CLEAR lo_ixml_formula_elem.
lo_ixml_formula_elem = lo_ixml_datavalidation_elem->find_from_name( name = 'formula1' ).
- if lo_ixml_formula_elem is bound.
+ IF lo_ixml_formula_elem IS BOUND.
ls_datavalidation-formula1 = lo_ixml_formula_elem->get_value( ).
- endif.
- clear lo_ixml_formula_elem.
+ ENDIF.
+ CLEAR lo_ixml_formula_elem.
lo_ixml_formula_elem = lo_ixml_datavalidation_elem->find_from_name( name = 'formula2' ).
- if lo_ixml_formula_elem is bound.
+ IF lo_ixml_formula_elem IS BOUND.
ls_datavalidation-formula2 = lo_ixml_formula_elem->get_value( ).
- endif.
+ ENDIF.
SPLIT ls_datavalidation-sqref AT space INTO TABLE lt_datavalidation_range.
LOOP AT lt_datavalidation_range INTO lv_datavalidation_range.
zcl_excel_common=>convert_range2column_a_row( EXPORTING
@@ -2610,12 +2616,12 @@
lo_data_validation->cell_row_to = ls_datavalidation-cell_row_to.
lo_data_validation->cell_column = ls_datavalidation-cell_column.
lo_data_validation->cell_column_to = ls_datavalidation-cell_column_to.
- endloop.
+ ENDLOOP.
lo_ixml_datavalidation_elem ?= lo_ixml_iterator->get_next( ).
ENDWHILE.
" End fix 276 Read data validations
- endmethod.
+ENDMETHOD.
@@ -3134,17 +3140,13 @@
-
- method CONSTRUCTOR.
- endmethod.
-
-
+
- method IS_SECURITY_ENABLED.
+ 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.
+ENDMETHOD.
@@ -3813,11 +3815,7 @@
-
- method CONSTRUCTOR.
- endmethod.
-
-
+ method GET_STRUCTURE.
*initialize colors to 'not set'
@@ -3894,39 +3892,33 @@
*"* use this source file for any macro definitions you need
*"* in the implementation part of the class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- method CONSTRUCTOR.
-
-
- endmethod.
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4323,12 +4315,7 @@
-
- method CONSTRUCTOR.
-
- endmethod.
-
-
+ method GET_BOTTOM_ROW_INTEGER.
DATA: lv_table_lines TYPE i.
@@ -4359,7 +4346,7 @@
ov_id = id.
endmethod.
-
+ method GET_NAME.
@@ -4371,7 +4358,7 @@
ov_name = me->name.
endmethod.
-
+ method GET_REFERENCE.
@@ -4415,7 +4402,7 @@
endmethod.
-
+ method GET_RIGHT_COLUMN_INTEGER.
@@ -4517,6 +4504,27 @@ ENDMETHOD.
+
+
+
+
@@ -4731,6 +4739,7 @@ ENDCLASS. "lcl_gui_alv_grid DEFINITION
+
@@ -7129,7 +7138,7 @@ ENDCLASS. "lcl_gui_alv_grid DEFINITION
CONSTANTS:
lc_top_left_column TYPE zexcel_cell_column_alpha VALUE 'B',
- lc_top_left_row TYPE zexcel_cell_row VALUE '3'.
+ lc_top_left_row TYPE zexcel_cell_row VALUE 3.
DATA:
lv_row_int TYPE zexcel_cell_row,
@@ -7377,31 +7386,255 @@ ENDCLASS. "lcl_gui_alv_grid DEFINITION
-
+
- method CALCULATE_CELL_WIDTH.
- DATA: cell_value TYPE zexcel_cell_value,
- guid TYPE zexcel_cell_style,
- stylemapping TYPE zexcel_s_stylemapping.
+ *--------------------------------------------------------------------*
+* issue #293 - Roberto Bianco
+* - Christian Assig 2014-03-14
+*
+* changes: - Calculate widths using SAPscript font metrics
+* (transaction SE73)
+* - Calculate the width of dates
+* - Add additional width for auto filter buttons
+* - Add cell padding to simulate Excel behavior
+*--------------------------------------------------------------------*
+METHOD calculate_cell_width.
- me->get_cell( EXPORTING ip_column = ip_column " Cell Column
- ip_row = ip_row " Cell Row
- IMPORTING ep_value = cell_value
- ep_guid = guid )." Cell Value ).
+ CONSTANTS:
+ lc_default_font_name TYPE zexcel_style_font_name VALUE 'Calibri', "#EC NOTEXT
+ lc_default_font_height TYPE tdfontsize VALUE '110',
+ lc_excel_cell_padding TYPE float VALUE '0.75'.
+ DATA: ld_cell_value TYPE zexcel_cell_value,
+ ld_current_character TYPE c LENGTH 1,
+ ld_style_guid TYPE zexcel_cell_style,
+ ls_stylemapping TYPE zexcel_s_stylemapping,
+ lo_table_object TYPE REF TO object,
+ lo_table TYPE REF TO zcl_excel_table,
+ ld_table_top_left_column TYPE zexcel_cell_column,
+ ld_table_bottom_right_column TYPE zexcel_cell_column,
+ ld_flag_contains_auto_filter TYPE abap_bool VALUE abap_false,
+ ld_flag_bold TYPE abap_bool VALUE abap_false,
+ ld_flag_italic TYPE abap_bool VALUE abap_false,
+ ld_date TYPE d,
+ ld_date_char TYPE c LENGTH 50,
+ ld_font_height TYPE tdfontsize VALUE lc_default_font_height,
+ lt_itcfc TYPE STANDARD TABLE OF itcfc,
+ ld_offset TYPE i,
+ ld_uccp TYPE i,
+ ls_font_metric TYPE mty_s_font_metric,
+ ld_width_from_font_metrics TYPE i,
+ ld_font_family TYPE itcfh-tdfamily,
+ ld_font_name TYPE zexcel_style_font_name VALUE lc_default_font_name,
+ lt_font_families LIKE STANDARD TABLE OF ld_font_family,
+ ls_font_cache TYPE mty_s_font_cache.
- ep_width = STRLEN( cell_value ).
- TRY.
- stylemapping = me->excel->get_style_to_guid( guid ).
- CATCH zcx_excel.
- EXIT. " Do nothing if no style was found
- ENDTRY.
+ FIELD-SYMBOLS: <ls_font_cache> TYPE mty_s_font_cache,
+ <ls_font_metric> TYPE mty_s_font_metric,
+ <ls_itcfc> TYPE itcfc.
- IF stylemapping-complete_stylex-font-size = 'X'.
- ep_width = ep_width * stylemapping-complete_style-font-size / 11.
+ " Determine cell content and cell style
+ me->get_cell( EXPORTING ip_column = ip_column
+ ip_row = ip_row
+ IMPORTING ep_value = ld_cell_value
+ ep_guid = ld_style_guid ).
+
+ " ABAP2XLSX uses tables to define areas containing headers and
+ " auto-filters. Find out if the current cell is in the header
+ " of one of these tables.
+ LOOP AT me->tables->collection INTO lo_table_object.
+ " Downcast: OBJECT -> ZCL_EXCEL_TABLE
+ lo_table ?= lo_table_object.
+
+ " Convert column letters to corresponding integer values
+ ld_table_top_left_column =
+ zcl_excel_common=>convert_column2int(
+ lo_table->settings-top_left_column ).
+
+ ld_table_bottom_right_column =
+ zcl_excel_common=>convert_column2int(
+ lo_table->settings-bottom_right_column ).
+
+ " Is the current cell part of the table header?
+ IF ip_column BETWEEN ld_table_top_left_column AND
+ ld_table_bottom_right_column AND
+ ip_row EQ lo_table->settings-top_left_row.
+ " Current cell is part of the table header
+ " -> Assume that an auto filter is present and that the font is
+ " bold
+ ld_flag_contains_auto_filter = abap_true.
+ ld_flag_bold = abap_true.
+ ENDIF.
+ ENDLOOP.
+
+ " If a style GUID is present, read style attributes
+ IF ld_style_guid IS NOT INITIAL.
+ TRY.
+ " Read style attributes
+ ls_stylemapping = me->excel->get_style_to_guid( ld_style_guid ).
+
+ " If the current cell contains the default date format,
+ " convert the cell value to a date and calculate its length
+ IF ls_stylemapping-complete_style-number_format-format_code =
+ zcl_excel_style_number_format=>c_format_date_std.
+
+ " Convert excel date to ABAP date
+ ld_date =
+ zcl_excel_common=>excel_string_to_date( ld_cell_value ).
+
+ " Format ABAP date using user's formatting settings
+ WRITE ld_date TO ld_date_char.
+
+ " Remember the formatted date to calculate the cell size
+ ld_cell_value = ld_date_char.
+
+ ENDIF.
+
+ " Read the font size and convert it to the font height
+ " used by SAPscript (multiplication by 10)
+ IF ls_stylemapping-complete_stylex-font-size = abap_true.
+ ld_font_height = ls_stylemapping-complete_style-font-size * 10.
+ ENDIF.
+
+ " If set, remember the font name
+ IF ls_stylemapping-complete_stylex-font-name = abap_true.
+ ld_font_name = ls_stylemapping-complete_style-font-name.
+ ENDIF.
+
+ " If set, remember whether font is bold and italic.
+ IF ls_stylemapping-complete_stylex-font-bold = abap_true.
+ ld_flag_bold = ls_stylemapping-complete_style-font-bold.
+ ENDIF.
+
+ IF ls_stylemapping-complete_stylex-font-italic = abap_true.
+ ld_flag_italic = ls_stylemapping-complete_style-font-italic.
+ ENDIF.
+
+ CATCH zcx_excel ##NO_HANDLER.
+ " Style GUID is present, but style was not found
+ " Continue with default values
+
+ ENDTRY.
ENDIF.
- endmethod.
+ " Check if the same font (font name and font attributes) was already
+ " used before
+ READ TABLE mth_font_cache
+ WITH TABLE KEY
+ font_name = ld_font_name
+ font_height = ld_font_height
+ flag_bold = ld_flag_bold
+ flag_italic = ld_flag_italic
+ ASSIGNING <ls_font_cache>.
+
+ IF sy-subrc <> 0.
+ " Font is used for the first time
+ " Add the font to our local font cache
+ ls_font_cache-font_name = ld_font_name.
+ ls_font_cache-font_height = ld_font_height.
+ ls_font_cache-flag_bold = ld_flag_bold.
+ ls_font_cache-flag_italic = ld_flag_italic.
+ INSERT ls_font_cache INTO TABLE mth_font_cache
+ ASSIGNING <ls_font_cache>.
+
+ " Determine the SAPscript font family name from the Excel
+ " font name
+ SELECT tdfamily
+ FROM tfo01
+ INTO TABLE lt_font_families
+ UP TO 1 ROWS
+ WHERE tdtext = ld_font_name.
+
+ " Check if a matching font family was found
+ " Fonts can be uploaded from TTF files using transaction SE73
+ IF lines( lt_font_families ) > 0.
+ READ TABLE lt_font_families INDEX 1 INTO ld_font_family.
+
+ " Load font metrics (returns a table with the size of each letter
+ " in the font)
+ CALL FUNCTION 'LOAD_FONT'
+ EXPORTING
+ family = ld_font_family
+ height = ld_font_height
+ printer = 'SWIN'
+ bold = ld_flag_bold
+ italic = ld_flag_italic
+ TABLES
+ metric = lt_itcfc
+ EXCEPTIONS
+ font_family = 1
+ codepage = 2
+ device_type = 3
+ OTHERS = 4.
+ IF sy-subrc <> 0.
+ CLEAR lt_itcfc.
+ ENDIF.
+
+ " For faster access, convert each character number to the actual
+ " character, and store the characters and their sizes in a hash
+ " table
+ LOOP AT lt_itcfc ASSIGNING <ls_itcfc>.
+ ld_uccp = <ls_itcfc>-cpcharno.
+ ls_font_metric-char =
+ cl_abap_conv_in_ce=>uccpi( ld_uccp ).
+ ls_font_metric-char_width = <ls_itcfc>-tdcwidths.
+ INSERT ls_font_metric
+ INTO TABLE <ls_font_cache>-th_font_metrics.
+ ENDLOOP.
+
+ ENDIF.
+ ENDIF.
+
+ " Calculate the cell width
+ " If available, use font metrics
+ IF lines( <ls_font_cache>-th_font_metrics ) = 0.
+ " Font metrics are not available
+ " -> Calculate the cell width using only the font size
+ ep_width =
+ strlen( ld_cell_value ) * ld_font_height / lc_default_font_height
+ + lc_excel_cell_padding.
+
+ ELSE.
+ " Font metrics are available
+
+ " Calculate the size of the text by adding the sizes of each
+ " letter
+ DO strlen( ld_cell_value ) TIMES.
+ " Subtract 1, because the first character is at offset 0
+ ld_offset = sy-index - 1.
+
+ " Read the current character from the cell value
+ ld_current_character = ld_cell_value+ld_offset(1).
+
+ " Look up the size of the current letter
+ READ TABLE <ls_font_cache>-th_font_metrics
+ WITH TABLE KEY char = ld_current_character
+ ASSIGNING <ls_font_metric>.
+ IF sy-subrc = 0.
+ " The size of the letter is known
+ " -> Add the actual size of the letter
+ ADD <ls_font_metric>-char_width TO ld_width_from_font_metrics.
+ ELSE.
+ " The size of the letter is unknown
+ " -> Add the font height as the default letter size
+ ADD ld_font_height TO ld_width_from_font_metrics.
+ ENDIF.
+ ENDDO.
+
+ " Add cell padding (Excel makes columns a bit wider than the space
+ " that is needed for the text itself) and convert unit
+ " (division by 100)
+ ep_width = ld_width_from_font_metrics / 100 + lc_excel_cell_padding.
+ ENDIF.
+
+ " If the current cell contains an auto filter, make it a bit wider.
+ " The size used by the auto filter button does not depend on the font
+ " size.
+ IF ld_flag_contains_auto_filter = abap_true.
+ ADD 2 TO ep_width.
+ ENDIF.
+
+ENDMETHOD.
@@ -7423,7 +7656,7 @@ ENDCLASS. "lcl_gui_alv_grid DEFINITION
DATA: cell_style TYPE REF TO zcl_excel_style.
DATA: count TYPE int4.
DATA: highest_row TYPE int4.
- DATA: width TYPE i.
+ DATA: width TYPE float.
FIELD-SYMBOLS: <column_dimension> LIKE LINE OF column_dimensions.
FIELD-SYMBOLS: <auto_size> LIKE LINE OF auto_sizes.
@@ -9068,7 +9301,7 @@ ENDMETHOD.
ls_newline TYPE REF TO data,
ls_header TYPE x030l,
lt_dfies TYPE ddfields,
- lv_row_header TYPE zexcel_cell_row VALUE '2',
+ lv_row_header TYPE zexcel_cell_row VALUE 2,
lv_col_header TYPE zexcel_cell_column_alpha VALUE 'B',
lv_row_int TYPE zexcel_cell_row,
lv_column_int TYPE zexcel_cell_column,
@@ -17995,7 +18228,7 @@ TYPES: BEGIN OF ts_objects,
-
+
@@ -18045,7 +18278,7 @@ TYPES: BEGIN OF ts_objects,
ENDIF.
endmethod.
-
+
@@ -18098,7 +18331,7 @@ TYPES: BEGIN OF ts_objects,
ENDIF.
endmethod.
-
+
@@ -18162,7 +18395,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -18203,7 +18436,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -18362,7 +18595,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -18385,7 +18618,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -18478,7 +18711,7 @@ TYPES: BEGIN OF ts_objects,
e_sheet = unescape_string( lv_sheet ). " Return in unescaped form
endmethod.
-
+ method DATE_TO_EXCEL_STRING.
@@ -18547,11 +18780,7 @@ TYPES: BEGIN OF ts_objects,
ENDIF.
endmethod.
-
- method DESCRIBE_TABLE.
- endmethod.
-
-
+
@@ -18581,7 +18810,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+ method ENCRYPT_PASSWORD.
@@ -18623,7 +18852,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+ method ESCAPE_STRING.
@@ -18674,7 +18903,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -18697,7 +18926,7 @@ TYPES: BEGIN OF ts_objects,
ENDTRY.
endmethod.
-
+
@@ -18720,7 +18949,7 @@ TYPES: BEGIN OF ts_objects,
ENDTRY.
endmethod.
-
+
@@ -18760,7 +18989,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+ method GET_FIELDCATALOG.
@@ -18821,7 +19050,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+ method NUMBER_TO_EXCEL_STRING.
@@ -18840,7 +19069,7 @@ TYPES: BEGIN OF ts_objects,
ENDIF.
endmethod.
-
+
@@ -18899,7 +19128,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -18963,7 +19192,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -19351,7 +19580,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+
@@ -19438,7 +19667,7 @@ TYPES: BEGIN OF ts_objects,
endmethod.
-
+ method TIME_TO_EXCEL_STRING.
@@ -19452,7 +19681,7 @@ TYPES: BEGIN OF ts_objects,
ep_value = zcl_excel_common=>number_to_excel_string( ip_value = lv_day_fraction ).
endmethod.
-
+
@@ -20297,7 +20526,7 @@ TYPES: BEGIN OF ts_color_styles,
- method CREATE_TEXT_SUBTOTAL.
+ METHOD create_text_subtotal.
DATA: l_string(256) TYPE c,
l_func TYPE string.
@@ -20316,11 +20545,11 @@ TYPES: BEGIN OF ts_color_styles,
CLEAR l_func.
ENDCASE.
- WRITE i_value TO l_string.
+ MOVE i_value TO l_string.
CONCATENATE l_string l_func INTO r_text SEPARATED BY space.
- endmethod.
+ENDMETHOD.
@@ -20627,7 +20856,7 @@ TYPES: BEGIN OF ts_color_styles,
method LOOP_NORMAL.
DATA: lo_data TYPE REF TO data,
- l_row_header TYPE zexcel_cell_row VALUE '2',
+ l_row_header TYPE zexcel_cell_row VALUE 2,
l_col_header TYPE zexcel_cell_column_alpha VALUE 'B',
l_row_int_start TYPE zexcel_cell_row,
l_row_int_end TYPE zexcel_cell_row,
@@ -20750,7 +20979,7 @@ TYPES: BEGIN OF ts_color_styles,
method LOOP_SUBTOTAL.
DATA: lo_data TYPE REF TO data,
- l_row_header TYPE zexcel_cell_row VALUE '2',
+ l_row_header TYPE zexcel_cell_row VALUE 2,
l_col_header TYPE zexcel_cell_column_alpha VALUE 'B',
l_row_int_start TYPE zexcel_cell_row,
l_row_int_end TYPE zexcel_cell_row,
@@ -21623,7 +21852,7 @@ TYPES: BEGIN OF ts_col_converter,
- method GET_FILTER.
+ METHOD get_filter.
DATA: ls_filt TYPE lvc_s_filt,
l_line TYPE i,
ls_filter TYPE zexcel_s_converter_fil.
@@ -21638,10 +21867,10 @@ TYPES: BEGIN OF ts_col_converter,
FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE,
<fs_ltab> TYPE STANDARD TABLE,
- <fs_stab> TYPE ANY,
- <fs> TYPE ANY,
- <fs1> TYPE ANY,
- <fs_srange> TYPE ANY,
+ <fs_stab> TYPE any,
+ <fs> TYPE any,
+ <fs1> TYPE any,
+ <fs_srange> TYPE any,
<fs_trange> TYPE STANDARD TABLE.
IF ws_option-filter = abap_false.
@@ -21719,7 +21948,7 @@ TYPES: BEGIN OF ts_col_converter,
ENDIF.
ENDLOOP.
- endmethod.
+ENDMETHOD.
@@ -22068,8 +22297,6 @@ ENDMETHOD.
CLEAR: es_layout,
et_fieldcatalog.
- break rturnheim.
-
IF lo_result IS BOUND.
lo_data = get_table( io_object = lo_result->r_model->r_data ).
IF lo_data IS BOUND.
@@ -22661,15 +22888,15 @@ ENDMETHOD.
-
-
-
+
+
+
-
-
-
+
+
+
@@ -22759,15 +22986,18 @@ ENDMETHOD.
- method GET_MEDIA.
+ METHOD get_media.
+
+ DATA: lv_language TYPE sylangu.
+ DATA: lt_bin_mime TYPE sdokcntbins.
+ DATA: lt_mime TYPE tsfmime,
+ lv_filesize TYPE i,
+ lv_filesizec(10).
+
CASE media_source.
WHEN c_media_source_xstring.
r_media = media.
WHEN c_media_source_www.
- DATA: lt_mime TYPE tsfmime,
- lv_filesize TYPE i,
- lv_filesizec(10).
-
CALL FUNCTION 'WWWDATA_IMPORT'
EXPORTING
key = media_key_www
@@ -22796,14 +23026,14 @@ ENDMETHOD.
failed = 1
OTHERS = 2.
WHEN c_media_source_mime.
- DATA: lt_bin_mime TYPE sdokcntbins.
+ lv_language = sy-langu.
cl_wb_mime_repository=>load_mime( EXPORTING
io = me->io
IMPORTING
filesize = lv_filesize
bin_data = lt_bin_mime
CHANGING
- language = sy-langu ).
+ language = lv_language ).
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
@@ -22816,7 +23046,7 @@ ENDMETHOD.
failed = 1
OTHERS = 2.
ENDCASE.
- endmethod.
+ENDMETHOD.
@@ -23559,7 +23789,7 @@ ENDMETHOD.
-
+ method PIXEL2EMU.
* suppose 96 DPI
IF ip_dpi IS SUPPLIED.
@@ -23593,26 +23823,27 @@ ENDMETHOD.
- method SET_MEDIA_MIME.
+ METHOD set_media_mime.
+
+ DATA: lv_language TYPE sylangu.
io = ip_io.
media_source = c_media_source_mime.
size-width = ip_width.
size-height = ip_height.
+ lv_language = sy-langu.
cl_wb_mime_repository=>load_mime( EXPORTING
io = ip_io
IMPORTING
filename = media_name
"mimetype = media_type
CHANGING
- language = sy-langu ).
+ language = lv_language ).
SPLIT media_name AT '.' INTO media_name media_type.
-
-
- endmethod.
+ENDMETHOD.
@@ -23814,244 +24045,244 @@ ENDMETHOD.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -24962,11 +25193,7 @@ ENDMETHOD.
-
- method CONSTRUCTOR.
- endmethod.
-
-
+ method GET_GUID.
@@ -24974,7 +25201,7 @@ ENDMETHOD.
endmethod.
-
+ method GET_VALUE.
@@ -24982,13 +25209,13 @@ ENDMETHOD.
endmethod.
-
+ method SET_RANGE_VALUE.
me->value = ip_value.
endmethod.
-
+
@@ -25331,11 +25558,6 @@ ENDMETHOD.
-
-
-
-
-
@@ -25379,12 +25601,12 @@ ENDMETHOD.
-
-
+
+
-
-
+
+
@@ -30724,144 +30946,6 @@ CLASS lcl_perform IMPLEMENTATION.
ENDCLASS. "lcl_perform IMPLEMENTATION
-
-
-
-
-
-
- *&---------------------------------------------------------------------*
-*& Report Z_ZAKE_SVN
-*&
-*&---------------------------------------------------------------------*
-*& Checkout / Checkin the ZAKE_SVN Project
-*&
-*&---------------------------------------------------------------------*
-
-REPORT zake_svn_a2x.
-
-CONSTANTS cl_svn TYPE seoclsname VALUE 'ZCL_ZAKE_SVN'.
-CONSTANTS cl_tortoise_svn TYPE seoclsname VALUE 'ZCL_ZAKE_TORTOISE_SVN'.
-
-DATA package TYPE devclass.
-DATA zake TYPE REF TO zake.
-
-DATA objects TYPE scts_tadir.
-DATA object LIKE LINE OF objects.
-
-DATA files TYPE string_table.
-DATA file LIKE LINE OF files.
-
-DATA zake_build TYPE string.
-DATA zake_nuggetname TYPE string.
-
-DATA comment_str TYPE string.
-DATA loclpath_str TYPE string.
-DATA svnpath_str TYPE string.
-DATA username_str TYPE string.
-DATA password_str TYPE string.
-DATA class TYPE seoclsname.
-
-DATA: ex TYPE REF TO zcx_saplink,
- message TYPE string.
-
-SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE a.
-PARAMETERS:
- checkout TYPE flag RADIOBUTTON GROUP act,
- update TYPE flag RADIOBUTTON GROUP act DEFAULT 'X',
- install TYPE flag RADIOBUTTON GROUP act,
- export TYPE flag RADIOBUTTON GROUP act,
- build TYPE flag RADIOBUTTON GROUP act,
- checkin TYPE flag RADIOBUTTON GROUP act.
-SELECTION-SCREEN END OF BLOCK a.
-
-SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE b.
-PARAMETERS:
- svn TYPE flag RADIOBUTTON GROUP cl,
- tortoise TYPE flag RADIOBUTTON GROUP cl.
-SELECTION-SCREEN END OF BLOCK b.
-
-SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE c.
-PARAMETERS:
- loclpath TYPE char512 DEFAULT 'C:\Projects\abap2xlsx\trunk' LOWER CASE OBLIGATORY,
- zakenugg TYPE char512 DEFAULT 'C:\Projects\abap2xlsx\nuggs\abap2xlsx_Daily.nugg' LOWER CASE OBLIGATORY,
- svnpath TYPE char512 DEFAULT 'https://code.sdn.sap.com/svn/abap2xlsx/trunk' LOWER CASE OBLIGATORY,
- comment TYPE char512 DEFAULT '' LOWER CASE,
- username TYPE char512 LOWER CASE,
- password TYPE char512 LOWER CASE,
- testrun TYPE flag DEFAULT 'X'.
-SELECTION-SCREEN END OF BLOCK c.
-
-INITIALIZATION.
- a = 'Action'.
- b = 'Version Controll Program'.
- c = 'Parameters'.
-
-START-OF-SELECTION.
-
- svnpath_str = svnpath.
- loclpath_str = loclpath.
- zake_nuggetname = zakenugg.
- comment_str = comment.
-
- " SELECT * INTO TABLE objects FROM tadir WHERE devclass = 'ZABAP2XLSX'.
- " DELETE zake_objects WHERE object = 'DEVC'.
-
- TRY.
- IF svn = 'X'.
- class = cl_svn.
- ELSE.
- class = cl_tortoise_svn.
- ENDIF.
-
- CREATE OBJECT zake
- TYPE
- (class)
- EXPORTING
- i_svnpath = svnpath_str
- i_localpath = loclpath_str.
- zake->set_testrun( testrun ).
- zake->set_package( 'ZA2X' ).
-
- IF checkout = 'X'.
- zake->checkout( ).
- ELSEIF update = 'X'.
- zake->update( ).
- ELSEIF install = 'X'.
- zake->install_slinkees_from_lm( testrun ).
- " zake->install_objects( zake_objects ).
- ELSEIF export = 'X'.
- " Build Object list for Export
- " Programs
- object-object = 'PROG'.
- object-obj_name = 'ZAKE_SVN_A2X'.
- APPEND object TO objects.
- zake->set_checkin_objects( objects ).
- zake->download_slinkees_to_lm = abap_true.
- zake->download_nugget_to_lm = space.
- zake->download_zip_to_lm_flag = space.
- zake->create_slinkees( zake_nuggetname ).
- ELSEIF build = 'X'.
- " Build a complete package for download
- zake->set_checkin_objects( objects ).
- " We don't want that for the complete Package Slinkees are created
- " in the ZAKE folder
- zake->download_slinkees_to_lm = space.
- zake->download_nugget_to_lm = space.
- zake->create_slinkees( zake_nuggetname ).
- ELSEIF checkin = 'X'.
- zake->set_package( 'ZA2X' ).
- zake->set_checkin_objects( objects ).
- zake->create_slinkees( zake_nuggetname ).
- IF testrun IS INITIAL.
- zake->checkin( comment_str ).
- ENDIF.
- ENDIF.
- CATCH zcx_saplink INTO ex.
- message = ex->msg.
- WRITE: / 'An Error occured: ', message.
- ENDTRY.
-
@@ -32751,11 +32835,13 @@ START-OF-SELECTION.
-
+
+
+
-
+
@@ -32801,7 +32887,7 @@ INCLUDE zdemo_excel_outputopt_incl.
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
-SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE a.
+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',
@@ -32810,15 +32896,11 @@ SELECTION-SCREEN END OF BLOCK a.
PARAMETERS: rel TYPE flag RADIOBUTTON GROUP act DEFAULT 'X'.
-SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE b.
+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.
-INITIALIZATION.
- a = 'Select by master data'.
- b = 'Select by relationship'.
-
START-OF-SELECTION.
IF md = abap_true.
" Read all Companies by Master Data
diff --git a/build/ABAP2XLSX_V_7_0.zip b/build/ABAP2XLSX_V_7_0.zip
index 77a6ae8..b164ffe 100644
Binary files a/build/ABAP2XLSX_V_7_0.zip and b/build/ABAP2XLSX_V_7_0.zip differ
diff --git a/build/extra/NUGG_ABAP2XLSX - EXTRA.nugg b/build/extra/NUGG_ABAP2XLSX - EXTRA.nugg
index ca918ce..7674858 100644
--- a/build/extra/NUGG_ABAP2XLSX - EXTRA.nugg
+++ b/build/extra/NUGG_ABAP2XLSX - EXTRA.nugg
@@ -1,5 +1,10 @@
+
+
+
+
+
diff --git a/build/extra/NUGG_ABAP2XLSX - EXTRA.zip b/build/extra/NUGG_ABAP2XLSX - EXTRA.zip
index aebba9b..c3af152 100644
Binary files a/build/extra/NUGG_ABAP2XLSX - EXTRA.zip and b/build/extra/NUGG_ABAP2XLSX - EXTRA.zip differ