Minggu, 28 Oktober 2012

Latihan_37_36110034


Deskripsi penyelesaian
Form Latihan_37_36110034  terdapat dua object yaitu DataGreatView ,button, lebel, textbox, dan datetimepeker :

Object lebel
Terdapat sembilan objek lebel yang bertuliskan ( No.transaksi, tanggal, jenis transaksi, kode barang, nama barang, unit, harga, jumlah, dan total).
Object textbox
Terdapat delapan textbox, duatextbox bertstatus readonly yaitu nama barang dan total dan tujuh yang berstatus input yaitu no transaksi, jenis transaksi, kodebarang, unit, harga , jumlah yang digunakan untuk memasukkan data dan memunculkan data.
Object datetimepeker
Terdapat satu objek datetimepeker yang berfungsi sebagai penyedia tanggal secara kalender.
Object DataGreatview
Terdapat satu object datagreatview yang akan menampilkan table yang kolomnya berasal dari datamajemuk, yang dimana kolom-kolom dalam table digabungkan dari berbagai data, seperti data barang, detail transaksi , dan master transaksi.
Object Button
Terdapat dua objek button yang bertuliskan TAMBAH dan SIMPAN. tombol tambah  jika di klik akan menambah data pada table yang terdapat dalam datagreatview yang sebelumnya telah di input di setiap textbox, sedangkan tombol simpan jika di klik akan menyimpan perubahan terjadi pada form tersebut seperti penambahan data pada table.
Script Unique 
Buttom "Tambah”
If KB_36110034.Text.Length = 0 Then
            MsgBox("kode barang tidak terisi")
        ElseIf Val(UN_36110034.Text) Then
            MsgBox("unit tidak terisi")
        ElseIf Val(HAR_36110034.Text) Then
            MsgBox("harga barang tidak terisi")
            Exit Sub
        End If

        Dim dr As DataRow
        dr = dini.Rows.Find(KB_36110034.Text)
        If dr Is Nothing Then
            dr = dini.NewRow
            dr("KODEBARANG") = KB_36110034.Text
            dr("NAMABARANG") = NB_36110034.Text
            dr("UNIT") = UN_36110034.Text
            dr("HARGA") = HAR_36110034.Text
            dr("JUMLAH") = Val(JUM_36110034.Text)

            dini.Rows.Add(dr)

            KB_36110034.Text = ""
            UN_36110034.Text = ""
            HAR_36110034.Text = ""
        Else
            MsgBox("kodebarang telah terdaftar,")
        End If
        rumus()
    End Sub

Buttom "Simpan”
If NT_36110034.Text.Length = 0 Then
            MsgBox("nomor transaksi harus terisi")
        ElseIf JT_36110034.Text.Length = 0 Then
            MsgBox("jenis transaksi harus terisi")
        ElseIf dini.Rows.Count = 0 Then
            MsgBox("data table tidak boleh kosong")
            Exit Sub
        End If

        andini.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", NT_36110034.Text, 1, dian)
        If andini.JumlanBaris > 0 Then
            MsgBox("nomor transaksi telah ada")
            Exit Sub
        End If
        kusuma = New OleDb.OleDbCommand("insert into MASTERTRANSAKSI(NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) values ('" & NT_36110034.Text & "',#" & DTP_36110034.Value.Month & "/" & DTP_36110034.Value.Day & "/" & DTP_36110034.Value.Year & "#,'" & JT_36110034.Text & "')", dian)
        dian.Open()
        kusuma.ExecuteNonQuery()
        dian.Close()

        For Each X As DataRow In dini.Rows
            kusuma = New OleDb.OleDbCommand("insert into DETAILTRANSAKSI( NOTRANS,KODEBARANG, UNIT, HARGA) values ('" & NT_36110034.Text & "','" & X("KODEBARANG") & "','" & X("UNIT") & "','" & X("HARGA") & "')", dian)
            dian.Open()
            kusuma.ExecuteNonQuery()
            dian.Close()
        Next
        kusuma.Dispose()

        NT_36110034.Text = ""
        JT_36110034.Text = ""

        dini.Rows.Clear()
        rumus()
    End Sub

Property
Property Datagreatview => name => ok

Prosedur penyelesaian

1.   buka project yang telah dibuat sebelumnya klik add new item => add windows form => ganti nama project => add.

2.   membuat form dengan menggunakan DataGreatView,button, lebel, textbox, dan datetimepeker yang ada dalam "Toolbox”.


3.   ganti nama textbox dan button menggunakan "Properties Window".


4.   membuka lembar vb Masukkan rumus berikut untuk menyelesaikan latihan_37_36110034.
Public Class latihan_37_36110034
    Dim andini As New ByIskandar.CariKeDataBaseByIskandar
    Dim dini As New DataTable
    Dim dian As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\DataMajemuk.accdb;jet oledb:database password=2304")
    Dim kusuma As New OleDb.OleDbCommand

    Private Sub latihan_37_36110034_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
        Dim adapter As New OleDb.OleDbDataAdapter
        adapter = New OleDb.OleDbDataAdapter("select barang.KODEBARANG, barang.NAMABARANG, detailtransaksi.UNIT, detailtransaksi.HARGA, detailtransaksi.UNIT * HARGA as JUMLAH from barang inner join detailtransaksi on barang.KODEBARANG = detailtransaksi.KODEBARANG where NOTRANS = '" & NT_36110034.Text & "'", dian)
        dini.Rows.Clear()
        adapter.Fill(dini)
        adapter.Dispose()

        DGV_36110034.DataSource = dini

        Dim awz(1) As DataColumn
        awz(0) = dini.Columns("KODEBARANG")
        dini.PrimaryKey = awz
    End Sub
    Private Sub rumus()
        Dim rumus1 As Integer = 0
        For Each rumus2 As DataRow In dini.Rows
            rumus1 += rumus2("JUMLAH")
        Next
        TOT_36110034.Text = rumus1
    End Sub

    Private Sub KB_36110034_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles KB_36110034.Leave
        If KB_36110034.Text.Length = 0 Then
            Exit Sub
        End If
        andini.AturPencarianDataBase("BARANG", "KODEBARANG", KB_36110034.Text, 1, dian)
        If andini.JumlanBaris > 0 Then
            KB_36110034.Text = andini.DataTablenya.Rows(0).Item("KODEBARANG")
            NB_36110034.Text = andini.DataTablenya.Rows(0).Item("NAMABARANG")
        Else
            MsgBox("kode barang tidak terdaftar")
            Exit Sub
        End If
    End Sub

    Private Sub KB_36110034_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles KB_36110034.TextChanged
        NB_36110034.Text = ""
        UN_36110034.Text = ""
        HAR_36110034.Text = ""
    End Sub

    Private Sub TAMBAH_36110034_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAMBAH_36110034.Click
        If KB_36110034.Text.Length = 0 Then
            MsgBox("kode barang tidak terisi")
        ElseIf Val(UN_36110034.Text) Then
            MsgBox("unit tidak terisi")
        ElseIf Val(HAR_36110034.Text) Then
            MsgBox("harga barang tidak terisi")
            Exit Sub
        End If

        Dim dr As DataRow
        dr = dini.Rows.Find(KB_36110034.Text)
        If dr Is Nothing Then
            dr = dini.NewRow
            dr("KODEBARANG") = KB_36110034.Text
            dr("NAMABARANG") = NB_36110034.Text
            dr("UNIT") = UN_36110034.Text
            dr("HARGA") = HAR_36110034.Text
            dr("JUMLAH") = Val(JUM_36110034.Text)

            dini.Rows.Add(dr)

            KB_36110034.Text = ""
            UN_36110034.Text = ""
            HAR_36110034.Text = ""
        Else
            MsgBox("kodebarang telah terdaftar,")
        End If
        rumus()
    End Sub

    Private Sub SIMPAN_36110034_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SIMPAN_36110034.Click
        If NT_36110034.Text.Length = 0 Then
            MsgBox("nomor transaksi harus terisi")
        ElseIf JT_36110034.Text.Length = 0 Then
            MsgBox("jenis transaksi harus terisi")
        ElseIf dini.Rows.Count = 0 Then
            MsgBox("data table tidak boleh kosong")
            Exit Sub
        End If

        andini.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", NT_36110034.Text, 1, dian)
        If andini.JumlanBaris > 0 Then
            MsgBox("nomor transaksi telah ada")
            Exit Sub
        End If
        kusuma = New OleDb.OleDbCommand("insert into MASTERTRANSAKSI(NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) values ('" & NT_36110034.Text & "',#" & DTP_36110034.Value.Month & "/" & DTP_36110034.Value.Day & "/" & DTP_36110034.Value.Year & "#,'" & JT_36110034.Text & "')", dian)
        dian.Open()
        kusuma.ExecuteNonQuery()
        dian.Close()

        For Each X As DataRow In dini.Rows
            kusuma = New OleDb.OleDbCommand("insert into DETAILTRANSAKSI( NOTRANS,KODEBARANG, UNIT, HARGA) values ('" & NT_36110034.Text & "','" & X("KODEBARANG") & "','" & X("UNIT") & "','" & X("HARGA") & "')", dian)
            dian.Open()
            kusuma.ExecuteNonQuery()
            dian.Close()
        Next
        kusuma.Dispose()

        NT_36110034.Text = ""
        JT_36110034.Text = ""

        dini.Rows.Clear()
        rumus()
    End Sub

    Private Sub UN_36110034_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles UN_36110034.TextChanged
        JUM_36110034.Text = Val(UN_36110034.Text) * Val(HAR_36110034.Text)
    End Sub

    Private Sub HAR_36110034_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles HAR_36110034.TextChanged
        JUM_36110034.Text = Val(UN_36110034.Text) * Val(HAR_36110034.Text)
    End Sub
End Class

5.   Jalankan program dengan “start debugging”.




Tidak ada komentar:

Posting Komentar