Crystal参数查询由三个参数&查看报告

时间:2010-09-02 11:09:56

标签: crystal-reports

上次我使用两个参数来查询&显示报告。它运作良好。现在我试图使用相同的代码与另一个额外的参数,但它不起作用。我很迷惑。让我告诉你我的代码。

效果良好的代码:

参数字段:bdate和edate

水晶报告公式:{Bal_sheet.bsdate}> = {?bdate}和{Bal_sheet.bsdate}< = {?edate}

显示报告的代码:

Private Sub butsbalsrep_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butsbalsrep.Click
    Dim cryRpt As New ReportDocument
    cryRpt.Load(Application.StartupPath & "\CrystalReport3.rpt")

    Dim crParameterFieldDefinitions As ParameterFieldDefinitions
    Dim crParameterFieldDefinition As ParameterFieldDefinition

    Dim crParameterFieldDefinitions1 As ParameterFieldDefinitions
    Dim crParameterFieldDefinition1 As ParameterFieldDefinition


    Dim crParameterValues As New ParameterValues
    Dim crParameterValues1 As New ParameterValues

    Dim crParameterDiscreteValue As New ParameterDiscreteValue
    Dim crParameterDiscreteValue1 As New ParameterDiscreteValue

    crParameterDiscreteValue.Value = cmbbdate.Text
    crParameterDiscreteValue1.Value = cmbedate.Text

    crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
    crParameterFieldDefinition = crParameterFieldDefinitions.Item("bdate")

    crParameterFieldDefinitions1 = cryRpt.DataDefinition.ParameterFields
    crParameterFieldDefinition1 = crParameterFieldDefinitions.Item("edate")

    crParameterValues = crParameterFieldDefinition.CurrentValues
    crParameterValues1 = crParameterFieldDefinition1.CurrentValues

    crParameterValues.Clear()
    crParameterValues1.Clear()

    crParameterValues.Add(crParameterDiscreteValue)
    crParameterValues1.Add(crParameterDiscreteValue1)

    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
    crParameterFieldDefinition1.ApplyCurrentValues(crParameterValues1)


    crysrepbalsht.ReportSource = cryRpt
    crysrepbalsht.Refresh()
End Sub

无效的代码:

参数字段:idnmb和acyer以及etyp

水晶报告公式:{res_info.stu_id} = {?idnmb}和{res_info.yr} = {?acyer}和{res_info.etype} = {?etyp}

显示报告的代码:

Private Sub butsrrepsr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butsrrepsr.Click
    Dim cryRpt As New ReportDocument
    cryRpt.Load(Application.StartupPath & "\CrystalReport3.rpt")

    Dim crParameterFieldDefinitions As ParameterFieldDefinitions
    Dim crParameterFieldDefinition As ParameterFieldDefinition

    Dim crParameterFieldDefinitions1 As ParameterFieldDefinitions
    Dim crParameterFieldDefinition1 As ParameterFieldDefinition

    Dim crParameterFieldDefinitions2 As ParameterFieldDefinitions
    Dim crParameterFieldDefinition2 As ParameterFieldDefinition

    Dim crParameterValues As New ParameterValues
    Dim crParameterValues1 As New ParameterValues
    Dim crParameterValues2 As New ParameterValues

    Dim crParameterDiscreteValue As New ParameterDiscreteValue
    Dim crParameterDiscreteValue1 As New ParameterDiscreteValue
    Dim crParameterDiscreteValue2 As New ParameterDiscreteValue

    crParameterDiscreteValue.Value = cmbsrrepidn.Text
    crParameterDiscreteValue1.Value = cmbsrrepay.Text
    crParameterDiscreteValue2.Value = cmbsrrepet.Text

    crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields
    crParameterFieldDefinition = crParameterFieldDefinitions.Item("idnmb")

    crParameterFieldDefinitions1 = cryRpt.DataDefinition.ParameterFields
    crParameterFieldDefinition1 = crParameterFieldDefinitions.Item("acyer")

    crParameterFieldDefinitions2 = cryRpt.DataDefinition.ParameterFields
    crParameterFieldDefinition2 = crParameterFieldDefinitions.Item("etyp")

    crParameterValues = crParameterFieldDefinition.CurrentValues
    crParameterValues1 = crParameterFieldDefinition1.CurrentValues
    crParameterValues2 = crParameterFieldDefinition2.CurrentValues

    crParameterValues.Clear()
    crParameterValues1.Clear()
    crParameterValues2.Clear()

    crParameterValues.Add(crParameterDiscreteValue)
    crParameterValues1.Add(crParameterDiscreteValue1)
    crParameterValues2.Add(crParameterDiscreteValue2)

    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
    crParameterFieldDefinition1.ApplyCurrentValues(crParameterValues1)
    crParameterFieldDefinition2.ApplyCurrentValues(crParameterValues2)

    CrystalReportViewer3.ReportSource = cryRpt
    CrystalReportViewer3.Refresh()

End Sub

我很困惑,为什么它不起作用!当我点击显示报告按钮时,它什么都没有显示(我没有收到错误消息并且没有回复记录。)。我在公式研讨会记录选择公式编辑器中写了{res_info.stu_id} = {?idnmb}和{res_info.yr} = {?acyer}和{res_info.etype} = {?etyp}。请帮我摆脱这个问题!

1 个答案:

答案 0 :(得分:0)

是的,你是对的LittleBobbyTables。当我点击显示报告按钮时,它什么都没有显示(我没有收到错误信息,但没有收到任何记录。)是的,我写过{res_info.stu_id} = {?idnmb}和{res_info.yr} = {?acyer}和{ res_info.etype} = {?etyp}它在公式研讨会 - 记录选择公式编辑器