Skip to main content

AccessTr.neT


Vb.net Datagridview Listesini Gruplandırma

Vb.net Datagridview Listesini Gruplandırma

#1
Herkese Merhaba, ms Sql veritabanından vb.net de dgv üzerinde listelediğim bir tablom var. resimdeki gibi açılabilir liste halinde gruplandırmak istiyorum. google a datagridview groups yazıldığında bir proje çıkıyor lakin c# dilinde vb.net e çeviremedim. verilerimi vb.net dilinde resimdeki gibi listelemek için nasıl bir yol izleyebilirim. yardımcı olursanız sevinirim.
Cevapla
#2
Merhaba,
Ekran görüntüsüne göre, Toplamlar sorgusu oluşturmanız gerekir
 İyi olan tek şey bilgi ve kötü olan tek şey de cehalettir. (Sokrates)
Cevapla
#3
Formunuza bir DataGridView ve bir BindingSource ekleyin ve örneğinizden yola çıkarak
  1. Verilerinizi gruplamak için gerekli sınıfları aşağıdaki koda benzer şekilde tanımlayın.
    Kod:
    Public Class Patient
        Public Property Name As String
        Public Property Medications As List(Of Medication)

        Public Sub New(name As String)
            Me.Name = name
            Medications = New List(Of Medication)()
        End Sub
    End Class

    Public Class Medication
        Public Property Drug As String
        Public Property Dosage As Integer
        Public Property Date As DateTime

        Public Sub New(drug As String, dosage As Integer, [date] As DateTime)
            Me.Drug = drug
            Me.Dosage = dosage
            Me.Date = [date]
        End Sub
    End Class

  2. VErilerinizi listeye kodlarınızı aşağıdaki örneğe benzer şekilde ekleyin:
    Kod:
    Dim patients As New List(Of Patient)()

    Dim christoff As New Patient("Christoff")
    christoff.Medications.Add(New Medication("Hydralazine", 20, New DateTime(2013, 1, 13)))
    christoff.Medications.Add(New Medication("Combivent", 5, New DateTime(2013, 1, 2)))

    Dim david As New Patient("David")
    david.Medications.Add(New Medication("Indocin", 50, New DateTime(2013, 1, 3)))

    Dim janet As New Patient("Janet")
    janet.Medications.Add(New Medication("Combivent", 30, New DateTime(2013, 2, 3)))
    janet.Medications.Add(New Medication("Indocin", 15, New DateTime(2013, 2, 3)))

    Dim melanie As New Patient("Melanie")
    melanie.Medications.Add(New Medication("Dilantin", 100, New DateTime(2013, 1, 12)))

    Dim sam As New Patient("Sam")
    sam.Medications.Add(New Medication("Enbrel", 20, New DateTime(2013, 1, 7)))

    patients.Add(christoff)
    patients.Add(david)
    patients.Add(janet)
    patients.Add(melanie)
    patients.Add(sam)

  3. Aşağıdakine benzer kodla DataGrid ve BindingSource ayarlayın:
    Kod:
    BindingSource1.DataSource = patients
    DataGridView1.DataSource = BindingSource1

    With DataGridView1
        .AutoGenerateColumns = False

        ' Add the Patient column
        Dim patientColumn As New DataGridViewTextBoxColumn()
        patientColumn.DataPropertyName = "Name"
        patientColumn.HeaderText = "Patient"
        .Columns.Add(patientColumn)

        ' Add the Drug column
        Dim drugColumn As New DataGridViewTextBoxColumn()
        drugColumn.DataPropertyName = "Drug"
        drugColumn.HeaderText = "Drug"
        .Columns.Add(drugColumn)

        ' Add the Dosage column
        Dim dosageColumn As New DataGridViewTextBoxColumn()
        dosageColumn.DataPropertyName = "Dosage"
        dosageColumn.HeaderText = "Dosage"
        .Columns.Add(dosageColumn)

        ' Add the Date column
        Dim dateColumn As New DataGridViewTextBoxColumn()
        dateColumn.DataPropertyName = "Date"
        dateColumn.HeaderText = "Date"
        .Columns.Add(dateColumn)
    End With

  4. DataGrridviewRow ve dataGridviewCell kullanarak Datagride verileri eklemek için aşağıdakine benzer şekilde kodlarınızı düzenleyin:
    Kod:
    For Each patient As Patient In patients
        Dim row As New DataGridViewRow()
        row.CreateCells(DataGridView1)
        row.Cells(0).Value = "Patient " & patient.Name & " (" & patient.Medications.Count & ")"
        DataGridView1.Rows.Add(row)

        For Each med As Medication In patient.Medications
            Dim medRow As New DataGridViewRow()
            medRow.CreateCells(DataGridView1)
            medRow.Cells(1).Value = med.Drug
            medRow.Cells(2).Value = med.Dosage
            medRow.Cells(3).Value = med.Date.ToShortDateString()
            DataGridView1.Rows.Add(medRow)
        Next
    Next

  5. Grupla/Grubu çöz sitilini belirlemek için aşağıdakine benzer şekilde kodunuzu revize ederek görünümünüzü ayarlayın:
    Kod:
    For Each row As DataGridViewRow In DataGridView1.Rows
        If row.Cells(0).Value IsNot Nothing AndAlso row.Cells(0).Value.ToString().StartsWith("Patient") Then
            row.DefaultCellStyle.Font = New Font(DataGridView1.Font, FontStyle.Bold)
        End If
    Next

Bu adımları takip ederek verilerinizi resimdeki gibi gruplandırabilir ve listeleyebilirsiniz.

Bir diğer yöntem olarak ben tasvip etmesem de dotnetspider.com veya telerik.com gibi websitelerinden C# için bulduğunuz kodları vb.net kodlarına çevirebilirsiniz.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task