Crystal レポートを使用してデータを表示するコードを作成しました。パラメータ フィールドを設定しましたが、うまく機能していないようです。次に例を示します。
データベース
1/12/2012 A
5/12/2012 B
9/12/2012 C
13/12/2012 D
レポートの表示条件:
開始日 = 2012 年 1 月 12
日 終了日 = 2012 年 12 月 15 日
ここでは、データを表示するだけです13/12/2012 - D
が、
開始日 = 2012 年 1 月 12
日 終了日 = 2012 年 9 月12 日
すべてのデータが表示されます。
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})