Я пытаюсь показать данные из двух таблиц данных с помощью кристаллического отчета, но я столкнулся с проблемой, заключающейся в том, что при наличии данных в двух таблицах отчет работает очень хорошо, но если в какой-либо одной таблице данных нет, данные в другой таблице данных не показывает! Я использую следующий код для заполнения данных и загрузки отчета:
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
следующее изображение показывает, как выглядит набор данных.
спасибо, продвинутый