Изменение баз данных в Crystal Reports для .NET - PullRequest
0 голосов
/ 23 января 2009

У меня есть проблема, которая отлично описана здесь (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;
}
}

Кто-нибудь знает, как решить проблему?

Ответы [ 3 ]

0 голосов
/ 23 января 2009

В вашем объекте CrystalReportViewer вы должны установить

AutoDataBind="true"
0 голосов
/ 26 января 2009

Не нужно ли просматривать все объекты «databaseTable» отчета, чтобы перенаправить соответствующие соединения? Вы найдете здесь мою версию VB 'переключателя базы данных' ...

0 голосов
/ 23 января 2009

Я знаю, что это не тот программный ответ, который вы ищете, но:

Одна вещь, которая помогает с такими вещами, - это не создание отчетов, напрямую связанных с базой данных, а сначала создание «Словаря данных» для Crystal Reports (это делается в конструкторе отчетов). Затем вы связываете все свои отчеты с этим словарем, который сопоставляет поля с соответствующими базами данных.

Сделано так, у вас есть только одно место для изменения схемы базы данных / информации о соединении для всех отчетов.

Кроме того, в вашем конструкторе отчетов установите отчет, чтобы не кэшировать результаты (извините, я не помню точную опцию). В отчеты могут быть включены их первоначальные результаты или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...