使用ParameterFields动态创建报告

时间:2017-01-17 12:45:13

标签: asp.net vb.net crystal-reports

我必须使用ParameterFields动态创建水晶报告。 - 因为单个参数必须动态调用MySQL数据库中的特定行。现在我从MySql数据库静态和单个调用了多个值。 我需要从MySQL数据库中调用特定的行(动态)。

    Dim sql_Sel As String
    Dim hIssId As Integer = 0
    Dim connectionInfo1 As New ConnectionInfo()
    Dim SqlCon As String = "Data source= *****"
    hIssId = Request.QueryString("patID")
    Try
        CrystLabl.ReportSource = Nothing
        Me.SqlCon.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("xyz").ConnectionString
        Me.SqlCon.Open()
        Dim crystalReport As New ReportDocument()
        sql_Sel = "exec DI_Details @opt=1"
        Dim DA As SqlDataAdapter = New SqlDataAdapter(sql_Sel, SqlCon)
        Dim DG As New DataSet
        DG.DataSetName = "DataSet.xsd"

        DA.Fill(DG, "DataTable1")
        Dim paramFields3 As New CrystalDecisions.Shared.ParameterFields()

        For Each i As String In sql_Sel
            Dim paramField31 As New CrystalDecisions.Shared.ParameterField()
            Dim discreteVal1 As New CrystalDecisions.Shared.ParameterDiscreteValue()
            discreteVal1 = New ParameterDiscreteValue()
            paramField31.ParameterFieldName = "My Parameter"
            discreteVal1.Value = ((DG.Tables(0).Rows(0).Item(1)) & (DG.Tables(0).Rows(0).Item(2)) & (DG.Tables(0).Rows(0).Item(3)) >(DG.Tables(0).Rows(0).Item(6))) 
            paramField31.CurrentValues.Add(discreteVal1)
            paramFields3.Add(paramField31)
        Next

        CrystLabl.ParameterFieldInfo = paramFields3
        CrystLabl.ReportSource = "CrystalReport.rpt"
        CrystLabl.RefreshReport()
    Catch ex As Exception
    Finally
    End Try
End Sub

0 个答案:

没有答案