【问题标题】:Crystal report query by three parameter & view report水晶报表三参数查询&查看报表
【发布时间】:2010-09-02 11:09:56
【问题描述】:

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

运行良好的代码:

参数字段:bdate 和 edate

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

显示报告的代码:

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}。请帮我解决这个问题!

【问题讨论】:

  • 定义“不工作”;您是否没有收到任何记录、一组意外的记录、一个错误?您是否在 Crystal Report 本身中设置了公式 {res_info.stu_id} = {?idnmb} and {res_info.yr} = {?acyer} and {res_info.etype} = {?etyp}

标签: crystal-reports


【解决方案1】:

是的,你是对的 LittleBobbyTables。当我单击显示报告按钮时,它什么也不显示(我没有收到错误消息,但没有返回任何记录。)是的,我已经写了 {res_info.stu_id} = {?idnmb} 和 {res_info.yr} = {?acyer} 和 { res_info.etype} = {?etyp} 它在公式工作室-记录选择公式编辑器中

【讨论】:

  • James,您是否尝试过修改您的报告公式,使其一次只满足一个条件,然后运行它?如果其中一种情况出现故障,这应该可以帮助您找到它;相反,如果所有单条件运行都返回数据,则可能只是数据源中没有数据同时满足所有条件。
猜你喜欢
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多