Updated Getting ABAP2XLSX to work on a 620 System (markdown)

ivanfemia 2014-01-02 08:55:44 -08:00
parent cec7d0b047
commit 483f90b998

@ -49,85 +49,100 @@ Activate remaining Table Types (if any error occurs open the structure and doub
Hyperlinks Cleanup :
The main issue is hyperlinks->get_iterator is unknown. Quick fix is to ignore any hyperlink functionality.
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_ITERATOR
Comment out : eo_iterator = hyperlinks->get_iterator( ).
Comment out : **eo_iterator = hyperlinks->get_iterator( ).**
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_SIZE
Comment out : ep_size = hyperlinks->size( ).
Comment out : **ep_size = hyperlinks->size( ).**
Class : ZCL_EXCEL_WRITER_2007
Method : CREATE_XL_SHEET_RELS
Comment out :
lo_iterator = io_worksheet->get_hyperlinks_iterator( ).
WHILE lo_iterator->ZIF_OBJECT_COLLECTION_iterator~has_next( ) EQ
abap_true.
lo_link ?= lo_iterator->ZIF_OBJECT_COLLECTION_iterator~get_next( ).
ADD 1 TO lv_relation_id.
**lo_iterator = io_worksheet->get_hyperlinks_iterator( ).**
**WHILE lo_iterator->ZIF_OBJECT_COLLECTION_iterator~has_next( ) EQ abap_true.**
**lo_link ?= lo_iterator->ZIF_OBJECT_COLLECTION_iterator~get_next( ).**
**ADD 1 TO lv_relation_id.**
lv_value = lv_relation_id.
CONDENSE lv_value.
CONCATENATE 'rId' lv_value INTO lv_value.
**lv_value = lv_relation_id.**
**CONDENSE lv_value.**
**CONCATENATE 'rId' lv_value INTO lv_value.**
**lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship**
**parent = lo_document ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_id**
**value = lv_value ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_type**
**value = lc_xml_node_rid_link_tp ).**
lo_element = lo_document->create_simple_element( name =
lc_xml_node_relationship
parent =
lo_document ).
lo_element->set_attribute_ns( name = lc_xml_attr_id
value = lv_value ).
lo_element->set_attribute_ns( name = lc_xml_attr_type
value = lc_xml_node_rid_link_tp ).
lv_value = lo_link->get_url( ).
lo_element->set_attribute_ns( name = lc_xml_attr_target
value = lv_value ).
lo_element->set_attribute_ns( name = lc_xml_attr_target_mode
value = lc_xml_val_external ).
lo_element_root->append_child( new_child = lo_element ).
ENDWHILE.
**lv_value = lo_link->get_url( ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_target**
**value = lv_value ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_target_mode**
**value = lc_xml_val_external ).**
**lo_element_root->append_child( new_child = lo_element ).**
**ENDWHILE.**
And to help with any transport issues later on :
Class : ZCL_EXCEL_HYPERLINKS
Method : ADD
Comment out : data_validations->add( ip_data_validation ).
Comment out : **data_validations->add( ip_data_validation ).**
8a (Alternative to allow Hyperlinks - Tested with ABAP2XLSX version 6) - This is unconfirmed but it seems to be working for us.
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_ITERATOR
Change to:
eo_iterator = hyperlinks->zif_object_collection~get_iterator( ).
Change to : **eo_iterator = hyperlinks->zif_object_collection~get_iterator( ).**
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_SIZE
Change to:
ep_size = hyperlinks->zif_object_collection~size( ).
Change to: **ep_size = hyperlinks->zif_object_collection~size( ).**
The Class ZCL_EXCEL_WRITER_2007 Method CREATE_XL_SHEET_RELS code can remain uncommented.
The Class ZCL_EXCEL_WRITER_2007 Method CREATE_XL_SHEET_RELS code can remain uncommented.
9. 620 is picky about parameter names being omitted if there is more than one possible parameter. Minor changes to the code are required in the following area :
Class : ZCL_EXCEL_WORKSHEET
Method : CALCULATE_COLUMN_WIDTHS
Find : column_dimension->set_width( <auto_size>-width ).
Replace with : call method column_dimension->set_width exporting ip_width = <auto_size>-width.
Find : **column_dimension->set_width( <auto_size>-width ).**
Replace with : **call method column_dimension->set_width exporting ip_width = <auto_size>-width.**
10. 620 doesn't support CONCATENATE...RESPECTING BLANKS or REPLACE...REGEX... so this needs to be changed to a more traditional CONCATENATE.
Class : ZCL_EXCEL_WRITER_2007
Method : CREATE_DOCPROPS_CORE
Find :
CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS.
REPLACE ALL OCCURRENCES OF REGEX '([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})' IN lv_value WITH '$1-$2-$3T$4:$5:$6Z'.
Replace with :
CONCATENATE lv_date+0(4) '-' lv_date+4(2) '-' lv_date+6(2) 'T' lv_time+0(2) ':' lv_time+2(2) ':' lv_time+4(2) 'Z'
INTO lv_value.
There are two occurances to replace.
Class : ZCL_EXCEL_WRITER_2007
Method : CREATE_DOCPROPS_CORE
Find :
**CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS.**
**REPLACE ALL OCCURRENCES OF REGEX '([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})' IN lv_value WITH '--T::Z'.**
Replace with :
**CONCATENATE lv_date+0(4) '-' lv_date+4(2) '-' lv_date+6(2) 'T' lv_time+0(2) ':' lv_time+2(2) ':' lv_time+4(2) 'Z' INTO lv_value.**
There are two occurances to replace.