2,724
社区成员
发帖
与我相关
我的任务
分享
报表打印图片(非通用字段)
*-------------------------------
方法一:
在报表中建立一个显示图片的控件
如果是VFP6,在报表控件中选择“图片/ActiveX 绑定控件”
如果是VFP9,点击“报表(英文版为Report)”菜单中,指向“插入控件(Insert Control)”,然后点击“图片/ActiveX 绑定控件(Picture/OLE Bound Control)”,
这时“图片/ActiveX 绑定控件(Picture/OLE Bound Control)”属性对话框打开了,
选择“常规(General)”选项卡,
在“控件源(Control source type)区”有三个选项,
如果是VFP9,选择最后一种,即“表达式或变量名(xpression OR variable name)”
并在下面的“控件源(Control source)”处输入:
(如果是VFP6,选择第一种,即“文件”并在“文件”后面输入)
表名.存放图片路径的字段名
此方法要保证字段名中所指向的图片必须存在,否则就报错
方法二:
如果有可能有些文件路径存放错误或文件不存在或有空记录,就用如下方法:
1、报表设置(假设报表名为reportpho1.FRX)
在报表中建立一个显示图片的控件
如果是VFP6,在报表控件中选择“图片/ActiveX 绑定控件”
如果是VFP9,点击“报表(英文版为Report)”菜单中,指向“插入控件(Insert Control)”,然后点击“图片/ActiveX 绑定控件(Picture/OLE Bound Control)”,
这时“图片/ActiveX 绑定控件(Picture/OLE Bound Control)”属性对话框打开了,
选择“常规(General)”选项卡,
在“控件源(Control source type)区”有三个选项,
如果是VFP9,选择最后一种,即“表达式或变量名(xpression OR variable name)”
并在下面的“控件源(Control source)”处输入:LcFileName(RECNO())
如果是VFP6,选择第一种,即“文件”
并在“文件”后面输入:LcFileName(RECNO())
2、用画图建一个空白的图片,
大小与你其它图片差不多就可以,
我建的为NullPho.bmp
并把此文件放在当前目录下。
3、打印按钮的CLICK事件:
*假设你的表名T1,存放图片路径的字段名为PhoPath
IF !USED('T1')
USE T1
ELSE
SELECT T1
ENDIF
PUBLIC lcfilename(RECCOUNT())
SCAN
IF FILE(ALLTRIM(T1.PhoPath))
lcfilename(RECNO())=ALLTRIM(T1.PhoPath)
ELSE
lcfilename(RECNO())='NullPho.bmp'
ENDIF
ENDSCAN
GO TOP
REPORT FORM reportpho1 PREVIEW