*&---------------------------------------------------------------------*
*& Report DEMOEXCELINTEGRATION *
*&---------------------------------------------------------------------*
INCLUDE rdemoexcelintegration2top. DATA: control TYPE REF TO i_oi_container_control.
DATA: container TYPE REF TO cl_gui_custom_container.
DATA: link_server TYPE REF TO i_oi_link_server.
DATA: table_coll TYPE REF TO i_oi_table_collection. DATA: document_type TYPE soi_document_type
VALUE soi_doctype_excel_chart,
document_format TYPE soi_document_type. DATA: doc_size TYPE i, doc_url TYPE t_url,
doc_table TYPE sbdst_content. DATA: usa_sales TYPE i VALUE 1000,
europe_sales TYPE i VALUE 2000,
japan_sales TYPE i VALUE 1000,
asia_sales TYPE i VALUE 100,
america_sales TYPE i VALUE 100,
africa_sales TYPE i VALUE 100.
DATA: total_sales TYPE i VALUE 0. DATA: BEGIN OF test_line, region(50), sales TYPE i, END OF test_line.
DATA: test_table LIKE TABLE OF test_line.
DATA: wa_test_table LIKE test_line. *---------------------------------------------------------------------*
* CLASS c_excel_document DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS c_excel_document DEFINITION. PUBLIC SECTION.
DATA: proxy TYPE REF TO i_oi_document_proxy.
DATA: document_type TYPE soi_document_type.
DATA: data_table TYPE sbdst_content,
data_size TYPE i,
doc_url TYPE t_url. METHODS: constructor
IMPORTING control TYPE REF TO i_oi_container_control
document_type TYPE soi_document_type. METHODS: on_close_document
FOR EVENT on_close_document OF i_oi_document_proxy
IMPORTING document_proxy has_changed. METHODS: on_custom_event
FOR EVENT on_custom_event OF i_oi_document_proxy
IMPORTING document_proxy event_name param_count
param1 param2 param3. METHODS: create_document
IMPORTING open_inplace TYPE c DEFAULT ' '
value(no_flush) TYPE c DEFAULT ' '
EXPORTING error TYPE REF TO i_oi_error. METHODS: open_document
IMPORTING open_inplace TYPE c DEFAULT ' '
open_readonly TYPE c DEFAULT ' '
value(no_flush) TYPE c DEFAULT ' '
EXPORTING error TYPE REF TO i_oi_error. METHODS: open_document_url
IMPORTING open_inplace TYPE c DEFAULT ' '
open_readonly TYPE c DEFAULT ' '
doc_url TYPE t_url DEFAULT ' '
EXPORTING error TYPE REF TO i_oi_error. METHODS: retrieve_document
IMPORTING documents TYPE document_list
EXPORTING document_format TYPE soi_document_type
doc_url TYPE t_url. METHODS: close_document
IMPORTING do_save TYPE c DEFAULT ' '
value(no_flush) TYPE c DEFAULT ' '
EXPORTING error TYPE REF TO i_oi_error. PRIVATE SECTION.
DATA: control TYPE REF TO i_oi_container_control.
ENDCLASS. DATA: document TYPE REF TO c_excel_document.
DATA: error TYPE REF TO i_oi_error.
DATA: error_table TYPE TABLE OF REF TO i_oi_error.
DATA: bds_instance TYPE REF TO cl_bds_document_set.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT. SET PF-STATUS 'MAIN0100'.
SET TITLEBAR '001'. IF control IS INITIAL.
CLEAR error_table. DATA: b_has_activex. CALL FUNCTION 'GUI_HAS_ACTIVEX'
IMPORTING
return = b_has_activex.
IF b_has_activex IS INITIAL. MESSAGE e007. ENDIF. CALL METHOD c_oi_container_control_creator=>get_container_control
IMPORTING control = control
error = error.
APPEND error TO error_table. CREATE OBJECT container
EXPORTING container_name = 'CONTAINER'. CALL METHOD control->init_control
EXPORTING r3_application_name =
'R/3 Basis' "#EC NOTEXT
inplace_enabled = 'X'
inplace_scroll_documents = 'X'
parent = container
register_on_close_event = 'X'
register_on_custom_event = 'X'
no_flush = 'X'
IMPORTING error = error.
APPEND error TO error_table. CALL METHOD control->get_link_server
EXPORTING no_flush = 'X'
IMPORTING link_server = link_server
error = error.
APPEND error TO error_table. CALL METHOD link_server->start_link_server
EXPORTING no_flush = 'X'
IMPORTING error = error.
APPEND error TO error_table. CALL METHOD control->get_table_collection
EXPORTING no_flush = 'X'
IMPORTING table_collection = table_coll
error = error.
APPEND error TO error_table. CALL METHOD table_coll->add_table
EXPORTING table_name = 'SALES_IN'
table_type = table_coll->table_type_input
no_flush = ' '
IMPORTING error = error
CHANGING data_table = test_table.
APPEND error TO error_table. LOOP AT error_table INTO error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ENDLOOP.
CLEAR error_table. PERFORM refresh_sales. CREATE OBJECT document
EXPORTING control = control
document_type = document_type. ENDIF.
IF bds_instance IS INITIAL.
CREATE OBJECT bds_instance.
ENDIF. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
DATA: l_fcode LIKE fcode. l_fcode = fcode.
CLEAR fcode. CALL METHOD cl_gui_cfw=>dispatch. CASE l_fcode.
WHEN 'EXIT'. "Zurück
IF NOT document IS INITIAL.
CALL METHOD document->close_document.
FREE document.
ENDIF.
IF NOT link_server IS INITIAL.
CALL METHOD link_server->stop_link_server.
FREE link_server.
ENDIF.
IF NOT table_coll IS INITIAL.
FREE table_coll.
ENDIF.
IF NOT control IS INITIAL.
CALL METHOD control->destroy_control.
FREE control.
ENDIF.
IF NOT bds_instance IS INITIAL.
FREE bds_instance.
ENDIF. LEAVE PROGRAM.
WHEN 'CREATE'.
IF NOT control IS INITIAL.
CALL METHOD document->create_document.
CALL METHOD c_oi_errors=>show_message EXPORTING type = 'E'.
ENDIF.
WHEN 'SELECT'.
IF NOT control IS INITIAL.
DATA: documents TYPE document_list.
DATA: descr TYPE document_descr. CLEAR documents.
descr-document_name = 'Car Sales Chart'(do1).
descr-document_id = 'DEMOEXCELCHART1'.
APPEND descr TO documents.
descr-document_name = 'Car Sales Chart 2'(do3).
descr-document_id = 'DEMOEXCELCHART2'.
APPEND descr TO documents.
descr-document_name = 'Car Sales Sheet'(do2).
descr-document_id = 'DEMOEXCELSHEET1'.
APPEND descr TO documents. CLEAR doc_url.
CALL METHOD document->retrieve_document
EXPORTING documents = documents
IMPORTING document_format = document_format
doc_url = doc_url. IF NOT doc_url IS INITIAL.
CALL METHOD document->close_document. CALL METHOD document->open_document_url
EXPORTING open_inplace = 'X'
doc_url = doc_url
IMPORTING error = error.
CALL METHOD c_oi_errors=>show_message EXPORTING type = 'E'.
ELSE.
MESSAGE e010.
ENDIF.
ENDIF.
WHEN 'OPEN'.
IF document->data_size NE 0.
IF NOT control IS INITIAL.
CALL METHOD document->open_document
IMPORTING error = error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ENDIF.
ELSE.
MESSAGE e005.
ENDIF.
WHEN 'INPLACE'.
IF document->data_size NE 0.
IF NOT control IS INITIAL.
CALL METHOD document->open_document
EXPORTING open_inplace = 'X'
open_readonly = 'X'
IMPORTING error = error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ENDIF.
ELSE.
MESSAGE e005.
ENDIF.
WHEN 'SAVEAS'.
IF NOT document IS INITIAL AND NOT document->proxy IS INITIAL.
CALL METHOD document->proxy->save_as
EXPORTING prompt_user = 'X'
IMPORTING error = error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ELSE.
MESSAGE e000.
ENDIF.
WHEN 'CLOSE'.
IF NOT document IS INITIAL.
CALL METHOD document->close_document
EXPORTING do_save = 'X'
IMPORTING error = error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ELSE.
MESSAGE e000.
ENDIF.
WHEN 'COPYLINK'.
IF NOT link_server IS INITIAL.
PERFORM refresh_sales.
CALL METHOD link_server->execute_copy_link_dialog
IMPORTING error = error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ELSE.
MESSAGE e004.
ENDIF.
WHEN 'REFRESH'.
IF NOT link_server IS INITIAL.
PERFORM refresh_sales.
ELSE.
MESSAGE e004.
ENDIF.
IF NOT document IS INITIAL AND NOT document->proxy IS INITIAL.
CALL METHOD document->proxy->execute_macro
EXPORTING macro_string = 'module1.R3StartupMacro'
param_count = 1
param1 = 10
IMPORTING error = error.
* CHANGING retvalue = usa_sales.
* CALL METHOD c_oi_errors=>show_message EXPORTING type = 'E'.
ELSE.
MESSAGE e000.
ENDIF.
WHEN 'PRINT'.
IF NOT document IS INITIAL AND NOT document->proxy IS INITIAL.
CALL METHOD document->proxy->print_document
EXPORTING prompt_user = 'X'
IMPORTING error = error.
CALL METHOD error->raise_message EXPORTING type = 'E'.
ELSE.
MESSAGE e000.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT ************************************************************************
* CLASS c_excel_document IMPLEMENTATION.
************************************************************************
CLASS c_excel_document IMPLEMENTATION.
METHOD: constructor.
* IMPORTING control TYPE REF TO i_oi_container_control
* document_type TYPE soi_document_type
me->control = control.
me->document_type = document_type.
ENDMETHOD. METHOD create_document.
* IMPORTING open_inplace TYPE c DEFAULT ' '
* EXPORTING error TYPE REF TO i_oi_error.
IF NOT proxy IS INITIAL.
CALL METHOD me->close_document.
ENDIF.
CALL METHOD control->get_document_proxy
EXPORTING document_type = document_type
register_container = 'X'
IMPORTING document_proxy = proxy
error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF. CALL METHOD proxy->create_document
EXPORTING create_view_data = 'X'
open_inplace = open_inplace
document_title = 'R/3 Demo' "#EC NOTEXT
IMPORTING error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF. SET HANDLER me->on_close_document FOR proxy.
SET HANDLER me->on_custom_event FOR proxy.
ENDMETHOD. METHOD open_document.
* IMPORTING open_inplace TYPE c DEFAULT ' '
* open_readonly TYPE c DEFAULT ' '
* EXPORTING error TYPE REF TO i_oi_error.
IF NOT proxy IS INITIAL.
CALL METHOD me->close_document.
ENDIF.
CALL METHOD control->get_document_proxy
EXPORTING document_type = document_type
register_container = 'X'
IMPORTING document_proxy = proxy
error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF. CALL METHOD proxy->open_document_from_table
EXPORTING document_table = data_table
document_size = data_size
open_inplace = open_inplace
open_readonly = open_readonly
document_title = 'R/3 Demo'
IMPORTING error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF. SET HANDLER me->on_close_document FOR proxy.
SET HANDLER me->on_custom_event FOR proxy. CALL METHOD proxy->update_document_links
IMPORTING error = error.
ENDMETHOD. METHOD open_document_url.
* IMPORTING open_inplace TYPE c DEFAULT ' '
* open_readonly TYPE c DEFAULT ' '
* doc_url TYPE t_url DEFAULT ' '
* EXPORTING error TYPE REF TO i_oi_error.
DATA: save_error TYPE REF TO i_oi_error. IF NOT proxy IS INITIAL.
CALL METHOD me->close_document.
ENDIF.
CALL METHOD control->get_document_proxy
EXPORTING document_type = document_type
register_container = 'X'
IMPORTING document_proxy = proxy
error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF. me->doc_url = doc_url.
CALL METHOD proxy->open_document
EXPORTING document_url = doc_url
open_inplace = open_inplace
open_readonly = open_readonly
IMPORTING error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF. data: is_available TYPE I.
data: sheet_interface TYPE REF TO i_oi_spreadsheet.
CALL METHOD proxy->has_spreadsheet_interface
IMPORTING is_available = is_available
error = error.
if is_available EQ 1.
CALL METHOD proxy->get_spreadsheet_interface
IMPORTING sheet_interface = sheet_interface
error = error. CALL METHOD sheet_interface->select_sheet
EXPORTING name = 'Sheet1'
IMPORTING error = error. CALL METHOD proxy->update_document_links
IMPORTING error = error. CALL METHOD sheet_interface->select_sheet
EXPORTING name = 'Chart1'
IMPORTING error = error. endif. * Document shall also be available in ITAB for respective operations:
CALL METHOD proxy->save_document_to_table
IMPORTING error = save_error
CHANGING document_table = data_table
document_size = data_size.
IF NOT save_error IS INITIAL.
IF save_error->error_code NE c_oi_errors=>ret_ok.
error = save_error.
EXIT.
ENDIF.
ENDIF.
SET HANDLER me->on_close_document FOR proxy.
SET HANDLER me->on_custom_event FOR proxy. CALL METHOD proxy->update_document_links
IMPORTING error = error.
ENDMETHOD. METHOD retrieve_document.
* importing documents type document_list
* exporting document_format type soi_document_format
* doc_url type t_url.
*------BDS-Data-Structures:--------------------------------------------- * Tables and WAs:
DATA: doc_signature TYPE sbdst_signature,
wa_doc_signature LIKE LINE OF doc_signature,
doc_components TYPE sbdst_components,
wa_doc_components LIKE LINE OF doc_components,
doc_properties TYPE sbdst_properties,
wa_doc_properties LIKE LINE OF doc_properties,
doc_uris TYPE sbdst_uri,
wa_doc_uris LIKE LINE OF doc_uris.
* ID's:
DATA: doc_classname TYPE sbdst_classname VALUE 'SOFFICEINTEGRATION',
doc_classtype TYPE sbdst_classtype VALUE 'OT',
doc_object_key TYPE sbdst_object_key VALUE 'SOFFICEINTEGRATION',
doc_mimetype TYPE bapicompon-mimetype.
*----------------------------------------------------------------------- DATA: field_desc TYPE TABLE OF rsvbfidesc.
DATA: wa_field_desc TYPE rsvbfidesc.
DATA: l_nr LIKE sy-tabix. CLEAR: field_desc, wa_field_desc.
wa_field_desc-fieldnum = 1.
wa_field_desc-display = 'X'.
APPEND wa_field_desc TO field_desc. l_nr = 0.
CALL FUNCTION 'RS_VALUES_BOX'
EXPORTING
left_upper_col = 5
left_upper_row = 5
pagesize = 10
title = 'Select document'(sdc)
IMPORTING
linenumber = l_nr
TABLES
field_desc = field_desc
value_tab = documents
EXCEPTIONS
OTHERS = 1. IF sy-subrc EQ 0 AND l_nr NE 0.
READ TABLE documents INDEX l_nr INTO descr.
IF sy-subrc EQ 0.
CLEAR: wa_doc_signature, wa_doc_components, wa_doc_uris.
CLEAR: doc_signature, doc_components, doc_uris. wa_doc_signature-prop_name = 'DESCRIPTION'.
wa_doc_signature-prop_value = descr-document_id.
APPEND wa_doc_signature TO doc_signature. CALL METHOD bds_instance->get_info
EXPORTING classname = doc_classname
classtype = doc_classtype
object_key = doc_object_key
CHANGING components = doc_components
signature = doc_signature
EXCEPTIONS nothing_found = 1
error_kpro = 2
internal_error = 3
parameter_error = 4
not_authorized = 5
not_allowed = 6.
IF sy-subrc NE 0 AND sy-subrc NE 1.
MESSAGE e016.
ENDIF.
IF sy-subrc = 1.
MESSAGE e017.
ENDIF. CALL METHOD bds_instance->get_with_url
EXPORTING classname = doc_classname
classtype = doc_classtype
object_key = doc_object_key
CHANGING uris = doc_uris
signature = doc_signature
EXCEPTIONS nothing_found = 1
error_kpro = 2
internal_error = 3
parameter_error = 4
not_authorized = 5
not_allowed = 6.
IF sy-subrc NE 0 AND sy-subrc NE 1.
MESSAGE e016.
ENDIF.
IF sy-subrc = 1.
MESSAGE e017.
ENDIF. READ TABLE doc_components INTO wa_doc_components INDEX 1.
READ TABLE doc_uris INTO wa_doc_uris INDEX 1.
doc_mimetype = wa_doc_components-mimetype.
doc_url = wa_doc_uris-uri. CASE doc_mimetype.
WHEN 'application/x-rtf' OR 'text/rtf'.
document_format = soi_docformat_rtf.
WHEN 'application/x-oleobject'.
document_format = soi_docformat_compound.
WHEN 'text/plain'.
document_format = soi_docformat_text.
WHEN OTHERS.
document_format = soi_docformat_native.
ENDCASE. ENDIF.
ENDIF.
ENDMETHOD. METHOD close_document.
* IMPORTING do_save TYPE c DEFAULT ' '
* EXPORTING error TYPE REF TO i_oi_error.
DATA: is_closed TYPE i, has_changed TYPE i.
DATA: save_error TYPE REF TO i_oi_error. IF NOT proxy IS INITIAL.
CALL METHOD proxy->is_destroyed IMPORTING ret_value = is_closed. IF is_closed IS INITIAL.
CALL METHOD proxy->close_document
EXPORTING do_save = do_save
IMPORTING has_changed = has_changed
error = error.
IF error->error_code NE c_oi_errors=>ret_ok.
EXIT.
ENDIF.
ENDIF. IF NOT has_changed IS INITIAL.
CALL METHOD proxy->save_document_to_table
EXPORTING no_flush = 'X'
IMPORTING error = save_error
CHANGING document_table = data_table
document_size = data_size.
ENDIF. CALL METHOD proxy->release_document
IMPORTING error = error. IF NOT save_error IS INITIAL.
IF save_error->error_code NE c_oi_errors=>ret_ok.
error = save_error.
ENDIF.
ENDIF. SET HANDLER me->on_close_document FOR proxy ACTIVATION ' '.
SET HANDLER me->on_custom_event FOR proxy ACTIVATION ' '.
ELSE.
CALL METHOD c_oi_errors=>create_error_for_retcode
EXPORTING retcode = c_oi_errors=>ret_document_not_open
no_flush = ' '
IMPORTING error = error.
ENDIF.
ENDMETHOD. METHOD on_close_document.
* FOR EVENT on_close_document OF c_oi_container_control
* IMPORTING document_proxy has_changed.
DATA: answer, do_save. IF has_changed EQ 1.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Office Integration Demo'(oid)
text_question = 'Save Document?'(sav)
display_cancel_button = ' '
IMPORTING
answer = answer.
IF answer EQ '1'.
do_save = 'X'.
ELSE.
do_save = ' '.
ENDIF.
CALL METHOD me->close_document
EXPORTING do_save = do_save
IMPORTING error = error.
CALL METHOD error->raise_message
EXPORTING type = 'E'.
ENDIF.
ENDMETHOD. METHOD on_custom_event.
* FOR EVENT on_custom_event OF i_oi_document_proxy
* IMPORTING document_proxy event_name param_count
* param1 param2 param3.
IF event_name EQ 'ON_SERIES_CHANGE'.
CALL METHOD table_coll->get_table
EXPORTING table_name = 'SALES_IN'
IMPORTING error = error
CHANGING data_table = test_table.
CALL METHOD error->raise_message
EXPORTING type = 'E'.
CLEAR wa_test_table.
READ TABLE test_table INTO wa_test_table INDEX 1.
usa_sales = wa_test_table-sales.
CLEAR wa_test_table.
READ TABLE test_table INTO wa_test_table INDEX 2.
europe_sales = wa_test_table-sales.
CLEAR wa_test_table.
READ TABLE test_table INTO wa_test_table INDEX 3.
japan_sales = wa_test_table-sales.
CLEAR wa_test_table.
READ TABLE test_table INTO wa_test_table INDEX 4.
asia_sales = wa_test_table-sales.
CLEAR wa_test_table.
READ TABLE test_table INTO wa_test_table INDEX 5.
america_sales = wa_test_table-sales.
CLEAR wa_test_table.
READ TABLE test_table INTO wa_test_table INDEX 6.
africa_sales = wa_test_table-sales.
CLEAR wa_test_table. ENDIF.
ENDMETHOD.
ENDCLASS. ************************************************************************
* FORM refresh_sales.
************************************************************************
FORM refresh_sales.
DATA: BEGIN OF item_line,
region(60),
sales TYPE i,
date TYPE d,
time TYPE t,
weight TYPE f,
amount TYPE p DECIMALS 3,
id(10) TYPE n,
END OF item_line.
DATA: sales_table LIKE TABLE OF item_line.
DATA: wa_sales_table LIKE item_line.
DATA: fields_table TYPE TABLE OF rfc_fields.
DATA: wa_fields_table TYPE rfc_fields.
DATA: ind TYPE i. CALL FUNCTION 'DP_GET_FIELDS_FROM_TABLE'
TABLES
data = sales_table
fields = fields_table. READ TABLE fields_table INDEX 1 INTO wa_fields_table.
wa_fields_table-fieldname = 'Region'."#EC NOTEXT
MODIFY fields_table FROM wa_fields_table INDEX 1.
CLEAR wa_fields_table.
READ TABLE fields_table INDEX 2 INTO wa_fields_table.
wa_fields_table-fieldname = 'Sales'. "#EC NOTEXT
MODIFY fields_table FROM wa_fields_table INDEX 2. CLEAR: sales_table, wa_sales_table. wa_sales_table-region = 'USA'(usa).
wa_sales_table-sales = usa_sales.
APPEND wa_sales_table TO sales_table.
CLEAR wa_sales_table.
wa_sales_table-region = 'Europe'(eur).
wa_sales_table-sales = europe_sales.
APPEND wa_sales_table TO sales_table.
CLEAR wa_sales_table.
wa_sales_table-region = 'Japan'(jap).
wa_sales_table-sales = japan_sales.
APPEND wa_sales_table TO sales_table.
CLEAR wa_sales_table.
wa_sales_table-region = 'Asia'(asi).
wa_sales_table-sales = asia_sales.
APPEND wa_sales_table TO sales_table.
CLEAR wa_sales_table.
wa_sales_table-region = 'America'(ame).
wa_sales_table-sales = america_sales.
APPEND wa_sales_table TO sales_table.
CLEAR wa_sales_table.
wa_sales_table-region = 'Africa'(afr).
wa_sales_table-sales = africa_sales.
APPEND wa_sales_table TO sales_table.
CLEAR wa_sales_table. LOOP AT sales_table INTO wa_sales_table.
ind = sy-tabix.
wa_sales_table-date = sy-datum + ind.
wa_sales_table-time = sy-uzeit + ind.
wa_sales_table-weight = 100000 * ind.
wa_sales_table-amount = 11111 * ind.
wa_sales_table-id = ind.
MODIFY sales_table FROM wa_sales_table INDEX ind.
ENDLOOP. CALL METHOD table_coll->add_table
EXPORTING table_name = 'SALES_OUT'
table_type = table_coll->table_type_output
no_flush = 'X'
IMPORTING error = error
CHANGING data_table = sales_table
fields_table = fields_table. CALL METHOD link_server->add_table_item2
EXPORTING item_name = 'Sales' "#EC NOTEXT
item_title = 'Car Sales Figures'(sal)
no_flush = 'X'
IMPORTING error = error
CHANGING data_table = sales_table
fields_table = fields_table. CALL METHOD link_server->add_string_item
EXPORTING item_name = 'ChartTitle'
item_title = 'Chart Title'(ti0)
item_value = 'Car Sales by Region'(ti1)
no_flush = 'X'
IMPORTING error = error.
CALL METHOD link_server->add_string_item
EXPORTING item_name = 'ColumnTitle1'
item_title = 'Column Title 1'(ti2)
item_value = 'Region'(ti3)
no_flush = 'X'
IMPORTING error = error.
CALL METHOD link_server->add_string_item
EXPORTING item_name = 'ColumnTitle2'
item_title = 'Column Title 2'(ti4)
item_value = 'Sold Cars'(ti5)
no_flush = ' '
IMPORTING error = error. ENDFORM.
*----------------------------------------------------------------------*
* INCLUDE RDEMOEXCELINTEGRATIONTOP2 *
*----------------------------------------------------------------------*
REPORT saprdemoexcelintegration2 MESSAGE-ID demoofficeintegratio. SET SCREEN 100. TYPE-POOLS: sbdst, soi. CLASS c_oi_errors DEFINITION LOAD. TYPES: BEGIN OF document_descr,
document_name(40), document_id(64),
END OF document_descr. TYPES: document_list TYPE TABLE OF document_descr.
TYPES: t_url LIKE bapiuri-uri. DATA: fcode LIKE sy-ucomm.

最新文章

  1. arm工作模式笔记
  2. JS-underfined is not a function
  3. mysql 查询数据时按照A-Z顺序排序返回结果集
  4. jQuery能做些什么
  5. Java_Java Compiler 应用实例
  6. iOS多线程GCD
  7. Swift入门篇-结构体
  8. Hadoop入门进阶课程4--HDFS原理及操作
  9. MacOX-001- 远程连接 windows 客户端
  10. UITableview 中获取非选中的cell
  11. EAFP和LBYL 两种防御性编程风格
  12. CentOS 7 之Helloworld with c
  13. PHPExcel用法有感
  14. Oracle常用数据字典
  15. python中顺序查找分析和实现
  16. Android开发基础规范(二)
  17. 使用turtle画故宫(伍奇,侯俊豪小组)
  18. android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览
  19. Alpha通道
  20. Selenium自动化测试Python六:持续集成

热门文章

  1. VisualStudio安装步骤
  2. Elasticsearch上手指南
  3. Flex 的 多种对齐属性
  4. 【远程文件浏览器】Unity+Lua开发调试利器
  5. 测试平台系列(92) 让http请求支持文件上传
  6. 《Streaming Systems》第二章: 数据处理中的 What, Where, When, How
  7. 详解Docker中Image、Container与 Volume 的迁移
  8. Git生成ssh keys加密算法ed25519
  9. 好客租房30-事件绑定this指向(箭头函数)
  10. HDFS 细粒度锁优化,FusionInsight MRS有妙招