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

前端之家收集整理的这篇文章主要介绍了VB2005如何设计带动态输出参数字段的水晶报表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

猜你在找的VB相关文章