Nip*_*pun 4 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);
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;
Run Code Online (Sandbox Code Playgroud)
获取和设置数据集部分正在工作但传递参数部分不起作用
几周以来我一直很头疼...我必须确切地说我在Crystal Reports Designer中设置了一个sql查询.因此,我没有像你那样使用dataTable,所以你必须考虑这一点.
那么,@ campagnolo_1建议你:
ReportDocument myDataReport = new ReportDocument();
myDataReport.Load(@"C:\Reports\Report.rpt");
myDataReport.SetParameterValue("MyParameter1", "Hello1");
myDataReport.SetParameterValue("MyParameter2", "Hello2");
myDataReport.SetParameterValue("MyParameter3", "Hello3");
Run Code Online (Sandbox Code Playgroud)
这是简短而甜蜜的解决方案.但是,在这之后,你必须确保你已经创建MyParameter1,MyParameter2并MyParameter3在Crystal Reports设计String类型.
重要的是要提到在设置参数之前必须加载报告SetParameterValue.
如果您的参数名称是MyParameter1,那么不要@像这样在前面添加:
myDataReport.SetParameterValue("@ MyParameter1","Hello1"); //你的程序会崩溃
如果你有,The parameter is incorrect那么你应该确保你给出的参数值的类型与参数类型完全相同.例如,如果您有一个StartDate类型为Date 的参数,那么请确保您将给出的值是Date类型并具有正确的日期格式.
此外,您已经讨论过动态或静态字段.在您的情况下,我认为您手动输入值,然后这是静态字段.
希望这对你有所帮助.
| 归档时间: |
|
| 查看次数: |
39134 次 |
| 最近记录: |