• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  我去年上半年之前一直使用的是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给我们自动生成一个适配程序集。

  1. 在Toolbox中添加一项
  2. 新建一个Window Application,把ReportFramX Control拖入到一个Form上,这时你可以看到Solution Explorer的项目下自动生成了两个dll:ReportFram.dll和AcReportFram.dll。这是VS生成,应该会有命令可以生成,没有细查。
            
  3. 在WPF下使用AxReportFramX
    使用WindowsFormsHost控件使用Win下的Control,Xaml如下所示:
       <Grid>
    <WindowsFormsHost Name="windowsFormsHost1" />
    </Grid>
    代码如下:
            public Window1()
            {
                InitializeComponent();
                var rptFram = new AxReportFram.AxReportFramX();
                windowsFormsHost1.Child = rptFram;
            } 
    运行界面如下:

 

欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
vs2017 Matlab R2016b配置vlfeat0.9.20发布时间:2022-07-18
下一篇:
强化学习 Q学习原理及例子(离散)附matlab程序发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap