【ABAP】 屏幕图片显示Demo
在ABAP屏幕容器中显示图片用到的类是“CL_GUI_PICTURE”,下面则以一个简单的小例子说明其用法,个人学习收藏使用,不代表任何意义。
【效果图】
【样例代码】
REPORT ZABAP_SCREEN01.DATA URL(132).
TYPE-POOLS CNDP.
* custom container
DATA CON1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA CON2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA CON3 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.* picture Control.
DATA PICTURE1 TYPE REF TO CL_GUI_PICTURE.
DATA PICTURE2 TYPE REF TO CL_GUI_PICTURE.
DATA PICTURE3 TYPE REF TO CL_GUI_PICTURE.* Definition of Control Framework
CLASS CL_GUI_CFW DEFINITION LOAD.* Ps count
DATA PS1 TYPE I.
DATA PS2 TYPE I.
DATA PS3 TYPE I.
DATA ZNAM TYPE CHAR20.DATA INIT.
DATA OK_CODE TYPE SY-UCOMM.CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.SET PF-STATUS 'STATUS_0100'.SET TITLEBAR 'STATUS_0100'.ZNAM = SY-UNAME.IF INIT IS INITIAL.
* create the custom containerCREATE OBJECT CON1EXPORTINGCONTAINER_NAME = 'CON1'.CREATE OBJECT CON2EXPORTINGCONTAINER_NAME = 'CON2'.CREATE OBJECT CON3EXPORTINGCONTAINER_NAME = 'CON3'.
* create the picture controlCREATE OBJECT PICTURE1EXPORTINGPARENT = CON1.CREATE OBJECT PICTURE2EXPORTINGPARENT = CON2.CREATE OBJECT PICTURE3EXPORTINGPARENT = CON3.* Request an URL from the data provider by exporting the pic_data.CLEAR URL.PERFORM LOAD_PIC_FROM_DB USING 'ZHZ' CHANGING URL .
* load picture"设置图片自适应CALL METHOD PICTURE1->SET_DISPLAY_MODEEXPORTINGDISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUEEXCEPTIONSERROR = 1OTHERS = 2."设置边框CALL METHOD PICTURE1->SET_3D_BORDEREXPORTINGBORDER = 1EXCEPTIONSERROR = 1OTHERS = 2.CALL METHOD PICTURE1->LOAD_PICTURE_FROM_URLEXPORTINGURL = URL.INIT = 'X'.* Request an URL from the data provider by exporting the pic_data.CLEAR URL.PERFORM LOAD_PIC_FROM_DB USING 'ZWJD' CHANGING URL .
* load picture"设置图片自适应CALL METHOD PICTURE2->SET_DISPLAY_MODEEXPORTINGDISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUEEXCEPTIONSERROR = 1OTHERS = 2."设置边框CALL METHOD PICTURE2->SET_3D_BORDEREXPORTINGBORDER = 1EXCEPTIONSERROR = 1OTHERS = 2.CALL METHOD PICTURE2->LOAD_PICTURE_FROM_URLEXPORTINGURL = URL.INIT = 'X'.* Request an URL from the data provider by exporting the pic_data.CLEAR URL.PERFORM LOAD_PIC_FROM_DB USING 'ZCDZJ' CHANGING URL .
* load picture"设置图片自适应CALL METHOD PICTURE3->SET_DISPLAY_MODEEXPORTINGDISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUEEXCEPTIONSERROR = 1OTHERS = 2."设置边框CALL METHOD PICTURE3->SET_3D_BORDEREXPORTINGBORDER = 1EXCEPTIONSERROR = 1OTHERS = 2.CALL METHOD PICTURE3->LOAD_PICTURE_FROM_URLEXPORTINGURL = URL.INIT = 'X'.CALL METHOD CL_GUI_CFW=>FLUSHEXCEPTIONSCNTL_SYSTEM_ERROR = 1CNTL_ERROR = 2.IF SY-SUBRC <> 0.
* error handlingENDIF.ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.CASE OK_CODE .WHEN 'BACK' OR 'EXIT'.LEAVE TO SCREEN 0.WHEN 'CANCEL'.LEAVE PROGRAM.WHEN 'XH1'.PS1 = PS1 + 1.WHEN 'XH2'.PS2 = PS2 + 1.WHEN 'XH3'.PS3 = PS3 + 1.ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.CALL METHOD PICTURE1->FREE.CALL METHOD PICTURE2->FREE.CALL METHOD PICTURE3->FREE.CALL METHOD CON1->FREE.CALL METHOD CON2->FREE.CALL METHOD CON3->FREE.FREE PICTURE1.FREE PICTURE2.FREE PICTURE3.FREE CON1. FREE CON2. FREE CON3.LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT*&---------------------------------------------------------------------*
*& Form LOAD_PIC_FROM_DB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_URL text
*----------------------------------------------------------------------*
FORM LOAD_PIC_FROM_DB USING NAME CHANGING URL.DATA: GRAPHIC_SIZE TYPE I.DATA: BEGIN OF GRAPHIC_TABLE OCCURS 0,LINE(255) TYPE X,END OF GRAPHIC_TABLE.DATA: L_GRAPHIC_XSTR TYPE XSTRING,L_GRAPHIC_CONV TYPE I,L_GRAPHIC_OFFS TYPE I.CALL METHOD CL_SSF_XSF_UTILITIES=>GET_BDS_GRAPHIC_AS_BMPEXPORTINGP_OBJECT = 'GRAPHICS'P_NAME = NAMEP_ID = 'BMAP'P_BTYPE = 'BCOL' "(BMON = black&white, BCOL = colour)RECEIVINGP_BMP = L_GRAPHIC_XSTREXCEPTIONSNOT_FOUND = 1OTHERS = 2.GRAPHIC_SIZE = XSTRLEN( L_GRAPHIC_XSTR ).CHECK GRAPHIC_SIZE > 0.L_GRAPHIC_CONV = GRAPHIC_SIZE.L_GRAPHIC_OFFS = 0.WHILE L_GRAPHIC_CONV > 255.GRAPHIC_TABLE-LINE = L_GRAPHIC_XSTR+L_GRAPHIC_OFFS(255).APPEND GRAPHIC_TABLE.L_GRAPHIC_OFFS = L_GRAPHIC_OFFS + 255.L_GRAPHIC_CONV = L_GRAPHIC_CONV - 255.ENDWHILE.GRAPHIC_TABLE-LINE = L_GRAPHIC_XSTR+L_GRAPHIC_OFFS(L_GRAPHIC_CONV).APPEND GRAPHIC_TABLE.CALL FUNCTION 'DP_CREATE_URL'EXPORTINGTYPE = 'image' "#EC NOTEXTSUBTYPE = CNDP_SAP_TAB_UNKNOWN " 'X-UNKNOWN'SIZE = GRAPHIC_SIZELIFETIME = CNDP_LIFETIME_TRANSACTION "'T'TABLESDATA = GRAPHIC_TABLECHANGINGURL = URLEXCEPTIONSDP_INVALID_PARAMETER = 1DP_ERROR_PUT_TABLE = 2DP_ERROR_GENERAL = 3OTHERS = 4.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.ENDFORM.
这里主要用到了其几个方法:
设置图片自适应
CALL METHOD PICTURE1->SET_DISPLAY_MODE
EXPORTING
DISPLAY_MODE = CL_GUI_PICTURE=>ADUST_DESIGN_TRUE
EXCEPTIONS
ERROR = 1
OTHERS = 2.
设置边框
CALL METHOD PICTURE1->SET_3D_BORDER
EXPORTING
BORDER = 1
EXCEPTIONS
ERROR = 1
OTHERS = 2.
显示图片
CALL METHOD PICTURE1->LOAD_PICTURE_FROM_URL
EXPORTING
URL = URL.
【ABAP】 屏幕图片显示Demo相关推荐
- ABAP屏幕上显示LIST的三种方法
屏幕上显示LIST的三种方法 在abap开发中,经常有用户提出list的需求,实现的方法很多,通常用的有以下三种总结一下供大家参考: 1:手工添加-就是根据需要把LIST要显示的内容一条一条加到LIS ...
- 如何在python中显示电脑中的图片-python如何实现多个图片显示在屏幕上?
pygame的三个方法(屏幕上显示需要的图片) yuhu102319582018-12-16 python将多幅图片显示在一张图片上 wugui1111116282018-06-15 iOS 图片显示 ...
- HTML5如何实现img标签中的图片根据屏幕大小显示相应部分的内容,并保证核心内容可见
实现以下效果: 有一张较大的图片,希望其在大屏幕上全屏显示,在小屏幕上显示中间核心部分的内容,根据屏幕大小自动调整显示效果. 实现方法: 样式部分 .container {overflow: hidd ...
- H5不同屏幕大小显示不同的文字大小图片大小
H5不同屏幕大小显示不同的文字大小图片大小 原理:识别屏幕宽度,利用JS的判断进行分配不同的尺寸 文字大小(HTML部分) <div id="size">大小文字< ...
- QT+高德地图Web服务API开发—静态地图开发Demo。QT组件提升、QT鼠标事件处理、Qt图片显示与移动、QT网络操作
说明 在本次项目中,我们使用QT开发框架,高德地图Web服务地图API,完成一个项目Demo,进行一次对QT.对编程的学习. 本系类文章所包含内容包括: 1.QT组件提升 2.QT鼠标事件处理 3.Q ...
- 粤嵌gec6818LED屏幕上画图 太极图 图片显示 电子相册 2048小游戏 实现识别触摸坐标的识别 电子自助点餐设计等项目
交叉开发 在一个有编辑/编译功能的PC机上进行编辑/编译,生成的可执行文件通过 交叉开发工具下载到目标机(GEC-6818) 开发板 --- Linux内核 --- ...
- 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛图片显示软件发布及线上赛注意事项
简 介: 本文对于第十六届全国大学生智能车竞赛视觉AI组线上比赛的识别任务软件以及相关比赛流程注意事项进行总结. 关键词: 智能车竞赛,视觉AI组 §01 积分分值 根据 第十六届全国大学生智能车 ...
- Android下Opengl ES实现单屏幕双眼显示
http://blog.csdn.net/u011371324/article/details/68946779 默认情况下,Opengl ES使用系统提供的帧缓冲区作为绘图表面,一般情况下,如果只在 ...
- 如何提高网页中图片显示的用户体验(附源码下载)
文章中加入适量的图片不仅可以更好的说明和补充文章的内容,而且还可以极大的减缓阅读者在阅读较长篇幅文章时的疲劳和不安.所以图文混排较好的文章能给阅读者更好的用户体验和享受.但是令人遗憾的是很多的网页图片 ...
最新文章
- SAP SD基础知识之信用控制范围
- 7张图了解2018物联网产业发展新趋势
- UICollectionView的使用
- Maximum Allowed Error 7 错误解决
- java 乐观锁 实例_JAVA乐观锁实现-CAS(示例代码)
- ffmpeg 视频转ts切片 生成m3u8视频播放列表
- 3 年 Java 应该具备的技能体系
- 什么是初效过滤器_初效过滤器怎么样 初效过滤器特点介绍【详解】
- React开发(216):ant dedign 弹窗销毁后再打开,原来的值仍存在,如何销毁弹窗内容?
- Linux eBPF:bcc 用法和原理初探之 kprobes 注入
- 阿里云ECS服务器CentOS7上用户管理操作
- arcgis构建金字塔失败什么原因_天猫入驻为什么失败?知舟集团给出失败原因和解决办法...
- EasyUI Easyloader 加载器
- ftp服务器、文件夹中带点文件删除方法
- 计算机原理考研题库,东北大学计算机组成原理题库(9)
- VirtualBox安装Windows XP图文教程
- 哪个大佬有c#三层架构写的餐饮管理系统源代码
- pixhawk源码下载与编译
- CentOS 7.2设置中英文环境
- SpringBoot热部署--bunny0728