Używam CrystalReportViewer i CrystalReportSource, aby załadować i wyświetlić plik .rpt w mojej aplikacji.Dynamiczna zmiana połączenia Crystal Report
Sytuacja mam to:
Say osoba stworzyła raport kryształowego poza mojej aplikacji i ustawić jego źródła danych do bazy danych A. Następnie używać tego pliku .RPT w mojej aplikacji, ale trzeba go wiązać do innej bazy danych (identycznej z oryginalną pod względem struktury tabeli i nazw kolumn, ale z innym ciągiem połączenia przy użyciu innej nazwy użytkownika i hasła). Jak to zrobić w C#?
Obecnie załadować raportu przy użyciu:
this.CrystalReportSource1.ReportDocument.Load(reportsSubfolder + report.ReportFileName);
//it is here that I need to change the connection data of the report.
Cześć Dusty ... dzięki za pomoc. Zaimplementowałem linie kodu powyżej i sam też przeprowadziłem pewne badania. tak hereis mój kod: private void AssignConnectionInfo (dokument ReportDocument, ConnectionInfo crConnection) { foreach (CrystalDecisions.CrystalReports.Engine.Table crTable w document.Database.Tables) { – suzi167
Oto kod - Niestety trafił w słupek zbyt wcześnie przed: private void AssignConnection (dokument ReportDocument, ConnectionInfo crConnection) { foreach (CrystalDecisions.CrystalReports.Engine.Table crTable w document.Database.Tables) { CrystalDecisions.Shared.TableLogOnInfo tableLogonInfo = crTable.LogOnInfo; tableLogonInfo.ConnectionInfo = crConnection; crTable.ApplyLogOnInfo (tableLogonInfo); CrystalReportViewer1.ReportSource = dokument; CrystalReportViewer1.RefreshReport(); } crConnection ma prawidłowe wartości po wyłączeniu. – suzi167
Formatowanie nie jest zbyt dobre przy okazji ... czy istnieje sposób na sformatowanie mojej wiadomości (jak tagi lub coś w tym stylu)? – suzi167