Thursday, February 16, 2017

Koding Transaksi Many To Many di dalam DatagridView VB .NET pada Penjualan

Koding Transaksi Many To Many di dalam DatagridView VB .NET pada Penjualan
::
::
Nah kali ini lanjut ke koding yak, uda pada jago nge design kan...
sebelumnya aku sampein alurnya dulu dikit.
disini gak ada tabel konsumen kan ya, artinya pembeli itu cuma dapet struk/nota aja, lah nota ini ya didapat dari (idtransaksi).
liat lagi gambar!
*ingat! detail_transaksi tidak pakai kunci utama / primary key
DAN temen2 juga harus paham yak, tentang konsep di dalam Datagridview, mana yang ROWS dan mana yang COLUMN!    
*INGAT! index itu dari NOL,    kek gini loh...
udah paham belom? kalo belom mending sekarang PIKNIK sanah!!!
::
::
Eh ngomong2, aku dapet ilmunya dari Pak UUS RUSMAWAN Loh, Beliau keren banget kalo bikin tutorial. Maasyaa Alloh, semoga Alloh selalu memberi Beliau kesehatan. aamiin
::
::
CUUUUUUSS!!!!!!!!!
LANGKAH-LANGKAH Koding Transaksi One To Many di dalam DatagridView VB .NET.
---------------------------------------------------------------------------------------------------------------
1. Buat kode otomatis dulu untuk NOTA (kalo di tabel sbg idtransaksi) dan TANGGAL(upToDate)

Kalo udah, RUN ________Hasilnya gini:
2. Klik 2x DGV, lalu Event nya diubah menjadi CellEndEdit. Lalu isikan koding di bawah ini. Sekalian prosedur hitungbarang() dan hitungharga()

Private Sub DGV_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DGV.CellEndEdit
        If e.ColumnIndex = 0 Then
            cmd = New OleDbCommand("select * from barang where nama='" & DGV.Rows(e.RowIndex).Cells(0).Value & "'", conn)
            dr = cmd.ExecuteReader
            dr.Read()
            If dr.HasRows Then
                DGV.Rows(e.RowIndex).Cells(1).Value = dr.Item("kodebarang")
                DGV.Rows(e.RowIndex).Cells(3).Value = dr.Item("harga")
                'asumsi penjualan minimal jumlah barang 1 (satu)
                'jadi ketika ngetik nama barang di kolom nama barang
                DGV.Rows(e.RowIndex).Cells(2).Value = 1
                DGV.Rows(e.RowIndex).Cells(4).Value = DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value
            Else
                MsgBox("data tidak terdaftar")
            End If

        End If
        If e.ColumnIndex = 2 Then
            'kolom sub total = kolom jumlah * kolom harga
            'harus paham yah... coba lihat lagi, sub total/jumlah/harga terdapat di Cells berapa?
            'biar paham koding di bawah ini.
            DGV.Rows(e.RowIndex).Cells(4).Value = DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value
        End If
        Call hitungbarang()
        Call hitungharga()
    End Sub

------------------------------------------------------
prosedur hitungbarang() dan hitungharga()
--------------------------------------------------

Sub hitungbarang()
        Dim hitung As Integer = 0
        For baris As Integer = 0 To DGV.RowCount - 1
            hitung = hitung + DGV.Rows(baris).Cells(2).Value
        Next
        Ttotalitem.Text = hitung
    End Sub

    Sub hitungharga()
        Dim hitung As Integer = 0
        For baris As Integer = 0 To DGV.RowCount - 1
            hitung = hitung + DGV.Rows(baris).Cells(4).Value
        Next
        Ttotalharga.Text = hitung
    End Sub

-----------------------------------------------------------------------------------------------------------------
*apa fungsi RowCount - 1 ? Karena pada Datagridview ada baris yang kosong, dan artinya gak ikut dihitung, makanya di -1.
-----------------------------------------------------------------------------------------------------------------
*Perhatikan setiap ada komen! di dalam koding yak...warnanya biasanya IJO.
 (duh GALAK, maaf)
-----------------------------------------------------------------------------------------------------------------


*GAK USAH DITULIS JUGA KALEE Private Sub DGV_CellEndEdit....blablablabla

3. COBA RUN!, dan Ketikkan di Nama Barang sesuai yang ada di tabel barang, kekgini loh!

4. Nah sekarang Eksperimen dengan mengganti Cells Jumlah. Coba RUN lagi, terus ganti jumlah barangnya...Maka di kolom Total Item akan berubah sesuai jumlah barang contoh:


5. Sekarang tinggal Koding  Bayar dan Kembalian.
Pas di kolom bayar kita nginputin manual dong, contoh: Total Harga 41.500, di kolom bayar kita inputkan 50.000, otomatis di kolom kembalian harus tertera 8.500 dong? 
jadi logikanya, ada aksi yang dijalankan pada saat event perubahan di kolom bayar.
::
langkahnya, klik 2x pada kolom Bayar. Ketikkan koding di bawah ini

Private Sub Tbayar_TextChanged(sender As Object, e As EventArgs) Handles Tbayar.TextChanged
        Tkembalian.Text = Val(Tbayar.Text - Ttotalharga.Text)
    End Sub

Sekarang Coba RUN, Hasilnya kekgini:

SELAMAT MENCOBA KAWAN...
Hai... GAMERs
--------------------||TIDAK ADA YANG SUSAH KALO MAU BELAJAR, #jere wkwkwwkwk ||------------------
 

7 comments:

  1. Replies
    1. Wkwkwk... Iyalah...
      Dolanan PEBE ge mati bae.. Wkwk

      Delete
  2. Setelah diketik nama barang di cell 0 apakah langsung keluar isi dri find database yg berhubungan dgn nama barang termasuk harga dan yg lain.. Apa harus dienter dlu baru bisa kluar.. Krna poject saya harus enter dlu. Mohon pencerahannya

    ReplyDelete
    Replies
    1. iya gan di ENTER terus muncul data yg berhubungan dengan nama barang.
      maaf gan baru sempat membalas

      Delete
  3. nice coding gan, terim kasih, tapi mau tanya nih, kalau semisal data ditambahkan/ dihapus ke datagrid, kok di kolom total item dan jumlahnya g mau bertambah atau berkurang ya? tapi setelah tak close form nya lalu sy buka lgi baru tuh mau update total item dan harganya,

    ReplyDelete
  4. "Karena pada Datagridview ada baris yang kosong, dan artinya gak ikut dihitung, makanya di -1", yang dimaksud baris kosong yg mana ya?

    ReplyDelete
    Replies
    1. Jadi datagridview kan ada yang kosong satu baris paling bawah

      Delete

Tutorial Membuat LEVEL ADMIN dengan status strip lengkap dengan koding

Tutorial Membuat LEVEL ADMIN dengan status strip lengkap dengan koding. ------------------- PERHATIKAN LANGKAH-LANGKAH BERIKUT!!! (urut) ...