.Net下如何跨语言调用Delphi写的报表引擎


======================================================
注:本文源代码点此下载
======================================================

我去年上半年之前一直使用的是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^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值