C# 在C中向crystal报表传递参数的步骤#
你能告诉我以C#win格式将参数传递给crystal reports 13的步骤是什么吗 我的代码:C# 在C中向crystal报表传递参数的步骤#,c#,visual-studio-2010,crystal-reports,C#,Visual Studio 2010,Crystal Reports,你能告诉我以C#win格式将参数传递给crystal reports 13的步骤是什么吗 我的代码: //getting and set dataset to report string sql = "select * from dbo.Trading_Order"; DataRetriever dr = new DataRetriever(); dr.getValueFromCustomer(sql); Da
//getting and set dataset to report
string sql = "select * from dbo.Trading_Order";
DataRetriever dr = new DataRetriever();
dr.getValueFromCustomer(sql);
DataTable dtSum = dr.getDataTable();
dsMyReprt k = new dsMyReprt();
k.Tables.Remove("dtMyTable");
dtSum.TableName = "dtMyTable";
k.Tables.Add(dtSum);
CrystalReport1 myDataReport = new CrystalReport1();
//pass parameter
ParameterFields paramFields = new ParameterFields();
// ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@DTotal";
paramDiscreteValue.Value = tot;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@name";
paramDiscreteValue.Value = name;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
crystalReportViewer1.ParameterFieldInfo = paramFields;
myDataReport.SetDataSource(k);
crystalReportViewer1.ReportSource = myDataReport;
获取和设置数据集部分正在工作
但是传递参数部分不起作用了为什么不这样尝试并保存一些代码呢
ReportDocument myDataReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
myDataReport.Load(@"C:\Reports\Report.rpt");
myDataReport.SetParameterValue("MyParameter1", "Hello1");
myDataReport.SetParameterValue("MyParameter2", "Hello2");
myDataReport.SetParameterValue("MyParameter3", "Hello3");
几个星期以来,我都很头疼。。。我必须在Crystal Reports Designer中设置sql查询。因此,我没有像你那样使用DATABLE,所以你必须考虑这个问题。 好吧,@campagnolo_1建议你:
ReportDocument myDataReport = new ReportDocument();
myDataReport.Load(@"C:\Reports\Report.rpt");
myDataReport.SetParameterValue("MyParameter1", "Hello1");
myDataReport.SetParameterValue("MyParameter2", "Hello2");
myDataReport.SetParameterValue("MyParameter3", "Hello3");
这是一个简短而甜蜜的解决方案。但是,在此之后,您必须确保已在Crystal Reports Designer中创建了字符串类型的MyParameter1
、MyParameter2
和MyParameter3
SetParameterValue
设置参数之前,必须加载报告MyParameter1
,则不要像这样在前面添加@
:
myDataReport.SetParameterValue(“@MyParameter1”,“Hello1”);//你的程序将崩溃参数不正确
,则应确保给出的参数值类型与参数类型完全相同。例如,如果您有一个参数StartDate
作为日期类型,那么请确保您将给出的值是日期类型,并且具有正确的日期格式希望这对您有所帮助。您现在可能已经找到了解决方案。但这可能会有所帮助。您可以输入作为参数传递的值
什么东西不管用?gleng:工作的意思是,我在crystal报表中添加了我的数据集表列,它在加载时会显示出来。但是在我尝试传递该参数之后,出现了一个错误“参数不正确”。报表对象上不是有一个“SetParameterValue”方法吗?你是说这个吗?myDataReport.SetParameterValue(“@Total”,120000);myDataReport.SetParameterValue(“@name”,“Nipun”);我也试过了,但是有相同的错误调用“参数不正确”我需要在CrystalReport1.rpt文件中做任何更改吗?不。。它要求在我运行程序后为参数输入值。。我是否需要在CrystalReport1.rpt文件中进行任何更改?您必须确保参数名称的拼写与报告中的拼写完全相同。是的,相同。我是否需要将该值类型更改为静态或动态?我需要更改任何公式字段吗?谢谢你3年后,我在谷歌上搜索了SetParameterValue崩溃,发现你不应该把@放在参数前面(第2点)。谢谢