二维码

abap中实现在屏幕上显示图片

Twilight发表于 2015-01-08 17:54LeoX 最后回复于 2015-07-01 08:36 [复制链接] 7687 3

1、SE78上传图片到服务器,图片只能是bmp格式的
se78 1.jpg
点击预览,查看是否上传成功
se78 2.jpg
这里我们将图片对象命名为sapclub

2、新建程序
  1. REPORT  ydamon_103.

  2. CALL SCREEN 9000.
  3. *&---------------------------------------------------------------------*
  4. *&      Module  status_9000  OUTPUT
  5. *&---------------------------------------------------------------------*
  6. *       text
  7. *----------------------------------------------------------------------*
  8. MODULE status_9000 OUTPUT.
  9.   DATA: w_lines TYPE i.
  10.   TYPES pict_line(256) TYPE c.
  11.   DATA :
  12.   container TYPE REF TO cl_gui_custom_container,
  13.   editor TYPE REF TO cl_gui_textedit,
  14.   picture TYPE REF TO cl_gui_picture,
  15.   pict_tab TYPE TABLE OF pict_line,
  16.   url(255) TYPE c.
  17.   DATA: graphic_url(255).
  18.   DATA: BEGIN OF graphic_table OCCURS 0,
  19.           line(255) TYPE x,
  20.         END OF graphic_table.
  21.   DATA: l_graphic_conv TYPE i.
  22.   DATA: l_graphic_offs TYPE i.
  23.   DATA: graphic_size TYPE i.
  24.   DATA: l_graphic_xstr TYPE xstring.
  25.   .
  26.   CALL METHOD cl_gui_cfw=>flush.
  27.   CREATE OBJECT:
  28.   container EXPORTING container_name = 'PICTURE_CONTAINER',
  29.   picture EXPORTING parent = container.
  30.   CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
  31.     EXPORTING
  32.       p_object       = 'GRAPHICS'
  33.       p_name         = 'SAPCLUB'           "这里是我们se78上传图片的命名名称
  34.       p_id           = 'BMAP'
  35.       p_btype        = 'BCOL'
  36.     RECEIVING
  37.       p_bmp          = l_graphic_xstr
  38. *  EXCEPTIONS
  39. *    NOT_FOUND      = 1
  40. *    INTERNAL_ERROR = 2
  41. *    others         = 3
  42.           .
  43.   IF sy-subrc <> 0.
  44. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  45. *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  46.   ENDIF.
  47.   graphic_size = XSTRLEN( l_graphic_xstr ).
  48.   l_graphic_conv = graphic_size.
  49.   l_graphic_offs = 0.
  50.   WHILE l_graphic_conv > 255.
  51.     graphic_table-line = l_graphic_xstr+l_graphic_offs(255).
  52.     APPEND graphic_table.
  53.     l_graphic_offs = l_graphic_offs + 255.
  54.     l_graphic_conv = l_graphic_conv - 255.
  55.   ENDWHILE.
  56.   graphic_table-line = l_graphic_xstr+l_graphic_offs(l_graphic_conv).
  57.   APPEND graphic_table.
  58.   CALL FUNCTION 'DP_CREATE_URL'
  59.     EXPORTING
  60.       type     = 'IMAGE'
  61.       subtype  = 'X-UNKNOWN'
  62.       size     = graphic_size
  63.       lifetime = 'T'
  64.     TABLES
  65.       data     = graphic_table
  66.     CHANGING
  67.       url      = url.
  68.   CALL METHOD picture->load_picture_from_url
  69.     EXPORTING
  70.       url = url.
  71.   CALL METHOD picture->set_display_mode
  72.     EXPORTING
  73.       display_mode = picture->display_mode_fit_center.
  74. ENDMODULE.                 " status_9000  OUTPUT
复制代码

3、新建标准屏幕9000
se78 3.jpg
绘制customer container,并命名PICTURE_CONTAINER

4、执行程序,查看结果
se78 4.jpg
回复

使用道具 举报

LeoX
这个上传的图片白底会变灰底的,不知道怎么解决。
回复 支持 反对

使用道具 举报

Twilight
LeoX 发表于 2015-6-29 18:05
这个上传的图片白底会变灰底的,不知道怎么解决。

SAP支持彩色,但不是全真色,会有些失真
回复 支持 反对

使用道具 举报

LeoX
leon 发表于 2015-6-29 18:53
SAP支持彩色,但不是全真色,会有些失真

捕获.JPG
我用XnView把它的颜色数降低了,就可以了,还是有一点点底色,不影响,谢谢
1.JPG
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表