水晶報表 動態批量打印本地圖片

目的:從數據庫中得到本地圖片的路徑,再將其打印到報表上,每一個ID查詢出來的信息(包括多幅圖片)對應報表中的一頁

環境:VS2005+自帶水晶報表

參考文獻:http://babyt.cnblogs.com/archive/2005/04/21/142789.html 阿泰BLOG

遇到的問題:http://topic.csdn.net/u/20090925/16/1cf16b4d-e7a4-4d3c-a7c6-5850862cd5fb.html?71028

基本思想:在數據庫裏添加圖片字段,SQL Server把它們稱作 BLOB (二進制大型對象) 字段,將其映射到報表上

 

需要說明的是:下圖中表UriResult1是強類型,也就是說如果要在該表手動添加其它表字段的時候,當聯合查詢數據庫,並將查詢

                    出來的值賦給UriResult1時候會報"未能啓用約束.一行或多行中包含違反非空 唯一或外鍵約束的值",這個時候

                    可以採用弱類型,即手動生成UriResult1.如果UriResult1只對應一張表,則不會報錯

 

這裏就不介紹詳細步驟了,只把核心的內容記錄下

1.數據庫用到的表

   ChemResult    SickInfo     UriResult

   由於圖片不存儲在數據庫,但是爲了顯示在報表上,需要在某張表中添加圖片的字段,作爲映射用,這裏在UriResult添加了6個圖片字段

2.手動添加一個DataSet,取名爲AveDataSet,其中AveDataSet.xsd文件如圖一所示:

   AveDataSet.xsd

                                                              圖一   

 

需要說明的是:如圖所示,UriResult1爲表UriResult的別名,是從服務器資源管理器裏拖進AveDataSet.xsd裏的

                                DataTable1爲工具箱裏拖進來的DataTable,其中的8個字段都是手動一行一行添加的

注意以上兩個Table的字段名,以及格式都要統一,否則會報錯的,而且還要添加他們的關係,字段也是一一對應

這裏我設定的是 DataTable1爲父表, UriResult1爲字表               

3.打開報表,設定表的關係

   數據庫連接             數據庫表連接

                 圖二                                                                         圖三

    這裏圖二表示數據庫連接,將數據集中的映射表DataTable1與數據庫的三張表連接

          圖三表示各表內連接的關係,每兩個字段確定一條數據,這裏特別提醒,不要有分支,否則報表會有很多不需要的數據顯示

4.把數據庫專家裏面DataTable1的字段拖進報表的詳細資料裏面

                                                         數據庫專家

5.實現的代碼:

  

6.實際圖片

水晶報表-圖片

 

           

發佈了25 篇原創文章 · 獲贊 4 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章