Kamis, 01 Desember 2011

LATIHAN 39


Public Class Form3936109062
    Dim dt As New DataTable
    Dim urim As New ByIskandar.CariKeDataBaseByIskandar
    Dim fani As New OleDb.OleDbCommand
    Dim KJS As New OleDb.OleDbConnection("PROVIDER = MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE =" & Application.StartupPath & "/DataMajemuk.ACCDB")

    Private Sub Form3936109062_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim b As New OleDb.OleDbDataAdapter
        b = New OleDb.OleDbDataAdapter(" select BARANG.KODEBARANG, BARANG.NAMABARANG,DETAILTRANSAKSI.UNIT,DETAILTRANSAKSI.HARGA, DETAILTRANSAKSI.UNIT*DETAILTRANSAKSI.HARGA AS JUMLAH from DETAILTRANSAKSI INNER JOIN BARANG ON DETAILTRANSAKSI.KODEBARANG = BARANG.KODEBARANG where notrans = '" & nt062.Text & "'", KJS)
        b.Fill(dt)
        b.Dispose()

        dgv062.DataSource = dt

        Dim dc(1) As DataColumn
        dc(0) = dt.Columns("kodebarang")
        dt.PrimaryKey = dc
    End Sub

    Private Sub dgv062_cellendedit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv062.CellEndEdit
        If dgv062.Columns(e.ColumnIndex).Name = "KODEBARANG" Then
            'If dgv.CurrentRow.Cells(0) = "KODEBARANG" Then  (rumus lain)

            'untuk mencari nama barang
            dgv062.CurrentRow.Cells("NAMABARANG").Value = ""
            dgv062.CurrentRow.Cells("UNIT").Value = 0
            dgv062.CurrentRow.Cells("HARGA").Value = 0
            dgv062.CurrentRow.Cells("JUMLAH").Value = 0

            urim.AturPencarianDataBase("barang", "kodebarang", dgv062.CurrentRow.Cells("KODEBARANG").Value, 1, KJS)
            If urim.JumlanBaris > 0 Then  '(menampilkan nama barang jika kolom kode barang ditemukan oleh proses di atas
                dgv062.CurrentRow.Cells("NAMABARANG").Value = urim.DataTablenya.Rows(0).Item("NAMABARANG")
            Else
                dgv062.CurrentRow.Cells("NAMABARANG").Value = ""
                If Form383940_36109062.ShowDialog = Windows.Forms.DialogResult.OK Then
                    dgv062.CurrentRow.Cells("KODEBARANG").Value = Form383940_36109062.dgv062.CurrentRow.Cells("KODEBARANG").Value
                    dgv062.CurrentRow.Cells("NAMABARANG").Value = Form383940_36109062.dgv062.CurrentRow.Cells("NAMABARANG").Value
                End If
            End If

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

    Private Sub okta()
        Dim okta1 As Integer = 0
        For Each okta2 As DataRow In dt.Rows
            okta1 += okta2("jumlah")
        Next
        tot062.Text = okta1

    End Sub

    Private Sub s062_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles s062.Click
        If nt062.Text.Length = 0 Then
            MsgBox("silahkan isi no transaksi")
            Exit Sub
        End If

        If jt062.Text.Length = 0 Then
            MsgBox("silahkan isi jenis transaksi")
            Exit Sub
        End If

        If dt.Rows.Count = 0 Then
            MsgBox("silahkan isi data table")
            Exit Sub
        End If


        urim.AturPencarianDataBase("mastertransaksi", "notrans", nt062.Text, 1, KJS)
        If urim.JumlanBaris > 0 Then
            MsgBox("notrans sudah ada")
            Exit Sub
        End If

        fani = New OleDb.OleDbCommand("insert into mastertransaksi ( notrans, tanggaltransaksi, jenistransaksi)values ('" & nt062.Text & "' ,#" & tt062.Value.Month & "/" & tt062.Value.Day & "/" & tt062.Value.Year & "#, '" & jt062.Text & "')", KJS)
        KJS.Open()
        fani.ExecuteNonQuery()
        KJS.Close()

        For Each x As DataRow In dt.Rows
            fani = New OleDb.OleDbCommand("insert into detailtransaksi ( notrans, kodebarang, unit, harga) values ('" & nt062.Text & "','" & x("kodebarang") & "','" & x("unit") & "','" & x("harga") & "')", KJS)
            KJS.Open()
            fani.ExecuteNonQuery()
            KJS.Close()

        Next
        fani.Dispose()

        nt062.Text = ""
        jt062.Text = ""

        dt.Rows.Clear()
        okta()


    End Sub
End Class

Tidak ada komentar:

Posting Komentar