程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .Net下如何跨語言調用Delphi寫的報表引擎

.Net下如何跨語言調用Delphi寫的報表引擎

編輯:關於.NET

我去年上半年之前一直使用的是Delphi,公司在這上面也積累了很多公共資源。在06年9月實現了一個 功能強大的報表引擎,公司到現在基本每個項目組都在使用它做報表。現在在.Net下,使用 OpenExpressApp,暫時也沒有足夠精力去重新開發一個報表引擎(OpenReport),所以就想到先重用以前 的報表引擎。

下面就介紹一下如何在WPF中使用Delphi下的功能。

封裝Delphi引擎為一個OCX控件

之前的報表引擎是基於Delphi下的,在跨語言應用下,最容易想到的就是使用ActiveX,於是使用 Delphi做了一個ActiveXForm,封裝了一個OCX控件並注冊,名稱為【ReportFram.ocx】,這裡就不詳細介 紹具體生成過程了。

在.Net中使用

.Net下的控件都是從Control繼承下來的,要想使用OCX控件,就需要在OCX和Control之間適配一下。 Delphi封裝的OCX本身並不知道如何在.Net下使用,我們可以通過以下步驟,由VS給我們自動生成一個適 配程序集。

在Toolbox中添加一項

新建一個Window Application,把ReportFramX Control拖入到一個Form上,這時你可以看到Solution Explorer的項目下自動生成了兩個dll:ReportFram.dll和AcReportFram.dll。這是VS生成,應該會有命 令可以生成,沒有細查。

在WPF下使用AxReportFramX

使用WindowsFormsHost控件使用Win下的Control,Xaml如下所示:

<Grid><br>        <WindowsFormsHost  Name="windowsFormsHost1" /><br>    </Grid><br> 

代碼如下:

public Window1()
         {
             InitializeComponent();
             var rptFram = new AxReportFram.AxReportFramX();
             windowsFormsHost1.Child = rptFram;
         }

運行界面如下:

歡迎轉載,轉載請注明:轉載自周金根 [ http://zhoujg.cnblogs.com/ ]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved