mysql - 当数据集中 2 个数据表中的 1 个返回空行时,Crystal Report 不显示数据
问题描述
我正在尝试通过水晶报表显示来自两个数据表的数据,但我遇到了一个问题,即当两个表中有数据时,报表运行良好,但如果任何一个表中没有数据,则另一个数据表中的数据不会显示!我正在使用下一个代码来填充数据并加载报告:
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
下一张图片讲述了数据集是如何出现的。
谢谢,进阶
解决方案
实际上,我认为没有人会在这里尝试帮助我们解决 MySql 和 Crystal 报告,否则 @nbk 和 nbk 先生还没有准备好与初学者打交道,正如我通过这篇文章和上一篇文章所看到的那样。无论如何,我在下一个链接中找到了解决方案: 解决方案
祝你好运
推荐阅读
- ubuntu-16.04 - ROS tf.transform 找不到实际存在的帧(可以用 rosrun tf tf_echo 追踪)
- amazon-web-services - Terraform 删除路由表,然后在第二次运行时添加它们(无更改)。错误还是我错过了什么?
- php - 如何将文本框中输入的值传递给 API 请求值?
- javascript - 通过 AWS IOT sdk javascript 配置 AWS IOT 设备
- angular - 我们如何在嵌套的Angular Reactive Form方法中隐藏带有复选框的某些DOM元素
- php - Laravel如何在字符串类名上调用调度作业
- mongodb - 文本搜索未找到文档
- arrays - 遍历数组计数偶数,在 SWIFT 中打印计数和偶数
- python - 从写入 csv 文件的 webscraper 中删除重复 url 链接的最佳代码是什么?
- javascript - 为什么我没有从 select 元素中获取所有值?