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