【问题标题】:Crystal Reports will not render correctlyCrystal Reports 无法正确呈现
【发布时间】:2015-10-21 03:43:04
【问题描述】:

我正在尝试将 Web 应用程序部署到 Windows 2012 Server,但 Crystal Report Viewer 无法在服务器上正确呈现;但它在本地工作得很好。

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

【问题讨论】:

    标签: asp.net iis crystal-reports


    【解决方案1】:

    问题在于,Crystal Reports 默认使用本地打印机设置来生成报告,而服务器可能有不同的默认页面设置(我不知道为什么默认设置此选项)。

    要纠正这种情况,请打开 Crystal Reports,在左上角选择文件,然后选择页面设置。您将看到一个名为“打印机选项”的部分,选中“无打印机”框。

    然后您将看到打印在服务器上的页面。更正它,它将在任何服务器上以相同的方式打印。

    希望对你有帮助。

    PS:您可以直接从您的 IDE(如 Visual Studio)打开 Crystal Reports,方法是打开报告文件 (.rpt) 并选择此菜单(见图)。

    PPS:我可能没有正确理解这个问题。我在网上搜索并找到了一个很好且被接受的答案,它解决了许多人遇到的类似问题。该主题的名称是 当网页在网络之外提供时,Crystal Reports 不呈现。一切都在本地运行良好,但不在本地时不会渲染:http://www.codeproject.com/Answers/361109/Crystal-Reports-not-rendering-when-webpage-is-serv#answer2

    链接中解释的解决方案是:

    Crystal 报表查看器依赖于运行时引擎 .NET Framework 4 的安装文件(32 位和 64 位安装)。这些 程序集文件不会包含在您的 .NET 项目中。

    1. 在任何安装了/或 Crystal Report 运行时引擎的机器上转到 C\inetpub\wwwroot 文件夹。对于我的 目的,我只是去了我正在安装的 2008 服务器上的那个。
    2. 复制aspnet_client文件夹到wwwroot目录下。
    3. 将此文件夹粘贴到网站目录文件夹中。我认为这适用于从虚拟创建的 Web 应用程序 目录,只需将其粘贴到虚拟目录中即可。

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

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

    如果这些答案都没有帮助您,则此问题可能是由您的和 Crystal Reports CSS 之间的 CSS 冲突引起的。如果是这种情况(您可以尝试仅使用 CR CSS 并查看问题是否仍然存在),只需找到冲突的 CSS 并将其从您的 CSS 中删除即可更正它。

    如果没有,请您更具体地说明您的问题,任何新信息都会帮助我为您找到正确的答案。

    谢谢你,祝你有美好的一天。

    【讨论】:

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

    问题的可能原因之一可能是安装了 Crystal Reports 运行时,但您的应用程序未在默认网站下运行。

    解决问题的方法是将 aspnet_client 文件夹从 c:\inetpub\wwwroot 文件夹复制到新的网站根文件夹。

    下面讨论了整个步骤:

    Crystal Report Issue with IIS - ( bobj is undefined , Crystal report not displaying )

    更多参考:

    Crystal report not working outside the network

    【讨论】:

      【解决方案3】:

      好的,经过数周的挠头、赏金和谷歌搜索,我终于找到了问题所在。 Crystal 运行时运行良好,这是浏览器兼容性 CSS 问题。我在页面中添加了跟随元标记,现在它在 IE 中呈现得很好。

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

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

      【讨论】:

      • 嗯,这似乎不是一个好的解决方案,因为浏览器只会在兼容模式下运行。您可以尝试简单地将指向您的 CSS 的链接放在 HTML 标记的开始之前吗?喜欢: PS:如果可行,我会更新我的答案。跨度>
      • 试过了,没用。水晶报表查看器仍然无法正确呈现报表。与屏幕截图中的完全相同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多