ABAP PDF预览

画个屏幕
在这里插入图片描述
PDF JPG TXT都可以参考预览,把二进制流传递给标准函数就行

*&---------------------------------------------------------------------*
*& Report YDEMO2
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ydemo2.DATA: gr_viewer TYPE REF TO cl_gui_html_viewer,gr_ctn    TYPE REF TO cl_gui_custom_container.CALL SCREEN '9001' STARTING AT 5 5 ENDING  AT  120 30 .*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9001 OUTPUT.DATA: lt_solix TYPE solix_tab,lv_size  TYPE i,lv_url   TYPE c LENGTH 255.SET PF-STATUS 'STATUS_9001'." 初始化容器对象gr_ctn    = NEW #( container_name = 'CC_VIEWER' ).gr_viewer = NEW #( parent = gr_ctn )." 读取数据流PERFORM frm_download_data CHANGING lt_solix lv_size.gr_viewer->load_data(EXPORTINGsize = lv_sizetype = 'APPLICATION'subtype = 'TXT'
*      subtype = 'JPG'
*      subtype = 'PDF'IMPORTINGassigned_url = lv_urlCHANGINGdata_table   = lt_solix).gr_viewer->show_data( url = lv_url ).ENDMODULE.*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9001  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9001 INPUT.CASE sy-ucomm.WHEN 'ZEXIT'.LEAVE PROGRAM.WHEN OTHERS.ENDCASE.ENDMODULE.*&---------------------------------------------------------------------*
*& Form frm_download_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      <-- LT_SOLIX
*&---------------------------------------------------------------------*
FORM frm_download_data  CHANGING pt_solix TYPE solix_tabpv_size  TYPE i.DATA: lv_error     TYPE c VALUE 'X',lv_name      TYPE string,lv_path      TYPE string,lv_fullpath  TYPE string,lv_extension TYPE string,lv_filename  TYPE string,lt_result    TYPE match_result_tab,ls_result    TYPE match_result.DATA: lt_solix         TYPE solix_tab,ls_solix         TYPE solix,lv_file_length   TYPE i,lv_content       TYPE xstring,lv_max_length    TYPE i VALUE 255,lv_actual_length TYPE i.FIELD-SYMBOLS: <fs_server_path> TYPE string.
*  FIELD-SYMBOLS: <fs_server_path> TYPE any.lv_name = '/mnt/smbshare/DS4/GTS/1000000000_海关审批单20250225171352.txt'.
*  lv_name = '/mnt/smbshare/DS4/GTS/1000000000_通关单20250225171400.jpg'.
*  lv_name = '/mnt/smbshare/DS4/GTS/1000000000_报关单20250225171404.pdf'.ASSIGN lv_name TO <fs_server_path>.IF <fs_server_path> IS ASSIGNED AND <fs_server_path> IS NOT INITIAL." 文件名提取FIND ALL OCCURRENCES OF REGEX '[^/\\]+[/\\]*$' IN <fs_server_path> RESULTS lt_result.IF sy-subrc = 0.READ TABLE lt_result INTO ls_result INDEX 1.lv_filename  = <fs_server_path>+ls_result-offset(ls_result-length).lv_extension = lv_filename.REPLACE ALL OCCURRENCES OF REGEX '\.\w*' IN lv_filename  WITH ''.  " 正则删除后缀,取文件名REPLACE ALL OCCURRENCES OF REGEX '.+\.'  IN lv_extension WITH ''.  " 正则删除文件名,取后缀" 选择文件保存路径
*      cl_gui_frontend_services=>file_save_dialog(
*        EXPORTING
*          default_extension = lv_extension
*          default_file_name = lv_filename
*        CHANGING
*          filename          = lv_filename
*          path              = lv_path
*          fullpath          = lv_fullpath
*        EXCEPTIONS
*          OTHERS            = 1 ).
*      IF sy-subrc <> 0 OR lv_fullpath IS INITIAL.
*        MESSAGE s028(zgts001) DISPLAY LIKE 'E'. " 未选择文件保存路径
*        RETURN.
*      ENDIF." 下载文件OPEN DATASET <fs_server_path> FOR INPUT IN BINARY MODE.IF sy-subrc = 0.DO.CLEAR: ls_solix, lv_actual_length.READ DATASET <fs_server_path> INTO ls_solix-line MAXIMUM LENGTH lv_max_length ACTUAL LENGTH lv_actual_length.IF lv_actual_length IS INITIAL.EXIT.ELSE.APPEND ls_solix TO lt_solix.lv_file_length += lv_actual_length.ENDIF.ENDDO.CLOSE DATASET <fs_server_path>." 转换二进制IF lt_solix IS NOT INITIAL.
*
*          " 下载本地
*          CALL FUNCTION 'GUI_DOWNLOAD'
*            EXPORTING
*              filename = lv_fullpath
*              filetype = 'BIN'
*            TABLES
*              data_tab = lt_solix.
*          IF sy-subrc = 0.CLEAR lv_error.
*          ENDIF.
*ENDIF.ENDIF.ENDIF.ENDIF.IF lv_error = 'X'.MESSAGE s027(zgts001) DISPLAY LIKE 'E'. " 根据屏幕路径下载服务器文件失败RETURN.ENDIF.pv_size  = lv_file_length.pt_solix = lt_solix.ENDFORM.

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

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

相关文章

【视频】文本挖掘专题:Python、R用LSTM情感语义分析实例合集|上市银行年报、微博评论、红楼梦、汽车口碑数据采集词云可视化

原文链接&#xff1a;https://tecdat.cn/?p41149 分析师&#xff1a;Zhenzhen Liu&#xff0c;Shuai Fung 作为数据科学家&#xff0c;我们始终关注如何从非结构化数据中提取高价值信息。本专题合集聚焦企业年报的文本分析技术&#xff0c;通过Python与R语言实战案例&#xff…

高效团队开发的工具与方法 引言

引言 在现代软件开发领域&#xff0c;团队协作的效率和质量直接决定了项目的成败。随着项目规模的扩大和技术复杂度的增加&#xff0c;如何实现高效团队开发成为每个开发团队必须面对的挑战。高效团队开发不仅仅是个人技术能力的简单叠加&#xff0c;更需要借助合适的工具和方…

python中mysql操作整理

安装 Windows &#xff1a; pip install pymysql -i https://pypi.douban.com/simple mac &#xff1a;python3 -m pip install pymysql -i https://pypi.douban.com/simple mysql示例 import pymysql connect pymysql.Connect(host82.156.74.26,port3306,userroot,passwor…

Python----计算机视觉处理(Opencv:图像颜色替换)

一、开运算 开运算就是对图像先进行腐蚀操作&#xff0c; 然后进行膨胀操作。开运算可以去除二值化图中的小的噪点&#xff0c;并分离相连的物体。 其主要目的就是消除那些小白点 在开运算组件中&#xff0c;有一个叫做kernel的参数&#xff0c;指的是核的大小&#xff0c;通常…

基于SpringBoot的“ERP-物资管理”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“ERP-物资管理”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 E-R实体关系图 管理员登录界面 管…

链表操作:分区与回文判断

目录 链表分区&#xff08;Partition&#xff09; 功能概述 代码实现 要点与难点 注意事项 链表回文判断&#xff08;PalindromeList&#xff09; 功能概述 代码实现 要点与难点 注意事项 总结 在链表相关的算法问题中&#xff0c;理解链表的基本结构和操作至关重要…

如何在 Node.js 中使用 .env 文件管理环境变量 ?

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法&#xff0c;而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要&#xff0c;以及如何在 Node.js 应用程序中有效的使用它。 为什么使用 .env 文…

【Git学习笔记】Git结构原理及其分支管理模型分析

【Git学习笔记】Git结构原理及其分支管理模型分析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Git学习笔记 文章目录 【Git学习笔记】Git结构原理及其分支管理模型分析前言一.认识工作区、暂存区、版本库1.1 版本回退1.2 撤销修改1.3 删…

Scheme语言的压力测试

Scheme语言的压力测试 引言 Scheme是一种广泛使用的函数式编程语言&#xff0c;它是Lisp语言家族的一员&#xff0c;以其简洁性和强大的表达能力而闻名。在现代软件开发中&#xff0c;施行压力测试是一项关键技术&#xff0c;旨在评估系统在高负载或极端情况下的表现。在这篇…

[特殊字符]Windows 11 安装 Git 图文教程(含详细配置说明)

Windows 11 安装 Git 图文教程(含详细配置说明) 本教程适用于 Git 新手,手把手教你如何在 Windows 11 上完整安装 Git 并正确配置,配图清晰,步骤明确,建议收藏! ✅ 第一步:下载 Git 安装包 访问官网:https://git-scm.com自动识别系统后点击下载或者直接前往:Git for …

简单以太网配置

display arp //查看路由器mac地址 交换机配置命令&#xff1a; system-view // 从用户视图进入系统视图 dis mac-address //查看mac地址表 路由器配置命令: system-view // 从用户视图进入系统视图 int GigabitEthernet 0/0/0 //进入G口 0/0/0 进入之后配置网关: ip addre…

【GPT入门】第25课 掌握 LangChain:链式调用的奥秘、特性与使用示例

【GPT入门】第25课 掌握 LangChain&#xff1a;链式调用的奥秘、特性与使用示例 语法解释各部分性质链式调用的性质调用方式注意事项 语法解释 你给出的代码 is_duplicated_chain (check_duplicated | model | parser) 运用了 LangChain 里的链式调用语法。在 LangChain 中&a…

二、vtkCommand的使用

一、概述 vtkCommand是VTK中的一个重要的类&#xff0c;用于处理事件和回调机制。它允许用户在特定事件发生时执行自定义的操作&#xff0c;例如在交互操作、数据更新或渲染过程中触发某些功能。 二、主要功能 1、事件处理&#xff1a;vtkCommand用于监听和处理VTK管线中的各…

配置集群-日志聚集操作

1.修改配置文件 <!-- 开启日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置日志聚集服务器地址 --> <property> <name>yarn.log.server.url&…

Linux系统上后门程序的原理细节,请仔细解释一下

在Linux系统上&#xff0c;后门程序通常通过隐蔽的方式绕过正常的安全机制&#xff0c;允许攻击者未经授权访问系统。以下是其工作原理的详细解释&#xff1a; 1. 隐蔽性 隐藏进程&#xff1a;后门程序常通过修改进程列表或使用rootkit技术隐藏自身&#xff0c;避免被ps、top…

华为ipd流程华为流程体系管理华为数字化转型流程数字化管理解决方案介绍81页精品PPT

华为流程体系最佳实践主要包括构建完善的流程框架&#xff0c;明确各层级流程要素与职责&#xff0c;梳理涵盖研发、采购、营销、服务、资产管理等多领域的流程&#xff0c;通过梳理业务场景和核心能力搭建差异化流程框架&#xff0c;采用自上而下与自下而上相结合的建模方法&a…

QT国产化系统软件开发

一、国产操作系统 1、鸿蒙HarmonyOS NEXT ‌核心架构‌ 采用自研鸿蒙内核&#xff0c;完全脱离Linux与AOSP代码&#xff0c;基于分布式架构实现跨设备资源虚拟化整合&#xff0c;支持动态调度多终端硬件能力‌。通过分布式软总线技术&#xff08;D-Bus&#xff09;实现低时延…

Oracle常见系统函数

一、字符类函数 1&#xff0c;ASCII(c)和CHR(i)字符串和ascii码互转换 SQL> select ascii(Z) ,ascii(H),ascii( A) from dual;ASCII(Z) ASCII(H) ASCII(A) ---------- ---------- ----------90 72 32SQL> select chr(90),chr(72),chr(65) from dual;C…

python pytorch tensorflow transforms 模型培训脚本

环境准备 https://www.doubao.com/thread/w5e26d6401c003bb2 执行培训脚本 import torch from torch.utils.data import Dataset, DataLoader from transformers import DistilBertTokenizer, DistilBertForSequenceClassification, AdamW import numpy as np# 自定义数据集类…

request库基础学习

requests安装 Windows &#xff1a;pip install requests mac &#xff1a; python3 -m pip install requests requests模块常用方法 方法含义requests.get()发起get请求requests.post()发起post请求requests.put()发起put请求requests.delete()发起delete请求requests.sess…