======================================================
注:本文源代码点此下载
======================================================
我去年上半年之前一直使用的是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如下所示:
代码如下:
public window1()
{
initializecomponent();
var rptfram = new axreportfram.axreportframx();
windowsformshost1.child = rptfram;
}
运行界面如下:
欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/