mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 02:12:05 +08:00
Updated Getting ABAP2XLSX to work on a 620 System (markdown)
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.
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user