Sabtu, 05 Januari 2013

Latihan 39

Deskripsi

1. Objek textbox
terdapat 3 objek textbox pada form ini. textbox tersebut berfungsi untuk menginput data baru dari data yang di edit. 1 diantaranya berstatus ReadOnly

2. objek button
terdapat 1 objek button form ini. berfungsi mengeksekusi input pada textbox dan menyimpan data ke access

3. objek datagridview
menampilkan hasil inputan pada textbox

4. objek datetimepicker
terdapat satu objek ini pada form kali ini

even :  ButtonClick


Pembuatan Form
1. buka Microsoft Visual Studio anda
2. bukalah file kumpulan latihan anda
3. pilih menu project lalu klik add windows form
4. drag objek dari toolbox anda. susun hingga menjadi form seperti form pada gambar dibawah ini.


5. masukkan script berikut

Public Class Latihan_39_46110008
    Dim Jalan As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" & Application.StartupPath & "\Datamajemuk.ACCDB")
    Dim tabel As New DataTable
    Private Sub xxx()
        Dim ttotal As Integer
        For Each hasil As DataRow In tabel.Rows
            ttotal += hasil("Jumlah")
        Next
        tot46110008.Text = ttotal
    End Sub

    Private Sub Latihan_39_46110008_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 detailtransaksi.kodebarang,barang.namabarang,detailtransaksi.unit,detailtransaksi.harga, detailtransaksi.unit * detailtransaksi.harga as jumlah FROM DETAILTRANSAKSI inner join barang on detailtransaksi.kodebarang=barang.kodebarang where detailtransaksi.notrans='" & notr46110008.Text & "'", Jalan)

        tabel.Rows.Clear()

        adapter.Fill(tabel)
        adapter.Dispose()

        tabel.Columns("Kodebarang").DefaultValue = ""
        tabel.Columns("NamaBarang").DefaultValue = ""
        tabel.Columns("unit").DefaultValue = 0
        tabel.Columns("harga").DefaultValue = 0
        tabel.Columns("jumlah").DefaultValue = 0

        tabel.Columns("NamaBarang").ReadOnly = True


        dgv46110008.DataSource = tabel

        Dim aaa(2) As DataColumn
        aaa(0) = tabel.Columns("Kodebarang")
        tabel.PrimaryKey = aaa
    End Sub

    Private Sub dgv46110008_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv46110008.CellEndEdit
        'mengosongkan data
        If e.ColumnIndex = 0 Then
            dgv46110008.CurrentRow.Cells("NamaBarang").Value = ""
            dgv46110008.CurrentRow.Cells("Unit").Value = 0
            dgv46110008.CurrentRow.Cells("harga").Value = 0
            dgv46110008.CurrentRow.Cells("Jumlah").Value = 0

            'mencari data yang ada di tabel
            Dim Pencari As New ByIskandar.CariKeDataBaseByIskandar
            Pencari.AturPencarianDataBase("barang", "kodebarang", dgv46110008.CurrentRow.Cells("kodebarang").Value, 1, Jalan)
            If Pencari.JumlanBaris > 0 Then
                dgv46110008.CurrentRow.Cells("kodebarang").Value = Pencari.DataTablenya.Rows(0).Item(0)
                dgv46110008.CurrentRow.Cells("namabarang").Value = Pencari.DataTablenya.Rows(0).Item(1)
            Else
                MsgBox("the data is not found")
                If Latihan_38_39_40_4611008.ShowDialog = Windows.Forms.DialogResult.OK Then
                    dgv46110008.CurrentRow.Cells("kodebarang").Value = Latihan_38_39_40_4611008.dgv46110008.CurrentRow.Cells("KodeBarang").Value
                    dgv46110008.CurrentRow.Cells("Namabarang").Value = Latihan_38_39_40_4611008.dgv46110008.CurrentRow.Cells("namabarang").Value
                End If
            End If

            'mengitung jumlah dan total
        ElseIf e.ColumnIndex = 2 Or e.ColumnIndex = 3 Then
            dgv46110008.CurrentRow.Cells("jumlah").Value = dgv46110008.CurrentRow.Cells("unit").Value * dgv46110008.CurrentRow.Cells("harga").Value
            xxx()
        End If
    End Sub


    Private Sub save46110008_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save46110008.Click
        If notr46110008.Text.Length = 0 Then
            MsgBox("Please, insert the Number of the transaction")
            Exit Sub
        End If

        If jt46110008.Text.Length = 0 Then
            MsgBox("Please, insert the type of the transaction")
            Exit Sub
        End If

        If tabel.Rows.Count = 0 Then
            MsgBox("the data is none")
            Exit Sub
        End If

        Dim search As New ByIskandar.CariKeDataBaseByIskandar
        search.AturPencarianDataBase("mastertransaksi", "notrans", notr46110008.Text, 1, Jalan)
        If search.JumlanBaris > 0 Then
            MsgBox("the code has been exist")
            Exit Sub
        End If

        Dim zzz As New OleDb.OleDbCommand
        zzz = New OleDb.OleDbCommand("insert into mastertransaksi (notrans,tanggaltransaksi,jenistransaksi) values ('" & notr46110008.Text & "',#" & tgl46110008.Value.Month & "/" & tgl46110008.Value.Day & "/" & tgl46110008.Value.Year & "#,'" & jt46110008.Text & "')", Jalan)
        Jalan.Open()
        zzz.ExecuteNonQuery()
        Jalan.Close()

        For Each yyy As DataRow In tabel.Rows
            zzz = New OleDb.OleDbCommand("insert into detailtransaksi (notrans,kodebarang,unit,harga) values ('" & notr46110008.Text & "','" & yyy("kodebarang") & "'," & yyy("unit") & "," & yyy("harga") & ")", Jalan)
            Jalan.Open()
            zzz.ExecuteNonQuery()
            Jalan.Close()

        Next
        zzz.Dispose()

        notr46110008.Text = ""
        jt46110008.Text = ""

        tabel.Rows.Clear()

        Me.Close()

    End Sub
End Class

Tidak ada komentar:

Posting Komentar