Jumat, 26 Oktober 2012

Latihan_39_36110038



Deskripsi Latihan_39_36110038
Form Latihan_39 terdapat lima object yaitu Label, Textbox, Button, DateTimePicker dan DataGridView:

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 ada pada datagridview ke dalam table yang ada pada access Data Majemuk.

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_39_36110038 sesuai form dibawah ini.
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_39

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

    Private 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_39_36110038_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        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()

        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 cari As New ByIskandar.CariKeDataBaseByIskandar
            cari.AturPencarianDataBase("BARANG", "KODEBARANG", dgv_36110038.CurrentRow.Cells("KODEBARANG").Value, 1, connec)

            If cari.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 = cari.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

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

        Dim comman As New OleDb.OleDbCommand
        comman = 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()
        comman.ExecuteNonQuery()
        connec.Close()

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

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

        tabel.Rows.Clear()

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


Tidak ada komentar:

Posting Komentar