您的位置:首页 > 编程语言 > ASP

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

2010-05-20 14:40 906 查看
最近需要做打印发货单的功能,以前用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->TypeLibrary









实现print方法打印



注册Activex组件



编译生成Activex组件

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

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

2.ASP.NET

MVC

调用Activex组件打印


[b]



[/b]
1.添加Activex组件的引用

[b]



[/b]
2.选择Delphi的报表Activex组件

[b]



[/b]
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.发布站点,点击AboutUs链接会弹出报表预览打印窗口,最终效果如下:




印效果最终效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: