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

王朝other·作者佚名  2006-01-08
宽屏版  字体: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有