Sign In| Join
Get Help:Ask a Question in our Forums|Report a Bug|More Help Resources
Member
77 Points
15 Posts
Apr 26, 2012 06:15 AM|LINK
Hi
Hope ur using Oracle as database. if So Please check the below mentioned code.
public static ReportDocument ConnectionInfo(ReportDocument rpt, string TableLocation) {
try { ReportDocument crSubreportDocument; string[] strConnection = ConfigurationManager.ConnectionStrings[("AppConn")].ConnectionString.Split(new char[] { ';' }); Database oCRDb = rpt.Database; Tables oCRTables = oCRDb.Tables; CrystalDecisions.CrystalReports.Engine.Table oCRTable = default(CrystalDecisions.CrystalReports.Engine.Table); TableLogOnInfo oCRTableLogonInfo = default(CrystalDecisions.Shared.TableLogOnInfo); ConnectionInfo oCRConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo();
oCRConnectionInfo.ServerName = strConnection[0].Split(new char[] { '=' }).GetValue(1).ToString(); oCRConnectionInfo.Password = strConnection[2].Split(new char[] { '=' }).GetValue(1).ToString(); oCRConnectionInfo.UserID = strConnection[1].Split(new char[] { '=' }).GetValue(1).ToString();
for (int i = 0; i < oCRTables.Count; i++) { oCRTable = oCRTables[i]; oCRTableLogonInfo = oCRTable.LogOnInfo; oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo; oCRTable.ApplyLogOnInfo(oCRTableLogonInfo); oCRTable.Location = TableLocation + "." + oCRTable.Location; }
for (int i = 0; i < rpt.Subreports.Count; i++) { { crSubreportDocument = rpt.OpenSubreport(rpt.Subreports[i].Name); oCRDb = crSubreportDocument.Database; oCRTables = oCRDb.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table aTable in oCRTables) { oCRTableLogonInfo = aTable.LogOnInfo; oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo; aTable.ApplyLogOnInfo(oCRTableLogonInfo); aTable.Location = TableLocation + "." + aTable.Location; }
}
} catch (Exception ex) { //if (ExceptionPolicy.HandleException(ex, "General")) // throw; } return rpt; }
The parameter TableLocation U have to pass the Owner name of the Schema. for example
if Your table name is Employee and the Schema user name is HRS. Pass HRS as the TableLocation. coz in Crystal report we are using only the table name.
Hope it hepls
Madhuraj.M
madhurajm@gmail.com
Bhavyashri
Member
77 Points
15 Posts
Re: Problem in Deploying crystal Report On Server
Apr 26, 2012 06:15 AM|LINK
Hi
Hope ur using Oracle as database. if So Please check the below mentioned code.
public static ReportDocument ConnectionInfo(ReportDocument rpt, string TableLocation)
{
try
{
ReportDocument crSubreportDocument;
string[] strConnection = ConfigurationManager.ConnectionStrings[("AppConn")].ConnectionString.Split(new char[] { ';' });
Database oCRDb = rpt.Database;
Tables oCRTables = oCRDb.Tables;
CrystalDecisions.CrystalReports.Engine.Table oCRTable = default(CrystalDecisions.CrystalReports.Engine.Table);
TableLogOnInfo oCRTableLogonInfo = default(CrystalDecisions.Shared.TableLogOnInfo);
ConnectionInfo oCRConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo();
oCRConnectionInfo.ServerName = strConnection[0].Split(new char[] { '=' }).GetValue(1).ToString();
oCRConnectionInfo.Password = strConnection[2].Split(new char[] { '=' }).GetValue(1).ToString();
oCRConnectionInfo.UserID = strConnection[1].Split(new char[] { '=' }).GetValue(1).ToString();
for (int i = 0; i < oCRTables.Count; i++)
{
oCRTable = oCRTables[i];
oCRTableLogonInfo = oCRTable.LogOnInfo;
oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo;
oCRTable.ApplyLogOnInfo(oCRTableLogonInfo);
oCRTable.Location = TableLocation + "." + oCRTable.Location;
}
for (int i = 0; i < rpt.Subreports.Count; i++)
{
{
crSubreportDocument = rpt.OpenSubreport(rpt.Subreports[i].Name);
oCRDb = crSubreportDocument.Database;
oCRTables = oCRDb.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table aTable in oCRTables)
{
oCRTableLogonInfo = aTable.LogOnInfo;
oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo;
aTable.ApplyLogOnInfo(oCRTableLogonInfo);
aTable.Location = TableLocation + "." + aTable.Location;
}
}
}
}
catch (Exception ex)
{
//if (ExceptionPolicy.HandleException(ex, "General"))
// throw;
}
return rpt;
}
The parameter TableLocation U have to pass the Owner name of the Schema. for example
if Your table name is Employee and the Schema user name is HRS. Pass HRS as the TableLocation. coz in Crystal report we are using only the table name.
Hope it hepls
Madhuraj.M
madhurajm@gmail.com