CR с визуальной студией 2010 - PullRequest
0 голосов
/ 20 декабря 2011

Мы используем CR с Visual Studio 2010 для нашего приложения.

Ниже приведен код, который я использую для генерации отчета из коллекции объектов, полученных из Webservice.

SampleReport report = new SampleReport();
report.SetDataSource(response.Items);

Затем на уровне WPF я назначаю источник отчета зрителю.следующим образом.

this.reportViewer.ViewerCore.ReportSource = report;

Проблема в том, что он запрашивает у меня учетные данные для входа.Что я считаю интересным, так как вся информация для создания отчета готова для получения из коллекции, назначенной источником данных.

Дайте мне знать, какими могут быть эти учетные данные.или как переопределить поведение.

Примечание. Дизайнер разработал файл .rpt из xml, предоставляемый службой WCF.

Я искал решения на форумах, у них не так много информации, кроме следующих:

TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
                TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
                ConnectionInfo crConnectionInfo = new ConnectionInfo();
                CrystalDecisions.CrystalReports.Engine.Tables CrTables ;


                crConnectionInfo.ServerName = "YOUR SERVER NAME";
                crConnectionInfo.DatabaseName = "YOUR DATABASE NAME";
                crConnectionInfo.UserID = "YOUR DATABASE USERNAME";
                crConnectionInfo.Password = "YOUR DATABASE PASSWORD";

                CrTables = report.Database.Tables;
                foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
                {
                    crtableLogoninfo = CrTable.LogOnInfo;
                    crtableLogoninfo.ConnectionInfo = crConnectionInfo;
                    CrTable.ApplyLogOnInfo(crtableLogoninfo);
                }

Проблема в том, что я могу понять, буду ли я подключаться к БД дляполучить данные ... Но получение данных из коллекции объектов не должно требовать учетных данных.

1 Ответ

0 голосов
/ 09 мая 2012

Я сталкивался с такой проблемой ранее. Что я сделал, чтобы это исправить:

  • В конструкторе Visual Studio убедитесь, что в Crystal Report Viewer не определен источник отчета
  • В конструкторе Crystal Report откройте Обозреватель полей и щелкните правой кнопкой мыши Поля базы данных и убедитесь, что вы выбрали правильное местоположение базы данных с помощью параметра Задать местоположение базы данных, а также попробуйте войти или выключить сервер

Это часть кода для загрузки отчета:

    rptDoc.Load("CrystalReport_Test.rpt")
    rptDoc.SetDataSource(rptDataset)
    CrystalReportViewer1.ReportSource = rptDoc
    CrystalReportViewer1.RefreshReport()

Надеюсь, это поможет.

...