我编写了使用水晶报告显示数据的代码。我已设置参数字段,但似乎它运行不正常。这是一个例子:
数据库
1/12/2012 A
5/12/2012 B
9/12/2012 C
13/12/2012 D
用于显示报告的条件:
开课日期= 2012年1月12日
截止日期= 15/12/2012
此处它只显示13/12/2012 - D
但
开始日期= 2012年1月12日
截止日期= 9/12/2012
显示所有数据:
1/12/2012-A
5/12/2012-B
9/12/2012-C
13/12/2012-D
这是我的vb.net代码:
Dim reader As OleDbDataReader = myCommand.ExecuteReader
If reader.Read = True Then
cryRpt = New ReportDocument()
cryRpt.Load("C:\Users\user\Documents\LabSystem\LabSystem\Report\Spec.rpt")
crParameterDiscreteValue.Value = txtDateFrom.Text
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions("fromDate")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Clear()
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
crParameterDiscreteValue.Value = txtDateTo.Text
crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
crParameterFieldDefinition = crParameterFieldDefinitions("toDate")
crParameterValues = crParameterFieldDefinition.CurrentValues
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
CrTables = cryRpt.Database.Tables
Dim crTable As CrystalDecisions.CrystalReports.Engine.Table
For Each crTable In CrTables
crtableLogoninfo = crTable.LogOnInfo
Next
crtableLogoninfo.ConnectionInfo = crConnectionInfo
crTable.ApplyLogOnInfo(crtableLogoninfo)
CrystalReportViewer1.ReportSource = cryRpt
CrystalReportViewer1.RefreshReport()
Else
MsgBox("No records exists")
End If
reader.Close()
Catch ex As Exception
MsgBox("Error in select query: " + ex.Message)
End Try
这是水晶报告中的条件:
{1BK.edate}=({?toDate} TO {?fromDate})
答案 0 :(得分:0)
我会按此顺序尝试:
{1BK.edate} = ({?fromDate} to
{?toDate})
{1BK.edate} >= {?fromDate}
and {1BK.edate} <= {?toDate}
{1BK.edate} >= '#' + {?fromDate} + '#' and {1BK.edate} <= '#' +
{?toDate} + '#'
(确保您的参数是此中的字符串
实例答案 1 :(得分:0)
当crystal中的更改参数字段报告
时,它会起作用日期
那么条件是
{1BK.edate} = ({?fromDate} to {?toDate})