步骤来传递参数在C#水晶报表 [英] Steps to Pass parameters to crystal reports in C#

查看:136
本文介绍了步骤来传递参数在C#水晶报表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你能告诉我什么是参数传递给水晶的步骤在C#赢形式报告13 ..

Can you tell me what are the steps to pass parameters to crystal reports 13 in C# win form..

我的代码:

        //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;



获取和设定数据集部分工作
,但传递参数的部分不能正常工作。

getting and set dataset part is working but passing parameters part is not working

推荐答案

我得到了很大的头痛几个星期...我有精确的,我设置了Crystal Reports设计一个SQL查询。因此,像你这样,我没有使用一个DataTable,所以你必须要考虑到。

I got big headaches with that for weeks... I have to precise that I set a sql query in the Crystal Reports Designer. Thus, I didn't use a dataTable like you did, so you have to consider that.

好吧,@ campagnolo_1建议你:

Well, @campagnolo_1 suggested you :

ReportDocument myDataReport = new ReportDocument();
myDataReport.Load(@"C:\Reports\Report.rpt");

myDataReport.SetParameterValue("MyParameter1", "Hello1");
myDataReport.SetParameterValue("MyParameter2", "Hello2");
myDataReport.SetParameterValue("MyParameter3", "Hello3");

这是简短而亲切的解决方案。但是,在此之后,你必须确保你已经创建 MyParameter1 MyParameter2 MyParameter3 在Crystal Reports设计String类型。

This is the short and sweet solution. But, following this, you have to make sure you have created MyParameter1, MyParameter2 and MyParameter3of type String in the Crystal Reports Designer.


  1. 据一提的是你有 SetParameterValue

如果您的参数的名称是 MyParameter1 ,那么不添加 @ 面前是这样的:

If your parameter's name is MyParameter1, then don't add a @ in front like this :

myDataReport.SetParameterValue(@ MyParameter1,Hello1); //你的程序崩溃。

myDataReport.SetParameterValue("@MyParameter1", "Hello1"); // Your program will crash.

如果你有参数不正确,那么你应该确保你给参数值的类型是完全一样的参数类型。例如,如果你有一个参数开始日期类型日期,然后确保你给的值是Date类型的,具有正确的日期格式。

If you got The parameter is incorrect then you should make sure the type of parameter value you gave is exactly the same as the parameter type. For example, if you have a parameter StartDate as type Date, then make sure the value you'll give is of type Date and has the right date format.

另外,你刚才讲的动态或静态字段。在你的情况,我觉得你手动输入值,那么这是静态字段。

Also, you have talked about dynamic or static field. In your case, I think you enter values manually, then this is static field.

希望这可以帮助你。

这篇关于步骤来传递参数在C#水晶报表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆