簡體   English   中英

VS2022上的水晶報表

[英]Crystal Report on VS2022

我已經安裝了 CR13SP33 x86 和 x64 運行時,還安裝了 CRforVS6413,我能夠在工具欄上獲取 crystalReportViewer,使用 .net 框架 4.8 創建 ASP.NET,並將控件拖到 aspx 頁面。 但是在設計視圖上,我收到以下錯誤,並在執行它的空白頁時,請注意我的水晶報表文件中已經包含數據

在此處輸入圖像描述

這是我的 aspx 代碼

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.Web" TagPrefix="CR" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" width="1200px" Height="800px"/>
</body>
</html>

web.xml 配置文件

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.8">
      <assemblies>
        <add assembly="CrystalDecisions.Web, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.Shared, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669E0DDF0BB1AA2A"/>
        <add assembly="CrystalDecisions.ReportSource, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.8"/>
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

和我的 C# 代碼加載 CRystal 報告文件

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ReportDocument myReportDocument;
            myReportDocument = new ReportDocument();
            myReportDocument.Load(@"C:\Users\Serak\source\repos\WebApplication1\WebApplication1\ConsolidatedBalanceSheet.rpt");
            CrystalReportViewer1.ReportSource = myReportDocument;
            CrystalReportViewer1.DisplayToolbar = true;
        }
    }
}
  1. 打開項目,右鍵單擊項目,然后添加引用。

  2. 單擊瀏覽到 go 到程序文件/crystal Decisions/crystal report9,並在下面搜索(包括子目錄)'CrystalDecisions.VSDesigner.dll'。 然后確定。

  3. 如果出現提示,select“是”。

  4. 拖一個ReportViewer到視圖中,應該沒有錯誤。

需要在web.config中添加如下代碼:

     <system.web>
        <compilation defaultLanguage="c#" debug="true"><assemblies><add assembly="CrystalDecisions.CrystalReports.Engine, 

Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.ReportSource, 

Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Shared, 

Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/><add assembly="CrystalDecisions.Web, 

Version=9.1.5000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></assemblies></compilation>

     </system.web>

我用的版本和你的不一樣,你需要根據自己的信息更改相關配置。

您的 web.config 文件看起來不錯。

必須將 Copy Local 設置為 False,這樣它就不會加載錯誤的 dll,您的 \bin 文件夾中必須沒有 CR dll。

查看我寫的這篇博客,將您的項目升級到 VS 2022: https://blogs.sap.com/2020/10/30/upgrading-a-visual-studio-2008-2019-.net-project-with-the -最新-cr-.net-sdk-包/

問題是 IIS 在這里找不到 CR 查看器,或類似的:C:\.netpub\wwwroot\as.net_client\system_web\4_6_81\crystalreportviewers13

將此文件夾復制到您的項目中:crystalreportviewers13

我的博客有一個示例 web.config 文件可以正常工作。

大學教師

請在您的 aspx 頁面上注冊內容:

< %@ Register Assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.CrystalReports.Engine" TagPrefix="CR" %>

< %@ Register Assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.ReportSource" TagPrefix="CR" %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM