【问题标题】:Crystal Report does not show data when 1 of the 2 datatables in dataset return empty rows当数据集中 2 个数据表中的 1 个返回空行时,Crystal Report 不显示数据
【发布时间】:2020-10-06 09:32:31
【问题描述】:

我正在尝试通过水晶报表显示来自两个数据表的数据,但我遇到了一个问题,即当两个表中有数据时,报表运行良好,但如果任何一个表中没有数据,则另一个数据表中的数据不显示! 我正在使用下一个代码来填充数据并加载报告:

Public Class FR_Parents_Rep2

Dim xCLS As New ClsMain
Dim xDadp As MySqlDataAdapter
Dim xDS As Ds_Edsa


Private Sub btnView_Click(sender As Object, e As EventArgs) Handles btnView.Click
    Try
        If xCLS.MyCodes_CboNotNull_Index(Me.CboParents, "TheParent") = True Then Exit Sub

        Dim xParentID As Integer = Convert.ToInt32(Me.CboParents.SelectedValue)
        Dim xFatoraID, xFrom, xTo As TextObject
        Dim xreport As New Rpt_Parents_Rep2

        xFatoraID = CType(xreport.ReportDefinition.Sections("Section1").ReportObjects("TxtDate"), TextObject)
        xFrom = CType(xreport.ReportDefinition.Sections("Section1").ReportObjects("TxtFrom"), TextObject)
        xTo = CType(xreport.ReportDefinition.Sections("Section1").ReportObjects("TxtTo"), TextObject)

        xDS = New Ds_Edsa

        Dim xSql2 As String
        xSql2 = "SELECT 
            Sum(tbl_parents_payments.TheAmount) AS PrevMadf 
            FROM tbl_parents_payments
            WHERE (((tbl_parents_payments.ParentID)=@ParentID) 
            AND ((tbl_parents_payments.TheDate)<@Date1));"

        Dim xCMD2 As New MySqlCommand(xSql2, Conn)
        xCMD2.Parameters.Add("@Date1", MySqlDbType.Date).Value = CDate(Me.TxtFrom.Value)
        xCMD2.Parameters.Add("@ParentID", MySqlDbType.Int32).Value = xParentID
        xDadp = New MySqlDataAdapter(xCMD2)
        xDadp.Fill(xDS.Tables("PrevData2"))

        '..............................................................................................

        Dim xSql3 As String
        xSql3 = "SELECT tbl_parents_payments.TheDate, 
                        tbl_parents_payments.TheAmount
                        FROM tbl_parents_payments
                WHERE (((tbl_parents_payments.TheDate) 
                Between @Date1 And @Date2) AND 
                ((tbl_parents_payments.ParentID)=@ParentID));"
        Dim xCMD3 As New MySqlCommand(xSql3, Conn)
        xCMD3.Parameters.Add("@Date1", MySqlDbType.Date).Value = CDate(Me.TxtFrom.Value)
        xCMD3.Parameters.Add("@Date2", MySqlDbType.Date).Value = CDate(Me.TxtTo.Value)
        xCMD3.Parameters.Add("@ParentID", MySqlDbType.Int32).Value = xParentID
        xDadp = New MySqlDataAdapter(xCMD3)
        xDadp.Fill(xDS.Tables("ParPay"))
        '..............................................................................................


        xFatoraID.Text = Now.ToString("mmhhAyyyyMMdd")


        xFrom.Text = CStr(Me.TxtFrom.Value.ToString("yyyy/MM/dd"))


        xTo.Text = CStr(Me.TxtTo.Value.ToString("yyyy/MM/dd"))

        '..............................................................................................
        xreport.SetDataSource(xDS)
        Crpt.ReportSource = Nothing
        Crpt.ReportSource = xreport
        Crpt.Refresh()
        xDadp.Dispose()
        xDS.Dispose()

    Catch ex As Exception
        MsgBox(Me_MsgErrorStr + vbNewLine + vbNewLine + ex.Message, Me_MsgInfoStyle, Me_MsgCaptionStr)
    Finally
        Conn.Close()
    End Try
End Sub

下一张图片说明了数据集的显示方式。

谢谢,高级

【问题讨论】:

  • 水晶报表不是这样工作的,1. 你创建一个数据源,然后创建一个报表,然后向它添加元素,请参阅stackoverflow.com/questions/60015411/…
  • @nbk 你的解决方案对我不起作用,我需要的是在两个日期和指定的父母(ParPay 数据表)之间获得付款,并获得同一个父母的先前付款,问题是如果两个日期之间没有付款,即使有付款也不会显示以前的付款
  • 看看我的解决方案是否有效,只要您将数据放入数据集中并将其用作报告 (rpt) 的基础。唯一不起作用的是你的方法。除了向我们展示表格而不是结果之外,也许您可​​以加入它们,但是作为数据集和两个表格可以用于水晶报告。或任何其他报告工具.. 还请查看推荐中发布的链接
  • @nbk 我不想链接 Datatables ,我认为我创建了这个问题,因为它是由于我不知道的错误而发生的,也许是因为我的方法!所以如果你能帮助我,请做,如果没有,我会感谢你

标签: mysql vb.net crystal-reports


【解决方案1】:

实际上,我认为没有人会在这里尝试帮助我们解决有关 MySql 和 Crystal 报告的问题,否则 @nbk 和 nbk 先生还没有准备好与初学者打交道,正如我通过这篇文章和上一篇文章所看到的那样。 无论如何,我在下一个链接中找到了解决方案: The Solution

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多