У меня есть проблема, которая отлично описана здесь (http://www.bokebb.com/dev/english/1972/posts/197270504.shtml):
Сценарий:
Умное клиентское приложение для Windows и CrystalReportViewer для Windows.
Использование ServerFileReports для доступа к отчетам через централизованное и отключенное местоположение папки.
При доступе к отчету, который был разработан для DB_DEV, и попытке изменить его LogonInformation через CrystalReportViewer, чтобы он указывал на DB_UAT, кажется, что он фактически не использует измененную информацию.
Это всегда идет вразрез с информацией DB_DEV.
Любая идея, как изменить соединение с базой данных и информацию для входа в систему для ServerFileReport ????
Вот код:
ОТ ПРЕЗЕНТА:
// event that fires when the views run report button is pressed
private void RunReport(object sender, EventArgs e)
{
this.view.LoadReport(Report, ConnectionInfo);
}
protected override object Report
{
get
{
ServerFileReport report = new ServerFileReport();
report.ObjectType = EnumServerFileType.REPORT;
report.ReportPath = @"\Report2.rpt";
report.WebServiceUrl = "http://localhost/CrystalReportsWebServices2005/ServerFileReportService.asmx";
return report;
}
}
private ConnectionInfo ConnectionInfo
{
get
{
ConnectionInfo info = new ConnectionInfo();
info.ServerName = servername;
info.DatabaseName = databasename;
info.UserID = userid;
info.Password = password;
return info;
}
}
ON THE VIEW WITH THE CRYSTAL REPORT VIEWER:
public void LoadReport(object report, ConnectionInfo connectionInfo)
{
viewer.ReportSource = report;
SetDBLogon(connectionInfo);
}
private void SetDBLogon(ConnectionInfo connectionInfo)
{
foreach (TableLogOnInfo logOnInfo in viewer.LogOnInfo)
{
logOnInfo.ConnectionInfo = connectionInfo;
}
}
Кто-нибудь знает, как решить проблему?