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

转载 2006年05月29日 14:24:00

以下实现从代码中传值给报表上的参数字段,此处假设已有CustomerOrders.rpt文件,其上放置有一个Name为CustomerID的参数字段!

    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

水晶报表制作实例

水晶报表貌似是比较“古老”的报表技术了,它是由SAP公司开发的报表产品,通过安装开发包可以在VS中集成Crystall Reports设计器。通过可视化的设计和操作,可以完成报表的制作。正好最近有空帮...
  • guwei4037
  • guwei4037
  • 2015年04月22日 15:23
  • 7612

【水晶报表之图片篇-c】 CR 11版本动态加载的另一种简单方案

2005年我在《水晶报表中如何动态加载图片(图片文件版本及数据库版本)》 提供的方法中,用了编程的方法,虽然也实现了,但是比较繁琐 地址: http://www.cnblogs.com/baby...
  • findsafety
  • findsafety
  • 2015年03月24日 16:09
  • 2802

VS2010水晶报表更新到服务器IIS

前提介绍:服务器上网站IIS发布,服务器上安装了VS2008(亲,自带水晶报表的哟)。服务器版本2003。本地用VS2010采用push模式做的报表。         从开始到结束,尼玛,不知道牺牲...
  • dyllove98
  • dyllove98
  • 2013年08月07日 17:57
  • 2079

JAVA水晶报表从环境搭建到创建动态水晶报表

首先第一步贴上项目截图(少了一个rpt_report文件夹,因为是网上的所以这里没加,各位可以加下):声明该项目是网上下载。(比较简单,纯属偷懒,有现成环境)。可以自己修改,需要注意的就是蓝色标记的地...
  • lovin_fang
  • lovin_fang
  • 2014年11月19日 13:52
  • 1576

[水晶报表]水晶报表的使用经验和资料总结

水晶报表的使用经验和资料总结资料: Asp.Net中使用水晶报表(上) www.dotnet8.com 2002-9-6 DotNet吧[HTML]在我们对VS.Net中的水晶报表(Cryst...
  • david_520042
  • david_520042
  • 2016年08月17日 09:30
  • 2628

CristalReport(水晶报表)插件整合Eclipse开发

CristalReport(水晶报表) 本身的安装版本是.net专用的开发报表的工具,但目前推出了Eclipse插件,便可以进行Java开发报表了,虽然我们项目没有采用(貌似是因为不支持垂直居中,是不...
  • rainyspring4540
  • rainyspring4540
  • 2015年09月01日 09:38
  • 1935

水晶报表自定义函数进行代码重用 -日期大写

   一般我们可以使用公式来实现一些特殊的功能,但是对于一些需要重复处理的情况 可以使用自定义函数来实现 进入公式编辑界面 ,可以看到在左上角有两个项目: 报表自定义函数和储备库自定...
  • xpx1290
  • xpx1290
  • 2016年06月17日 11:57
  • 533

VS.NET2010水晶报表安装部署[VS2010]

水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for Visual Studio 2010 - Standard: 下载地址: http://dow...
  • jsjpanxiaoyu
  • jsjpanxiaoyu
  • 2015年01月03日 10:27
  • 11218

ASP.NET C#学习三(水晶报表插件)

概念部分 (1). 什么是报表? 用表格、图表等来展示动态的数据。报表=多言的格式+动态的数据 (2). 什么是水晶报表(Crystal Reports)? 是AP.NET的一系列报表应用组件。 ...
  • Stephanie_1
  • Stephanie_1
  • 2017年04月08日 23:04
  • 1626

水晶报表的分栏显示

水晶报表的分栏显示
  • New_Teacher
  • New_Teacher
  • 2016年04月11日 09:23
  • 621
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:水晶报表参数编程示例代码
举报原因:
原因补充:

(最多只允许输入30个字)