Minggu, 28 Oktober 2012

Latihan_39_36110034


Deskripsi penyelesaian
Form Latihan_39_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 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”
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
        ardian = 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()
        ardian.ExecuteNonQuery()
        dian.Close()

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

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

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

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_39_36110034.
Public Class latihan_39_36110034
    Dim andini As New ByIskandar.CariKeDataBaseByIskandar
    Dim dini As New DataTable
    Dim ardian As New OleDb.OleDbCommand
    Dim dian As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\DataMajemuk.accdb;jet oledb:database password=2304")

    Private Sub latihan_39_36110034_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        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 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
            rumus()
        End If
    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 SIM_36110034_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SIM_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
        ardian = 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()
        ardian.ExecuteNonQuery()
        dian.Close()

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

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

        dini.Rows.Clear()
        rumus()
    End Sub
End Class
5.   Jalankan program dengan “start debugging”.




Tidak ada komentar:

Posting Komentar