注意:SAP只能上传打印bmp格式图片
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.这里赋值图片名称和上面是同一个,显示效果是一样的,这里可以根据输入参数不同显示不同的图片