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


     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
  • 相关阅读:
    for,foreach,$.each()跳出循环的比较
    十大经典排序算法
    沙箱模式以及其使用到的IIFE
    绝对路径和相对路径的区别
    必备的JS调试技巧汇总
    通过.frm表结构和.ibd文件恢复数据
    Jenkins使用QQ邮箱构建邮件提醒服务
    windows常用命令积累
    7.手机屏幕分辨率
    6.移动端App安装包的测试用例
  • 原文地址:https://www.cnblogs.com/ddlzq/p/1612725.html
Copyright © 2020-2023  润新知