ABAP 在屏幕上显示图片

Posted 明大叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP 在屏幕上显示图片相关的知识,希望对你有一定的参考价值。

1.se78 上传 或 预览图片

  图片预览

2.程序代码

定义各变量

DATA: H_PICTURE        TYPE REF TO CL_GUI_PICTURE,
      H_PIC_CONTAINER  TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

DATA: GRAPHIC_URL(255) TYPE C,
      GRAPHIC_REFRESH  TYPE CHAR1,
      G_RESULT         TYPE I.

DATA: BEGIN OF GRAPHIC_TABLE OCCURS 0,
        LINE(255)  TYPE X,
      END OF GRAPHIC_TABLE.

DATA: GRAPHIC_SIZE TYPE I.

CONSTANTS: CNTL_TRUE  TYPE I VALUE 1,
           CNTL_FALSE TYPE I VALUE 0.

pbo

 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_BMP
    EXPORTING
      P_OBJECT  = \'GRAPHICS\'
      P_NAME    = \'ENJOY\' "图片名称(SE78中维护)
      P_ID      = \'BMAP\'
      P_BTYPE   = BMON  "(BMON = black&white, BCOL = colour)
    RECEIVING
      P_BMP     = L_GRAPHIC_XSTR
    EXCEPTIONS
      NOT_FOUND = 1
      OTHERS    = 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\'
    EXPORTING
      TYPE                 = \'image\'               "#EC NOTEXT
      SUBTYPE              = CNDP_SAP_TAB_UNKNOWN " \'X-UNKNOWN\'
      SIZE                 = GRAPHIC_SIZE
      LIFETIME             = CNDP_LIFETIME_TRANSACTION  "\'T\'
    TABLES
      DATA                 = GRAPHIC_TABLE
    CHANGING
      URL                  = GRAPHIC_URL
    EXCEPTIONS
      DP_INVALID_PARAMETER = 1
      DP_ERROR_PUT_TABLE   = 2
      DP_ERROR_GENERAL     = 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.

   "创建图片容器
   CREATE OBJECT H_PIC_CONTAINER
           EXPORTING CONTAINER_NAME =  \'CC_PIC\'.  "“定制控制”控件名称
  "创建图片实例
   CREATE OBJECT H_PICTURE
           EXPORTING PARENT = H_PIC_CONTAINER.
    "显示图片
   CALL METHOD H_PICTURE->LOAD_PICTURE_FROM_URL
     EXPORTING
       URL    = GRAPHIC_URL
     IMPORTING
       RESULT = G_RESULT.
 
 
 
------------------------------------------------------------------------------------------------------------------------------------------------------------
励志美文、《抉择》
  
人的一生常处于抉择之中,如:念哪一间大学?选哪一种职业?娶哪一种女子?……等等伤脑筋的事情。一个人抉择力的有无,可以显示其人格成熟与否。
  
倒是哪些胸无主见的人,不受抉择之苦。因为逢到需要决定的时候,他总是求询别人说:"嘿,你看怎么做?"
  
大凡能够成大功业的人,都是抉择力甚强的人。他知道事之成败,全在乎已没有人可以代劳,更没有人能代你决定。
  
在抉择的哪一刻,成败实已露出端倪。

以上是关于ABAP 在屏幕上显示图片的主要内容,如果未能解决你的问题,请参考以下文章

ABAP 交货单屏幕增强 增加自建表

ABAP 交货单屏幕增强 增加自建表

ABAP 交货单屏幕增强 增加自建表

SAP中使用ALV显示,不知道怎么做? 有木有网友说说看abap能不能达到这两种效果,要是可以的话 发代码吧!

片段布局不覆盖整个屏幕

ABAP/4如何将数据输出到屏幕