【SAP ABAP学习资料】屏幕图片预览

链接: 【SAP ABAP学习资料】图片上传SAP
链接: 【SAP ABAP学习资料】smartforms打印图片,动态打印图片

图片屏幕显示预览

图片需要上传,SAP支持bmp格式图片打印
1,首先创建一个屏幕,拖入一个自定义控键
在这里插入图片描述
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.
  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    = '900102002051' "图片名称(SE78中维护)
      P_ID      = 'BMAP'
      P_BTYPE   = 'BCOL'  "(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 = 'P_9001'.  "“定制控制”控件名称
  "创建图片实例
  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.

运行效果,图片大小不会自适应屏幕
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值