
公告 |
四川理工学院信息管理与信息系统专业学生,男,83年5月生。
职业:自由开发者
为人座右铭:做人要厚道
QQ:61951565
VFP群:4001858(已满员),17966472
E-mail:lugreen@163.com
QQ空间:Greeeeeeeeeeeeeen
本博客文章未经作者同意不得转载 |
Blog信息 |
blog名称:Green1Vfp 原创空间 日志总数:35 评论数量:101 留言数量:3 访问次数:443378 建立时间:2004年12月7日 |

| |
[报表设计]VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
Green1 发表于 2005/4/8 15:13:49 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
VFP9中显示存储在blob型字段中的图片
VFP群:4001858
摘要
在vfp9中我们可以使用BLOB型字段存储任何类型的数据,包括ASCII文本,可执行文件(.exe),或字符串,而且对这些数据没有长度限制,当然,不能大于表容量。
存储在BLOB字段中的图片以在报表或表单上打印。
你可以通过使用Picture/OLE Bound控件来打印存储在BLOB字段中图片。这时你必须设置picture/ole bound控件的control source为一个image对象的引用,这个IMAGE对象的pictureval属性要设置为存储图片的blob型字段。
你也可以在表单上显示存储在blob型字段中的图片。这时你只需要将image控件放到表单上并设置image控件的pictureval属性为一个存储图片的blob型字段。
详细说明
在报表上显示图片
第一步 用报表设计器照下图设计一个报表
500)this.width=500'>
图1
其中姓氏,名子域控件的属性设置见图2,图3
500)this.width=500'>
图2
500)this.width=500'>
图3
注意,表达式编辑框中的 reporttemp表是一个临时表。
Picture ole/bound控件的属性设置如下图
500)this.width=500'>
图4
所有的设置完成后以文件名 blobpict.frx保存报表。
第二步 用代码定义一个报表监听器类。代码如下:
Local locdatadir As String&&数据路径
Local lcdir As String
lcdir=Addbs(Justpath(Sys(16)))
Cd (lcdir)
**创建一个IMAGE控件的实例并这个实例的pictureval属性设置为一个blob字段
orl=Newobject("previewlistener")&&创建一个报表监听器实例
orl.minitimg("reporttemp.图片")&&初始化image控件
lcdataDIR=Home()+'Samples\Tastrade\'
**生成临时表***
Select Cast( Alltrim( First_Name ) As Varchar ( 10 ) ) As '名子', ;
CAST( Alltrim( Last_Name ) As Varchar (10 ) ) As '姓氏', ;
CAST( Filetostr( lcdataDIR + Photo_File ) As Blob ) As '图片' ;
FROM ( lcdataDIR + 'data\Employee.dbf' ) ;
INTO Cursor ReportTemp
Select ReportTemp
**运行报表blobpict.frx
Report Form blobpict.frx Object orl
**定义报表监听器类**
Define Class previewlistener As ReportListener
loima=Null&&自定义属性
lcfil=""&&自定义属性
ListenerType=1
Procedure minitimg(lcfil1 As String)
This.loima=Newobject("image")
This.lcfil=lcfil1
This.loima.PictureVal=This.lcfil
Endproc
**为了确保picture ole/bound控件能随时记录的改变正确显示图片,应在报表监听器的beforeband事件中添加
**如下代码
Procedure BeforeBand(nBandObjCode, nFRXRecNo)
If nBandObjCode = 4 && Detail band
This.loima.PictureVal = Evaluate(This.lcfil)&&为image控件实例设置数据源
Endif
Endproc
Enddefine
好了,将上页的代码拷贝到一个程序文件中,运行。
效果如下图
500)this.width=500'>
说明:
要在报表中打印blob型字段中的图片,关键是将picture ole/bound控件的control source 属性设置为对image控件的引用。这个image控件的pictureval属性须设置为一个存储图片的blob型字段。在本例中control source属性为orl.loima,orl为对报表监听器的引用。loima是这个报表监听器的一个自定义属性,其值对一个对image控件的引用。 |
|
回复:VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
link(游客)发表评论于2008/11/2 15:47:19 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
to printer 子句时,图片位置空白.就是说不能打印呀? |
|
回复:VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
kaimi1(游客)发表评论于2008/11/2 15:45:40 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
|
回复:VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
china666(游客)发表评论于2008/10/12 11:12:41 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
如何让它不预览而直接打印呢? to printer 不好使不知什么原因 |
|
回复:VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
DVD(游客)发表评论于2006/3/29 14:13:49 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
怎样实现用VFP BLOB型字段转存至SQL数据库中 |
|
回复:VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
游客(游客)发表评论于2005/12/1 11:34:17 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
怎么在vfp6中显示图片啊?
以下为blog主人的回复:
vfp6不支持blob字段类型,不能使用此方法 |
|
回复:VFP9中显示存储在blob型字段中的图片 原创空间, 软件技术
吴家飞(游客)发表评论于2005/11/24 8:22:28 VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入 |
谁能帮我查一下``钢铁是怎样炼成的资料``我是个中学生!我上课要用``谢谢你们了```!! |
|
» 1 »
|