苏飞论坛

标题: c# winform 水晶报表如何给2个离散值参数赋值? [打印本页]

作者: 随风踏雪    时间: 2012-12-21 11:23
标题: c# winform 水晶报表如何给2个离散值参数赋值?
如题  一个赋值会,两个赋值 ,就有一个必弹出来设置参数值,我想用代码给赋值,不知道如何做?

作者: 站长苏飞    时间: 2012-12-21 11:26
你可以参考这个,http://www.sufeinet.com/thread-176-1-1.html
作者: 随风踏雪    时间: 2012-12-21 11:38
这个我都看过了,我把上面给离散值赋值的那几行复制,给第二个离散值赋值,就会弹出来一个设置参数值的对话框,这是为什么呢?
作者: 站长苏飞    时间: 2012-12-21 11:52
看下你写的代码,还有就是我之前的方法有点老了,建议使用List一次传多个值的方法,要不你把代码贴一下看看吧先
作者: 随风踏雪    时间: 2012-12-21 12:03
ParameterFields paramFields = new ParameterFields();
            ParameterField paramField = new ParameterField();
            ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
            //   第一个参数是具有多个值的离散参数。设置参数字段的名称,它必须和报表中的参数相符。   
            paramField.ParameterFieldName = "ARC_I_ID";
            //   设置离散值并将其传递给该参数。
            discreteVal.Value = id;
            paramField.CurrentValues.Add(discreteVal);
            //   将该参数添加到参数字段集合。
            paramFields.Add(paramField);
            //   将参数字段集合放入查看器控件。   
            crystalReportViewer.ParameterFieldInfo = paramFields;

跟这个一模一样的,我想给第二个离散值参数赋值 我就这样写:
ParameterFields paramFields = new ParameterFields();
            ParameterField paramField = new ParameterField();
            ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
            //   第一个参数是具有多个值的离散参数。设置参数字段的名称,它必须和报表中的参数相符。   
            paramField.ParameterFieldName = "第二个参数值";
            //   设置离散值并将其传递给该参数。
            discreteVal.Value = 123123;
            paramField.CurrentValues.Add(discreteVal);
            //   将该参数添加到参数字段集合。
            paramFields.Add(paramField);
            //   将参数字段集合放入查看器控件。   
            crystalReportViewer.ParameterFieldInfo = paramFields;

但会弹出来给参数赋值的界面,如果就写一个参数,就不会弹出,什么问题?
作者: 随风踏雪    时间: 2012-12-21 13:57
C:\Users\John\Pictures\QQ截图20121221092741.png
作者: 随风踏雪    时间: 2012-12-21 13:59
看 附件 图片  就是弹出来这样的对话框
作者: 站长苏飞    时间: 2012-12-21 14:13
你最好是一次性执行到这里 //   将参数字段集合放入查看器控件。   
            crystalReportViewer.ParameterFieldInfo = paramFields;
不要分两步,把两个参数合并一下不就完事了,这种情况没有用过,不太清楚。
作者: 随风踏雪    时间: 2012-12-21 16:04
合并?如何合并?能给代码么?
作者: 随风踏雪    时间: 2012-12-21 16:06
  ParameterFields paramFields = new ParameterFields();
            ParameterField paramField = new ParameterField();        
            ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
       //     ParameterRangeValue rangeVal = new ParameterRangeValue();
            //   第一个参数是具有多个值的离散参数。设置参数字段的名称,它必须和报表中的参数相符。   
            paramField.ParameterFieldName = "姓名";         
paramField.ParameterFieldName = "年龄";      
            //   设置第一个离散值并将其传递给该参数。   
            discreteVal.Value = "AIC   Childrens";     
discreteVal.Value = "12";         
            paramField.CurrentValues.Add(discreteVal);
            paramFields.Add(paramField);
            

这样?
作者: weiyz2011    时间: 2012-12-21 16:10
没用过水晶报表,现在做的报表使用microsoft report的,帮顶吧
作者: 站长苏飞    时间: 2012-12-21 16:11
随风踏雪 发表于 2012-12-21 16:06
ParameterFields paramFields = new ParameterFields();
            ParameterField paramField = new  ...

具体代码没,我的意思就是把要传的参数一下传过去,不要分开两步paramFields 是可以放多个参数的




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4