vf9 使用 blob 类型字段

vf9 使用 blob 类型字段

ID:33825450

大小:89.00 KB

页数:4页

时间:2019-03-01

vf9 使用 blob 类型字段_第1页
vf9 使用 blob 类型字段_第2页
vf9 使用 blob 类型字段_第3页
vf9 使用 blob 类型字段_第4页
资源描述:

《vf9 使用 blob 类型字段》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用BLOB类型字段转自http://blog.csdn.net/dkfdtf/article/details/2888845vfp9中增加了blob型字段,这可是个好东西!用它来存储图像数据最合适,与SQL的交换也很顺利,接下来就是使用它了。使用它当然无外乎是显示/打印图像;显示很简单,表单上放一个Image控件,然后将Image.PictureVal赋值为这个blob字段即可;然而如何打印却费了我一番周折,在梅子上看到有人说先用StrToFile保存为图像文件,然后再用于报表,当然也行;不过,难道就不能直接使用吗?当时确实没有找到好办法,一段时间后,终

2、于在Green1Vfp 找到了解决方案,唯一的问题是,需要使用vfp9的报表监听器,而vfp9的对象辅助报表对中文的支持仍存在一些问题,所以我一直没有SETREPORTBEHAVIOR90;那么在SETREPORTBEHAVIOR80下是否也能直接打印blob中的图像呢?要解决的问题是:1.不使用blob还原成文件的方法来打印blob字段(针对图片)内容2.不使用vfp9特有的对象辅助报表方式来打印(主要是不想使用报表监听器对象)经过20分钟的探索,终于找到了方法,下面是验证的过程:1.先按下图建一个名为Test的报表: 前面三个是字段控件,第4个是一个P

3、icture/OleBound控件,注意按次序添加,至少③要在④之前加入,因为我们需要在打印④之前先由③来改变它绑定的图像数据。如果是修改已存在的报表,则应该先将4剪切掉,然后再粘贴回来;当然你也可以用布局工具中的BringtoFront将④放到最前端(也就最后显示/打印)。2.接下来设置它们的数据源,前两个没什么好说的,按下图设置即可(只有划红线的地方需要修改,其它用缺省值即可,下同) 第一个绑定到t1.fname字段上,第二个绑到t1.lname上(这个咱就不放图片了,节约每一字节空间)3.接着是第三个字段控件,其实它并不用于打印,只是用它来改变Pic

4、/OleBound所绑定的图片数据而已,所以需要将它的PrintWhen设为.F.4.最后加入最重要的图片控件:好了,报表设计完毕!保存为test.frx5.现在写验证代码:1.m.cPath = HOME()+'Samples/Tastrade/'2.3.SELECT CAST( ALLTRIM( First_Name ) AS  V(10) ) AS fname, ;4.  CAST( ALLTRIM( Last_Name ) AS V(10) ) AS lname, ;5.  CAST( FILETOSTR( m.cPath + Photo_File

5、 ) AS Blob ) AS pic ;6.  FROM ( m.cPath + 'data/Employee.dbf' ) ;7.  INTO CURSOR t18.USE IN ( SELECT( 'Employee' ))9.10.PUBLIC goPic AS Image11.m.goPic = NEWOBJECT( 'Image' )12.13.REPORT FORM ( LOCFILE( 'test', 'frx' ) ) PREVIEW14.15.FUNCTION _GetPic16.  m.goPic.pictureval = t1.pi

6、c17.ENDFUNC18.将上面的代码保存为prg,运行它,我看到如下结果,你呢?利用打印条件,我改进了一下,可以不用第3个字段:*****************报表打印Blob图片用,http://blog.csdn.net/dkfdtf/archive/2008/09/05/2888845.aspx*lwImageField为传入Blob字段,调用方法如下:*报表"图片控件"中设好"控件源"变量为goImage*报表"打印条件"中执行:_GetImage(t1.pic),t1.pic为存储图片的Blob字段名.*下两句可在打印按钮的Init中定义:

7、*!*PUBLICgoImageASImage*!*m.goImage=NEWOBJECT('Image')*!*REPORTFORM(LOCFILE('test','frx'))PREVIEW*********************FUNCTION_GetImage(lwImageField)m.goImage.pictureval=lwImageFieldRETURN.T.&&这里是关键,要返回真,如果图片有条件打印,请AND一下.ENDFUNC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。