[原創]ASP.NET MVC調用Delphi開發的Web報表列印activex組件

來源:互聯網
上載者:User

作者: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連結會彈出報表預覽列印視窗,最終效果如下:

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.