tazarvmmr
یک شنبه 28 آذر 1389, 19:53 عصر
سلام به همه
من توی سایت خیلی دنبال اطلاعات درست و روشنی در مورد ارتباط با کریستال ریپورت گشتم و حتی یک سوال هم مطرح کردم که کسانی که در این مورد تجربه دارن جواب بدن و مشکل من حل بشه ولی متاسفانه بعد از گذشت شاید یکماه یا بیشتر کسی پاسخی نداد که البته من اینو به فال نیک میگیرم چون باعث شد که خودم برم دنبالش و این مبحثو یاد بگیرم.
حالا یک کد اینجا میگزارم برای کسانی که در کار با کریستال ریپورت مشکل دارن و مثلا ارور Login Fail یا Load Error میگیرن:
با استفاده از این کد شما قاعدتا باید بتونید گزارشهای متفاوتی رو در یک صفحه باز کنین، پارامترهایی رو به کریستال ریپورت بفرستید و با خطای Login Fail که گویا گریبان گیر خیلی ها هم هست مواجه نشید.
String reportFilePath="my report name includin it's path";
ReportDocument myReport = new ReportDocument();
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "my parameter name";
paramDiscreteValue.Value = "my parameter value";
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
myReport.Load(Server.MapPath(reportFilePath));
crConnectionInfo.ServerName = ServerName;
crConnectionInfo.DatabaseName = "my database name ";
crConnectionInfo.UserID = "database user name";
crConnectionInfo.Password = "database password";
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
CrystalReportViewer1.ReportSource = myReport;
CrystalReportViewer1.RefreshReport();
CrystalReportViewer1.ParameterFieldInfo = paramFields;
امیدوارم به دردتون بخوره
من توی سایت خیلی دنبال اطلاعات درست و روشنی در مورد ارتباط با کریستال ریپورت گشتم و حتی یک سوال هم مطرح کردم که کسانی که در این مورد تجربه دارن جواب بدن و مشکل من حل بشه ولی متاسفانه بعد از گذشت شاید یکماه یا بیشتر کسی پاسخی نداد که البته من اینو به فال نیک میگیرم چون باعث شد که خودم برم دنبالش و این مبحثو یاد بگیرم.
حالا یک کد اینجا میگزارم برای کسانی که در کار با کریستال ریپورت مشکل دارن و مثلا ارور Login Fail یا Load Error میگیرن:
با استفاده از این کد شما قاعدتا باید بتونید گزارشهای متفاوتی رو در یک صفحه باز کنین، پارامترهایی رو به کریستال ریپورت بفرستید و با خطای Login Fail که گویا گریبان گیر خیلی ها هم هست مواجه نشید.
String reportFilePath="my report name includin it's path";
ReportDocument myReport = new ReportDocument();
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "my parameter name";
paramDiscreteValue.Value = "my parameter value";
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
myReport.Load(Server.MapPath(reportFilePath));
crConnectionInfo.ServerName = ServerName;
crConnectionInfo.DatabaseName = "my database name ";
crConnectionInfo.UserID = "database user name";
crConnectionInfo.Password = "database password";
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
CrystalReportViewer1.ReportSource = myReport;
CrystalReportViewer1.RefreshReport();
CrystalReportViewer1.ParameterFieldInfo = paramFields;
امیدوارم به دردتون بخوره