水晶报表会自动为每个“存储过程中的参数”建立一个“参数字段”,所以这就成了运行时给参数赋值的问题了……
参数字段运行时自定义
[Visual Basic] ' 声明将参数传递给 '查看器控件所需的变量。 Dim paramFields As New ParameterFields() Dim paramField As New ParameterField() Dim discreteVal As New ParameterDiscreteValue() Dim rangeVal As New ParameterRangeValue()
' 第一个参数是具有多个值的离散参数。
' 设置参数字段的名称,它必须 '和报表中的参数相符。 paramField.ParameterFieldName = "客户姓名"
' 设置第一个离散值并将其传递给该参数 discreteVal.Value = "AIC Childrens" paramField.CurrentValues.Add(discreteVal)
' 设置第二个离散值并将其传递给该参数。 ' discreteVal 变量被设置为新值,这样,以前的设置 '就不会被覆盖。 discreteVal = New ParameterDiscreteValue() discreteVal.Value = "Aruba Sport" paramField.CurrentValues.Add(discreteVal)
' 将该参数添加到参数字段集合。 paramFields.Add(paramField)
' 第二个参数为区域值。paramField 变量 '被设置为新值,这样,以前的设置就不会被覆盖。 paramField = New ParameterField()
' 设置参数字段的名称,它必须 '和报表中的参数相符。 paramField.ParameterFieldName = "客户 ID"
' 设置区域的开始值和结束值并将区域传递给该参数。 rangeVal.StartValue = 42 rangeVal.EndValue = 72 paramField.CurrentValues.Add(rangeVal)
' 将第二个参数添加到参数字段集合。 paramFields.Add(paramField)
' 将参数字段集合放入查看器控件。 crystalReportViewer1.ParameterFieldInfo = paramFields
crystalReportViewer1.ReportSource = "c:\reports\my report.rpt"
[C#] // 声明将参数传递给 //查看器控件所需的变量。 ParameterFields paramFields = new ParameterFields (); ParameterField paramField = new ParameterField (); ParameterDiscreteValue discreteVal = new ParameterDiscreteValue (); ParameterRangeValue rangeVal = new ParameterRangeValue ();
// 第一个参数是具有多个值的离散参数。
// 设置参数字段的名称,它必须 //和报表中的参数相符。 paramField.ParameterFieldName = "客户姓名";
// 设置第一个离散值并将其传递给该参数。 discreteVal.Value = "AIC Childrens"; paramField.CurrentValues.Add (discreteVal);
// 设置第二个离散值并将其传递给该参数。 // discreteVal 变量被设置为新值,这样,以前的设置 //就不会被覆盖。 discreteVal = new ParameterDiscreteValue (); discreteVal.Value = "Aruba Sport"; paramField.CurrentValues.Add (discreteVal);
// 将该参数添加到参数字段集合。 paramFields.Add (paramField);
// 第二个参数为区域值。paramField 变量 //被设置为新值,这样,以前的设置就不会被覆盖。 paramField = new ParameterField ();
// 设置参数字段的名称,它必须 //和报表中的参数相符。 paramField.ParameterFieldName = "客户 ID";
// 设置范围的开始值和结束值并将该范围传递给 //该参数。 rangeVal.StartValue = 42; rangeVal.EndValue = 72; paramField.CurrentValues.Add (rangeVal);
// 将第二个参数添加到参数字段集合。 paramFields.Add (paramField);
// 将参数字段集合放入查看器控件。 crystalReportViewer1.ParameterFieldInfo = paramFields; [C++] // 声明将参数传递给 //查看器控件所需的变量。 ParameterFields* paramFields = new ParameterFields (); ParameterField* paramField = new ParameterField (); ParameterDiscreteValue* discreteVal = new ParameterDiscreteValue (); ParameterRangeValue* rangeVal = new ParameterRangeValue ();
// 第一个参数是具有多个值的离散参数。 // 设置参数字段的名称,它必须 //和报表中的参数相符。 paramField->ParameterFieldName = "客户姓名";
// 设置第一个离散值并将其传递给该参数。 String* val = "AIC Childrens"; discreteVal->Value = val; paramField->CurrentValues->Add (discreteVal);
// 设置第二个离散值并将其传递给该参数。 // discreteVal 变量被设置为新值,这样,以前的设置 //就不会被覆盖。 discreteVal = new ParameterDiscreteValue (); val = "Aruba Sport"; discreteVal->Value = val; paramField->CurrentValues->Add (discreteVal);
// 将该参数添加到参数字段集合。 paramFields->Add (paramField);
// 第二个参数为区域值。paramField 变量 //被设置为新值,这样,以前的设置就不会被覆盖。 paramField = new ParameterField ();
// 设置参数字段的名称,它必须 //和报表中的参数相符。 paramField->ParameterFieldName = "客户 ID";
// 设置范围的开始值和结束值并将该范围传递给 //该参数。 rangeVal->StartValue = __box(42); rangeVal->EndValue = __box(72); paramField->CurrentValues->Add (rangeVal);
// 将第二个参数添加到参数字段集合。 paramFields->Add (paramField);
// 将参数字段集合放入查看器控件。 crystalReportViewer1->ParameterFieldInfo = paramFields;
crystalReportViewer1->ExportReport(); 
|