上次在blog給出了一個(gè)簡(jiǎn)單的調(diào)用fastReport組件的小示例,也許有些同學(xué)恰巧也在應(yīng)用FR做報(bào)表,不知道大家經(jīng)歷后的感覺如何?
這里我就不抄襲某些權(quán)威的關(guān)于com的介紹了,如果你完全的不明白,這篇文章不適合你。
先談一下我對(duì)FR的感受,F(xiàn)R源于1997一個(gè)俄羅斯人的不經(jīng)意間的一個(gè)決定,他在delphi編程中發(fā)現(xiàn)沒有一個(gè)報(bào)表系統(tǒng)可以滿足他當(dāng)時(shí)的需要,于是就打算親手做一個(gè)。在98年作者的想做一個(gè)快速響應(yīng),簡(jiǎn)單的,支持腳本的報(bào)表系統(tǒng)有了正式的命名。作者憑借著很強(qiáng)的ole操作技巧很快的把FR變成了delphi中間使用率很高的報(bào)表組件。個(gè)人不喜歡pascal語言,自然的就不喜歡delphi,我對(duì)FR的景仰完全的是因?yàn)樽髡呤且粋€(gè)俄羅斯的程序員,并且FR體現(xiàn)的理念很獨(dú)到,另外小巧的組件大小也是作者自豪的地方。我這次公開的demo中包含的是FR3.0系列的COM專用組件。我在它的論壇了解到4.0會(huì)有部分不兼容3.0并且在報(bào)表定義上有些分歧,當(dāng)然也多了一些功能。
在.net調(diào)用com本身是一件很容易的事情,但是有很多技巧需要把握。如果仔細(xì)觀察demo你會(huì)發(fā)覺一點(diǎn),這也是我想和大家分享的地方,因?yàn)楸酒訤R為例但是不局限于FR,我對(duì)FR的了解大致是通透的一份PRogrammers manual和5分鐘的user manual跳讀,我還沒有用FR做過一份業(yè)務(wù)上的模版,所以一些問題我可能也說不上,據(jù)我的同事們說在不同的操作系統(tǒng)中可能會(huì)有些細(xì)小的bug,所以我推薦用戶環(huán)境是xp。
中午花了點(diǎn)時(shí)間準(zhǔn)備,下面就是成果了 :P
FastReportService.Instance.ShowDesigner(delegate(TfrxReport report) { report.MainWindowHandle = (int)this.Handle; },
null, GetDataSource(), null, String.Format("{0}//Simple list.fr3", application.StartupPath), null);
FastReportService.Instance.ShowReport(null, null, GetDataSource(), true, false, null,
String.Format("{0}//Simple list.fr3", Application.StartupPath));
FastReportService.Instance.ShowDesigner((int)this.Handle, GetDataSource());
這是demo中的片斷,你可以看到,封裝后的.net調(diào)用足夠的簡(jiǎn)單。這是常見的三個(gè)場(chǎng)景用例。
service.CustomRegSvr = true;
這個(gè)開關(guān)顯示著一個(gè)com免部署的方法。要看效果直接運(yùn)行FRDemo.exe。我希望可以有些驚奇。
這個(gè)demo依賴兩個(gè)程序集,分別是frlib.dll和RegSvrEx.dll。給公司的版本是簽名的,我給出沒有簽名的版本,請(qǐng)合理使用。
http://m.survivalescaperooms.com/A-Z/archive/2007/01/26/631226.html
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注