非BMP TIF格式图片上传 屏幕显示该图片
2012-04-26 17:17
489 查看
总所周知,SE78可以用来上传BMP 和TIF格式的图片,但是SAP能不能上传GIF JPG等其他格式的图片呢?
答案是肯定的,通过TCODE: OAER,在选择屏幕上填入要该图片的相关属性 CLASS NAME, CLASS TYPE, OBJECT KEY,完了之后直接F8
这就创建了一个分组,以后可以在该分组下上传图片了,双击左下角子屏幕中的Create对应tab中的screen,然后弹出一个对话框,让你选择要上传的本地的图片文件路径,支持任何格式。
那么如何通过代码显示这些图片呢?
原理和显示SE78图片差不了很多。且看实例:
屏幕流:
PROCESS BEFORE OUTPUT.
MODULE STATUS_9100.
*
PROCESS AFTER INPUT.
MODULE exit_prog.
MODULE USER_COMMAND_9100.
主程序代码:
DATA: ok_code TYPE sy-ucomm.
START-OF-SELECTION.
CALL SCREEN 9100.
*&---------------------------------------------------------------------*
*& Module EXIT_PROG INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE exit_prog INPUT.
LE***E PROGRAM.
ENDMODULE. " EXIT_PROG INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9100 INPUT.
ENDMODULE. " USER_COMMAND_9100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_9100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_9100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
TYPES: pict_line(256) TYPE c,
ty_uri_tab TYPE STANDARD TABLE OF bapiuri.
DATA: container TYPE REF TO cl_gui_custom_container,
picture TYPE REF TO cl_gui_picture,
lt_uris TYPE ty_uri_tab,
lw_uri TYPE bapiuri,
url TYPE bds_uri.
CALL METHOD cl_gui_cfw=>flush.
CREATE OBJECT container
EXPORTING
container_name = 'PICTURE_CONTAINER'.
CREATE OBJECT picture
EXPORTING
parent = container.
CALL FUNCTION 'BDS_BUSINESSDOCUMENT_GET_URL'
EXPORTING
classname = 'PICTURES'
classtype = 'OT'
object_key = 'EATING'
TABLES
uris = lt_uris.
LOOP AT lt_uris INTO lw_uri.
SEARCH lw_uri FOR 'CHIFAN.GIF'.
IF sy-subrc = 0.
url = lw_uri-uri.
ENDIF.
ENDLOOP.
CALL METHOD picture->load_picture_from_url
EXPORTING
url = url.
CALL METHOD picture->set_display_mode
EXPORTING
display_mode = picture->display_mode_normal_center.
ENDMODULE. " STATUS_9100 OUTPUT
答案是肯定的,通过TCODE: OAER,在选择屏幕上填入要该图片的相关属性 CLASS NAME, CLASS TYPE, OBJECT KEY,完了之后直接F8
这就创建了一个分组,以后可以在该分组下上传图片了,双击左下角子屏幕中的Create对应tab中的screen,然后弹出一个对话框,让你选择要上传的本地的图片文件路径,支持任何格式。
那么如何通过代码显示这些图片呢?
原理和显示SE78图片差不了很多。且看实例:
屏幕流:
PROCESS BEFORE OUTPUT.
MODULE STATUS_9100.
*
PROCESS AFTER INPUT.
MODULE exit_prog.
MODULE USER_COMMAND_9100.
主程序代码:
DATA: ok_code TYPE sy-ucomm.
START-OF-SELECTION.
CALL SCREEN 9100.
*&---------------------------------------------------------------------*
*& Module EXIT_PROG INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE exit_prog INPUT.
LE***E PROGRAM.
ENDMODULE. " EXIT_PROG INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9100 INPUT.
ENDMODULE. " USER_COMMAND_9100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_9100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_9100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
TYPES: pict_line(256) TYPE c,
ty_uri_tab TYPE STANDARD TABLE OF bapiuri.
DATA: container TYPE REF TO cl_gui_custom_container,
picture TYPE REF TO cl_gui_picture,
lt_uris TYPE ty_uri_tab,
lw_uri TYPE bapiuri,
url TYPE bds_uri.
CALL METHOD cl_gui_cfw=>flush.
CREATE OBJECT container
EXPORTING
container_name = 'PICTURE_CONTAINER'.
CREATE OBJECT picture
EXPORTING
parent = container.
CALL FUNCTION 'BDS_BUSINESSDOCUMENT_GET_URL'
EXPORTING
classname = 'PICTURES'
classtype = 'OT'
object_key = 'EATING'
TABLES
uris = lt_uris.
LOOP AT lt_uris INTO lw_uri.
SEARCH lw_uri FOR 'CHIFAN.GIF'.
IF sy-subrc = 0.
url = lw_uri-uri.
ENDIF.
ENDLOOP.
CALL METHOD picture->load_picture_from_url
EXPORTING
url = url.
CALL METHOD picture->set_display_mode
EXPORTING
display_mode = picture->display_mode_normal_center.
ENDMODULE. " STATUS_9100 OUTPUT
相关文章推荐
- 在VC6中基于dll开发插件用于各种图片显示(BMP/TGA/JPG/GIF/PNG/TIF/ICO/WMF/EMF/...)
- VC2005中将Picture控件显示图片保存为BMP,JPG等格式
- app store上传图片显示错误:未能创建 屏幕快照
- tif 等任意多帧图片转换bmp 或者gif等格式
- Silverlight中显示bmp等其他格式图片
- VC++图片控件(Picture Control)显示资源位图(BMP)、文件位图(BMP)、其它格式文件图片(JPG\PNG\BMP)的方法
- VC将BMP图片显示在屏幕上(用图片作背景)
- JAVA 实现jpg/tif/bmp 等图片格式互相转换,解决RenderedOp资源不能释放
- BMP图片的数据存储格式说明及显示数据的转换
- BMP图片格式解析并显示示例程序
- JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换
- app store上传图片显示错误:未能创建 屏幕快照
- app store上传图片显示错误:未能创建 屏幕快照
- C++中使用CAtlHttpClient显示网络图片的方法,支持png,bmp,gif图片格式
- VC 显示jpg,gif,bmp等格式图片
- flex image 控件显示bmp 格式图片
- 在VC6中基于dll开发插件用于各种图片显示(BMP/TGA/JPG/GIF/PNG/TIF/ICO/WMF/EMF/...)
- C++中使用CAtlHttpClient显示网络图片的方法,支持png,bmp,gif图片格式
- input标签type="file"的格式要求,以及文件阅读,图片上传前的显示
- 解决eWebEditor上传图片提示:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!