翻譯|其它|編輯:郝浩|2004-01-12 21:12:00.000|閱讀 1860 次
概述:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
通常我們要在水晶報表里顯示文本和數(shù)字數(shù)據(jù)。有時候,數(shù)據(jù)庫里會包含圖象數(shù)據(jù),并且我們也希望在水晶報表里使用它。有很多途徑可以在報表中顯示數(shù)據(jù)驅動的圖象
第一要確保圖象具有足夠的大小和質量。設法在報表里將高質量的大圖象顯示為簡略圖是沒有意義的。使用圖象編輯程序以合適的分辨率及大小創(chuàng)建你能夠顯示的圖象。
圖象的格式也很重要。雖然 BMP 是一種相當通用的格式,但是它需要占用巨大的空間。因此,將圖象轉換為類似 JPG 或者 GIF 的壓縮格式是合乎需要的。水晶報表支持所有這些格式。
接下來要解決的問題是如何將圖象放入水晶報表。在過去,我們以為唯一的答案是使用數(shù)據(jù)庫途徑。但是,還有許多其它途徑。讓我們看一下其中的三種途徑……
1. 數(shù)據(jù)庫解決方案:實現(xiàn)容易,但是需要非常大的磁盤空間。
你可以在數(shù)據(jù)庫字段里存儲圖象數(shù)據(jù)。微軟 Access 里這些字段叫作 OLE 字段,而 Oracle 和 SQL Server 把它們稱作 BLOB (二進制大型對象) 字段。
該技術的一個實例是水晶報表提供的 Xtreme 實例數(shù)據(jù)庫。在“雇員”表里有一個包含雇員照片的字段,名字是“雇員照片”。你只需將這些字段插入報表,與使用其它字段的方式相同。
好的一面,你可以直接將圖象字段與數(shù)據(jù)庫數(shù)據(jù)聯(lián)系起來。不好的一面,這些圖象將占用相當大的數(shù)據(jù)庫空間。這意味它們也會對性能和存儲有不利影響。
2. 開發(fā)者解決方案:功能有限并且需要一個開發(fā)人員。
在一些水晶報表圖書里,我們讀到了如何用編程語言(比如:Visual Basic)寫一個水晶報表查看器。在程序里,你能夠捕獲類似“格式化節(jié)”這樣的事件,然后改變報表里的 OLE 對象以加載不同的圖象。
好的一面,這可以讓你松散耦合數(shù)據(jù)和圖象。不好的一面,這需要開發(fā)復雜的程序,而且它只能與特定的報表一起使用。我們正在考慮開發(fā)這種查看器,直到偶然碰見了如下兩種技術。最近,我們聽說在水晶報表 9 里這些格式化事件對開發(fā)者將不可用。
3. 驅動器解決方案:快速靈活的第三方產(chǎn)品。
水晶報表 8 和 9 里有一個偉大的特性就是你可以使用 COM 數(shù)據(jù)源。這意味著你能夠用程序代碼創(chuàng)建記錄集,然后把它用作報表的數(shù)據(jù)源。
我們開發(fā)了 cViewIMAGE (//www.crystalkeen.com/tools/cviewimage.htm),一個可以從任何 ODBC 表里讀取三個字段(標識符,描述和圖象的文件名)的 COM 數(shù)據(jù)源。該 COM 數(shù)據(jù)源將創(chuàng)建第四個字段,包含文件名對應的圖象。在子報表里使用它可以顯示圖象。
該方案的最大好處在于整個記錄集被裝入內(nèi)存,因此可以快速加載和處理圖象,而且對于使用那些圖象和數(shù)據(jù)庫字段,它也很靈活。它只需要一個 ODBC 數(shù)據(jù)源。
不好的一面,它需要進行一些初始化設置以定位圖象,但是我們已經(jīng)使驅動器足夠靈活,因此使你能夠支持多種配置。我們甚至可以創(chuàng)建擴充版本以包含表里的其它全部字段。讓我們知道這樣做是否有價值。
4. 分發(fā)解決方案:安裝 UFL(用戶功能庫)既簡單又便宜。
另外一種解決方案就是導出到 HTML,使用我們的 SMTP用戶功能庫 (User Function Library) (//www.crystalkeen.com/tools/mailfunctionlibrary_smtp.htm)。我們還有其它一些用戶功能庫,可以將輸出發(fā)送到 Outlook,XML 或者磁盤文件。有些人把這稱作“報表脈沖”,在這里你的報表引擎使用功能庫生成多種輸出文件。
目前我們有一個 SMTP 庫可以在報表處理時將圖象嵌入 HTML 消息。這是我們的 SMTP 庫的一個標準功能。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn