最近需要做打印发货单的功能,以前用delphi的reportmachine控件做报表,功能很强大,可以设计报表并且报表文件和程序分离,优点就不多说了,这次需要连纸打印,于是想到用activex组件开发打印组件。这样这个教程就分为两部分,一部分说Delphi的activex组件开发,另一部说ASP.NET MVC如何调用activex组件进行打印。工具/原料Delphi7 ReportMa 展开
最近需要做打印发货单的功能,以前用delphi的reportmachine控件做报表,功能很强大,可以设计报表并且报表文件和程序分离,优点就不多说了,这次需要连纸打印,于是想到用activex组件开发打印组件。这样这个教程就分为两部分,一部分说Delphi的activex组件开发,另一部说ASP.NET MVC如何调用activex组件进行打印。工具/原料Delphi7 ReportMachine 3 组件ASP.NET MVC FrameworkVS2008 SP2步骤/方法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组件了。ASP.NET MVC 调用Activex组件打印1.添加Activex组件的引用2.选择Delphi的报表Activex组件3.引用报表文件到Content文件夹4.在About.aspx.cs的onload时间中调用Delphi的Activex组件声明的print方法进行打印,需要赋予服务器上report.rmf也就是报表文件的绝对地址给print方法,这样报表组件才能正确加载报表文件,具体代码如下:发布站点,点击About Us链接会弹出报表预览打印窗口,最终效果如下: 收起