ABAP 图片预览
2015-06-19 16:34
316 查看
在SMARTFORMS中需要打印的时候如果需要打印图片的话一般需要手动上传图片到服务器上,如果批量上传以后想预览的话系统没有提供标准的批量预览的功能,只能在SE78中一个个预览。下面介绍的也是一个个预览的,考虑在列表中双击的时候展示出来。
在屏幕 9000上创建容器 GL_IMAGE 并处理相应的PAI和PBO事件,在PBO事件中增加一个MODULE,在其中添加如下代码:
DATA: w_lines TYPE i.
TYPES pict_line(256) TYPE c.
DATA :
container TYPE REF TOcl_gui_custom_container,
editor TYPE REF TO cl_gui_textedit,
picture TYPE REF TO cl_gui_picture,
pict_tab TYPE TABLE OF pict_line,
url(255) TYPE c.
DATA: graphic_url(255).
DATA: BEGIN OF graphic_table OCCURS0,
line(255) TYPE x,
END OF graphic_table.
DATA: l_graphic_conv TYPE i.
DATA: l_graphic_offs TYPE i.
DATA: graphic_size TYPE i.
DATA: l_graphic_xstr TYPE xstring.
.
"刷新
CALL METHOD cl_gui_cfw=>flush.
"创建容器
CREATE OBJECT:container EXPORTINGcontainer_name = 'GL_IMAGE',
picture EXPORTING parent =container.
"获取图片
CALL METHODcl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
EXPORTING
p_object ='GRAPHICS'
p_name = 'ZUS_LOGO'
p_id = 'BMAP'
p_btype = 'BCOL'
RECEIVING
p_bmp = l_graphic_xstr
.
"图片大小
graphic_size = XSTRLEN( l_graphic_xstr).
l_graphic_conv = graphic_size.
l_graphic_offs = 0.
"将图片数据放到内表中
WHILE l_graphic_conv > 255.
graphic_table-line =l_graphic_xstr+l_graphic_offs(255).
APPENDgraphic_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.
"创建图片的URL
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = 'X-UNKNOWN'
size = graphic_size
lifetime = 'T'
TABLES
data = graphic_table
CHANGING
url =url.
"根据URL 展示图片
CALL METHODpicture->load_picture_from_url
EXPORTING
url =url.
"显示模式 居中自适应
CALL METHODpicture->set_display_mode
EXPORTING
display_mode = picture->display_mode_fit_center.
在屏幕 9000上创建容器 GL_IMAGE 并处理相应的PAI和PBO事件,在PBO事件中增加一个MODULE,在其中添加如下代码:
DATA: w_lines TYPE i.
TYPES pict_line(256) TYPE c.
DATA :
container TYPE REF TOcl_gui_custom_container,
editor TYPE REF TO cl_gui_textedit,
picture TYPE REF TO cl_gui_picture,
pict_tab TYPE TABLE OF pict_line,
url(255) TYPE c.
DATA: graphic_url(255).
DATA: BEGIN OF graphic_table OCCURS0,
line(255) TYPE x,
END OF graphic_table.
DATA: l_graphic_conv TYPE i.
DATA: l_graphic_offs TYPE i.
DATA: graphic_size TYPE i.
DATA: l_graphic_xstr TYPE xstring.
.
"刷新
CALL METHOD cl_gui_cfw=>flush.
"创建容器
CREATE OBJECT:container EXPORTINGcontainer_name = 'GL_IMAGE',
picture EXPORTING parent =container.
"获取图片
CALL METHODcl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
EXPORTING
p_object ='GRAPHICS'
p_name = 'ZUS_LOGO'
p_id = 'BMAP'
p_btype = 'BCOL'
RECEIVING
p_bmp = l_graphic_xstr
.
"图片大小
graphic_size = XSTRLEN( l_graphic_xstr).
l_graphic_conv = graphic_size.
l_graphic_offs = 0.
"将图片数据放到内表中
WHILE l_graphic_conv > 255.
graphic_table-line =l_graphic_xstr+l_graphic_offs(255).
APPENDgraphic_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.
"创建图片的URL
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = 'X-UNKNOWN'
size = graphic_size
lifetime = 'T'
TABLES
data = graphic_table
CHANGING
url =url.
"根据URL 展示图片
CALL METHODpicture->load_picture_from_url
EXPORTING
url =url.
"显示模式 居中自适应
CALL METHODpicture->set_display_mode
EXPORTING
display_mode = picture->display_mode_fit_center.
相关文章推荐
- 新建的基本短信类
- CNN训练Cifar-10技巧
- Linux 安装MySQL5.5 及 双机热备配置
- mysql性能优化-慢查询分析、优化索引和配置
- Android图片上传(头像裁切+原图原样)
- Eclipse快捷键
- 使用DreamWeaverCS6创建jQueryMobile移动站点
- 写一个下载播放网络Gif的框架一:设计
- 很炫的Button效果
- Git 分布式版本控制系统(二) ---简单命令
- 适配器的创建
- Swift语言IOS8开发战记27 Sketch初探
- 委托重载和使用
- IOS-TextField知多少
- 云智慧发布电商618网站性能监测报告
- 堆的基本操作
- java向上转型和向下转型
- Linux如何查看服务器的并发数?
- 宏"__FUNCTION__" 和" __LINE__ "
- android sqlite 一次建立好几张表