Visual Studio 2017 集成Crystal Report爲ASP.NET MVC呈現報表

原文:Visual Studio 2017 集成Crystal Report爲ASP.NET MVC呈現報表html

最近項目須要實現報表功能,平衡各方面的因素,仍是使用Crystal Report(水晶報表)安全


To get there click here: Download WIKIasp.net

https://www.crystalreports.com/crystal-reports-visual-studio/ide

https://www.crystalreports.com/crvs/confirm/visual-studio


下載較新版本: http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_21.exe

下載後解壓,使用管理員權限安裝。測試



 選擇語言,點擊下一步,贊成SAP BUSINESSOBJECTS license Agreement:
ui

 

選中Yes,install 64-bit runtime選項。
點擊Finish按鈕,繼續安裝。this

 

 

安裝結束,全部安裝窗口自動關閉。spa

 

打開你的項目,參考下面幾個類:.net

 

打開Web.Config文檔,須要配置Crystal Report:

 

<configSections>
    <sectionGroup name="businessObjects">
      <sectionGroup name="crystalReports">
        <section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null" />
        <section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" />
      </sectionGroup>
    </sectionGroup>
  </configSections>
configSections Source Code

 

<assemblies>
        <add assembly="CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.Shared, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportSource, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
      </assemblies>
assemblies Source Code

 

<businessObjects>
    <crystalReports>
      <rptBuildProvider>
        <add embedRptInResource="true" />
        <add extension=".rpt" type="CrystalDecisions.Web.Com
             pilation.RptBuildProvider, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
      </rptBuildProvider>    
    </crystalReports>
  </businessObjects>
businessObjects Source Code

 

接下來,爲ASP.NET MVC項目添加一頁網頁是asp.net 的ASPX,網頁名爲CurrencyReport.aspx,它自帶有CurrencyReport.aspx.cs以下圖。

對這頁網頁暫時不需添加任何代碼,稍後建立好.Rpt報表後再來寫代碼。

如今開始建立.rpt水晶報表:

 

報表建立完畢,此時打開上面建立的ASPX網頁。

 

再打開.aspx.cs代碼頁,編寫加載水晶報表程序:

 

 string reportPath = Server.MapPath("CurrencyReport.rpt");
            ReportDocument repDoc = new ReportDocument();

            try
            {
                if (!File.Exists(reportPath))
                {
                    Response.Write("指定的報表不存在。 \n");
                }

                repDoc.Load(reportPath);

                repDoc.SetDatabaseLogon("username", "password", "127.0.0.1", "DBname", true);
                this.CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
                this.CrystalReportViewer1.HasToggleGroupTreeButton = false;
                this.CrystalReportViewer1.ReportSource = repDoc;
                
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
Source Code

 
爲程序添加水晶報表完成,咱們運行程序,結果以下:

 

什麼內容也沒有顯示,按F12查看,還有crv.js加載失敗和bobj is not defind錯誤。

通過研究與測試,咱們還作少一步動做。前往電腦C驅動器:C:\inetpub\wwwroot把aspnet_client整個目錄拷貝至項目的根目錄之下。

 

 

 

再次運行程序:

 

數據仍是沒有顯示,水晶報表須要輸入鏈接數據安全信息。

解決這個問題,須要打開加載水晶報表的程序,添加一個方法SetDatabaseLogon,並賦其參數

 

 

再次刷新網頁,上面的對話框消失,報表已經正常顯示了》

相關文章
相關標籤/搜索