Minggu, 28 Oktober 2012

Latihan_40B_36110034


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

Object lebel
Terdapat empat objek lebel yang bertuliskan ( No.transaksi, tanggal, jenis transaksi,dan total).
Object textbox
Terdapat tiga textbox, satu textbox bertstatus readonly yaitu  total dan dua yang berstatus input yaitu no transaksi, jenis transaksi, yang digunakan untuk memasukkan data dan memunculkan data.
Object datetimepeker
Terdapat satu objek datetimepeker yang berfungsi sebagai penyedia tanggal secara kalender.
Object statusstrip.
Terdapat dua objek statusstrip yaitu lebel yang bertuliskan no transaksi dan satu objek yang dibuat kosong dan hanya border yang ditampilkan.
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 satu objek button yang bertuliskan 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 "Simpan”

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_40A_36110034.
Public Class latihan_40B_36110034
    Dim andini As New ByIskandar.CariKeDataBaseByIskandar
    Dim dini As New DataTable
    Dim ardian As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\DataMajemuk.accdb;jet oledb:database password=2304")
    Dim dian As New OleDb.OleDbCommand
    Public Sub rumus2()
        Dim adp As New OleDb.OleDbDataAdapter
        adp = 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_36110034.Text & "'", ardian)
        dini.Rows.Clear()
        adp.Fill(dini)
    End Sub
    Public Sub rumus3()
        Dim rumus31 As Integer = 0
        For Each rumus32 As DataRow In dini.Rows
            rumus31 += rumus32("JUMLAH")
        Next
        TOT_36110034.Text = rumus31
    End Sub
    Public Sub rumus4()
        If NT_36110034.Text.Length = 0 Then
            MsgBox("nomor transaksi harus terisi")
            Exit Sub
        End If

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

        If dini.Rows.Count = 0 Then
            MsgBox("isi table")
            Exit Sub
        End If
    End Sub
    Private Sub tambah()
        rumus4()
        andini.AturPencarianDataBase("mastertransaksi", "notrans", NT_36110034.Text, 1, ardian)
        If andini.JumlanBaris > 0 Then
            MsgBox("nomor transaksi telah ada")
            Exit Sub
        End If

        dian = New OleDb.OleDbCommand("insert into mastertransaksi(notrans, tanggaltransaksi, jenistransaksi) value ('" & NT_36110034.Text & "',#" & DTP_36110034.Value.Month & "/" & DTP_36110034.Value.Day & "/" & DTP_36110034.Value.Year & "#,'" & JT_36110034.Text & "')", ardian)
        ardian.Open()
        dian.ExecuteNonQuery()
        ardian.Close()

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

        NT_36110034.Text = ""
        JT_36110034.Text = ""
        TOT_36110034.Text = ""
        NOTRANS_36110034.Text = ""

        dini.Rows.Clear()
        latihan_40A_36110034.rumus()
    End Sub
    Private Sub edit()
        rumus4()
        If NT_36110034.Text <> NOTRANS_36110034.Text Then
            andini.AturPencarianDataBase("mastertransaksi", "notrans", NT_36110034.Text, 1, ardian)
            If andini.JumlanBaris > 0 Then
                MsgBox("no transaksi telah ada")
                Exit Sub
            End If
        End If

        dian = New OleDb.OleDbCommand("delete * from mastertransaksi where notrans = '" & kode_36109003.Text & "'", ndut)
        ardian.Open()
        dian.ExecuteNonQuery()
        ardian.Close()

        dian = 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 & "')", ardian)
        ardian.Open()
        dian.ExecuteNonQuery()
        ardian.Close()

        dian = New OleDb.OleDbCommand("delete * from detailtransaksi where notrans = '" & NOTRANS_36110034.Text & "'", ardian)
        ardian.Open()
        dian.ExecuteNonQuery()
        ardian.Close()

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

        NT_36110034.Text = ""
        JT_36110034.Text = ""
        TOT_36110034.Text = ""
        NOTRANS_36110034.Text = "-"

        dini.Rows.Clear()
        latihan_40A_36110034.rumus()
    End Sub
    Private Sub latihan_40B_36110034_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        rumus2()

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

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

        DGV_36110034.DataSource = dini
    End Sub

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

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

            andini.AturPencarianDataBase("BARANG", "KODEBARANG", DGV_36110034.CurrentRow.Cells("KODEBARANG").Value, 1, dian)
            If andini.JumlanBaris > 0 Then
                DGV_36110034.CurrentRow.Cells("NAMABARANG").Value = andini.DataTablenya.Rows(0).Item("NAMABARANG")
            Else
                DGV_36110034.CurrentRow.Cells("NAMABARANG").Value = ""
                If latihan383940_36110034.ShowDialog = Windows.Forms.DialogResult.OK Then
                    DGV_36110034.CurrentRow.Cells("KODEBARANG").Value = latihan383940_36110034.dgv_36110034.CurrentRow.Cells("KODEBARANG").Value
                    DGV_36110034.CurrentRow.Cells("NAMABARANG").Value = latihan383940_36110034.dgv_36110034.CurrentRow.Cells("NAMABARANG").Value
                End If
            End If

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

    Private Sub SIM_36110034_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SIM_36110034.Click
        If NOTRANS_36110034.Text = "-" Then
            tambah()
        Else
            edit()
        End If
    End Sub
End Class
5.   Jalankan program dengan “start debugging”.




Tidak ada komentar:

Posting Komentar