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

本文介绍了一种利用Delphi开发ActiveX组件并结合ASP.NET MVC进行跨平台打印的方法。通过创建ActiveX组件,实现了报表设计和连纸打印功能,并在.NET环境中无缝调用,展示了从Delphi报表组件到ASP.NET MVC应用的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:mikel

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

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

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

1.Delphi开发Activex组件

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

    创建activexform

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

    设置activexform项目

设置Web delpyment  option
拖拽RMRport控件到窗体中,拖拽RMUserDataset组件到窗体,这个适用于传递数据给RMReport报表打印用的,
添加RMReport打印组件到窗体 添加RMUserDataset

添加RMReport打印组件到窗体

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

创建接口方法

声明print方法

声明print方法参数

 

实现print方法打印

实现print方法打印

注册Activex组件

注册Activex组件

编译生成Activex组件

编译生成Activex组件

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

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

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

添加Activex组件的引用

1.添加Activex组件的引用

选择Delphi的报表Activex组件

2.选择Delphi的报表Activex组件

引用报表文件到Content文件夹

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

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

 

01using System;
02using System.Collections.Generic;
03using System.Linq;
04using System.Web;
05using System.Web.Mvc;
06using ActiveFormProj1;
07 
08namespace 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链接会弹出报表预览打印窗口,最终效果如下:

打印效果最终效果

 

 

 

有困难找八戒

转载于:https://www.cnblogs.com/mikel/archive/2010/05/12/1733677.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值