水晶报表参数编程示例代码

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 haibodotnet 的 blog

    imports crystaldecisions.shared
    imports crystaldecisions.crystalreports.engine

    private const rpt_name as string = "customerorders.rpt"
    private const parameter_field_name as string = "customerid"

    private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
        '在此处放置初始化页的用户代码

        ' 设置报表源
        report = new reportdocument()
        report.load(getreportpath(rpt_name))

        ' 设置参数
        crvorders.parameterfieldinfo = getparameterinfo(ctype(session("list"), listitemcollection))

        crvorders.reportsource = report

        ' 显示报表
        crvorders.databind()

    end sub
   
    '----------------------------------------------------------------
    ' function getparameterinfo:
    '   从复选框列表获取参数字段信息
    ' returns:
    '   参数字段
    ' parameters:
    '   [in]  list: 复选框列表
    ' throws:
    '  
    ' preconditions:
    '  
    '----------------------------------------------------------------
    private function getparameterinfo(byval list as listitemcollection) as parameterfields

        dim item as listitem
        dim isempty as boolean = true
        dim itemcount as integer = 0

        ' 声明将参数传递给查看器控件所需的变量。
        dim paramfields as new parameterfields()
        dim paramfield as new parameterfield()
        dim discreteval as new parameterdiscretevalue()

        ' 参数是具有多个值的离散参数。

        ' 设置参数字段的名称,它必须和报表中的参数相符。
        paramfield.parameterfieldname = parameter_field_name

        for each item in list
            if item.selected then
                isempty = false
                itemcount += 1

                ' 设置一个离散值并将其传递给该参数
                discreteval.value = item.value
                paramfield.currentvalues.add(discreteval)
                ' 新建一个离散值
                discreteval = new parameterdiscretevalue()
            end if
        next

        if isempty then
            for each item in list
                ' 设置一个离散值并将其传递给该参数
                discreteval.value = item.value
                paramfield.currentvalues.add(discreteval)
                ' 新建一个离散值
                discreteval = new parameterdiscretevalue()
            next
        end if

        ' 将该参数添加到参数字段集合。
        paramfields.add(paramfield)
        getparameterinfo = paramfields

    end function

本文关键:水晶报表
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top