Subrata.In Ответов: 1

Crystal report не отображается на ASP .NET


Привет, я задаю общую проблему (и прошу прощения за это). У меня есть много примеров, но я не могу исправить свою ошибку. Моя проблема заключается в том, что я хочу показать crystal report на своей веб - странице (используя visual studio 2010-asp .Net &C#), но он идет пустым (никаких ошибок не происходит). Я заметил несколько статей с одним и тем же вопросом, но мне не удалось выяснить точную проблему. Пожалуйста, помогите мне разобраться в этой проблеме. Заранее спасибо.

Что я уже пробовал:

На веб -.конфиг
        <httpHandlers>
    <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
    </httpHandlers>
<assemblies>
        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
        <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
        <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
        <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
        <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
        <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
  <buildProviders>
        <add extension=".rpt" type="CrystalDecisions.Web.Compilation.RptBuildProvider, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
      </buildProviders>
    <handlers>
    <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
    </handlers>


На странице .asp

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

    <CR:CrystalReportViewer ID="crv_Report" runat="server" Height="550px" Width="350px" AutoDataBind="True" /> 

На странице .cs
DataTable _Data = Get_Data();

ReportDocument _rpt = new ReportDocument();
_rpt.Load(Server.MapPath("CrystalReport.rpt"));
_rpt.SetParameterValue("Report_Data", "Hello! How are you?");
_rpt.SetDataSource(_Data);
crv_Report.ReportSource = _rpt;
crv_Report.DataBind();

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Самый быстрый способ выяснить, почему он не отображается, - это использовать отладчик, чтобы войти в ваш код.

Три возможных вопроса:

(1) проверьте файл RPT, если вы указываете на правильное местоположение.
(2) Проверьте источник данных, который вы установили в своем RPT. В вашем случае _Data. Есть ли у него возвращенные строки?
(3) проверьте параметр, который вы передали в своем RPT, если он соответствует.

Вот несколько учебных пособий, которые я нашел в google о том, как работать с Crytal Reports в ASP.NET:

Как создать Crystal Reports в ASP.NET веб-формы[^]
Создание отчета Crystal Reports в ASP.Net


Subrata.In

Большое вам спасибо за ваш ответ, а также Спасибо за вашу ссылку. Это очень помогает в полной мере. Но, к сожалению, я не могу разобраться в этой проблеме.
1. Да, файл отчета находится в правильном месте.
2. Источник данных и структура данных верны, а также правильно загружают данные (я использовал его на GridView для проверки).
3. Параметр тоже правильно.

Нет никакой ошибки/исключения. Я пытаюсь шаг за шагом выяснить точку разрыва, которая приведена ниже.
Документе _rpt = новая документе();
-> Так много исключений
_rpt.Load(сервер.MapPath("rpt_Demo.rpt"));
-> HasRecords = '_rpt.HasRecords' выдал исключение типа 'CrystalDecisions.CrystalReports.Двигатель.LogOnException'
_rpt.SetParameterValue("Report_Data", "Здравствуйте! Как твои дела?");
-> То же самое, что и выше
_rpt.SetDataSource(_Data);
-> HasRecords = время ожидания оценки функции истекло. И все после этого
crv_Report.ReportSource = _rpt;
-> DefaultXmlExportSelection = '_rpt.DefaultXmlExportSelection' выдал исключение типа 'System.NullReferenceException'

пожалуйста, обратите внимание:
а) во время проектирования я использую таблицу/базу данных belo для подготовки отчета :
MS OLEDB Provider for SQL Server -> демонстрационная база данных, которая хранит таблицы в соответствии с требуемой структурой данных
Б) на вашем 1-м примере :
rpt_Demo _rpt = новый rpt_Demo()
где я использую :
Документе _rpt = новая документе();
_rpt.Load(сервер.MapPath("rpt_Demo.rpt"));

Вот только diff (я не могу получить доступ к rpt_Demo напрямую, он бросает [тип или имя пространства имен 'rpt_Demo' не может быть найден (вам не хватает директивы using или ссылки на сборку?)]).

Извините за длинный ответ.