ABAP打印WORD的解决方案

news2024/9/21 16:24:08

客户要求按照固定格式输出到WORD模板中,目前OLE和DOI研究了均不太适合用于这种需求。

cl_docx_document类可以将WORD转化为XML文件,利用替换字符串方法将文档内容进行填充同

时不破坏WORD现有格式。

  首先需要将WORD的单元格用各种预定义的字符进行填充,为后续替换作准备。

  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename   = pv_file
      filetype   = 'BIN'
    IMPORTING
      filelength = lv_length
    CHANGING
      data_tab   = lt_data_tab.

  CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
    EXPORTING
      input_length = lv_length
    IMPORTING
      buffer       = lv_docx
    TABLES
      binary_tab   = lt_data_tab.

  "获取WORD
  CALL METHOD cl_docx_document=>load_document
    EXPORTING
      iv_data = lv_docx
    RECEIVING
      rr_doc  = lr_docx.

* Get main part where content of word document is stored
  lr_main = lr_docx->get_maindocumentpart( ).

* Get data (XSTRING) of main part
  lv_xml = lr_main->get_data( ).

* Convert to string for simple maintaining
  CALL FUNCTION 'CRM_IC_XML_XSTRING2STRING'
    EXPORTING
      inxstring = lv_xml
    IMPORTING
      outstring = lv_string.

  DEFINE replace_word.
    CLEAR: LR_ERROR,L_RETCODE,L_WORD.
    REPLACE ALL OCCURRENCES OF &2 IN lv_string WITH &1.
  END-OF-DEFINITION.

  "调用宏替换
  replace_word gs_base-ename    'B01'.  "姓名
  replace_word gs_base-gesch    'B02'.  "性别
  replace_word gs_base-pernr    'B03'.  "ERP系统编码
  replace_word gs_base-zhr_mz   'B04'.  "民族
  replace_word gs_base-wtfld    'B05'.  "血型
  replace_word ''               'B06'.  "EHR系统编码
  replace_word gs_base-zhr_jg   'B07'.  "籍贯
  replace_word gs_base-zhr_whcd 'B08'.  "文化程序
  replace_word gs_base-usrid    'B09'.  "电话
  "  replace_word gs_base-usrid    'B10'.  "政治面貌

 替换的宏

  DEFINE replace_word.
    CLEAR: LR_ERROR,L_RETCODE,L_WORD.
    REPLACE ALL OCCURRENCES OF &2 IN lv_string WITH &1.
  END-OF-DEFINITION.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis的AOF持久化策略(AOF的工作流程、AOF的重写流程,操作演示、注意事项等)

文章目录 缓冲AOF 策略(append only file)AOF 的工作流程AOF 缓冲区策略AOF 的重写机制重写完的AOF文件为什么可以变小?AOF 重写流程 缓冲AOF 策略(append only file) AOF 的核心思路是 “实时备份“,只要我添加了新的数据或者更新了新的数据&#xff0…

价格较低,功能最强?OpenAI 推出 GPT-4o mini,一个更小、更便宜的人工智能模型

OpenAI美东时间周四推出“GPT-4o mini”,入局“小而精”AI模型竞争,称这款新模型是“功能最强、成本偏低的模型”,计划今后整合图像、视频、音频到这个模型中。 OpenAI表示,GPT-4o mini 相较于 OpenAI 目前最先进的 AI 模型更加便…

FairGuard游戏加固入选《嘶吼2024网络安全产业图谱》

2024年7月16日,国内网络安全专业媒体——嘶吼安全产业研究院正式发布《嘶吼2024网络安全产业图谱》(以下简称“产业图谱”)。 本次发布的产业图谱,共涉及七大类别,127个细分领域。全面展现了网络安全产业的构成和重要组成部分,探…

微软发布iOS/安卓正式版Designer应用,AI修图功能助力创意设计

一、Microsoft Designer应用正式上线 AITOP100平台获悉,微软一直致力于为用户提供优质的创意工具,此次推出的Microsoft Designer应用正是其在移动端的重要布局。这款应用已正式上线iOS、Android、Windows和网页版本,满足不同用户的需求。微软…

Stable Diffusion 使用详解(2)---- 图生图原理,操作,参数

目录 背景 图生图原理 基本原理 1. 扩散模型基础 2. 图生图的具体流程 3. 关键技术点 4. 应用实例 CLIP 原理 1.基本概念 2. 核心特点 使用及参数 随机种子 重绘幅度 图像宽高 采样方法 1. DPM(扩散概率模型) 2. SDE(随机微…

大语言模型-检索测评指标

1. MRR (Mean Reciprocal Rank)平均倒数排名: 衡量检索结果排序质量的指标。 计算方式: 对于每个查询,计算被正确检索的文档的最高排名的倒数的平均值,再对所有查询的平均值取均值。 意义: 衡量…

ChatTTS超强的真人AI语音助手下载使用教程

简介 ChatTTS是专门为对话场景设计的文本转语音模型,支持多人同时对话,适用的场景非常丰富,比如LLM助手对话任务,视频配音、声音克隆等。同时支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练&#xf…

【Android】 dp与sp,加冕为王

目录 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 基础知识: ppi pt DPI 的定义和重要性 Android 中的 DPI 级别 px dp(Density Independent Pixels) sp(Scale-independent Pixels) 安卓的dp/dip、sp 虚拟…

设置浏览器网页全屏

在日常笔记本上办公时,由于屏幕较小,为了尽可能多和方便的显示浏览器网页上的内容,可以设置网页全屏的方式,去掉屏幕顶端的网址栏和底端栏,具体设置如下: 以Edge浏览器和Google Chrome浏览器为例&#xff…

如何免费用java c#实现手机在网状态查询

今天分享手机在网状态查询接口,该接口适用的场景非常广泛!首先我们先讲下什么是手机在网状态?简单来说,就是你得手机号是否还在正常使用中,是否能够及时接收和回复信息,是否能够随时接听和拨打电话。如果你…

通过libx246 libfaac转换推送RTMP音视频直播流

一、RTMP简介及rtmplib库: RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing…

C++ :友元类

友元类的概念和使用 (1)将类A声明为B中的friend class后,则A中所有成员函数都成为类B的友元函数了 (2)代码实战:友元类的定义和使用友元类是单向的 (3)友元类是单向的,代码实战验证 互为友元类 (1)2个类可以互为友元类,代码实战…

相同IP地址仿真测试

相同IP地址仿真测试 背景与挑战解决方案技术优势功能特点 背景与挑战 在汽车电子领域,电子控制单元(ECU)的测试是确保其功能性和可靠性的关键步骤。然而,当测试场景涉及多个配置相同IP地址的ECU时,传统的测试方法面临…

GooglePlay 金融品类政策更新(7月17号)

距离上次政策大更新(4月5号)才过去了3个月,Google Play又迎来了一次大更新,不得不说Google Play的要求越来越高了。 我们来梳理一下这次GooglePlay针对金融品类更新了哪些政策: 1.要求提供金融产品和服务的开发者必须注册为组织…

IDEA的常见代码模板的使用

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试(Debug) 第七章 …

STM32使用SPI向W25Q64存储信息(HAL库)

SPI全双工通信:全双工在时钟脉冲周期的每一个周期内,每当主设备同时发送一个字节的同时,会接受从设备接受一个字节数据,SPI全双工最大的特点就是发送和接受数据同步进行,发送多少数据就要接受多少数据。使用全双工通信…

vst 算法R语言手工实现 | Seurat4 筛选高变基因的算法

1. vst算法描述 (1)为什么需要矫正 image source: https://ouyanglab.com/singlecell/basic.html In this panel, we observe that there is a very strong positive relationship between a gene’s average expression and its observed variance. I…

【iOS】static、extern、const、auto关键字以及联合使用

目录 前言extern关键字static关键字const关键字 联合使用static和externstatic和constextern和const auto关键字 先了解一下静态变量所在的全局/静态区的特点:【iOS】内存五大分区 前言 上面提到的全局/静态区中存放的是全局变量或静态变量: 全局变量…

逻辑回归(Logistic Regression,LR)

分类和回归是机器学习的两个主要问题。 分类处理的是离散数据回归处理的是连续数据 线性回归:回归 拟合一条线预测函数: 逻辑回归:分类——找到一条线可以将不同类别区分开 虽然称为逻辑回归,但是实际是一种分…

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)

1. 引言 在现代软件开发流程中,持续集成(CI)和持续交付(CD)已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器,通过其强大的插件生态系统和灵活的配置选项&#xf…