Sabtu, 10 November 2012

Deskripsi Penyelesaian Latihan_40b_36110041


Deskripsi Penyelesaian
Latihan_40b_36110041
A.     Objek dalam Form Latihan_40b:
Dalam form latihan ini terdapat enam object yaitu Label, TextBox, DateTimePicker, DataGridView, Buttom, dan StatusStrip.
1.      Object Label
Terdapat empat object Label yang bertuliskan No. Transaksi, Tanggal, Jenis Transaksi dan Total.
2.      Object TextBox
Terdapat tiga  textbox (dua status input dan satu status read only). Status input digunakan untuk memasukkan data No. Transaksi dan Jenis Transaksi. Status Read Only digunakan untuk menampilkan Total.
3.      Object DateTimePicker
Terdapat satu object DateTimePicker yang digunakan dalam memfilter data tabel yang ada di datagridview.
4.      Object DataGridView
Terdapat satu object datagridview yang digunakan untuk menampilkan data yang akan diedit atau ditambah ke dalam database. Data yang akan diedit merupakan data yang sudah dipilih pada form Latihan_40a_36110041.
5.      Object Buttom
Terdapat dua object (Tambah dan Simpan), dimana Tambah digunakan untuk menambah data Kode Barang, Unit, dan Jumlah dalam DataGridView, sedangakan Simpan digunakan untuk menyimpan hasil pengimputan dari data Kode Barang, Unit, dan Jumlah kedalam DetailTransaksi.
6.      Object StatusStrip
Terdapat satu object statustrip yang memiliki dua label (yang bertuliskan no transaksi dan -).

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

C.     Even
sis2()
sis3()
sis4()
tambah()
edit()
latihan_40b_36110041_Load
rizka_36110041_Cellendedit
Simpan_36110041_Click

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_40b_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")
    Public Sub sis2()
        Dim a As New OleDb.OleDbDataAdapter
        a = New OleDb.OleDbDataAdapter("select barang.KODEBARANG, barang.NAMABARANG, detailtransaksi.UNIT, detailtransaksi.HARGA, detailtransaksi.unit * detailtransaksi.harga as JUMLAH from barang inner join detailtransaksi on barang.kodebarang = detailtransaksi.kodebarang where notrans = '" & NT_36110041.Text & "'", azisah)
        rizka.Rows.Clear()
        a.Fill(rizka)
    End Sub
    Public Sub sis3()
        Dim sis31 As Integer = 0
        For Each anra32 As DataRow In rizka.Rows
            sis31 += anra32("JUMLAH")
        Next
        Total_36110041.Text = sis31
    End Sub

    Private Sub sis4()
        If NT_36110041.Text.Length = 0 Then
            MsgBox("no transaksi harus terisi")
            Exit Sub
        End If

        If JT_36110041.Text.Length = 0 Then
            MsgBox("jenis transaksi harus terisi")
            Exit Sub
        End If

        If rizka.Rows.Count = 0 Then
            MsgBox("Isi datatable")
            Exit Sub
        End If
    End Sub

    Private Sub tambah()
        sis4()
        conect.AturPencarianDataBase("mastertransaksi", "notrans", NT_36110041.Text, 1, azisah)
        If conect.JumlanBaris > 0 Then
            MsgBox("Adami notrans seperti itu..")
            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 & "#, '" & TGL_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 = ""
        Total_36110041.Text = ""
        kode_36110041.Text = "-"

        rizka.Rows.Clear()
        latihan_40a_36110041.sis1()
    End Sub

    Public Sub edit()
        sis4()
        If NT_36110041.Text <> kode_36110041.Text Then
            conect.AturPencarianDataBase("mastertransaksi", "notrans", NT_36110041.Text, 1, azisah)
            If conect.JumlanBaris > 0 Then
                MsgBox("no transaksi telah ada")
                Exit Sub
            End If
        End If

        cari = New OleDb.OleDbCommand("delete * from mastertransaksi where notrans = '" & kode_36110041.Text & "'", azisah)
        azisah.Open()
        cari.ExecuteNonQuery()
        azisah.Close()

        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()

        cari = New OleDb.OleDbCommand("delete * from detailtransaksi where notrans = '" & kode_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 = ""
        Total_36110041.Text = ""
        kode_36110041 = "-"

        rizka.Rows.Clear()
        latihan_40a_36110041.sis1()
    End Sub
    Private Sub latihan_40b_36110041_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        sis2()

        Dim dc(1) As DataColumn
        dc(0) = rizka.Columns("kodebarang")
        rizka.PrimaryKey = dc

        rizka.Columns("unit").DefaultValue = 0
        rizka.Columns("harga").DefaultValue = 0
        rizka.Columns("jumlah").DefaultValue = 0

        rizka_36110041.DataSource = rizka
    End Sub

    Private Sub rizka_36110041_Cellendedit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles rizka_36110041.CellEndEdit
        If rizka_36110041.Columns(e.ColumnIndex).Name = "KODEBARANG" Then

            rizka_36110041.CurrentRow.Cells("NAMABARANG").Value = ""
            rizka_36110041.CurrentRow.Cells("UNIT").Value = 0
            rizka_36110041.CurrentRow.Cells("HARGA").Value = 0
            rizka_36110041.CurrentRow.Cells("JUMLAH").Value = 0

            conect.AturPencarianDataBase("barang", "kodebarang", rizka_36110041.CurrentRow.Cells("KODEBARANG").Value, 1, azisah)
            If conect.JumlanBaris > 0 Then
                rizka_36110041.CurrentRow.Cells("NAMABARANG").Value = conect.DataTablenya.Rows(0).Item("NAMABARANG")
            Else
                rizka_36110041.CurrentRow.Cells("NAMABARANG").Value = ""
                If latihan_38_39_40_36110041.ShowDialog = Windows.Forms.DialogResult.OK Then
                    rizka_36110041.CurrentRow.Cells("KODEBARANG").Value = latihan_38_39_40_36110041.rizka_36110041.CurrentRow.Cells("KODEBARANG").Value
                    rizka_36110041.CurrentRow.Cells("NAMABARANG").Value = latihan_38_39_40_36110041.rizka_36110041.CurrentRow.Cells("NAMABARANG").Value
                End If
            End If

        ElseIf rizka_36110041.Columns(e.ColumnIndex).Name = "UNIT" Or rizka_36110041.Columns(e.ColumnIndex).Name = "HARGA" Then
            rizka_36110041.CurrentRow.Cells("JUMLAH").Value = rizka_36110041.CurrentRow.Cells("UNIT").Value * rizka_36110041.CurrentRow.Cells("HARGA").Value
            sis3()
        End If
    End Sub

    Private Sub Simpan_36110041_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36110041.Click
        If kode_36110041.Text = "-" Then
            tambah()
        Else
            edit()
        End If
    End Sub
End Class  
5.      Kemudian jalanka perintahnya




Tidak ada komentar:

Posting Komentar