SAP smartform和ALV如何使用图片 如何下载SE78上传的图片到本地

news2024/11/18 16:26:18

原文链接1:https://mp.weixin.qq.com/s/gb3LCoDLNhZGnpplG68cyA
原文链接2:https://mp.weixin.qq.com/s/iFFhGwFEK93QiddR1biXyA
1.如何在SMARTFORM中打印图片
在使用SmartForms进行打印单据开发时候,经常需要将公司的LOGO、公司印章、管理人员签名等一并打印,而这些打印对象都是图片,需要将这些打印对象上传到SAP服务器中,才能在SmartForms中应用。如何上传和应用这类图片,下面是具体操作步骤介绍:
1 .执行SE78事务码,按如下图操作。
在这里插入图片描述
上传的图片一定要是BMP或DIB格式,选择上传图片的路径,填写名字和描述,然后一直执行下去就可以了,执行成功后显示如下。
在这里插入图片描述
2. 在SmartForms设计时,在想要加入LOGO的地方,点击右键:创建->图形,然后在名称:ZERPLOGO,即可才打印的Form中打印出公司的LOGO或其它图形、图片。
在这里插入图片描述
2.如何在ALV报表中显示图片
具体操作步骤:
1 . 执行OAER事务码,按如下图操作。
在这里插入图片描述
Class name:PICTURES
Class type : OT
Object key:ZALV_LOGO (ALV报表程序通过这识别)
2. 填写完成点击执行按钮(或F8)运行之后,打开标准文档类型->双击屏幕,上传本地图片文件至SAP(如下图)
在这里插入图片描述
然后一直执行下去就可以了,执行成功后显示如下。
在这里插入图片描述
3 . 上传完成后,可以在ALV报表中使用了,可以使用如下function使用图片

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = git_listheader
      i_logo  = 'ZALV_LOGO'.  " 要大写

效果如下图
在这里插入图片描述
4 . 最后附上上图报表的完整程序供参考学习

*&-------------------------------------------*
*& Report  ZALVLOGO
*&-------------------------------------------*
REPORT ZALVLOGO.
TYPE-POOLS: slis.
*&-------------------------------------------*
*     Data Decalaration
*&-------------------------------------------*
DATA: git_spfli TYPE TABLE OF spfli.
DATA: g_repid TYPEsy-repid.
DATA: git_listheader TYPE slis_t_listheader,
      gwa_listheader TYPE slis_listheader.
*&-------------------------------------------*
*     START-OF-SELECTION
*&-------------------------------------------*
START-OF-SELECTION.
  g_repid = sy-repid.
  SELECT * FROM spfliINTO TABLE git_spfli.
  PERFORM build_alv_header.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program     =g_repid
      i_callback_top_of_page = 'TOP_OF_PAGE'
      i_structure_name       = 'SPFLI'
    TABLES
      t_outtab               = git_spfli.
*&-------------------------------------------*
*&      Form BUILD_ALV_HEADER
*&-------------------------------------------*
FORM build_alv_header .
* Type H is used to display headers i.e. big font
  gwa_listheader-typ  = 'H'.
  gwa_listheader-info ='Flight Details'.
  APPEND gwa_listheader TOgit_listheader.
  CLEAR gwa_listheader.
* Type S is used to display key and value pairs
  gwa_listheader-typ = 'S'.
  gwa_listheader-key = 'Date :' .
  CONCATENATE  sy-datum+6(2)
               sy-datum+4(2)
               sy-datum(4)
               INTO gwa_listheader-info
               SEPARATED BY '/'.
  APPEND gwa_listheader TOgit_listheader.
  CLEAR gwa_listheader.
* Type A is used to display italic font
  gwa_listheader-typ = 'A'.
  gwa_listheader-key = 'Date    :' .
  gwa_listheader-info ='SAP ALV Report'.
  APPEND gwa_listheader TOgit_listheader.
  CLEAR gwa_listheader.
ENDFORM.       " BUILD_ALV_HEADER
*&-------------------------------------------*
*&      Form top_of_page
*&-------------------------------------------*
FORM top_of_page.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = git_listheader
      i_logo   = 'ZALV_LOGO'.  "LOGO object key 大写
ENDFORM.   "top_of_page

3 . 如何下载SE78上传的图片到本地

在使用Scripfrom或SmartForms工具开发凭证单据打印的时候,经常会遇到需要打印一些相关的图片到单据上的需求,比如:公司的LOGO,公司的印章、领导签名图片等。

在SAP系统单据打印开发中,我们还可能会遇到这样需求,比如:某些己开发的打印单据需要更换公司LOGO、领导签名图片等,我们可能需要下载原来图片进行修改,参考设计等

但SAP好像并没有标准的事务码可以方便下载已上传至SAP服务器上的图片,通常的解决方法写一个专门下载这类图片的简单程序来处理。

比如下面这个程序是网络上被转载较广的专门用于下载SE78上传图片的程序,操作界面如下:
在这里插入图片描述
输入图片名称和下载到电脑的本地路径,点击执行即可完成所需图片的下载。

源代码如下仅供参考:


REPORT  Ydownload.
DATA : g_bytecount             TYPE i,
       g_content               TYPE STANDARD TABLE OF
                                    bapiconten INITIAL SIZE 0,
       g_bitmap_file_bytecount TYPE i,
       g_file_name             TYPE string,
       BEGIN OF g_bitmap_file OCCURS 0,
        line(255) TYPE x,
       END OF g_bitmap_file,
       l_bitmaps TYPE TABLE OF stxbitmaps WITH HEADER LINE,
       lit_scrfields TYPE TABLE OF dynpread WITH HEADER LINE.

PARAMETER: p_image LIKE  stxbitmaps-tdname, "需要下载的图片名称
*                   DEFAULT 'ENJOY', "name of the image
           p_file  LIKE  ibipparms-path. "下载到PC的路径
*                   DEFAULT 'H:\My Documents\enjoy.bmp'.
" Download File path

*F4 help to get file path
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_file.

*F4 help search for image files
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_image.
  CALL FUNCTION 'SAPSCRIPT_SEARCH_GRAPHIC_BDS'
    EXPORTING
      selection_screen   = 'X'
      select_entry       = 'X'
      selection_show     = 'X'
    IMPORTING
      e_name             = p_image
    TABLES
      t_selections       = l_bitmaps
    EXCEPTIONS
      nothing_found      = 1
      selection_canceled = 2
      internal_error     = 3
      OTHERS             = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

START-OF-SELECTION.
  MOVE p_file TO g_file_name.
*Get graphics to BDS
  CALL FUNCTION 'SAPSCRIPT_GET_GRAPHIC_BDS'
    EXPORTING
      i_object       = 'GRAPHICS'
      i_name         = p_image
      i_id           = 'BMAP'
      i_btype        = 'BCOL'
    IMPORTING
      e_bytecount    = g_bytecount
    TABLES
      content        = g_content
    EXCEPTIONS
      not_found      = 1
      bds_get_failed = 2
      bds_no_content = 3
      OTHERS         = 4.
  IF sy-subrc <> 0.
    MESSAGE i208(00) WITH 'Image does not exists.'(000).
  ENDIF.

  IF NOT g_content[] IS INITIAL.
*Convert to BITMAP
    CALL FUNCTION 'SAPSCRIPT_CONVERT_BITMAP'
      EXPORTING
        old_format               = 'BDS'
        new_format               = 'BMP'
        bitmap_file_bytecount_in = g_bytecount
      IMPORTING
        bitmap_file_bytecount    = g_bitmap_file_bytecount
      TABLES
        bds_bitmap_file          = g_content
        bitmap_file              = g_bitmap_file
      EXCEPTIONS
        OTHERS                   = 1.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
*Download to PC
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        bin_filesize            = g_bitmap_file_bytecount
        filename                = g_file_name
        filetype                = 'BIN'
      TABLES
        data_tab                = g_bitmap_file
      EXCEPTIONS
        file_write_error        = 1
        no_batch                = 2
        gui_refuse_filetransfer = 3
        invalid_type            = 4
        no_authority            = 5
        unknown_error           = 6
        header_not_allowed      = 7
        separator_not_allowed   = 8
        filesize_not_allowed    = 9
        header_too_long         = 10
        dp_error_create         = 11
        dp_error_send           = 12
        dp_error_write          = 13
        unknown_dp_error        = 14
        access_denied           = 15
        dp_out_of_memory        = 16
        disk_full               = 17
        dp_timeout              = 18
        file_not_found          = 19
        dataprovider_exception  = 20
        control_flush_error     = 21
        OTHERS                  = 22.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDIF.

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

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

相关文章

HCIP-二、MSTP+Eth-trunk

二、MSTPEth-trunk 实验拓扑实验需求及解法 实验拓扑 实验需求及解法 //1.如图所示&#xff0c;配置设备名称和 IP 地址。 //2.在 SW1 与 SW2 之间配置链路聚合协议 LACP&#xff0c;完成以下需求&#xff1a; //2.1 SW1 作为主动端&#xff0c;设置系统优先级为最高。 [SW1]l…

百度地图,地市区域描边

描边首先需要各个点的经纬度数据 json数据下载 直接复制粘贴进入页面ctrls保存就可以了。 如果需要某省中的各个地市描边可以点击这个省的进行下载&#xff0c;这里以山东为例&#xff0c;我是先下载了山东的json数据,但是发现只有山东省下各个市的描边&#xff0c;于是又下了中…

深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序 计算机竞赛

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

弄懂Rust编程中的Trait

1.定义 trait trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。 一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话&#xff…

【C#二开业务冠邑】通过界面查看数据来源

前言 重构框架&#xff08;CS【C#】转BS【Java】&#xff09;时&#xff0c;突然发现公司的代码和数据库&#xff0c;有部分都没有写注释&#xff0c;嘎嘎&#xff0c;这不非常影响开发效率&#xff0c;于是乎&#xff0c;开始帮公司整理表结构和数据来源&#xff0c;也从而加…

ACREL DC energy meter Application in Indonesia

安科瑞 华楠 Abstract: This article introduces the application of Acrel DC meters in base station in Indonesia.The device is measuring current,voltage and energy together with hall current sensor. 1.Project Overview This company is located in Indonesia a…

企业省钱大法:如何通过更好的采购支出管理节省开支

在探讨如何通过更好的支出管理来增加利润之前&#xff0c;先来了解一下什么是支出管理。 支出管理是指通过收集、维护、分类和审查支出数据&#xff0c;来降低采购成本的过程。其目的还包括提高效率、监控工作流程以及保持合规性。 支出管理流程影响到整个采购周期的众多活动…

“三面一体”的业务调度方案在运营商订单运营的实践

在当前信息化时代&#xff0c;运营商的业务流程复杂度和多样性持续增长&#xff0c;多个系统、部门以及相关事务需要进行高效准确的调度。如何在这样的背景下&#xff0c;保证业务流程的顺畅&#xff0c;业务信息的实时传递以及业务决策的准确性&#xff0c;是业务运营面临的重…

KT142C语音芯片搭配HAA2018功放,两个板子,一个声音正常一个没有声音

KT142C芯片搭配HAA2018功放&#xff0c;焊了两个板子&#xff0c;一个声音正常&#xff0c;一个没有声音&#xff0c;该如何分析解决问题呢&#xff1f; 客户提出来的这个问题&#xff0c;原理图如下&#xff1a;分析问题的步骤如下&#xff1a; 可以看出来芯片的原理图部分没有…

深度了解LinkedBlockingQueue底层实现原理

文章目录 前言一、Queue接口的定义二、AbstractQueue实现Queue的基本操作1.AbstractQueue源码注释解析2.方法add、remove、element、clear、addAll的实现原理 三、BlockingQueue接口定义解析1.入列操作2.出列操作3.其他操作 四、LinkedBlockingQueue源码解析1.LinkedBlockingQu…

基于JAVA+SpringBoot+VUE+微信小程序的前后端分离咖啡小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社会的快速发展和…

报错!Jupyter notebook 500 : Internal Server Error

Jupyter notebook 报错 500 : Internal Server Error 问题背景 tensorflow-gpu环境&#xff0c;为跑特定代码专门开了一个环境&#xff0c;使用conda安装了Jupyter notebook&#xff0c;能够在浏览器打开Jupyter notebook&#xff0c;但是notebook打开ipynb会报错。 问题分析…

基于单片机的公共场所马桶设计(论文+源码)

1.系统设计 本课题为公共场所的马桶设计&#xff0c;其整个系统架构如图2.1所示&#xff0c;其采用STC89C52单片机为核心控制器&#xff0c;结合HC-SR04人体检测模块&#xff0c;压力传感器&#xff0c;LCD1602液晶&#xff0c;蜂鸣器&#xff0c;L298驱动电路等构成整个系统&…

7-tcp 三次握手和四次挥手、osi七层协议,哪七层,每层有哪些?tcp和udp的区别?udp用在哪里了?

1 tcp 三次握手和四次挥手 2 osi七层协议&#xff0c;哪七层&#xff0c;每层有哪些 3 tcp和udp的区别&#xff1f;udp用在哪里了&#xff1f; 1 tcp 三次握手和四次挥手 # tcp协议---》处于osi7层协议的传输层&#xff0c;可靠连接&#xff0c;使用三次握手&#xff0c;四次挥…

一文详解!SRM(供应商管理)助力实现采购端实现降本增效

供应商管理关系到企业各部门的正常运转&#xff0c;一个好的SRM供应商管理系统对于公司来说无疑是锦上添花&#xff0c;改善企业与供应商的关系&#xff0c;可以帮助企业实现采购端的降本增效。但在信息化转型的浪潮下&#xff0c;很多企业SRM信息化却遇到不少问题。 那么请花…

媒体格式转换软件Permute 3 mac中文版软件特点

Permute mac是一款媒体格式转换软件&#xff0c;可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式&#xff0c;并提供了一些常用工具以便于用户进行编辑和处理。 Permute mac软件特点 - 支持大量格式&#xff1a;支持几乎所有常见的音频、视频和图像格式&#xff…

redis---非关系型数据库

关系数据库与非关系型数据库 redis非关系型数据库&#xff0c;又名缓存型数据库。数据库类型&#xff1a;关系型数据库和非关系型数据库关系型数据库是一 个机构化的数据库,行和列。 列&#xff1a;声明对象。 行&#xff1a;记录对象属性。 表与表之间的的关联。 sql语句&…

leetcode算法之分治-归并

目录 1.排序数组2.数组中的逆序对3.计算右侧小于当前元素的个数4.翻转对 1.排序数组 排序数组 //分治-归并 class Solution {int tmp[50010]; public:vector<int> sortArray(vector<int>& nums) {mergeSort(nums,0,nums.size()-1);return nums;}void mergeS…

Java核心知识点整理大全7-笔记

目录 4.1.9. JAVA 锁 4.1.9.1. 乐观锁 4.1.9.2. 悲观锁 4.1.9.3. 自旋锁 4.1.9.4. Synchronized 同步锁 Synchronized 作用范围 Synchronized 核心组件 Synchronized 实现 4.1.9.5. ReentrantLock Lock 接口的主要方法 非公平锁 公平锁 ReentrantLock 与 synchronized …

[⑤ADRV902x]: TES (Transceiver Evaluation Software) 使用

前言 在ADI官网的ADRV902x系列的参考设计软件包&#xff08;地址&#xff1a;https://www.analog.com/cn/products/adrv9029.html#product-requirement &#xff09;中包含了GUI软件TES (Transceiver Evaluation Software)。软件实用的功能非常多&#xff0c;比如可以用界面的…