在.net App中整合COM組件的一些簡單技巧

來源:互聯網
上載者:User
技巧

   上次在blog給出了一個簡單的調用fastReport組件的小樣本,也許有些同學恰巧也在應用FR做報表,不知道大家經曆後的感覺如何?
這裡我就不抄襲某些權威的關於com的介紹了,如果你完全的不明白,這篇文章不適合你。
先談一下我對FR的感受,FR源於1997一個俄羅斯人的不經意間的一個決定,他在delphi編程中發現沒有一個報表系統可以滿足他當時的需要,於是就打算親手做一個。在98年作者的想做一個快速響應,簡單的,支援指令碼的報表系統有了正式的命名。作者憑藉著很強的ole操作技巧很快的把FR變成了delphi中間使用率很高的報表元件。個人不喜歡pascal語言,自然的就不喜歡delphi,我對FR的景仰完全的是因為作者是一個俄羅斯的程式員,並且FR體現的理念很獨到,另外小巧的組件大小也是作者自豪的地方。我這次公開的demo中包含的是FR3.0系列的COM專用組件。我在它的論壇瞭解到4.0會有部分不相容3.0並且在報表定義上有些分歧,當然也多了一些功能。
在.net調用com本身是一件很容易的事情,但是有很多技巧需要把握。如果仔細觀察demo你會發覺一點,這也是我想和大家分享的地方,因為本篇以FR為例但是不局限於FR,我對FR的瞭解大致是通透的一份programmers manual和5分鐘的user manual跳讀,我還沒有用FR做過一份業務上的模版,所以一些問題我可能也說不上,據我的同事們說在不同的作業系統中可能會有些細小的bug,所以我推薦使用者環境是xp。
中午花了點時間準備,下面就是成果了 :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調用足夠的簡單。這是常見的三個情境用例。


            service.CustomRegSvr = true;

這個開關顯示著一個com免部署的方法。要看效果直接運行FRDemo.exe。我希望可以有些驚奇。

這個demo依賴兩個程式集,分別是frlib.dll和RegSvrEx.dll。給公司的版本是簽名的,我給出沒有簽名的版本,請合理使用。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。