Я внедряю форму Windows, и при нажатии кнопки она должна напечатать отчет с CrystalReportViewer.Я разрабатываю его в Visual Studio 2017, и на моей машине установлены CR CR 32- и 64-разрядные.
Это мой код:
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;
using CrystalDecisions.Shared;
..............
..............
ConnectionInfo crconnectioninfo = new ConnectionInfo();
ReportDocument cryrpt = new ReportDocument();
TableLogOnInfos crtablelogoninfos = new TableLogOnInfos();
TableLogOnInfo crtablelogoninfo = new TableLogOnInfo();
string path = "my//report//path.rpt";
cryrpt.Load(path);
Tables CrTables;
crconnectioninfo.ServerName = "MyServerName";
crconnectioninfo.DatabaseName = "MyDatabaseName";
crconnectioninfo.UserID = "MyUserName";
crconnectioninfo.Password = "MyPassword";
CrTables = cryrpt.Database.Tables;
foreach (Table crtable in CrTables)
{
crtablelogoninfo = crtable.LogOnInfo;
crtablelogoninfo.ConnectionInfo = crconnectioninfo;
crtable.ApplyLogOnInfo(crtablelogoninfo);
}
crystalReportViewer1.ReportSource = cryrpt;
Он отлично работает на моей машинеи некоторые другие.
Когда я создаю его в режиме выпуска и устанавливаю приложение на другие машины, кто-то работает, а кто-то нет.Ошибка в том, что отчет не может подключиться к базе данных.
Я попытался пропинговать сервер, и это нормально.
Вот трассировка стека исключения:
Stack Trace: in CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetLastPageNumber(RequestContext pRequestContext)
in CrystalDecisions.ReportSource.EromReportSourceBase.GetLastPageNumber(ReportPageRequestContext reqContext)
Inner Source: rptcontrollers.dll
HResult: 2147217393
На всех машинах установлены CRRuntime (то же самое я имею на моем!).Может быть, я скучаю по некоторым зависимостям, но не знаю, с чем.
Я заметил, что это не работает на машинах, на которых не установлена Visual Studio.Но я не могу установить Visual Studio на все ПК.
Я не могу найти похожую проблему в Интернете.Любая помощь будет оценена.
Заранее спасибо.