本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接

我的博客

Blog信息
blog名称:fermos_blog
日志总数:73
评论数量:261
留言数量:30
访问次数:396566
建立时间:2005年3月27日




VFP9中显示存储在blob型字段中的图片
网上资源

fermos的博客 发表于 2005/7/1 19:25:35

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'>500)this.width=500" border=0> 图1 其中姓氏,名子域控件的属性设置见图2,图3 500)this.width=500'>500)this.width=500" border=0> 图2 500)this.width=500'>500)this.width=500" border=0> 图3 注意,表达式编辑框中的 reporttemp表是一个临时表。 Picture ole/bound控件的属性设置如下图   500)this.width=500'>500)this.width=500" border=0> 图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'>500)this.width=500" border=0>   说明: 要在报表中打印blob型字段中的图片,关键是将picture ole/bound控件的control source 属性设置为对image控件的引用。这个image控件的pictureval属性须设置为一个存储图片的blob型字段。在本例中control source属性为orl.loima,orl为对报表监听器的引用。loima是这个报表监听器的一个自定义属性,其值对一个对image控件的引用。


阅读全文(3872) | 回复(1) | 编辑 | 精华
 


回复:VFP9中显示存储在blob型字段中的图片
网上资源

KWG(游客)发表评论于2009/1/7 20:15:45

太好了,不过其它字段的中文好像不能显示出来了,英文和数字就行,郁闷哈


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144761577 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号