SAP Crystal Reports Viewer不会显示在浏览器中

时间:2013-04-23 14:34:43

标签: crystal-reports report viewer

我拥有一个带有框架4.5的ASP.NET Web项目。已安装并实施VS2012 Crystal Reports Developer的SAP报告。

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

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

认为它可能是数据错误或其他什么,我试图更改报告并放置一个空白,其中显示的所有内容都是文本,没有任何连接或类似的东西,并删除了不需要的代码代码背后,我刚刚停止加载报告。

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

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

提前非常感谢你。

PS:我已经检查了服务器日志中是否有任何问题或Asp.Net Crystal Reports错误而且没有留下任何内容。

7 个答案:

答案 0 :(得分:17)

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

我认为从默认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>

Check this

这会对你有帮助。

答案 1 :(得分:1)

将文件夹 “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>

&lt;之后web.config文件中的配置&gt; 标记。对我来说,任何其他地方都无法正常工作并生成错误信息。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

  

“C:\的Inetpub \ wwwroot的\ aspnet_client \ system_web \ 4_0_30319 \ crystalreportviewers13”       进入你的应用程序根目录下的asp快照。   enter image description here

  1. 通过以下代码更新Web.Config文件。
  2. enter image description here

答案 4 :(得分:0)

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

答案 5 :(得分:0)

对于我们这些从.Net 4.0或更低版本运行迁移项目的人来说,我已经做了一个观察。看来,如果包含查看器的页面位于子目录中,则相对于该页面而不是Web应用程序的根目录生成图像URL。例如,如果您的页面是/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));
            }
        }

答案 6 :(得分:0)

我遇到过使用连接&#34; SQL Server Native Client 11.0&#34;创建了一些Crystal Reports的情况。和一些使用连接&#34; Microsoft OLE DB Provider for SQL Server&#34;。两者都在我们运行IIS 6的旧服务器上运行。但是,当我们迁移到运行IIS 8.5的新服务器时,某些报告按预期工作,而其他报告则显示空的Crystal Reports查看器。经过4-5天的拉动我的头发并尝试了我能想到的一切,我最终比较了有效的报告与不起作用的报告之间的所有内容。我发现的是有效的报告使用了&#34; Microsoft OLE DB Provider for SQL Server&#34;连接。一旦我做了这个改变,报告就完美了。

相关问题