Hi, I am creating a report and inserting values by SetParameterValue() function.
When the parameter is a string it's work fine(When I am show this reports on a viewer at other application),
When some of the parameters are a number it'sask my to insert this parameters again(when I am show it) and makeme to login to the database.(Which not happen with string parameter only).
My code is below, Can any one have any idea?
Thanks,
Amos
//////////////////////////////////////////////////////
public class reportGenerator
{
public reportGenerator(string reportTemplate, string reportResults, ListDictionary parameters)
{
//Instantiate variables
ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(reportTemplate);
// Database Access
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = "ServerName";
connectionInfo.DatabaseName = "DBName";
connectionInfo.UserID = "UserId";
connectionInfo.Password = "UserPassword";
connectionInfo.IntegratedSecurity = false;
SetDBLogonForReport(connectionInfo, reportDocument);
reportDocument.SetDatabaseLogon("UserId", "UserPassword", "ServerName", "DBName", false);
foreach (System.Collections.DictionaryEntry param in parameters)
reportDocument.SetParameterValue((string)param.Key, param.Value);
reportDocument.SaveAs(reportResults, true);
}
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
{
Tables tables = reportDocument.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}
}