Crystal Reports - сначала измените соединение с базой данных, не загружая отчет - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть отчет Crystal, основанный на хранимой процедуре.Он был разработан несколько лет назад, и сервер больше не действителен.Несколько пользователей используют этот отчет и имеют свою собственную базу данных на своих собственных серверах.

Даже если я пытаюсь изменить соединение с базой данных в коде (C #), мне все равно придется подождать 1 минуту и ​​15 секунд, чтобы отчетЗагрузка и время ожидания.

Я погуглил эту проблему, но найденные мной предложения не работают.

Мой оригинальный код:

_document = new ReportDocument();
//This Load takes 1 minute and 15 seconds!!!
_document.Load(filePath);
IConnectionInfo dataSourceConnection = _document.DataSourceConnections[0];
_document.SetParameterValue("@ali_id", worklistID);
dataSourceConnection.SetLogon(_environment.Username, _environment.Password);
dataSourceConnection.SetConnection(_environment.DatabaseServer, _environment.DatabaseName, false);

Если я попробую этот код:

_document = new ReportDocument();
// Now, setting FileName takes 1 minute 15 seconds!!
_document.FileName = filePath;
foreach(Table table in _document.Database.Tables) {
    table.LogOnInfo.ConnectionInfo.UserID = _environment.Username;
    table.LogOnInfo.ConnectionInfo.Password = _environment.Password;
    table.LogOnInfo.ConnectionInfo.ServerName = _environment.DatabaseServer;
    table.LogOnInfo.ConnectionInfo.DatabaseName = _environment.DatabaseName;                    
}
foreach(ReportDocument sr in _document.Subreports) {
    sr.SetDatabaseLogon(_environment.Username, _environment.Password, _environment.DatabaseServer, _environment.DatabaseName);
}
_document.SetDatabaseLogon(_environment.Username, _environment.Password, _environment.DatabaseServer, _environment.DatabaseName);
_document.Load(filePath);

Я пытался удалить подотчеты из отчета, чтобы сделать его как можно более простым, но безуспешно.

Не могу найти какую-либо настройку времени ожидания внапример, чтобы изменить отчет на 15 секунд.

Я использую Crystal Reports XI R2 для разработки отчета.

Если я изменю отчет на использование существующего сервера базы данных, загрузка отчета будет равна 1секунда.

Итак, я хотел бы изменить сервер базы данных, не загружая отчет и не ожидая истечения времени ожидания, ИЛИ не уменьшив время ожидания до 15 секунд.

...