ABAP DEMO ole示例程序
*&---------------------------------------------------------------------*
*& Report YCX_021
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YCX_021.
INCLUDE OLE2INCL . *----------------------------------------------------------------------- * Global GUI Controls Variables / Structures *----------------------------------------------------------------------- *--Data Definition of OLE DATA: GS_EXCEL TYPE OLE2_OBJECT , GS_WBOOKLIST TYPE OLE2_OBJECT , GS_APPLICATION TYPE OLE2_OBJECT , GS_WBOOK TYPE OLE2_OBJECT , GS_ACTIVESHEET TYPE OLE2_OBJECT , GS_SHEETS TYPE OLE2_OBJECT , GS_NEWSHEET TYPE OLE2_OBJECT , GS_CELL1 TYPE OLE2_OBJECT , GS_CELL2 TYPE OLE2_OBJECT , GS_CELLS TYPE OLE2_OBJECT , GS_RANGE TYPE OLE2_OBJECT , GS_FONT TYPE OLE2_OBJECT , GS_INTERIOR TYPE OLE2_OBJECT , GS_COLUMNS TYPE OLE2_OBJECT , GS_CHARTS TYPE OLE2_OBJECT , GS_CHART TYPE OLE2_OBJECT , GS_CHARTTITLE TYPE OLE2_OBJECT , GS_CHARTTITLECHAR TYPE OLE2_OBJECT , GS_CHARTOBJECTS TYPE OLE2_OBJECT . DATA GV_SHEET_NAME() TYPE C . DATA GV_OUTER_INDEX LIKE SY-INDEX . DATA GV_INTEX() TYPE C . DATA GV_LINE_CNTR TYPE I . "line counter DATA GV_LINNO TYPE I . "line number DATA GV_COLNO TYPE I . "column number DATA GV_VALUE TYPE I . "data *$*$----------------------------------------------------------------$*$* *$*$ Selection Screen $*$* *$*$----------------------------------------------------------------$*$* *----------------------------------------------------------------------- * Selection Screen *----------------------------------------------------------------------- PARAMETERS: P_SHEETS TYPE I . *$*$----------------------------------------------------------------$*$* *$*$ Main Program $*$* *$*$----------------------------------------------------------------$*$* *--------- START-OF-SELECTION ---------- START-OF-SELECTION . DO P_SHEETS TIMES . *--Forming sheet name GV_INTEX = SY-INDEX . GV_OUTER_INDEX = SY-INDEX . CONCATENATE 'Excel Sheet #' GV_INTEX INTO GV_SHEET_NAME . *--For the first loop, Excel is initiated and one new sheet is added IF SY-INDEX = . CREATE OBJECT GS_EXCEL 'EXCEL.APPLICATION' . SET PROPERTY OF GS_EXCEL 'Visible' = . GET PROPERTY OF GS_EXCEL 'Workbooks' = GS_WBOOKLIST . GET PROPERTY OF GS_WBOOKLIST 'Application' = GS_APPLICATION . SET PROPERTY OF GS_APPLICATION 'SheetsInNewWorkbook' = . CALL METHOD OF
GS_WBOOKLIST
'Add' = GS_WBOOK. GET PROPERTY OF GS_APPLICATION 'ActiveSheet' = GS_ACTIVESHEET . SET PROPERTY OF GS_ACTIVESHEET 'Name' = GV_SHEET_NAME . *--For the rest of loops, other sheets are added ELSE . GET PROPERTY OF GS_WBOOK 'Sheets' = GS_SHEETS . CALL METHOD OF
GS_SHEETS
'Add' = GS_NEWSHEET. SET PROPERTY OF GS_NEWSHEET 'Name' = GV_SHEET_NAME . ENDIF . GV_LINE_CNTR = . "line counter *--Title *--Selecting cell area to be merged. CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# =
# = . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
# =
# = . CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
# = GS_CELL1
# = GS_CELL2. CALL METHOD OF
GS_CELLS
'Select'. *--Merging CALL METHOD OF
GS_CELLS
'Merge'. *--Setting title data CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = . SET PROPERTY OF GS_CELL1 'Value' = 'TITLE' . *--Formatting the title GET PROPERTY OF GS_CELL1 'Font' = GS_FONT . SET PROPERTY OF GS_FONT 'Underline' = . SET PROPERTY OF GS_FONT 'Bold' = . SET PROPERTY OF GS_CELL1 'HorizontalAlignment' = - . GET PROPERTY OF GS_CELL1 'Interior' = GS_INTERIOR . SET PROPERTY OF GS_INTERIOR 'ColorIndex' = . SET PROPERTY OF GS_INTERIOR 'Pattern' = - . SET PROPERTY OF GS_INTERIOR 'PatternColorIndex' = - . GV_LINE_CNTR = GV_LINE_CNTR + . *--Writing some additional data for the title CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = . SET PROPERTY OF GS_CELL1 'Value' = 'Sheet No' . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = . SET PROPERTY OF GS_CELL1 'Value' = ':' . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = . SET PROPERTY OF GS_CELL1 'Value' = GV_INTEX . *--Formatting the area of additional data 1 CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# =
# = . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
# = GV_LINE_CNTR
# = . CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
# = GS_CELL1
# = GS_CELL2. CALL METHOD OF
GS_CELLS
'Select'. GET PROPERTY OF GS_CELLS 'Font' = GS_FONT . SET PROPERTY OF GS_FONT 'Bold' = . *--Formatting the area of additional data 2 CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# =
# = . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
# = GV_LINE_CNTR
# = . CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
# = GS_CELL1
# = GS_CELL2. CALL METHOD OF
GS_CELLS
'Select'. GET PROPERTY OF GS_CELLS 'Columns' = GS_COLUMNS . CALL METHOD OF
GS_COLUMNS
'AutoFit'. *--Bordering title data area CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# =
# = . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
# = GV_LINE_CNTR
# = . CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
# = GS_CELL1
# = GS_CELL2. CALL METHOD OF
GS_CELLS
'Select'. CALL METHOD OF
GS_CELLS
'BorderAround' EXPORTING
# = "continuous line
# = . "thick *--Putting axis labels GV_COLNO = . GV_LINE_CNTR = GV_LINE_CNTR + . GV_LINNO = GV_LINE_CNTR - . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINNO
# = . SET PROPERTY OF GS_CELL1 'Value' = 'X' . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = . SET PROPERTY OF GS_CELL1 'Value' = 'Y' . *--Generating some data DO TIMES . GV_VALUE = GV_OUTER_INDEX * SY-INDEX * . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINNO
# = GV_COLNO. SET PROPERTY OF GS_CELL1 'Value' = SY-INDEX . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = GV_COLNO. SET PROPERTY OF GS_CELL1 'Value' = GV_VALUE . GV_COLNO = GV_COLNO + . ENDDO . *--Source data area GV_COLNO = GV_COLNO - . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINNO
# = . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
# = GV_LINE_CNTR
# = GV_COLNO. CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
# = GS_CELL1
# = GS_CELL2. CALL METHOD OF
GS_CELLS
'Select'. GET PROPERTY OF GS_APPLICATION 'Charts' = GS_CHARTS . CALL METHOD OF
GS_CHARTS
'Add' = GS_CHART. CALL METHOD OF
GS_CHART
'Activate'. SET PROPERTY OF GS_CHART 'ChartType' = '' . "Vertical bar graph CALL METHOD OF
GS_CHART
'SetSourceData' EXPORTING
# = GS_CELLS
# = . SET PROPERTY OF GS_CHART 'HasTitle' = . GET PROPERTY OF GS_CHART 'ChartTitle' = GS_CHARTTITLE . GET PROPERTY OF GS_CHARTTITLE 'Characters' = GS_CHARTTITLECHAR . SET PROPERTY OF GS_CHARTTITLECHAR 'Text' = 'Sample Graph' . *--Locate the chart onto the current worksheet *--Activate current sheet CALL METHOD OF
GS_EXCEL
'WorkSheets' = GS_ACTIVESHEET
EXPORTING
# = GV_SHEET_NAME. CALL METHOD OF
GS_ACTIVESHEET
'Activate'. CALL METHOD OF
GS_CHART
'Location' EXPORTING
# =
# = GV_SHEET_NAME. *--Reposition the chart on the worksheet (cut&paste) CALL METHOD OF
GS_ACTIVESHEET
'ChartObjects' = GS_CHARTOBJECTS. CALL METHOD OF
GS_CHARTOBJECTS
'Select'. CALL METHOD OF
GS_CHARTOBJECTS
'Cut'. *--Select new area
GV_LINE_CNTR = GV_LINE_CNTR + . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
# = GV_LINE_CNTR
# = . CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
# = GV_LINE_CNTR
# = . CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
# = GS_CELL1
# = GS_CELL2. CALL METHOD OF
GS_CELLS
'Select'. CALL METHOD OF
GS_ACTIVESHEET
'Paste'.
ENDDO. *--Deallocating memory
FREE:
GS_EXCEL, GS_WBOOKLIST, GS_APPLICATION, GS_WBOOK,
GS_ACTIVESHEET,GS_SHEETS, GS_NEWSHEET, GS_CELL1,
GS_CELL2, GS_CELLS, GS_RANGE, GS_FONT, GS_INTERIOR,
GS_COLUMNS, GS_CHARTS, GS_CHART, GS_CHARTTITLE,
GS_CHARTTITLECHAR, GS_CHARTOBJECTS .
ABAP DEMO ole示例程序的更多相关文章
- SAP demo包 示例程序
在SAP的这个开发类中SABAPDEMOS,存放了N多的demo程序 有空的时候,可以看看.
- 小程序-demo:小程序示例-page/api
ylbtech-小程序-demo:小程序示例-page/api 以下将演示小程序接口能力,具体属性参数详见小程序开发文档. 1. page/component返回顶部 1. a) .js Page({ ...
- 小程序-demo:小程序示例-page/component2
ylbtech-小程序-demo:小程序示例-page/component2 以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见小程序开发文档. 1. ...
- 小程序-demo:小程序示例-page/component
ylbtech-小程序-demo:小程序示例-page/component 以下将展示小程序官方组件能力,组件样式仅供参考,开发者可根据自身需求自定义组件样式,具体属性参数详见小程序开发文档. 1. ...
- 小程序-demo:小程序示例-page/common
ylbtech-小程序-demo:小程序示例-page/common 1.返回顶部 0. 1. 2. pages/common返回顶部 1. -lib --weui.wxss /*! * we ...
- 小程序-demo:小程序示例
ylbtech-小程序-demo:小程序示例 1.返回顶部 0. 1.app.js const openIdUrl = require('./config').openIdUrl App({ ...
- 【ABAP系列】SAP ABAP解析XML的示例程序
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP解析XML的示例 ...
- BitCoinJ之Hello World示例程序
简介 比特币(BitCoin)是一种基于区块链(BlockChain)技术的数字化货币. 本文介绍了使用基于Java语言的BitCoinJ API实现一个简单的收取和支付比特币的示例程序. 开发环境 ...
- zigbee学习:示例程序SampleApp中通讯流程
zigbee学习:示例程序SampleApp中通讯流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://wjf88223.bl ...
随机推荐
- Win10 系统 Mysql 安装
对于本地开发环境,小型的 Mysql 比较适合本地学习. 本文环境 win10 + mysql8 1.下载 去 Mysql 官网下载安装包 - https://dev.mysql.com/downlo ...
- python递归的最大层数?
Python的最大递归层数是可以设置的,默认的在window上的最大递归层数是 998. 可以通过sys.setrecursionlimit()进行设置,但是一般默认不会超过3925-3929这个范围 ...
- 使用fastjson 进行jsonObject转实体类对象
使用fastjson 进行jsonObject转实体类对象 1 <dependency> 2 <groupId>com.alibaba</groupId> 3 ...
- laravel-nestedset:多级无限分类正确姿势
laravel-nestedset:多级无限分类正确姿势 laravel-nestedset是一个关系型数据库遍历树的larvel4-5的插件包 目录: Nested Sets Model简介 安 ...
- php grpc请求go,报Yac::get(): Unserialization failed
大概说下yac是个啥东西..看鸟哥的博客 Yac 是为PHP实现的一个基于共享内存, 无锁的内容Cache Yac的两个应用场景:1.让PHP进程之间共享一些简单的数据2.高效地缓存一些页面结果 假设 ...
- ORA-01578: ORACLE 数据块损坏 (文件号 13, 块号 2415081) ORA-01110: 数据文件XXXXXX
1.使用DBV检查数据文件,在cmd执行:dbv file='E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF' blocksize=8192:然后等待检测结 ...
- UOJ#221. 【NOI2016】循环之美 数论,杜教筛
原文链接www.cnblogs.com/zhouzhendong/p/UOJ221.html 题解 首先把题目转化为求 \[\sum_{x=1}^n \sum_{y=1}^m [\gcd(x,y) = ...
- Java 获取客户端真实IP地址
本文基于方法 HttpServletRequest.getHeader 和 HttpServletRequest.getRemoteAddr 介绍如何在服务器端获取客户端真实IP地址. 业务背景 服务 ...
- Java 冒泡排序算法
public class StringSampleDemo { public static void main(String[] args) { int[] arr = {1, 2, -20, 20, ...
- vue指令大全~~~
是的,这里有很全的vue指令使用~ 1.简单的vue应用 vue作为一个mvvm框架,想想为什么叫做mvvm? Model是负责数据的存储, View负责页面的展示 Model View 负责业务逻辑 ...