Hi there,
You need to apply the logon information to each table in your report. The following code does that:
Code:
myReport = new YourReportType();
SetLogonInfo(myReport);
private void SetLogonInfo(ReportClass myReport)
{
CrystalDecisions.Shared.ConnectionInfo myDbConnectionInfo =
new CrystalDecisions.Shared.ConnectionInfo();
myDbConnectionInfo.ServerName = "YourServerNameOrIp";
myDbConnectionInfo.DatabaseName = "YourDatabase";
myDbConnectionInfo.UserID = "UserName";
myDbConnectionInfo.Password = "Password";
CrystalDecisions.Shared.TableLogOnInfo myTableLogonInfo =
new CrystalDecisions.Shared.TableLogOnInfo();
CrystalDecisions.CrystalReports.Engine.Database myDatabase = myReport.Database;
CrystalDecisions.CrystalReports.Engine.Tables myTables = myDatabase.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table myTable in myTables)
{
myTableLogonInfo = myTable.LogOnInfo;
myTableLogonInfo.ConnectionInfo = myDbConnectionInfo;
myTable.ApplyLogOnInfo(myTableLogonInfo);
}
}
There may be better / quicker or easier ways to do this, but I am not aware of them. This has always worked for me. I think you can leave out the UserID and Password properties of the ConnectionInfo object for integrated security.
HtH,
Imar
---------------------------------------
Imar Spaanjaars
Everyone is unique, except for me.