vf9使用BLOB類型字段.doc_第1頁
vf9使用BLOB類型字段.doc_第2頁
vf9使用BLOB類型字段.doc_第3頁
vf9使用BLOB類型字段.doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

使用 BLOB 類型字段 轉(zhuǎn)自/dkfdtf/article/details/2888845vfp9 中增加了 blob 型字段,這可是個好東西!用它來存儲圖像數(shù)據(jù)最合適,與 SQL 的交換也很順利,接下來就是使用它了。使用它當(dāng)然無外乎是顯示/打印圖像;顯示很簡單,表單上放一個 Image 控件,然后將 Image.PictureVal 賦值為這個 blob 字段即可;然而如何打印卻費(fèi)了我一番周折,在梅子上看到有人說先用 StrToFile 保存為圖像文件,然后再用于報(bào)表,當(dāng)然也行;不過,難道就不能直接使用嗎?當(dāng)時(shí)確實(shí)沒有找到好辦法,一段時(shí)間后,終于在 Green1Vfp找到了解決方案,唯一的問題是,需要使用 vfp9 的報(bào)表監(jiān)聽器,而 vfp9 的對象輔助報(bào)表對中文的支持仍存在一些問題,所以我一直沒有 SET REPORTBEHAVIOR 90;那么在 SET REPORTBEHAVIOR 80 下是否也能直接打印 blob 中的圖像呢?要解決的問題是:1. 不使用 blob 還原成文件的方法來打印 blob 字段(針對圖片)內(nèi)容2. 不使用 vfp9 特有的對象輔助報(bào)表方式來打印(主要是不想使用報(bào)表監(jiān)聽器對象)經(jīng)過 20 分鐘的探索,終于找到了方法,下面是驗(yàn)證的過程:1. 先按下圖建一個名為 Test 的報(bào)表:前面三個是字段控件,第 4 個是一個 Picture/Ole Bound 控件,注意按次序添加,至少要在之前加入,因?yàn)槲覀冃枰诖蛴≈跋扔蓙砀淖兯壎ǖ膱D像數(shù)據(jù)。如果是修改已存在的報(bào)表,則應(yīng)該先將 4 剪切掉,然后再粘貼回來;當(dāng)然你也可以用布局工具中的 Bring to Front 將放到最前端(也就最后顯示/打?。?. 接下來設(shè)置它們的數(shù)據(jù)源,前兩個沒什么好說的,按下圖設(shè)置即可(只有劃紅線的地方需要修改,其它用缺省值即可,下同)第一個綁定到 t1.fname 字段上,第二個綁到 t1.lname 上(這個咱就不放圖片了,節(jié)約每一字節(jié)空間)3. 接著是第三個字段控件,其實(shí)它并不用于打印,只是用它來改變 Pic/Ole Bound 所綁定的圖片數(shù)據(jù)而已,所以需要將它的 Print When 設(shè)為 .F.4. 最后加入最重要的圖片控件:好了,報(bào)表設(shè)計(jì)完畢!保存為 test.frx5. 現(xiàn)在寫驗(yàn)證代碼: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,運(yùn)行它,我看到如下結(jié)果,你呢?利用打印條件,我改進(jìn)了一下,可以不用第3個字段: * *報(bào)表打印Blob圖片用,/dkfdtf/archive/2008/09/05/2888845.aspx *lwImageField為傳入Blob字段,調(diào)用方法如下: *報(bào)表圖片控件中設(shè)好控件源變量為goImage *報(bào)表打印條件中執(zhí)行:_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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論