当前位置: 首页 > news >正文

ABAP OLE

1、业务需求

用户在报表中点击导出按钮,将销售发票有关信息填充至模板中的SHEET1以及SHEET2中

2、代码实现

  DATA: gs_excel       TYPE ole2_object,gs_sheet1      TYPE ole2_object,gs_sheet2      TYPE ole2_object,gs_wbooklist   TYPE ole2_object,gs_wbook       TYPE ole2_object,gs_cell1       TYPE ole2_object,gs_cell2       TYPE ole2_object,gs_cells       TYPE ole2_object.DATA: lv_paste(8022) TYPE c,lt_paste       LIKE TABLE OF lv_paste.DATA gv_sheet_name(20) TYPE c .DATA gv_intex(2) TYPE c .DATA gv_line_cntr TYPE i .DATA : lv_row(5) TYPE c .DATA: lv_filename TYPE string,lv_path     TYPE string,lv_fullpath TYPE string,lv_path2    TYPE localfile.DATA(lv_fild_name) = '批量开票-导入开票模板' && sy-datum && sy-uzeit && '.xlsx' .
* 选择导出路径CALL METHOD cl_gui_frontend_services=>file_save_dialogEXPORTINGwindow_title         = 'SAVE'default_file_name    = lv_fild_namefile_filter          = 'xlsx 文件|*.xlsx|'CHANGINGfilename             = lv_filenamepath                 = lv_pathfullpath             = lv_fullpathEXCEPTIONScntl_error           = 1error_no_gui         = 2not_supported_by_gui = 3OTHERS               = 4.DATA: ls_wwwdata TYPE wwwdatatab,lv_message TYPE string.DATA: lv_subrc TYPE sy-subrc.lv_path2 = lv_fullpath ." 校验文件是否存在SELECT SINGLErelidobjidFROM wwwdataINTO CORRESPONDING FIELDS OF ls_wwwdataWHERE srtf2 = 0AND relid = 'MI'AND objid = 'ZSDB001'.IF sy-subrc = 0." 下载CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTINGkey         = ls_wwwdatadestination = lv_path2IMPORTINGrc          = lv_subrc.ENDIF.CREATE OBJECT gs_excel 'EXCEL.APPLICATION'.             " 创建 XLSXSET PROPERTY OF gs_excel 'Visible' = 0 .                 "1前台运行。为0时表示为后台运行。GET PROPERTY OF gs_excel 'Workbooks' = gs_wbooklist .CALL METHOD  OF gs_wbooklist 'Open'  = gs_wbookEXPORTING #1 = lv_fullpath.
*  GET PROPERTY OF gs_excel 'ACTIVESHEET' = gs_activesheet.CALL METHOD OF gs_excel 'Worksheets' = gs_cells.CALL METHOD OF gs_cells 'Item' = gs_sheet1EXPORTING #1 = '1-发票基本信息' .CALL METHOD OF gs_excel 'Worksheets' = gs_cells.CALL METHOD OF gs_cells 'Item' = gs_sheet2EXPORTING #1 = '2-发票明细信息' .
*09.10.2024 17:41:58 :填充数据lv_row = '4' .LOOP AT gt_alv INTO gs_alv WHERE sel IS NOT INITIAL .CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'EXPORTINGinput          = gs_alv-meinslanguage       = sy-languIMPORTINGoutput         = gs_alv-meinsEXCEPTIONSunit_not_found = 1OTHERS         = 2.CALL METHOD OF gs_sheet1 'Cells' = gs_cell1EXPORTING#1 = lv_row#2 = 1.SET PROPERTY OF gs_cell1 'Value' = gs_alv-vbeln .   "发票号SET PROPERTY OF gs_cell1 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet1 'Cells' = gs_cell1EXPORTING#1 = lv_row#2 = 6.SET PROPERTY OF gs_cell1 'Value' = gs_alv-name .    "客户号SET PROPERTY OF gs_cell1 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet1 'Cells' = gs_cell1EXPORTING#1 = lv_row#2 = 7.SET PROPERTY OF gs_cell1 'Value' = gs_alv-taxnum .   "客户税号SET PROPERTY OF gs_cell1 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet2 'Cells' = gs_cell2EXPORTING#1 = lv_row#2 = 1.SET PROPERTY OF gs_cell2 'Value' = gs_alv-vbeln .   "发票号SET PROPERTY OF gs_cell2 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet2 'Cells' = gs_cell2EXPORTING#1 = lv_row#2 = 5.SET PROPERTY OF gs_cell2 'Value' = gs_alv-meins .   "单位SET PROPERTY OF gs_cell2 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet2 'Cells' = gs_cell2EXPORTING#1 = lv_row#2 = 6.SET PROPERTY OF gs_cell2 'Value' = gs_alv-lfimg .   "数量SET PROPERTY OF gs_cell2 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet2 'Cells' = gs_cell2EXPORTING#1 = lv_row#2 = 7.SET PROPERTY OF gs_cell2 'Value' = gs_alv-cmpre .   "单价SET PROPERTY OF gs_cell2 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet2 'Cells' = gs_cell2EXPORTING#1 = lv_row#2 = 8.SET PROPERTY OF gs_cell2 'Value' = gs_alv-zhszj .   "金额SET PROPERTY OF gs_cell2 'HorizontalAlignment' = -4108 .  "字体默认居中CALL METHOD OF gs_sheet2 'Cells' = gs_cell2EXPORTING#1 = lv_row#2 = 9.SET PROPERTY OF gs_cell2 'Value' = gs_alv-zsm .   "税率SET PROPERTY OF gs_cell2 'HorizontalAlignment' = -4108 .  "字体默认居中lv_row = lv_row + 1 .CLEAR : gs_alv .ENDLOOP .CLEAR : lv_row .
*-----------CALL METHOD OF gs_wbook 'SAVE'. "保存CALL METHOD OF gs_wbook 'CLOSE'."关闭CALL METHOD OF gs_excel 'QUIT'. "退出

相关文章:

  • 一次制作参考网杂志的阅读书源的实操经验总结(附书源)
  • 残差连接缓解梯度消失的含义;残差连接的真正含义:F(x) = y - x ;y=F(x)+x
  • IE之路专题12.BGP专题
  • ES中常用的Query和查询作用,以及SpringBoot使用实例
  • volatile的进一步深入理解
  • 如何导出pip下载的paho-mqtt包
  • 对比说明Navicat for MySQL和DBeaver的数据同步功能
  • Qt QTimer 详解与使用指南
  • VueRouter笔记
  • LeetCode 2364.统计坏数对的数目:反向统计
  • 深度学习3.2 线性回归的从零开始实现
  • (8)VTK C++开发示例 --- 交互式3D部件
  • VTK9 编译
  • Android 12.0 framework实现对系统语言切换的功能实现
  • Dubbo Filter如何实现Bean注入与配置文件读取?
  • 花园灌溉问题
  • 若依框架修改左侧菜单栏默认选中颜色
  • ChatUI vs Ant Design X 技术选型对比
  • win10系统完美配置mamba-ssm全整合方案
  • RAG-概述
  • 张又侠董军分别与印尼国防部长会见会谈
  • 两代“楚王”世纪同框,楚王熊悍鼎将回安徽展出
  • 重返母校:哈佛大学医学院博士后陈则宇入职北大基础医学院
  • 消息人士称哈马斯愿与以色列达成长期停火
  • 伊朗外长: 下一轮伊美核问题谈判将于26日举行
  • 95后男中音胡斯豪敲开芝加哥抒情歌剧院大门