向水晶报表数据源存储过程传参数2004-6-16作者:haibodotnet转载自:CSDN网友评论1条点击进入论坛水晶报表会自动为每个“存储过程中的参数”建立一个“参数字段”,所以这就成了运行时给参数赋值的问题了……参数字段运行时自定义[VisualBasic]''声明将参数传递给''查看器控件所需的变量。DimparamFieldsAsNewParameterFields()DimparamFieldAsNewParameterField()DimdiscreteValAsNewParameterDiscreteValue()DimrangeValAsNewParameterRangeValue()''第一个参数是具有多个值的离散参数。''设置参数字段的名称,它必须''和报表中的参数相符。paramField.ParameterFieldName=客户姓名''设置第一个离散值并将其传递给该参数discreteVal.Value=AICChildrensparamField.CurrentValues.Add(discreteVal)''设置第二个离散值并将其传递给该参数。''discreteVal变量被设置为新值,这样,以前的设置''就不会被覆盖。discreteVal=NewParameterDiscreteValue()discreteVal.Value=ArubaSportparamField.CurrentValues.Add(discreteVal)''将该参数添加到参数字段集合。paramFields.Add(paramField)''第二个参数为区域值。paramField变量''被设置为新值,这样,以前的设置就不会被覆盖。paramField=NewParameterField()''设置参数字段的名称,它必须''和报表中的参数相符。paramField.ParameterFieldName=客户ID''设置区域的开始值和结束值并将区域传递给该参数。rangeVal.StartValue=42rangeVal.EndValue=72paramField.CurrentValues.Add(rangeVal)''将第二个参数添加到参数字段集合。paramFields.Add(paramField)''将参数字段集合放入查看器控件。crystalReportViewer1.ParameterFieldInfo=paramFieldscrystalReportViewer1.ReportSource=c:\reports\myreport.rpt[C#]//声明将参数传递给file://查看器控件所需的变量。ParameterFieldsparamFields=newParameterFields();ParameterFieldparamField=newParameterField();ParameterDiscreteValuediscreteVal=newParameterDiscreteValue();ParameterRangeValuerangeVal=newParameterRangeValue();//第一个参数是具有多个值的离散参数。//设置参数字段的名称,它必须file://和报表中的参数相符。paramField.ParameterFieldName=客户姓名;//设置第一个离散值并将其传递给该参数。discreteVal.Value=AICChildrens;paramField.CurrentValues.Add(discreteVal);//设置第二个离散值并将其传递给该参数。//discreteVal变量被设置为新值,这样,以前的设置file://就不会被覆盖。discreteVal=newParameterDiscreteValue();discreteVal.Value=ArubaSport;paramField.CurrentValues.Add(discreteVal);//将该参数添加到参数字段集合。paramFields.Add(paramField);//第二个参数为区域值。paramField变量file://被设置为新值,这样,以前的设置就不会被覆盖。paramField=newParameterField();[下一页]//设置参数字段的名称,它必须file://和报表中的参数相符。paramField.ParameterFieldName=客户ID;//设置范围的开始值和结束值并将该范围传递给file://该参数。rangeVal.StartValue=42;rangeVal.EndValue=72;paramField.CurrentValues.Add(rangeVal);//将第二个参数添加到参数字段集合。paramFields.Add(paramField);//将参数字段集合放入查看器控件。crystalReportViewer1.ParameterFieldInfo=paramFields;[C++]//声明将参数传递给file://查看器控件所需的变量。ParameterFields*paramFields=newParameterFields();ParameterField*paramField=newParameterField();ParameterDiscreteValue*discreteVal=newParameterDiscreteValue();ParameterRangeValue*rangeVal=newParameterRangeValue();//第一个参数是具有多个值的离散参数。//设置参数字段的名称,它必须file://和报表中的参数相符。paramField-ParameterFieldName=客户姓名;//设置第一个离散值并将其传递给该参数。String*val=AICChildrens;discreteVal-Value=val;paramField-CurrentValues-Add(discreteVal);//设置第二个离散值并将其传递给该参数。//discreteVal变量被设置为新值,这样,以前的设置file://就不会被覆盖。discreteVal=newParameterDiscreteValue();val=ArubaSport;discreteVal-Value=val;paramField-CurrentValues-Add(discreteVal);//将该参数添加到参数字段集合。paramFields-Add(paramField);//第二个参数为区域值。paramField变量file://被设置为新值,这样,以前的设置就不会被覆盖。paramField=newParameterField();//设置参数字段的名称,它必须file://和报表中的参数相符。paramField-ParameterFieldName=客户ID;//设置范围的开始值和结束值并将该范围传递给file://该参数。rangeVal-StartValue=__box(42);rangeVal-EndValue=__box(72);paramField-CurrentValues-Add(rangeVal);//将第二个参数添加到参数字段集合。paramFields-Add(paramField);//将参数字段集合放入查看器控件。crystalReportViewer1-ParameterFieldInfo=paramFields;crystalReportViewer1-ExportReport();