From 483f90b99804f7de28631b9f89e8d95a6246c729 Mon Sep 17 00:00:00 2001 From: ivanfemia Date: Thu, 2 Jan 2014 08:55:44 -0800 Subject: [PATCH] Updated Getting ABAP2XLSX to work on a 620 System (markdown) --- Getting-ABAP2XLSX-to-work-on-a-620-System.md | 107 +++++++++++-------- 1 file changed, 61 insertions(+), 46 deletions(-) diff --git a/Getting-ABAP2XLSX-to-work-on-a-620-System.md b/Getting-ABAP2XLSX-to-work-on-a-620-System.md index 0f58118..a94a6ad 100644 --- a/Getting-ABAP2XLSX-to-work-on-a-620-System.md +++ b/Getting-ABAP2XLSX-to-work-on-a-620-System.md @@ -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( -width ). -Replace with : call method column_dimension->set_width exporting ip_width = -width. + +Find : **column_dimension->set_width( -width ).** + +Replace with : **call method column_dimension->set_width exporting ip_width = -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.