水晶报表无法正确呈现

3

我正在尝试将一个web应用程序部署到Windows 2012服务器上,但是Crystal Report Viewer在服务器上无法正确呈现;但是在本地运行正常。

enter image description here

我的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"></section>
        </sectionGroup>
    </sectionGroup>
</configSections>

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

我正在使用:

  • Crystal Reports运行时13.0.14
  • IIS 8.0
  • Windows Server 2012
3个回答

7
问题在于Crystal Reports默认使用本地打印机设置生成报告,而服务器可能有不同的默认页面设置(我不知道为什么这个选项是默认的)。
要纠正这种情况,请打开Crystal Reports,在左上角选择“文件”,然后选择“页面设置”。您将看到一个名为“打印机选项”的部分,请勾选“无打印机”复选框。
然后,您将看到在服务器上打印的页面。对其进行更正,它将在任何服务器上打印相同的内容。
希望能对您有所帮助。
附注:您可以通过打开报告文件(.rpt)并选择此菜单(参见图片)直接从IDE(如Visual Studio)中直接打开Crystal Reports。

Crystal Reports

附言:可能我没有正确理解问题。我在网上搜索并找到了一个很好且被接受的答案,解决了许多人遇到的类似问题。该主题的名称为“网络外部提供网页时Crystal Reports无法呈现”。当本地工作正常时,但在非本地情况下无法呈现:http://www.codeproject.com/Answers/361109/Crystal-Reports-not-rendering-when-webpage-is-serv#answer2

链接中解决方案如下:

水晶报表查看器依赖于.NET Framework 4(32位和64位安装)的运行时引擎安装文件。这些程序集文件不会包含在您的.NET项目中。
  1. 在任何安装了水晶报表运行时引擎的计算机上,转到C\inetpub\wwwroot文件夹。对于我的目的,我只是去了2008服务器上的一个文件夹。
  2. 复制wwwroot目录中的aspnet_client文件夹。
  3. 将此文件夹粘贴到网站目录文件夹中。我假设这也适用于从虚拟目录创建的Web应用程序,只需将其粘贴到虚拟目录中即可。

(通过以下链接在CodeProject.com上查看完整源代码)

也许这个链接可以帮助您,问题似乎涉及到您指定的相同技术。那是你的问题吗?如果是,提供的链接中的答案是否适用于您?

如果以上答案都没有帮到您,可能是由于您的CSS与Crystal Reports CSS之间存在冲突导致的问题。如果是这种情况(您可以尝试仅使用CR CSS并查看问题是否仍然存在),则可以通过找到冲突的CSS并从您的CSS中删除它来简单地纠正它。
如果不是,请您更具体地描述您的问题,任何新信息都将有助于我为您找到正确的答案。
谢谢,祝您有愉快的一天。

“打开水晶报表”是什么意思?我已经在服务器上安装了Crystal Reports运行时。 - Arm0geddon
1
Crystal Reports 的服务器运行时用于为客户端构建报表,但它使用您在本地构建的报表文件来生成报表。如何打开/编辑报表?如果您使用 Visual Studio,则应在顶部看到 Crysal Report 菜单。单击它。我会在有机会时发送一张图片(请参见我的编辑答案)。如果您使用 Crystal Reports(这是一个独立的应用程序),请使用我提到的菜单。抱歉耽搁了。如果您有任何其他问题,请随时问。 - David Gourde
1
PS:报告文件应该在您的网站/项目文件夹中,以“.rpt”文件的形式存在。如果您没有自己制作此文件,则需要下载Crystal Reports独立应用程序或Visual Studio插件才能编辑文件并更改我提到的设置。您还可以更改服务器的打印机设置以适应报告文件的设置,但是您需要知道这些设置(猜测游戏不是一个好策略)。 - David Gourde

2

0

好的,经过数周的头疼、奖励和谷歌搜索,我终于找出了问题所在。Crystal Runtime运行良好,但是这是一个浏览器兼容性CSS问题。我在页面中添加了如下的meta标签,现在它可以在IE中正常渲染。

<meta http-equiv="X-UA-Compatible" content="IE=9">

不幸的是,它在Chrome中仍然无法正确呈现,但这是另一个完全不同的问题。


嗯,这似乎不是一个好的解决方案,因为浏览器将只会在兼容模式下运行。你可以尝试在 HTML 标签开始前简单地放置 CSS 链接,像这样:<link href="~/style/ReportViewer.css" rel="stylesheet" type="text/css" /> <!DOCTYPE html> <html> 附注:如果这个方法可行,我会更新我的回答。 - David Gourde
尝试过了,没有用。水晶报表查看器仍然以与屏幕截图完全相同的方式错误地呈现了报告。 - Arm0geddon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接