职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 2303|回复: 1

怎样ASP.NET MVC调用Delphi开发的Web报表

[复制链接]
找不到我 发表于 2011-9-24 14:24 | 显示全部楼层 |阅读模式
最近需要做打印发货单的功能,以前用delphi的reportmachine控件做报表,功能很强大,可以设计报表并且报表文件和程序分离,优点就不多说了,这次需要连纸打印,于是想到用activex组件开发打印组件。
这样这个教程就分为两部分,一部分说Delphi的activex组件开发,另一部说ASP.NET MVC如何调用activex组件进行打印。

工具/原料Delphi7  ReportMachine 3 组件 ASP.NET MVC Framework VS2008 SP2
步骤/方法Delphi开发Activex组件
创建一个ActiveXform项目,如图所示:
0d968f232522050dac34deee.jpg
创建activexform设置项目发布选项,需要提醒的是由于Delphi7的bug,只在第一次创建项目后能够设置Web Deploy选择,等关闭项目再打开就不能设置了,这个需要注意!
设置activexform项目
b5ce92544eee55563a2935ef.jpg
拖拽RMRport控件到窗体中,拖拽RMUserDataset组件到窗体,这个适用于传递数据给RMReport报表打印用的,
cebd0017c2801c484a90a7e9.jpg
添加RMReport打印组件到窗体设置RMReport1的DataSet属性为RMUserDataset1
b29f82823f5a69f66c8119e9.jpg
声明对外方法和属性:选择 View ->Type Library
a28d62d94d13a4a039012fea.jpg adee30dd1dc8d9908d1029eb.jpg
实现print方法打印
5beeba0f73fe5ea4ab6457eb.jpg
注册Activex组件
42e89c2689fabb5e8a82a1f5.jpg
编译生成Activex组件

到此已经成功创建了一个带打印功能的ActiveX组件,具体如何使用ReportMachine 报表组件的教程,稍后我会写个详细的教程
下面就是.Net如何调用Activex组件了。
ASP.NET MVC 调用Activex组件打印
1.添加Activex组件的引用
b3508d131c746fc96538dbf1.jpg
2.选择Delphi的报表Activex组件
0865b518b120714e35fa41f1.jpg
3.引用报表文件到Content文件夹
6391e903e58405a508fa93f2.jpg
4.在About.aspx.cs的onload时间中调用Delphi的Activex组件声明的print方法进行打印,需要赋予服务器上report.rmf也就是报表文件的绝对地址给print方法,这样报表组件才能正确加载报表文件,具体代码如下:
21e558238bfb351b9822edf3.jpg

发布站点,点击About Us链接会弹出报表预览打印窗口,最终效果如下:
148f28d3753413493af3cffc.jpg
奔跑着 发表于 2012-7-16 16:43 | 显示全部楼层
中关村北大青鸟新开设学士后JAVA、安卓专业预科班,欢迎同学咨询,报名。咨询电话82503866  http://blog.sina.com.cn/s/blog_5ce5700e01015yzp.html

您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-3-29 19:08 , Processed in 0.125603 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表