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.pswp.cn/web/72774.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72774.shtml
英文地址,請注明出處:http://en.pswp.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…