Form
Latihan 40B terdapat enam object yaitu Lable, Textbox, Datetimepicker, button, StatusStrip dan Dategridview
Terdapat empat object label (yang bertuliskan no.transaksi, tanggal, jenis transaksi, dan total).
Object TextBox
Terdapat tiga buah object Textbox. Dimana dua yang berstatus input dan satu berstatus ReadOnly.
Object DateTimePicker
Terdapat sebuah object DateTimePicker yang digunakan untuk memasukkan tanggal transaksi.
Object Button
Terdapat satu buah object Button yaitu Simpan. Object button Simpan digunakan untuk menyimpan data baru ke DataBase. Kode barang yang diinput harus merupakan kode barang yang sudah ada pada tabel kode barang k. Jika kode barang yang diinput tidak ada, maka akan muncul form Latihan383940_36110056
Object DateGridView
Terdapat satu object DataGridView digunakan untuk menampilkan semua field atau kolom yang akan atau diedit, yang terdapat dalam data D:\Apkom 4\LATIHAN 35-40 DATA MAJEMUK\DataMajemuk.
Object StatusStrip
Terdapat satu object statustrip yang memiliki dua label (yang diberi nama no transaksi dan -).
Script Unique
Untuk script, dapat dilihat secara menyeluruh pada Langkah-Langkah Penyelesaian Latihan 40B
Even
FromLoad
ButtonClick
CellendEdit
( )
Property
Property Windows TextBox ReadOnly = True
Langkah-langkah
penyelesaian latihan 40B:
- Buka project yang dibuat sebelumnya
- Pilih Add new item
- Setelah terbuka jendela Add new item, pilih windows form serta anda dapat mengganti nama form, dan setelah itu pilih add

- Buat form sesuai soal di atas dengan menggunakan Data Grid View, label, Button , datetimepicker, StatusStrip dan textbox yang terdapat dalam toolsbox
- Setelah form selesai, ubah nama DataGridView ,Button, textbox, datetimpicker, label, StatusStrip yang terdapat dalam properties window
- Selanjutnya masukkan formula atau rumus untuk menjalan form :
Public Class Form40b_36109003
Dim arman As New ByIskandar.CariKeDataBaseByIskandar
Dim anto As New DataTable
Dim soe As New OleDb.OleDbCommand
Dim ndut As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & Application.StartupPath & "\DataMajemuk.accdb'")
Public Sub anra2()
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_36109003.Text & "'", ndut)
anto.Rows.Clear()
a.Fill(anto)
End Sub
Public Sub anra3()
Dim anra31 As Integer = 0
For Each anra32 As DataRow In anto.Rows
anra31 += anra32("JUMLAH")
Next
total_36109003.Text = anra31
End Sub
Private Sub anra4()
If nt_36109003.Text.Length = 0 Then
MsgBox("no transaksi harus terisi")
Exit Sub
End If
If jt_36109003.Text.Length = 0 Then
MsgBox("jenis transaksi harus terisi")
Exit Sub
End If
If anto.Rows.Count = 0 Then
MsgBox("Isi datatable")
Exit Sub
End If
End Sub
Private Sub tambah()
anra4()
arman.AturPencarianDataBase("mastertransaksi", "notrans", nt_36109003.Text, 1, ndut)
If arman.JumlanBaris > 0 Then
MsgBox("Adami notrans seperti itu..")
Exit Sub
End If
soe = New OleDb.OleDbCommand("insert into mastertransaksi (notrans, tanggaltransaksi, jenistransaksi) values ('" & nt_36109003.Text & "',#" & tgl_36109003.Value.Month & "/" & tgl_36109003.Value.Day & "/" & tgl_36109003.Value.Year & "#, '" & tgl_36109003.Text & "')", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
For Each x As DataRow In anto.Rows
soe = New OleDb.OleDbCommand("insert into detailtransaksi (notrans, kodebarang, unit, harga) values ('" & nt_36109003.Text & "', '" & x("kodebarang") & "', '" & x("unit") & "', '" & x("harga") & "') ", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
Next
soe.Dispose()
nt_36109003.Text = ""
jt_36109003.Text = ""
total_36109003.Text = ""
kode_36109003.Text = "-"
anto.Rows.Clear()
form40a_36109003.anra1
End Sub
Public Sub edit()
anra4()
If nt_36109003.Text <> kode_36109003.Text Then
arman.AturPencarianDataBase("mastertransaksi", "notrans", nt_36109003.Text, 1, ndut)
If arman.JumlanBaris > 0 Then
MsgBox("no transaksi telah ada")
Exit Sub
End If
End If
soe = New OleDb.OleDbCommand("delete * from mastertransaksi where notrans = '" & kode_36109003.Text & "'", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
soe = New OleDb.OleDbCommand("insert into mastertransaksi(notrans, tanggaltransaksi, jenistransaksi) values ('" & nt_36109003.Text & "',#" & tgl_36109003.Value.Month & "/" & tgl_36109003.Value.Day & "/" & tgl_36109003.Value.Year & "#, '" & jt_36109003.Text & "')", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
soe = New OleDb.OleDbCommand("delete * from detailtransaksi where notrans = '" & kode_36109003.Text & "'", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
For Each x As DataRow In anto.Rows
soe = New OleDb.OleDbCommand("insert into detailtransaksi(notrans, kodebarang, unit, harga) values ('" & nt_36109003.Text & "', '" & x("kodebarang") & "', '" & x("unit") & "', '" & x("harga") & "')", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
Next
soe.Dispose()
nt_36109003.Text = ""
jt_36109003.Text = ""
total_36109003.Text = ""
kode_36109003.Text = "-"
anto.Rows.Clear()
form40a_36109003.anra1()
End Sub
Private Sub Form40b_36109003_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
anra2()
Dim dc(1) As DataColumn
dc(0) = anto.Columns("kodebarang")
anto.PrimaryKey = dc
anto.Columns("unit").DefaultValue = 0
anto.Columns("harga").DefaultValue = 0
anto.Columns("jumlah").DefaultValue = 0
dgv_36109003.DataSource = anto
End Sub
Private Sub dgv_36109003_Cellendedit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_36109003.CellEndEdit
If dgv_36109003.Columns(e.ColumnIndex).Name = "KODEBARANG" Then
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = ""
dgv_36109003.CurrentRow.Cells("UNIT").Value = 0
dgv_36109003.CurrentRow.Cells("HARGA").Value = 0
dgv_36109003.CurrentRow.Cells("JUMLAH").Value = 0
arman.AturPencarianDataBase("barang", "kodebarang", dgv_36109003.CurrentRow.Cells("KODEBARANG").Value, 1, ndut)
If arman.JumlanBaris > 0 Then
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = arman.DataTablenya.Rows(0).Item("NAMABARANG")
Else
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = ""
If form38_39_40_36109003.ShowDialog = Windows.Forms.DialogResult.OK Then
dgv_36109003.CurrentRow.Cells("KODEBARANG").Value = form38_39_40_36109003.dgv_36109003.CurrentRow.Cells("KODEBARANG").Value
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = form38_39_40_36109003.dgv_36109003.CurrentRow.Cells("NAMABARANG").Value
End If
End If
ElseIf dgv_36109003.Columns(e.ColumnIndex).Name = "UNIT" Or dgv_36109003.Columns(e.ColumnIndex).Name = "HARGA" Then
dgv_36109003.CurrentRow.Cells("JUMLAH").Value = dgv_36109003.CurrentRow.Cells("UNIT").Value * dgv_36109003.CurrentRow.Cells("HARGA").Value
anra3()
End If
End Sub
Private Sub simpan_36109003_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles simpan_36109003.Click
If kode_36109003.Text = "-" Then
tambah()
Else
edit()
End If
End Sub
End Class
Dim arman As New ByIskandar.CariKeDataBaseByIskandar
Dim anto As New DataTable
Dim soe As New OleDb.OleDbCommand
Dim ndut As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & Application.StartupPath & "\DataMajemuk.accdb'")
Public Sub anra2()
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_36109003.Text & "'", ndut)
anto.Rows.Clear()
a.Fill(anto)
End Sub
Public Sub anra3()
Dim anra31 As Integer = 0
For Each anra32 As DataRow In anto.Rows
anra31 += anra32("JUMLAH")
Next
total_36109003.Text = anra31
End Sub
Private Sub anra4()
If nt_36109003.Text.Length = 0 Then
MsgBox("no transaksi harus terisi")
Exit Sub
End If
If jt_36109003.Text.Length = 0 Then
MsgBox("jenis transaksi harus terisi")
Exit Sub
End If
If anto.Rows.Count = 0 Then
MsgBox("Isi datatable")
Exit Sub
End If
End Sub
Private Sub tambah()
anra4()
arman.AturPencarianDataBase("mastertransaksi", "notrans", nt_36109003.Text, 1, ndut)
If arman.JumlanBaris > 0 Then
MsgBox("Adami notrans seperti itu..")
Exit Sub
End If
soe = New OleDb.OleDbCommand("insert into mastertransaksi (notrans, tanggaltransaksi, jenistransaksi) values ('" & nt_36109003.Text & "',#" & tgl_36109003.Value.Month & "/" & tgl_36109003.Value.Day & "/" & tgl_36109003.Value.Year & "#, '" & tgl_36109003.Text & "')", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
For Each x As DataRow In anto.Rows
soe = New OleDb.OleDbCommand("insert into detailtransaksi (notrans, kodebarang, unit, harga) values ('" & nt_36109003.Text & "', '" & x("kodebarang") & "', '" & x("unit") & "', '" & x("harga") & "') ", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
Next
soe.Dispose()
nt_36109003.Text = ""
jt_36109003.Text = ""
total_36109003.Text = ""
kode_36109003.Text = "-"
anto.Rows.Clear()
form40a_36109003.anra1
End Sub
Public Sub edit()
anra4()
If nt_36109003.Text <> kode_36109003.Text Then
arman.AturPencarianDataBase("mastertransaksi", "notrans", nt_36109003.Text, 1, ndut)
If arman.JumlanBaris > 0 Then
MsgBox("no transaksi telah ada")
Exit Sub
End If
End If
soe = New OleDb.OleDbCommand("delete * from mastertransaksi where notrans = '" & kode_36109003.Text & "'", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
soe = New OleDb.OleDbCommand("insert into mastertransaksi(notrans, tanggaltransaksi, jenistransaksi) values ('" & nt_36109003.Text & "',#" & tgl_36109003.Value.Month & "/" & tgl_36109003.Value.Day & "/" & tgl_36109003.Value.Year & "#, '" & jt_36109003.Text & "')", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
soe = New OleDb.OleDbCommand("delete * from detailtransaksi where notrans = '" & kode_36109003.Text & "'", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
For Each x As DataRow In anto.Rows
soe = New OleDb.OleDbCommand("insert into detailtransaksi(notrans, kodebarang, unit, harga) values ('" & nt_36109003.Text & "', '" & x("kodebarang") & "', '" & x("unit") & "', '" & x("harga") & "')", ndut)
ndut.Open()
soe.ExecuteNonQuery()
ndut.Close()
Next
soe.Dispose()
nt_36109003.Text = ""
jt_36109003.Text = ""
total_36109003.Text = ""
kode_36109003.Text = "-"
anto.Rows.Clear()
form40a_36109003.anra1()
End Sub
Private Sub Form40b_36109003_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
anra2()
Dim dc(1) As DataColumn
dc(0) = anto.Columns("kodebarang")
anto.PrimaryKey = dc
anto.Columns("unit").DefaultValue = 0
anto.Columns("harga").DefaultValue = 0
anto.Columns("jumlah").DefaultValue = 0
dgv_36109003.DataSource = anto
End Sub
Private Sub dgv_36109003_Cellendedit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_36109003.CellEndEdit
If dgv_36109003.Columns(e.ColumnIndex).Name = "KODEBARANG" Then
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = ""
dgv_36109003.CurrentRow.Cells("UNIT").Value = 0
dgv_36109003.CurrentRow.Cells("HARGA").Value = 0
dgv_36109003.CurrentRow.Cells("JUMLAH").Value = 0
arman.AturPencarianDataBase("barang", "kodebarang", dgv_36109003.CurrentRow.Cells("KODEBARANG").Value, 1, ndut)
If arman.JumlanBaris > 0 Then
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = arman.DataTablenya.Rows(0).Item("NAMABARANG")
Else
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = ""
If form38_39_40_36109003.ShowDialog = Windows.Forms.DialogResult.OK Then
dgv_36109003.CurrentRow.Cells("KODEBARANG").Value = form38_39_40_36109003.dgv_36109003.CurrentRow.Cells("KODEBARANG").Value
dgv_36109003.CurrentRow.Cells("NAMABARANG").Value = form38_39_40_36109003.dgv_36109003.CurrentRow.Cells("NAMABARANG").Value
End If
End If
ElseIf dgv_36109003.Columns(e.ColumnIndex).Name = "UNIT" Or dgv_36109003.Columns(e.ColumnIndex).Name = "HARGA" Then
dgv_36109003.CurrentRow.Cells("JUMLAH").Value = dgv_36109003.CurrentRow.Cells("UNIT").Value * dgv_36109003.CurrentRow.Cells("HARGA").Value
anra3()
End If
End Sub
Private Sub simpan_36109003_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles simpan_36109003.Click
If kode_36109003.Text = "-" Then
tambah()
Else
edit()
End If
End Sub
End Class
- Selanjutnya jika ingin menjalankannya pilih Start de bungging
- Setelah itu anda dapat menyimpannya dengan cara Ctrl S atau memilih menu seperti di bawah ini



Tidak ada komentar:
Posting Komentar