之前群里朋友问了个问题:

report选择屏幕上有个文件选项,我要选择图片,然后将图片在smartforms上打印出来"

Smartform 动态打印选择屏幕…_上传

 

好像不通过SE78是不行了。

 

想了想,只能是执行的时候,先将选中的本地图片通过se78传到服务器。然后再去调用smartform打印。

 

这里有个问题,如果上传的图片并不是固定的那几个,而且复用性不大。那么为了防止服务器上一堆垃圾图片数据。

上传的时候,可以考虑用一个固定的名称,把原来的覆盖掉,这样就不产生垃圾数据了。

 

本来想通过se78找到标准的FM上传图片的,发现没有,其实调用的是个form

Smartform 动态打印选择屏幕…_上传

 

可以自己调用

* PERFORM import_bitmap_bds IN PROGRAM saplstxbitmaps

* USING p_file "文件路径

* 'p_name' "p_name "名字

* 'GRAPHICS'"p_object "对象 固定为 GRAPHIC

* 'BMAP'"p_id "ID 固定为 BMAP

* 'BCOL'"'BMON'"p_btype "颜色模式 BMON黑白 BCOL彩色

* 'BMP'"p_format "BMP 格式

* 'DESCRIPTION'"description "描述

* ''"p_resident "依照打印请求驻留在打印机内存中 X 驻留

* ''"p_autoheight "自动高度

* 'X'"p_bmcomp "是否压缩

* CHANGING p_docid "文档ID

* p_resolution "分辨率

 

 

如果用的图片的固定的几个,想动态的去确定,

那直接用变量就行了:

1.创建要显示的图片 名称设置使用变量

Smartform 动态打印选择屏幕…_上传

2.创建程序行,对图片名称进行赋值

Smartform 动态打印选择屏幕…_上传

 

 

最后,感谢问问题的朋友,我好几年不写smartform了,忘得差不多了,不写完整的例子了,呵呵。

 

PS:

PERFORM import_bitmap_bds IN PROGRAM saplstxbitmaps

及后面参数的注释由群友lyn提供。

我没有去细研究那个,感谢下群友。