SAP smartforms打印图片

注意:SAP只能上传打印bmp格式图片

1.标准程序上传 T-CODE:SE78

 

 

2.程序代码上传

DATA: P_FILENAME   TYPE RLGRAP-FILENAME,
      P_NAME       TYPE STXBITMAPS-TDNAME,
      P_TITLE      LIKE BAPISIGNAT-PROP_VALUE,
      P_DOCID      TYPE STXBITMAPS-DOCID,
      P_RESOLUTION TYPE STXBITMAPS-RESOLUTION.

"上传bmp图片
      CLEAR:P_FILENAME,P_NAME,P_DOCID,P_RESOLUTION.
      P_FILENAME = '文件路径'.
      P_NAME = '图片名称'.
      P_TITLE = '描述'.
*    P_DOCID = 'BDS_LOC3  000C29F3DDEB1EEA9ECA85BE49A81BB0'.
*    REPLACE ALL OCCURRENCES OF '.BMP' IN P_FILENAME WITH '.bmp'.
      PERFORM IMPORT_BITMAP_BDS IN PROGRAM SAPLSTXBITMAPS
      USING P_FILENAME                   "文件路径
            P_NAME "p_name            "名字
            'GRAPHICS'"p_object          "对象 固定为 GRAPHIC
            'BMAP'"p_id                  "ID 固定为 BMAP
            'BCOL'"'BMON'"p_btype        "颜色模式 BMON黑白  BCOL彩色
            'BMP'"p_format               "BMP 格式
            P_TITLE"description    "描述
            ''"p_resident               "依照打印请求驻留在打印机内存中 X 驻留
            'X'"p_autoheight              "自动高度
            ''"p_bmcomp                 "是否压缩
      CHANGING  P_DOCID                      "文档ID
             P_RESOLUTION .                "分辨率

 

图片屏幕显示预览

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.

 运行效果,图片大小不会自适应屏幕

smartforms打印图片,动态图片

1.新建图形,右键-创建-图形

2.填写图片参数信息 (图片必须上传SAP,只支持bmp格式图片) 

 

3.打印效果预览

 

动态打印

1.声明一个全局变量,赋值给图形名称

 

 

2.创建程序行,在程序行通过代码动态赋值图形名称

 

 

3.这里赋值图片名称和上面是同一个,显示效果是一样的,这里可以根据输入参数不同显示不同的图片 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值