加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB2005如何设计带动态输出参数字段的水晶报表

发布时间:2020-12-16 23:24:50 所属栏目:大数据 来源:网络整理
导读:http://leek.woku.com/article/4909847.html 水晶报表为我们提供了非常多的报表设计功能,如何来更灵活的设计自已想要的输出文本例如报表的标题。可能由于所属的公司或类型不同,如果不采用参数字段来输入,就需要设计两张报表(*.rpt)文件。或单独保存到数

http://leek.woku.com/article/4909847.html

水晶报表为我们提供了非常多的报表设计功能,如何来更灵活的设计自已想要的输出文本例如报表的标题。可能由于所属的公司或类型不同,如果不采用参数字段来输入,就需要设计两张报表(*.rpt)文件。或单独保存到数据库内间接调用。利用参数字段从应用程序直接输入到报表增加了灵活性,同时也提高了设计开发的效率。

代码如下:

Public Sub SetCrystalPara(ByVal sPara As String)
'' ==========================================================
' 开发人员:段利庆
' 编写时间:09-08-13
' 函数名称:FullCrystalRptPara
' 参数说明:sPara 参数字段值
'
' 功能说明:设置水晶报表的【参数字段值】
' 其他说明:
'' ==========================================================
Dim ParamFields As New CrystalDecisions.Shared.ParameterFields
Dim ParamField As New CrystalDecisions.Shared.ParameterField
Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue

'*设置参数字段的名称,该名称必须与报表中的参数相符
'*否则不会引起替代的效果
ParamField.Name = "报表抬头"

'*设置数值并将它设置给参数字段对象
discreteVal.Value = sPara
ParamField.CurrentValues.Add(discreteVal)

'*加入该参数字段对象至参数字段对象集合
ParamFields.Add(ParamField)

'*设置参数字段对象集合至查看器控件
CrystalReportViewer1.ParameterFieldInfo = ParamFields

End Sub

Private Sub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button4.Click
FullCrystalRptPara(TextBox1.Text)
End Sub

Private Sub FullCrystalRptPara(Optional ByVal sPara As String = vbNullString)
'' ==========================================================
' 开发人员:段利庆
' 编写时间:09-08-13
' 函数名称:FullCrystalRptPara
' 参数说明:sPara 参数字段值
'
' 功能说明:将数据表显示到【CrystalReportViewer】
' 其他说明:1.创建报表文件【CstlRptPara.rpt】
' 2.可以采用ADO连接来设计报表的样式,{DataTable}的格式相同就可以

'' ==========================================================
'*声明报表文件的对象
Dim MyCrystalReport1 As New CstlRptPara
Dim strRptPath As String

strRptPath = Application.StartupPath + "/CstRpt/CstlRptPara.rpt"


Try
'*1:设置报表文件的路径
MyCrystalReport1.OpenSubreport(strRptPath)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString)
GoTo PROC_EXIT
End Try


Dim objData As New DBLog
Dim strSQL As String

strSQL = "SELECT 编号 as _,名称,单价,备注,删除 " & _
"FROM 计量仪表_价格 " & _
"WHERE 删除 = 0 " & _
"ORDER BY 编号 "

'*一个带过滤的测试SQL
' strSQL = "SELECT 编号 as _,删除 " & _
' "FROM 计量仪表_价格 " & _
' "WHERE 删除 = 0 " & " AND " & _
' "编号 = 3 " & _
'"ORDER BY 编号 "

Dim tTable As DataTable = objData.DBOperate(strSQL)

Try
'*2:载入数据
MyCrystalReport1.SetDataSource(tTable)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString)
GoTo PROC_EXIT
End Try
'*3:提交到控件 显示数据

'*设置参数字段值
If Len(sPara) <> 0 Then
SetCrystalPara(sPara)
End If

Me.CrystalReportViewer1.ReportSource = MyCrystalReport1PROC_EXIT: Exit Sub End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读