[TANYA] JOIN DATA IN DATAGRIDVIEW

Forum diskusi pemrograman VB.NET

[TANYA] JOIN DATA IN DATAGRIDVIEW

Postby topeng » 21 Feb 2012, 16:34

Dear Moderator and All,

Mohon bantuannya, saya ingin join data di dalam datagridview, jikda datanya sama maka quantity nya yang di tambahkan, contohnya adalah seperti gambar dibawah ini :
JOIN DATA IN DATAGRIDVIEW.JPG


pada gambar diatas SKU untuk item kopi ada yang sama, sehingga quantitynya di jumlahkan, dan hanya ada satu saja data untuk sku dengan item kopi,
saya sudah membuat perulangan seperti dibawah ini :

Code: Select all
For i = 0 To dgvfisik.Rows.Count - 1
            sku(i) = dgvfisik.Item(0, i).Value
            des(i) = dgvfisik.Item(1, i).Value
            soh(i) = dgvfisik.Item(2, i).Value
           
            For j = 0 To dgvfisik.Rows.Count - 1
                sku(j) = dgvnormal.Item(0, j).Value
                If sku(i) <> sku(j) Then
                    dgvnormal.Rows.Add(sku(i), des(i), soh(i))
                ElseIf sku(i) = sku(j) Then
                    dgvnormal.Item(2, j).Value += soh(i)
                    Exit For
                End If
            Next
        Next


Keterangan :
1. Saya menggunakan dua data gridview

Mohon bantuannya..

Wassalam
Hendra Wijaya
You do not have the required permissions to view the files attached to this post.
User avatar
topeng
Prajurit Dua
Prajurit Dua
 
Posts: 12
Joined: 09 Feb 2012, 23:15
Memberi kopi: 5 cangkir
Mendapat kopi: 0 cangkir

Re: [TANYA] JOIN DATA IN DATAGRIDVIEW

Postby vberror13 » 21 Feb 2012, 20:20

Saya kurang mengerti kasusnya. Kenapa ada dua datagridview? Apakah dua datagridview itu berasal dari dua datatable yang berbeda? Bagaimana cara kamu mengisi datagridview-nya? Pake datatable atau cara lain?

Bila ingin melakukan agregrat Sum pada datatable, ini ada contohnya:

Code: Select all
Public Class joindatatable '' inherits system.windows.forms.form

    Private Sub joindatatable_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim tbloriginal As DataTable = Me.createDataTable
        '-- show original datatable
        DataGridView1.DataSource = tbloriginal

        Dim summaryData = From row In tbloriginal.AsEnumerable()
                 Group row By SKU = row(0),
                    Deskripsi = row(1) Into QTY = Sum(row.Field(Of Int16)(2))
                 Select New With {.SKU = SKU, .Deskripsi = Deskripsi, .QTY = QTY}

        '-- show data after aggregration
        DataGridView2.DataSource = summaryData.ToList()

    End Sub
    Private Function createDataTable() As DataTable
        Dim dtTable1 As New DataTable
        dtTable1.Columns.Add("SKU", GetType(Int16))
        dtTable1.Columns.Add("Deskripsi", GetType(String))
        dtTable1.Columns.Add("Qty", GetType(Int16))
        dtTable1.Rows.Add(New Object() {122, "Kopi", 1})
        dtTable1.Rows.Add(New Object() {123, "Gula", 1})
        dtTable1.Rows.Add(New Object() {124, "Beras", 1})
        dtTable1.Rows.Add(New Object() {122, "Kopi", 1})
        Return dtTable1
    End Function
End Class



:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful

Post vberror13 telah mendapat kopi dari:
topeng
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1848
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [TANYA] JOIN DATA IN DATAGRIDVIEW

Postby topeng » 22 Feb 2012, 07:53

vberror13
Saya kurang mengerti kasusnya. Kenapa ada dua datagridview? Apakah dua datagridview itu berasal dari dua datatable yang berbeda? Bagaimana cara kamu mengisi datagridview-nya? Pake datatable atau cara lain?


Hendra Wijaya:
Terimakasih atas responnya,

Saya menggunakanan dua datagridview (maksudnya) adalah untuk memindahkan isi dari datagridview 1 ke datagridview 2, jika data didalam datagridivew 2 sudah ada maka data yang dipilih pada datagridview yang pertama tidak jadi dimasukan.

Saya menggunakan csv file, yang diload secara manual, tidak menggunakan database langsung.

btw, kodingnya akan saya coba terlebih dahulu,

apa ada masukan buat saya, untuk menggunakan 1 datagridview saja?

Wassalam
Hendra Wijaya
User avatar
topeng
Prajurit Dua
Prajurit Dua
 
Posts: 12
Joined: 09 Feb 2012, 23:15
Memberi kopi: 5 cangkir
Mendapat kopi: 0 cangkir

Re: [TANYA] JOIN DATA IN DATAGRIDVIEW

Postby topeng » 22 Feb 2012, 08:06

oom vberror13, ini sreenshoot aslinya oom..
JOIN DATA IN DATAGRIDVIEW2.JPG


Wassalam
Hendra Wijaya
You do not have the required permissions to view the files attached to this post.
User avatar
topeng
Prajurit Dua
Prajurit Dua
 
Posts: 12
Joined: 09 Feb 2012, 23:15
Memberi kopi: 5 cangkir
Mendapat kopi: 0 cangkir

Re: [TANYA] JOIN DATA IN DATAGRIDVIEW

Postby vberror13 » 22 Feb 2012, 15:29

topeng wrote:apa ada masukan buat saya, untuk menggunakan 1 datagridview saja?

Yang saya tangkap, ada dua datagrid: 1 dari diisi dari file CSV, yang satu lagi dari database. Benar begitu, oom?

Hal penting yang harus kita ingat adalah jangan mengisi datagridview dengan kode kayak gini:
Code: Select all
with mydatagridview
  .Rows.add(new object(){"R1C1","R1C2","R1C3"})
  .Rows.add(new object(){"R2C1","R2C2","R2C3"})
  .Rows.add(new object(){"R3C1","R3C2","R3C3"})
...
....
end with

Saya biasanya memakai datatable dan melakukan binding ke datagrid. Setiap kali data di dalam datatable dimanipulasi (ditambah, hapus, atau update), data yang tampil di datagrid juga otomatis akan terupdate.

Nah, kalau dua datagridview itu diisi dari datatable, kita bisa menggabungkan (merge) dua datatable itu menjadi satu saja dan menampilkannya pada satu datagrid.
Intinya, kita buat dua datatable: yang pertama datanya dari file CSV, dan yang kedua dari database. Setelah yang dari file CSV di-load, merge datatable tersebut dengan datatable dari database. Lalu dengan LINQ, kita bikin object baru (iEnumerable) seperti contoh di atas (variabel summarydata).

Tentu saja kedua datatable yang akan kita merge harus punya field-field yang sama (nama dan type datanya). Karena itu sewaktu meload-data dari CSV dan database, pastikan keduanya memiliki struktur yang sama.
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful

Post vberror13 telah mendapat kopi dari:
topeng
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1848
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: [TANYA] JOIN DATA IN DATAGRIDVIEW

Postby topeng » 24 Feb 2012, 19:58

vberror13 wrote:
topeng wrote:apa ada masukan buat saya, untuk menggunakan 1 datagridview saja?

Yang saya tangkap, ada dua datagrid: 1 dari diisi dari file CSV, yang satu lagi dari database. Benar begitu, oom?

Hal penting yang harus kita ingat adalah jangan mengisi datagridview dengan kode kayak gini:
Code: Select all
with mydatagridview
  .Rows.add(new object(){"R1C1","R1C2","R1C3"})
  .Rows.add(new object(){"R2C1","R2C2","R2C3"})
  .Rows.add(new object(){"R3C1","R3C2","R3C3"})
...
....
end with

Saya biasanya memakai datatable dan melakukan binding ke datagrid. Setiap kali data di dalam datatable dimanipulasi (ditambah, hapus, atau update), data yang tampil di datagrid juga otomatis akan terupdate.

Nah, kalau dua datagridview itu diisi dari datatable, kita bisa menggabungkan (merge) dua datatable itu menjadi satu saja dan menampilkannya pada satu datagrid.
Intinya, kita buat dua datatable: yang pertama datanya dari file CSV, dan yang kedua dari database. Setelah yang dari file CSV di-load, merge datatable tersebut dengan datatable dari database. Lalu dengan LINQ, kita bikin object baru (iEnumerable) seperti contoh di atas (variabel summarydata).

Tentu saja kedua datatable yang akan kita merge harus punya field-field yang sama (nama dan type datanya). Karena itu sewaktu meload-data dari CSV dan database, pastikan keduanya memiliki struktur yang sama.


Terimakasih atas jawabannya om vberror, saya akan pelajari terlebih dahulu tentang datatable dan LINQ,

Wassalam
Hendra Wijaya
User avatar
topeng
Prajurit Dua
Prajurit Dua
 
Posts: 12
Joined: 09 Feb 2012, 23:15
Memberi kopi: 5 cangkir
Mendapat kopi: 0 cangkir


Return to Visual Basic .NET

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 3 guests