zoukankan      html  css  js  c++  java
  • 如何向水晶报表数据源中的存储过程传参数……

    水晶报表会自动为每个“存储过程中的参数”建立一个“参数字段”,所以这就成了运行时给参数赋值的问题了……

    参数字段运行时自定义

    [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();

    记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的!
  • 相关阅读:
    3.STM32复位系统
    3.CM3内核架构-寄存器
    2.STM32启动文件
    java线程池
    java多线程
    动态规划(dynamic programming)(二、最优子问题与重叠子问题,以及与贪心的区别)
    SOAP协议
    动态规划(dynamic programming)(一、简介,举例)
    红黑树-RBT(二、基本操作之插入)
    红黑树-RBT(二、基本操作之左旋)
  • 原文地址:https://www.cnblogs.com/yuanermen/p/657529.html
Copyright © 2011-2022 走看看