vf9使用BLOB类型字段.doc_第1页
vf9使用BLOB类型字段.doc_第2页
vf9使用BLOB类型字段.doc_第3页
vf9使用BLOB类型字段.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用 BLOB 类型字段 转自/dkfdtf/article/details/2888845vfp9 中增加了 blob 型字段,这可是个好东西!用它来存储图像数据最合适,与 SQL 的交换也很顺利,接下来就是使用它了。使用它当然无外乎是显示/打印图像;显示很简单,表单上放一个 Image 控件,然后将 Image.PictureVal 赋值为这个 blob 字段即可;然而如何打印却费了我一番周折,在梅子上看到有人说先用 StrToFile 保存为图像文件,然后再用于报表,当然也行;不过,难道就不能直接使用吗?当时确实没有找到好办法,一段时间后,终于在 Green1Vfp找到了解决方案,唯一的问题是,需要使用 vfp9 的报表监听器,而 vfp9 的对象辅助报表对中文的支持仍存在一些问题,所以我一直没有 SET REPORTBEHAVIOR 90;那么在 SET REPORTBEHAVIOR 80 下是否也能直接打印 blob 中的图像呢?要解决的问题是:1. 不使用 blob 还原成文件的方法来打印 blob 字段(针对图片)内容2. 不使用 vfp9 特有的对象辅助报表方式来打印(主要是不想使用报表监听器对象)经过 20 分钟的探索,终于找到了方法,下面是验证的过程:1. 先按下图建一个名为 Test 的报表:前面三个是字段控件,第 4 个是一个 Picture/Ole Bound 控件,注意按次序添加,至少要在之前加入,因为我们需要在打印之前先由来改变它绑定的图像数据。如果是修改已存在的报表,则应该先将 4 剪切掉,然后再粘贴回来;当然你也可以用布局工具中的 Bring to Front 将放到最前端(也就最后显示/打印)。2. 接下来设置它们的数据源,前两个没什么好说的,按下图设置即可(只有划红线的地方需要修改,其它用缺省值即可,下同)第一个绑定到 t1.fname 字段上,第二个绑到 t1.lname 上(这个咱就不放图片了,节约每一字节空间)3. 接着是第三个字段控件,其实它并不用于打印,只是用它来改变 Pic/Ole Bound 所绑定的图片数据而已,所以需要将它的 Print When 设为 .F.4. 最后加入最重要的图片控件:好了,报表设计完毕!保存为 test.frx5. 现在写验证代码:1. m.cPath=HOME()+Samples/Tastrade/ 2.3. SELECTCAST(ALLTRIM(First_Name)ASV(10)ASfname,;4. CAST(ALLTRIM(Last_Name)ASV(10)ASlname,;5. CAST(FILETOSTR(m.cPath+Photo_File)ASBlob)ASpic;6. FROM(m.cPath+data/Employee.dbf); 7. INTOCURSORt18. USEIN(SELECT(Employee) 9.10. PUBLICgoPicASImage11. m.goPic=NEWOBJECT(Image) 12.13. REPORTFORM(LOCFILE(test,frx)PREVIEW 14.15. FUNCTION_GetPic16. m.goPic.pictureval=t1.pic17. ENDFUNC18.将上面的代码保存为 prg,运行它,我看到如下结果,你呢?利用打印条件,我改进了一下,可以不用第3个字段: * *报表打印Blob图片用,/dkfdtf/archive/2008/09/05/2888845.aspx *lwImageField为传入Blob字段,调用方法如下: *报表图片控件中设好控件源变量为goImage *报表打印条件中执行:_GetImage(t1.pic) ,t1.pic为存储图片的Blob字段名. *下两句可在打印按钮的Init中定义: *!* PUBLIC goImage AS Image *!* m.goImage = NEWOBJECT( Image ) *!* REPORT FORM ( LOCFILE( test, frx ) ) PREVIEW * FUNCTION _GetImage(lwImageField

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论