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