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

原文链接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.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTF/AWD竞赛标准参考书+实战指南

随着网络安全问题日益凸显&#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…

leetcode:415. 字符串相加(模拟竖式计算)

一、题目 链接&#xff1a; 415. 字符串相加 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a;char* addStrings(char* num1, char* num2) 二、思路&#xff1a; 本题本质是将两个字符型数字相加&#xff0c;字符型数字相加就一定需要进行字符与数字的相互转换 详…

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

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

Demo 题记

Demo 1 输入一个摄氏温度的值&#xff0c;将它转变为华氏温度&#xff0c;并将结果输出 #输入一个摄氏温度的值&#xff0c;将它转变为华氏温度&#xff0c;并将结果输出 c float(input("请输入摄氏温度&#xff1a;"))print("对应的华氏温度为%.2f"%(9…

redis---非关系型数据库

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

俄罗斯方块摆烂

package 俄罗斯方块;import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import ja…

ZYNQ_project:lcd_pic_400x400

在lcd液晶屏上显示400x400像素的图片&#xff0c; 像素信息通过电脑的串口调试助手&#xff0c;发送给fpga&#xff0c;存储在例化的双端口ram中&#xff0c; 在要显示图像区域&#xff0c;读取ram中的像素信息。 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a;…

电脑开不了机怎么办?三招帮你成功解决!

电脑是我们日常工作和生活的重要工具&#xff0c;但有时候它们也会出现开机问题。当电脑无法启动时&#xff0c;可能会让人感到焦虑&#xff0c;电脑开不了机怎么办&#xff1f;不必担心&#xff0c;通常有多种方法可以解决这些问题。本文将介绍三种常见的方法&#xff0c;以帮…

你真的会写简历吗?软件测试简历修改包装...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、简历重要性以及…

《微信小程序开发从入门到实战》学习二十三

前言 之前是先看文章&#xff0c;再敲代码&#xff0c;出现预览效果&#xff0c;最后码字。 现在改变顺序&#xff0c;先直接照着敲代码&#xff0c;再看文章&#xff0c;最后码字。不知道能不能更加内化学习到该书作者教的内容。希望自己不是一味照抄书的代码和内容。 ​3.…

【GitHub】保姆级使用教程

一、如何流畅访问GitHub 1、网易uu加速器 输入网址&#xff0c;无脑下载网易加速器&#xff1b;https://uu.163.com/ 下载安装完毕后&#xff0c;创建账号进行登录 登录后&#xff0c;在右上角搜索框中搜索“学术资源”&#xff0c;并点击&#xff1b; 稍等一会儿就会跳…

微信小程序会议OA-登录获取手机号流程登录-小程序导入微信小程序SDK(从微信小程序和会议OA登录获取手机号到登录小程序导入微信小程序SDK)

目录 获取用户昵称头像和昵称 wx.getUserProfile bindgetuserinfo 登录过程 登录-小程序 wx.checkSession wx.login wx.request 后台 准备数据表 反向生成工具生成 准备封装前端传过来的数据 小程序服器配置 导入微信小程序SDK application.yml WxProperties …

PLC通过Modbus转profinet网关读取并控制恒压供水系统中的变频器频率

PLC通过Modbus转profinet网关读取并控制恒压供水系统中的变频器频率 PLC通过Modbus转Profinet网关(XD-MDPN100)在恒压供水系统中读取变频器的频率。该系统实时监控逆变器的频率&#xff0c;以确保水的供应能够保持恒定的压力。PLC通过Modbus与变频器通信&#xff0c;将读取的频…

配置中心

服务配置中心介绍 首先我们来看一下,微服务架构下关于配置文件的一些问题&#xff1a; 1. 配置文件相对分散。 在一个微服务架构下&#xff0c;配置文件会随着微服务的增多变的越来越多&#xff0c;而且分散 在各个微服务中&#xff0c;不好统一配置和管理。 2. 配置文件无…

【excel技巧】单元格内的公式如何隐藏?

Excel文件中最重要的除了数据还有就是一些公式了&#xff0c;但是只要点击单元格&#xff0c;公式就能显示出来&#xff0c;如果不想别人看到公式应该如何设置呢&#xff1f;今天分享隐藏excel单元格数据的方法。 选中单元格&#xff0c;点击右键打开【设置单元格格式】&#x…

深度了解LinkedBlockingQueue底层实现原理

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

Python学习(打基础版)

以前只是大致的了解&#xff0c;现在比较完整的整理一下笔记&#xff0c;以后工作可能会用到。 学习地址如下所示&#xff1a;黑马程序员python教程&#xff0c;8天python从入门到精通&#xff0c;学python看这套就够了_哔哩哔哩_bilibili 第一章 环境配置 1 初识Python 人…

Git——感谢尚硅谷官方文档

Git——尚硅谷学习笔记 第1章 Git 概述1.1 何为版本控制1.2 为什么需要版本控制1.3 版本控制工具1.4 Git 简史1.5 Git 工作机制1.6 Git 和代码托管中心 第2章 Git 安装第 3 章 Git 常用命令3.1 设置用户签名3.2 初始化本地库3.3 查看本地库状态3.4 添加暂存区3.4.1 将工作区的文…