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

[原创]ASP.NETMVC调用Delphi开发的Web报表打印activex组件

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

作者:mikel

原文地址:http://www.mikel.cn

最近需要做打印发货单的功能,以前用delphi的reportmachine控件做报表,功能很强大,可以设计报表并且报表文件和程序分离,优点就不多说了,这次需要连纸打印,于是想到用activex组件开发打印组件。

这样这个教程就分为两部分,一部分说Delphi的activex组件开发,另一部说ASP.NET MVC如何调用activex组件进行打印。

1.Delphi开发Activex组件

  • 创建一个ActiveXform项目,如图所示:

    创建activexform

  • 设置项目发布选项,需要提醒的是由于Delphi7的bug,只在第一次创建项目后能够设置Web Deploy选择,等关闭项目再打开就不能设置了,这个需要注意!

    设置activexform项目

  • 拖拽RMRport控件到窗体中,拖拽RMUserDataset组件到窗体,这个适用于传递数据给RMReport报表打印用的,

    添加RMReport打印组件到窗体

  • 设置RMReport1的DataSet属性为RMUserDataset1
  • 声明对外方法和属性:选择 View ->Type Library

 

实现print方法打印

注册Activex组件

编译生成Activex组件

到此已经成功创建了一个带打印功能的ActiveX组件,具体如何使用ReportMachine 报表组件的教程,稍后我会写个详细的教程

下面就是.Net如何调用Activex组件了。

2.ASP.NET MVC 调用Activex组件打印

1.添加Activex组件的引用

2.选择Delphi的报表Activex组件

3.引用报表文件到Content文件夹

4.在About.aspx.cs的onload时间中调用Delphi的Activex组件声明的print方法进行打印,需要赋予服务器上report.rmf也就是报表文件的绝对地址给print方法,这样报表组件才能正确加载报表文件,具体代码如下:

 

01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Web;
05 using System.Web.Mvc;
06 using ActiveFormProj1;
07  
08 namespace TangCMS.Views.Home
09 {
10  public partial class About : ViewPage
11  {
12  protected override void OnLoad(EventArgs e)
13  {
14  //声明Activex组件的ActivexForm对象
15  ActiveFormX report = new ActiveFormX();
16  //调用Activex组件声明的print方法
17  string file = Server.MapPath("~/content/report.rmf");
18  report.Print(file);
19  
20  }
21  }
22 }

5.发布站点,点击About Us链接会弹出报表预览打印窗口,最终效果如下:

 

 

 


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
adoquery查询结果如何赋给一个变量(delphi和c++builder)发布时间:2022-07-18
下一篇:
delphi将DBGRID数据导出到EXCEL表中发布时间: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