Jumat, 26 Oktober 2012

Latihan_383940_36110038

Latihan_40B_36110038



Deskripsi Latihan_40B_36110038
Form Latihan_40B terdapat enam object yaitu Label, Textbox, Button, DateTimePicker, DataGridView dan StatusStrip:

Object Label
Terdapat empat label (No. Transaksi, Tanggal, jenis Transaksi dan total)

Object Text Box
Terdapat tiga textbox (dua status input dan satu status readonly). Status input digunakan untuk memasukkan nilai/text No. Transaksi dan jenis Transaksi. Sedangkan status ReadOnly digunakan untuk menampilkan Total harga dari semua data yang ada pada objek DataGridView.

Object Button
Terdapat satu object button (Simpan). Tombol Simpan digunakan untuk menyimpan data yang ingin ditambahkan atau dirubah pada Latihan_40A_36110038 ke objek DataGridView.

Object Date TimePicker
Terdapat satu datetimepicker yang digunakan untuk memasukkan date/tanggal.

Object Data GridView
Terdapat satu data gridview yang digunakan untuk menampilkan data yang diinput.

Script Unique 
Button "simpan" (simpan_36110038)
If tabel.Rows.Count = 0 Then
            MsgBox("Datanya Belum Ada, Masukkan Kode Barang, Unit dan harganya")
            Exit Sub
        End If

Even
simpan_36110038.Click

Proprety
ReadOnly è True

Prosedur penyelesaian
1.      Buka Project_36110038 yang telah dibuat sebelumnya.
2.      Buka visual basic Kumpulan_Latihan_36110038 yang telah dibuat sebelumnya
.
3.      Buat form baru dengan nama Latihan_40B_36110038 sesuai form dibawah in
i.
4.      Ganti semua nama objek yang ada selain label menggunakan "Properties Window" sesuai dengan yang diinginkan dengan menambahkan stambuk dibelakang nama obyek.
5.      Klik 2x pada kotak design untuk membuka lembar VB untuk menuliskan rumusnya. Masukkan rumus berikut untuk menyelesaikan Latihan_40B

Public Class Latihan_40B_36110038
    Dim connec As New OleDb.OleDbConnection(" Provider = microsoft.ace.oledb.12.0; data source = " & Application.StartupPath & "\DataMajemuk.accdb")
    Dim tabel As New DataTable

    Public Sub SelectData()
        Dim adapter As New OleDb.OleDbDataAdapter

        adapter = New OleDb.OleDbDataAdapter("Select BARANG.KODEBARANG, BARANG.NAMABARANG, UNIT, HARGA, UNIT * HARGA As JUMLAH " & _
        "From DETAILTRANSAKSI Inner join BARANG on DETAILTRANSAKSI.KODEBARANG = BARANG.KODEBARANG where NOTRANS = '" & no_36110038.Text & "'", connec)

        tabel.Rows.Clear()

        adapter.Fill(tabel)

        adapter.Dispose()
    End Sub

    Public Sub Hitung()
        Dim Jumlah As Integer = 0
        For Each row As DataGridViewRow In dgv_36110038.Rows
            Jumlah = Jumlah + row.Cells("Jumlah").Value
        Next
        ttl_36110038.Text = Jumlah
    End Sub

    Private Sub Latihan_40B_36110038_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SelectData()
        dgv_36110038.DataSource = tabel
    End Sub

    Private Sub dgv_36110038_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_36110038.CellContentClick

    End Sub

    Private Sub dgv_36110038_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_36110038.CellEndEdit
        If e.ColumnIndex = 0 Then
            dgv_36110038.CurrentRow.Cells("NAMABARANG").Value = ""
            dgv_36110038.CurrentRow.Cells("UNIT").Value = 0
            dgv_36110038.CurrentRow.Cells("HARGA").Value = 0
            dgv_36110038.CurrentRow.Cells("JUMLAH").Value = 0

            Dim Pencari As New ByIskandar.CariKeDataBaseByIskandar
            Pencari.AturPencarianDataBase("BARANG", "KODEBARANG", dgv_36110038.CurrentRow.Cells("KODEBARANG").Value, 1, connec)

            If Pencari.JumlanBaris = 0 Then
                MsgBox("Kode barang tersebut tidak ada")
                If Latihan_383940_36110038.ShowDialog = Windows.Forms.DialogResult.OK Then
                    dgv_36110038.CurrentRow.Cells("KODEBARANG").Value = Latihan_383940_36110038.dgv_36110038.CurrentRow.Cells("KODEBARANG").Value
                    dgv_36110038.CurrentRow.Cells("NAMABARANG").Value = Latihan_383940_36110038.dgv_36110038.CurrentRow.Cells("NAMABARANG").Value
                Else
                    dgv_36110038.CurrentRow.Cells("KODEBARANG").Value = ""
                End If
                Exit Sub
            End If

            dgv_36110038.CurrentRow.Cells("NAMABARANG").Value = Pencari.DataTablenya.Rows(0).Item("NAMABARANG")

        ElseIf e.ColumnIndex = 2 Or e.ColumnIndex = 3 Then
            dgv_36110038.CurrentRow.Cells("JUMLAH").Value = dgv_36110038.CurrentRow.Cells("UNIT").Value * dgv_36110038.CurrentRow.Cells("HARGA").Value

            Hitung()
        End If
    End Sub

    Private Sub Simpan_36110038_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36110038.Click
        If tabel.Rows.Count = 0 Then
            MsgBox("Datanya Belum Ada, Masukkan Kode Barang, Unit dan harganya")
            Exit Sub
        End If

        If no_36110038.Text <> nolama_36110038.Text Then
            Dim cari As New ByIskandar.CariKeDataBaseByIskandar
            cari.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", no_36110038.Text, 1, connec)
            If cari.JumlanBaris > 0 Then
                MsgBox("No Transaksi Sudah Ada, Masukkan No Transaksi yang Lain")
                Exit Sub
            End If
        End If

        Dim Hapus As New OleDb.OleDbCommand
        Hapus = New OleDb.OleDbCommand("Delete * From MASTERTRANSAKSI Where NOTRANS = '" & nolama_36110038.Text & "'", connec)
        connec.Open()
        Hapus.ExecuteNonQuery()
        connec.Close()
        Hapus = New OleDb.OleDbCommand("Delete * From DETAILTRANSAKSI Where NOTRANS = '" & nolama_36110038.Text & "'", connec)
        connec.Open()
        Hapus.ExecuteNonQuery()
        connec.Close()

        Dim Ambil As New OleDb.OleDbCommand
        Ambil = New OleDb.OleDbCommand("Insert Into MASTERTRANSAKSI (NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) " & _
        "Values ('" & no_36110038.Text & "', #" & tgl_36110038.Value.Month & "/" & tgl_36110038.Value.Day & "/" & tgl_36110038.Value.Year & "#, '" & jns_36110038.Text & "')", connec)
        connec.Open()
        Ambil.ExecuteNonQuery()
        connec.Close()
        Ambil.Dispose()

        For Each BarisX As DataRow In tabel.Rows
            Dim Simpan As New OleDb.OleDbCommand
            Simpan = New OleDb.OleDbCommand("Insert Into DETAILTRANSAKSI (NOTRANS, KODEBARANG, UNIT, HARAGA) " & _
            "Values ('" & no_36110038.Text & "', '" & BarisX("KODEBARANG") & "', " & BarisX("UNIT") & ", " & BarisX("HARGA") & ")", connec)
            connec.Open()
            Simpan.ExecuteNonQuery()
            connec.Close()
            Simpan.Dispose()
        Next

        no_36110038.Text = ""
        jns_36110038.Text = ""

        tabel.Clear()

        Latihan_40A_36110038.Isi()

        Hitung()
    End Sub
End Class
6.      Tekan F5 pada keyboard untuk menjalankan form.