4

我拥有一个带有框架 4.5 的 ASP.NET Web 项目。为 VS2012 Crystal Reports Developer 安装并实现了一个 SAP 报表。

在本地报告中,它在浏览器(Chrome、Firefox、IE)中正常工作,并且数据在正确的出口中。现在,在发布时(在另一台服务器上),我们做的第一件事是安装相同版本的 SAP,以便有必要的库等。

我遇到的问题是 Report Viewer 的块,我的意思是,repot 容器是什么,没有显示在浏览器中,打开这个嵌入的窗口,但在 Report Viewer 中没有显示任何内容,报告看起来会更少.

认为可能是数据错误或其他原因,我试图更改报告并留一个空白,其中显示的只是文本,没有连接或类似的东西,并删除后面代码中不需要的代码,我刚刚停止加载报告。

在新的本地作品中,但在网络上发布,报告查看器仍然是

任何人都可以帮我一点吗?我正在寻找有关它的一些信息,但我在相关论坛中发现,没有看到报告,但没有看到报告查看器。

非常感谢您提前。

PS:我检查了服务器日志是否有任何问题或 Asp.Net Crystal Reports 的错误,没有留下任何东西。

4

7 回答 7

22

我有微笑问题并找到了解决方案。

Resource-Uri我认为从默认的资源中查找用于格式化水晶报表的资源存在一些问题。

为了正确格式化C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13将此文件夹复制到您的项目中。

并将这些行添加到您的 web.config 文件中

<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>

<businessObjects>
  <crystalReports>
    <rptBuildProvider>
      <add embedRptInResource="true" />
    </rptBuildProvider>
    <crystalReportViewer>
          <add key="ResourceUri" value="/crystalreportviewers13" />
  </crystalReportViewer>
  </crystalReports>
</businessObjects>

检查这个

这将对您有所帮助。

于 2013-12-07T11:00:31.633 回答
4

解决了.... 100 % 会工作的。请按照以下两个步骤操作:

1.更新应用程序文件夹。

“C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13”进入您的应用程序根文件夹 asp 下面的快照。 在此处输入图像描述

  1. 通过以下代码更新 Web.Config 文件。

在此处输入图像描述

于 2018-06-06T06:26:47.117 回答
3

将文件夹“C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13”复制到您的应用程序根文件夹后,请务必复制并粘贴给定代码:

<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>

<businessObjects>
  <crystalReports>
    <rptBuildProvider>
      <add embedRptInResource="true" />
    </rptBuildProvider>
    <crystalReportViewer>
          <add key="ResourceUri" value="/crystalreportviewers13" />
  </crystalReportViewer>
  </crystalReports>
</businessObjects>

在 web.config 文件中的< 配置 >标记之后。对我来说,任何其他地方都不起作用并生成错误消息。

于 2016-02-03T10:51:15.477 回答
1

对我来说,当我将文件复制到 4_0_30319 文件夹中时,网页开发者工具(F12 然后控制台选项卡)显示服务器正在寻找 root/aspnet_client/system_web/4_6_1069 文件夹。我重命名了文件夹和 BAM!

于 2016-06-20T21:59:25.947 回答
0

我相信您需要将其部署为 .Net 4,而不是 .Net 4.5。

于 2014-05-18T12:44:00.223 回答
0

对于我们这些运行从 .Net 4.0 或更低版本到 4.5+ 的迁移项目的人,我进行了观察。似乎如果包含查看器的页面位于子目录中,那么图像 url 是相对于该页面而不是 Web 应用程序的根目录生成的。例如,如果您的页面是 /gl/accounts.aspx,则图像可能是 /gl/crystalimagehandler.aspx 等 解决此问题的快速方法是将处理程序映射更改为以 crystalimagehandler.aspx 结尾的通配符,或将以下代码放入 Global .asax

protected void Application_BeginRequest(object sender, EventArgs e)
        {
            var p = Request.Path.ToLower().Trim();
            if (p.EndsWith("/crystalimagehandler.aspx") && p!= "/crystalimagehandler.aspx")
            {
                var fullPath=Request.Url.AbsoluteUri.ToLower();
                var index = fullPath.IndexOf("/crystalimagehandler.aspx");
                Response.Redirect(fullPath.Substring(index));
            }
        }
于 2014-09-23T10:16:19.237 回答
0

我有一种情况,我使用连接“SQL Server Native Client 11.0”创建了一些 Crystal Reports,而一些使用连接“Microsoft OLE DB Provider for SQL Server”创建了一些 Crystal Reports。两者都在运行 IIS 6 的旧服务器上工作。但是,当我们迁移到运行 IIS 8.5 的新服务器时,一些报表按预期工作,而另一些则显示一个空的 Crystal Reports 查看器。经过 4 到 5 天的努力并尝试了我能想到的一切,我终于比较了有效报告与无效报告之间的所有内容。我发现的是使用“Microsoft OLE DB Provider for SQL Server”连接的报告。一旦我做了这个改变,报告就完美地服务了。

于 2017-05-31T14:37:07.073 回答