Sabtu, 10 November 2012

Deskripsi Penyelesaian Latihan_38_36110041

Deskripsi Penyelesaian
Latihan_38_36110041
A.     Objek dalam Form Latihan_38:
Dalam form latihan ini terdapat lima object yaitu Label, TextBox, DateTimePicker, DataGridView, dan buttom.
1.      Object Label
Terdapat sembilan label (yang bertuliskan no transaksi, tanggal, jenis transaksi, kode barang, namabarang, unit, harga, jumlah, dan total).
2.      Object Textbox
Terdapat delapan textbox (lima status input dan tiga status readonly). Status input digunakan untuk memasukkan nilai: no transaksi, jenis transaksi, kode barang, unit, dan harga. Status readonly digunakan untuk menampilkan nama barang, jumlah, dan total.
3.      Object DateTimePicker
Terdapat satu object datetimepicker yang digunakan untuk menentukan tanggal transaksi.
4.      Object DataGridView
Terdapat satu object datagridview yang digunakan untuk menampilkan data yang telah diinput pada textbox.
5.      Object Button
Terdapat dua object button (Tambah dan Simpan). Tombol tambah digunakan untuk menyimpan data yang telah diinput pada textbox ke dalam datatabel (yang ditampilkan pada datagridview). Tombol simpan digunakan untuk menyimpan data yang telah diinput ke dalam database (DATA MAJEMUK). Kode barang yang diinput harus merupakan kode barang yang sudah ada pada tabel kode barang karena nama barang akan ditampilkan pada textbox readonly sesuai dengan kode barang yang diinput. Jika kode barang tidak ada, maka  akan muncul form Latihan_383940_36110041.


B.     Script Unique
Untuk scriptnya akan ditampilkan secara keseluruhan dalam prosedur
Latihan_38_36110041_Load

C.     Even
latihan_38_36110041_Load
KB_36110041_leave
KB_36110041_TextChanged
Tambah_36110041_Click
Simpan_36110041_Click
Unit_36110041_TextChanged
Harga_36110041_TextChanged
Prosedur penyelesaian
1.    Buka Project yang telah dibuat sebelumnya klik Add New Item =>  Add Windows Form
 


2.      Kemudian beri nama dan klik Add



3.      buat form seperti di bawah ini dengan menggunakan toolbox yang saya tunjukkan pada postingan sebelumnya.


4.      Berikut ini adalah rumus untuk menjalankan form di atas
Public Class latihan_38_36110041
    Dim cari As New OleDb.OleDbCommand
    Dim conect As New ByIskandar.CariKeDataBaseByIskandar
    Dim rizka As New DataTable
    Dim azisah As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\DataMajemuk.accdb;Jet OLEDB:Database Password=008")
    Private Sub latihan_38_36110041_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim r As New OleDb.OleDbDataAdapter
        r = 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_36110041.Text & "'", azisah)
        rizka.Rows.Clear()
        r.Fill(rizka)
        r.Dispose()

        rizka_36110041.DataSource = rizka

        Dim sudar(1) As DataColumn
        sudar(0) = rizka.Columns("kodebarang")
        rizka.PrimaryKey = sudar
    End Sub
    Private Sub sis()
        Dim sis1 As Integer = 0
        For Each sis2 As DataRow In rizka.Rows
            sis1 += sis2("JUMLAH")
        Next
        Total_36110041.Text = sis1
    End Sub

    Private Sub KB_36110041_leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KB_36110041.Leave
        If KB_36110041.Text.Length = 0 Then
            Exit Sub
        End If
        conect.AturPencarianDataBase("barang", "kodebarang", KB_36110041.Text, 1, azisah)
        If conect.JumlanBaris > 0 Then
            KB_36110041.Text = conect.DataTablenya.Rows(0).Item("KODEBARANG")
            NB_36110041.Text = conect.DataTablenya.Rows(0).Item("NAMABARANG")
        Else
            MsgBox("Kode barang tidak terdaftar")
            If latihan_38_39_40_36110041.ShowDialog = Windows.Forms.DialogResult.OK Then
                KB_36110041.Text = latihan_38_39_40_36110041.rizka_36110041.CurrentRow.Cells("kodebarang").Value
                NB_36110041.Text = latihan_38_39_40_36110041.rizka_36110041.CurrentRow.Cells("namabarang").Value
            Else
                KB_36110041.Text = ""
            End If
        End If
    End Sub

    Private Sub KB_36110041_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KB_36110041.TextChanged
        NB_36110041.Text = ""
        Unit_36110041.Text = ""
        Harga_36110041.Text = ""
    End Sub

    Private Sub Tambah_36110041_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tambah_36110041.Click
        If KB_36110041.Text.Length = 0 Then
            MsgBox("kode barang tidak terisi")
        ElseIf Val(Unit_36110041.Text) = 0 Then
            MsgBox("unit tidak terisi")
        ElseIf Val(Harga_36110041.Text) = 0 Then
            MsgBox("harga barang tidak terisi")
            Exit Sub
        End If

        Dim dt As DataRow
        dt = rizka.Rows.Find(KB_36110041.Text)
        If dt Is Nothing Then
            dt = rizka.NewRow
            dt("KODEBARANG") = KB_36110041.Text
            dt("NAMABARANG") = NB_36110041.Text
            dt("UNIT") = Unit_36110041.Text
            dt("HARGA") = Harga_36110041.Text
            dt("JUMLAH") = Val(Jumlah_36110041.Text)

            rizka.Rows.Add(dt)

            KB_36110041.Text = ""
            Unit_36110041.Text = ""
            Harga_36110041.Text = ""
        Else
            MsgBox("kode barang telah terdaftar,")
        End If
        sis()
    End Sub

    Private Sub Simpan_36110041_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36110041.Click
        If NT_36110041.Text.Length = 0 Then
            MsgBox("nomor transaksi harus terisi")
        ElseIf JT_36110041.Text.Length = 0 Then
            MsgBox("Isi rong Jenis Transaksi na..")
        ElseIf rizka.Rows.Count = 0 Then
            MsgBox("data table tidak boleh kosong")
            Exit Sub
        End If

        conect.AturPencarianDataBase("mastertransaksi", "notrans", NT_36110041.Text, 1, azisah)
        If conect.JumlanBaris > 0 Then
            MsgBox("nomor transaksi telah ada")
            Exit Sub
        End If

        cari = New OleDb.OleDbCommand("insert into mastertransaksi(notrans, tanggaltransaksi, jenistransaksi) values ('" & NT_36110041.Text & "',#" & TGL_36110041.Value.Month & "/" & TGL_36110041.Value.Day & "/" & TGL_36110041.Value.Year & "#,'" & JT_36110041.Text & "')", azisah)
        azisah.Open()
        cari.ExecuteNonQuery()
        azisah.Close()

        For Each x As DataRow In rizka.Rows
            cari = New OleDb.OleDbCommand("insert into detailtransaksi(notrans, kodebarang, unit, harga) values ('" & NT_36110041.Text & "','" & x("kodebarang") & "','" & x("unit") & "','" & x("harga") & "')", azisah)
            azisah.Open()
            cari.ExecuteNonQuery()
            azisah.Close()
        Next
        cari.Dispose()

        NT_36110041.Text = ""
        JT_36110041.Text = ""

        rizka_36110041.Rows.Clear()
        sis()
    End Sub
    Private Sub Unit_36110041_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Unit_36110041.TextChanged
        Jumlah_36110041.Text = Val(Unit_36110041.Text) * Val(Harga_36110041.Text)
    End Sub

    Private Sub Harga_36110041_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Harga_36110041.TextChanged
        Jumlah_36110041.Text = Val(Unit_36110041.Text) * Val(Harga_36110041.Text)
    End Sub
End Class  
5.      Kemudian jalanka perintahnya



Tidak ada komentar:

Posting Komentar