У меня есть отчет 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 секунд.