Динамическая загрузка.rpt в C#

try
{
     string spath = AppDomain.CurrentDomain.BaseDirectory;
     spath += "myReportFileName.rpt";

     ReportDocument cryRpt = new ReportDocument();
     cryRpt.Load(spath);

     cryRpt.DataSourceConnections[0].SetConnection("Server Name", "DB Name", true);
     cryRpt.DataSourceConnections[0].IntegratedSecurity = true;
     cryRpt.SetParameterValue("Field Name", "Value");
     cryRpt.RecordSelectionFormula = "Correct Formula";

     crystalReportViewer1.ReportSource = cryRpt;
     crystalReportViewer1.Refresh();
}
catch (System.Exception ex)
{
     MessageBox.Show("Error: " + ex.Message);
}

В моей системе этот код в порядке. Но в другой системе есть ошибка. Я установил во всех других системах Crystal Report правильно.

Этот код выполнялся с ошибкой:

crystaldecisions.crystalreports.engine.reportdocument 'вызвала исключение

Затем я выполнил CRRuntime_32bit_13_0_3.msi в клиентской системе. Эта ошибка решена, но другая проблема:

После запуска кода появляется диалоговое окно "Вход в базу данных", и я не подключаюсь к базе данных автоматически и не просматриваю файл отчета!!!

Пожалуйста, помогите мне, что мне делать?

1 ответ

Я решил свою проблему.:) когда я создавал проект, в моей системе была установлена ​​версия crystalReport 10. для этого я выбрал "crystalReportViewer version 10" из Toolbox Item. Я удалил версию 10 отчета Crystal и установил версию 11. На следующем шаге я удалил crystalReportViewer из набора инструментов Visual Studio, а затем снова выбрал "CrystalReportViewer version 11" из элемента Toolbox.

Теперь мой проект и созданный exe-файл выполняются корректно во всех системах, которые имеют Crystal Report версии 10 позже.

благодарю вас! @rene:)

Другие вопросы по тегам