Rodelio Gucela Jr. Ответов: 0

Передача данных из datagridview в вложенный отчет: crystal report


I'm having trouble in passing a data from datagridview using datatable to subreport, I always get an error of

Object reference not set to an instance of an object. 
I am new with crystal report and I am using vb.Net using visual studio 2012. I really need your help to finish our system, a response will be appreciated. Thank you :) 


Что я уже пробовал:

<pre>    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

        Try
            Dim frm As New Printform
            Dim rpt As New mainreport
            Dim dt1 As New DataTable
            Dim dt2 As New DataTable
            Dim dt3 As New DataTable
            Dim dt4 As New DataTable
            Dim dt5 As New DataTable
            With dt1.Columns
                .Add("Date")
                .Add("Attended By")
                .Add("Last name")
                .Add("First name")
                .Add("Initial")
                .Add("Street")
                .Add("City")
                .Add("Zipcode")
                .Add("Dob")
                .Add("Age")
                .Add("Height")
                .Add("Weight")
                .Add("Gender")
                .Add("Status")
                .Add("Number")
                .Add("Type")
            End With
            With dt2.Columns
                .Add("Attended By")
                .Add("Patient")
                .Add("Patient Type")
                .Add("Date")
                .Add("Complaints")
                .Add("Type")
                .Add("Medicine")
                .Add("Quantity")
                .Add("Remarks")
            End With
            With dt3.Columns
                .Add("Attended By")
                .Add("Patient")
                .Add("Type")
                .Add("Date")
                .Add("rep")
                .Add("flo")
                .Add("lun")
                .Add("hea")
                .Add("sys")
                .Add("dia")
                .Add("pul")
                .Add("sit")
                .Add("agi")
                .Add("dig")
                .Add("gen")
                .Add("uri")
                .Add("ski")
                .Add("loc")
                .Add("ner")
                .Add("eye")
                .Add("col")
                .Add("vis")
                .Add("far")
                .Add("fal")
                .Add("ear")
                .Add("hear")
                .Add("nose")
                .Add("thro")
                .Add("rema")
                .Add("reco")
            End With
            With dt4.Columns
                .Add("Attended By")
                .Add("Patient")
                .Add("Type")
                .Add("Date")
                .Add("phy")
                .Add("hea")
                .Add("hig")
                .Add("low")
                .Add("cir")
                .Add("ner")
                .Add("rad")
                .Add("exc")
                .Add("ane")
                .Add("sin")
                .Add("dia")
                .Add("epi")
                .Add("mal")
                .Add("rhe")
                .Add("thy")
                .Add("tub")
                .Add("hep")
                .Add("ven")
                .Add("chi")
                .Add("his")
                .Add("cli")
                .Add("xray")
                .Add("diag")
                .Add("trea")
                .Add("t1")
                .Add("t2")
                .Add("t3")
                .Add("t4")
                .Add("t5")
                .Add("t6")
                .Add("t7")
                .Add("t8")
                .Add("t9")
                .Add("t10")
                .Add("t11")
                .Add("t12")
                .Add("t13")
                .Add("t14")
                .Add("t15")
                .Add("t16")
                .Add("t17")
                .Add("t18")
                .Add("t19")
                .Add("t20")
                .Add("t21")
                .Add("t22")
                .Add("t23")
                .Add("t24")
                .Add("t25")
                .Add("t26")
                .Add("t27")
                .Add("t28")
                .Add("t29")
                .Add("t30")
                .Add("t31")
                .Add("t32")
            End With
            With dt5.Columns
                .Add("name")
                .Add("immu")
                .Add("alle")
                .Add("prob")
            End With
            For i As Integer = 0 To frmviewallrecords.dv1.RowCount - 1
                dt1.Rows.Add(frmviewallrecords.dv1.Rows(i).Cells(0).Value, frmviewallrecords.dv1.Rows(i).Cells(2).Value, frmviewallrecords.dv1.Rows(i).Cells(3).Value, frmviewallrecords.dv1.Rows(i).Cells(4).Value, frmviewallrecords.dv1.Rows(i).Cells(5).Value, _
                           frmviewallrecords.dv1.Rows(i).Cells(6).Value, frmviewallrecords.dv1.Rows(i).Cells(7).Value, frmviewallrecords.dv1.Rows(i).Cells(8).Value, frmviewallrecords.dv1.Rows(i).Cells(9).Value, frmviewallrecords.dv1.Rows(i).Cells(10).Value, _
                           frmviewallrecords.dv1.Rows(i).Cells(11).Value, frmviewallrecords.dv1.Rows(i).Cells(12).Value, frmviewallrecords.dv1.Rows(i).Cells(13).Value, frmviewallrecords.dv1.Rows(i).Cells(14).Value, _
                           frmviewallrecords.dv1.Rows(i).Cells(15).Value, frmviewallrecords.dv1.Rows(i).Cells(16).Value)
            Next
            For i As Integer = 0 To frmviewallrecords.dv2.RowCount - 1
                dt2.Rows.Add(frmviewallrecords.dv2.Rows(i).Cells(2).Value, frmviewallrecords.dv2.Rows(i).Cells(3).Value, frmviewallrecords.dv2.Rows(i).Cells(4).Value, _
                             frmviewallrecords.dv2.Rows(i).Cells(5).Value, frmviewallrecords.dv2.Rows(i).Cells(6).Value, frmviewallrecords.dv2.Rows(i).Cells(7).Value, _
                            frmviewallrecords.dv2.Rows(i).Cells(8).Value, frmviewallrecords.dv2.Rows(i).Cells(9).Value, frmviewallrecords.dv2.Rows(i).Cells(10).Value)
            Next
            For i As Integer = 0 To frmviewallrecords.dv3.RowCount - 1
                dt3.Rows.Add(frmviewallrecords.dv3.Rows(i).Cells(2).Value, frmviewallrecords.dv3.Rows(i).Cells(3).Value, frmviewallrecords.dv3.Rows(i).Cells(4).Value, frmviewallrecords.dv3.Rows(i).Cells(7).Value, frmviewallrecords.dv3.Rows(i).Cells(8).Value, _
                           frmviewallrecords.dv3.Rows(i).Cells(9).Value, frmviewallrecords.dv3.Rows(i).Cells(10).Value, frmviewallrecords.dv3.Rows(i).Cells(11).Value, frmviewallrecords.dv3.Rows(i).Cells(12).Value, frmviewallrecords.dv3.Rows(i).Cells(13).Value, _
                           frmviewallrecords.dv3.Rows(i).Cells(14).Value, frmviewallrecords.dv3.Rows(i).Cells(15).Value, frmviewallrecords.dv3.Rows(i).Cells(16).Value, frmviewallrecords.dv3.Rows(i).Cells(17).Value, frmviewallrecords.dv3.Rows(i).Cells(18).Value, _
                           frmviewallrecords.dv3.Rows(i).Cells(19).Value, frmviewallrecords.dv3.Rows(i).Cells(20).Value, frmviewallrecords.dv3.Rows(i).Cells(21).Value, frmviewallrecords.dv3.Rows(i).Cells(22).Value, frmviewallrecords.dv3.Rows(i).Cells(23).Value, _
                           frmviewallrecords.dv3.Rows(i).Cells(24).Value, frmviewallrecords.dv3.Rows(i).Cells(25).Value, frmviewallrecords.dv3.Rows(i).Cells(26).Value, frmviewallrecords.dv3.Rows(i).Cells(27).Value, frmviewallrecords.dv3.Rows(i).Cells(28).Value, _
                           frmviewallrecords.dv3.Rows(i).Cells(29).Value, frmviewallrecords.dv3.Rows(i).Cells(30).Value, frmviewallrecords.dv3.Rows(i).Cells(31).Value, frmviewallrecords.dv3.Rows(i).Cells(32).Value, frmviewallrecords.dv3.Rows(i).Cells(33).Value)
            Next
            For i As Integer = 0 To frmviewallrecords.dv4.RowCount - 1
                dt4.Rows.Add(frmviewallrecords.dv4.Rows(i).Cells(2).Value, frmviewallrecords.dv4.Rows(i).Cells(3).Value, frmviewallrecords.dv4.Rows(i).Cells(4).Value, frmviewallrecords.dv4.Rows(i).Cells(7).Value, frmviewallrecords.dv4.Rows(i).Cells(8).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(9).Value, frmviewallrecords.dv4.Rows(i).Cells(10).Value, frmviewallrecords.dv4.Rows(i).Cells(11).Value, frmviewallrecords.dv4.Rows(i).Cells(12).Value, frmviewallrecords.dv4.Rows(i).Cells(13).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(14).Value, frmviewallrecords.dv4.Rows(i).Cells(15).Value, frmviewallrecords.dv4.Rows(i).Cells(16).Value, frmviewallrecords.dv4.Rows(i).Cells(17).Value, frmviewallrecords.dv4.Rows(i).Cells(18).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(19).Value, frmviewallrecords.dv4.Rows(i).Cells(20).Value, frmviewallrecords.dv4.Rows(i).Cells(21).Value, frmviewallrecords.dv4.Rows(i).Cells(22).Value, frmviewallrecords.dv4.Rows(i).Cells(23).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(24).Value, frmviewallrecords.dv4.Rows(i).Cells(25).Value, frmviewallrecords.dv4.Rows(i).Cells(26).Value, frmviewallrecords.dv4.Rows(i).Cells(27).Value, frmviewallrecords.dv4.Rows(i).Cells(28).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(29).Value, frmviewallrecords.dv4.Rows(i).Cells(30).Value, frmviewallrecords.dv4.Rows(i).Cells(31).Value, frmviewallrecords.dv4.Rows(i).Cells(32).Value, frmviewallrecords.dv4.Rows(i).Cells(33).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(34).Value, frmviewallrecords.dv4.Rows(i).Cells(35).Value, frmviewallrecords.dv4.Rows(i).Cells(36).Value, frmviewallrecords.dv4.Rows(i).Cells(37).Value, frmviewallrecords.dv4.Rows(i).Cells(38).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(39).Value, frmviewallrecords.dv4.Rows(i).Cells(40).Value, frmviewallrecords.dv4.Rows(i).Cells(41).Value, frmviewallrecords.dv4.Rows(i).Cells(42).Value, frmviewallrecords.dv4.Rows(i).Cells(43).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(44).Value, frmviewallrecords.dv4.Rows(i).Cells(45).Value, frmviewallrecords.dv4.Rows(i).Cells(46).Value, frmviewallrecords.dv4.Rows(i).Cells(47).Value, frmviewallrecords.dv4.Rows(i).Cells(48).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(49).Value, frmviewallrecords.dv4.Rows(i).Cells(50).Value, frmviewallrecords.dv4.Rows(i).Cells(51).Value, frmviewallrecords.dv4.Rows(i).Cells(52).Value, frmviewallrecords.dv4.Rows(i).Cells(53).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(54).Value, frmviewallrecords.dv4.Rows(i).Cells(55).Value, frmviewallrecords.dv4.Rows(i).Cells(56).Value, frmviewallrecords.dv4.Rows(i).Cells(57).Value, frmviewallrecords.dv4.Rows(i).Cells(58).Value, _
                           frmviewallrecords.dv4.Rows(i).Cells(59).Value, frmviewallrecords.dv4.Rows(i).Cells(60).Value, frmviewallrecords.dv4.Rows(i).Cells(61).Value, frmviewallrecords.dv4.Rows(i).Cells(62).Value, frmviewallrecords.dv4.Rows(i).Cells(63).Value)
            Next
            Dim count As Integer = frmviewallrecords.dv5.RowCount

            If frmviewallrecords.dv6.RowCount > frmviewallrecords.dv5.RowCount Then
                count = frmviewallrecords.dv6.RowCount
                If frmviewallrecords.dv7.RowCount > frmviewallrecords.dv6.RowCount Then
                    count = frmviewallrecords.dv7.RowCount
                End If
            ElseIf frmviewallrecords.dv7.RowCount > frmviewallrecords.dv5.RowCount Then
                count = frmviewallrecords.dv7.RowCount
            End If
            For i As Integer = 0 To count - 1
                Dim immu As String
                Dim alle As String
                Dim prob As String
                immu = getImmu(frmviewallrecords.dv5, i)
                alle = getAlle(frmviewallrecords.dv6, i)
                prob = getProb(frmviewallrecords.dv7, i)

                dt5.Rows.Add(frmviewallrecords.Label8.Text, immu, alle, prob)
            Next
        
            rpt.Subreports.Item("Subreport1").SetDataSource(dt1)--------->Error: Object reference not set to an instance of an object
            rpt.Subreports.Item("Subreport2").SetDataSource(dt2)
            rpt.Subreports.Item("Subreport3").SetDataSource(dt3)
            rpt.Subreports.Item("Subreport4").SetDataSource(dt4)
            rpt.Subreports.Item("Subreport5").SetDataSource(dt5)
            With frm
                frm.CrystalReportViewer1.ReportSource = rpt
                frm.ShowDialog()
            End With
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

Richard Deeming

Это наводит на мысль, что mainreport не содержит вложенного отчета под названием Subreport1 Но вам нужно будет отладить свой код, чтобы проверить это - у нас нет доступа к вашей системе, поэтому мы не можем отладить ее для вас .

Rodelio Gucela Jr.

Привет, сэр Ричард, спасибо, что ответили. Я готов предоставить вам эту систему, если вы захотите ее отладить. Мне очень трудно с этой частью, я не мог ее исправить. Пожалуйста, помогите мне, сэр. Большое спасибо!

Rodelio Gucela Jr.

Неважно, сэр, я смог решить эту проблему :) вы правы. Это должно быть patreport.rpt вместо subreport1 большое вам спасибо, сэр!

0 Ответов