• Tidak ada hasil yang ditemukan

Membuat Form Penerimaan Barang

MICROSOFT.NET FRAMEWORK

LATIHAN 6.1 Database Mahasiswa

7.8 Membuat Form Penerimaan Barang

CMD = New OleDbCommand("Delete * from Pemakai where kodePMK='" & TextBox1.Text & "'", CONN)

CMD.ExecuteNonQuery() Call Kosongkan() Call Tampilkan()

Else

Call Kosongkan() End If

End If End Sub

14. Masukkan kode pada button3 berfungsi untuk menghilangkan nilai pada textbox dan combobox

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Call Kosongkan() End Sub

15. Masukkan kode pada button4 untuk menutup form pemasok

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Me.Close() End Sub

16. Hasil dari kode program diatas, dapat dilihat pada gambar 7.9 berikut ini :

Gambar 7.9Hasil Form Pemakai

dengan jumlah yang diterima. Untuk membuat form penerimaan barang ikuti langkah berikut ini:

1. Desain Form Penerimaan Barang seperti pada gambar 7.10 dibawah ini :

Gambar 7.10Form Penerimaan Barang 2. Gantilah properti masing-masing komponen seperti tertera dibawah ini :

Tabel 7.10Pengaturan Properties Form Penerimaan Barang

Object Properties Value

Form1 Text Form : Penerimaan

Form1 Name Penerimaan

Form1 Start Position CenterScreen

Label1 Text Nomor

Label2 Text Kode Pemasok

Label3 Text Contact Person

Label4 Text Tanggal

Label5 Text Nama Pemasok

Label6 Text Nomor Reff

Label7 Name LBLNomor

Label8 Name LBLTanggal

Label9 Name LBLNama

Label10 Name LBLPerson

Label11 Name TotalTerima

ComboBox1 - -

TextBoxt1 Name TKode

TextBoxt2 Name TNama

TextBoxt3 Name TStok

TextBoxt5 Name TTerima

TextBoxt6 Name TotalTerima

Botton1 Text Simpan

Botton2 Text Batal

Botton3 Text Tutup

DataGridView1 Name DGV

3. Masukkan kode berikut diatas Public Class Pemakai bertujuan untuk memanggil driver dengan koneksi oleDB

Imports System.Data.OleDb

4. Dengan membuat prosedur kosongkan yang berfungsi untuk menghilangkan nilai pada textbox, Masukkan kode berikut ini :

Sub Kosongkan() TKode.Text = ""

TNama.Text = ""

TStok.Text = ""

TTerima.Text = ""

TKode.Focus() End Sub

5. Pada prosedur Tampilkan berfungsi untuk mengambil data dari tabel TMPTerima dengan kode sebagai berikut :

Sub Tampilkan()

DA = New OleDbDataAdapter("Select * from TMPTerima", CONN) DS = New DataSet

DS.Clear()

DA.Fill(DS, "TMPTerima")

DGV.DataSource = (DS.Tables("TMPTerima")) DGV.ReadOnly = True

Call AturKolom() End Sub

6. Pada prosedur AturKolom berfungsi untuk mengatur panjang kolom dengan kode sebagai berikut:

Sub AturKolom()

DGV.Columns("kode").Width = 50 DGV.Columns(1).Width = 250

DGV.Columns(2).Width = 75 DGV.Columns(3).Width = 75

End Sub

7. Pada prosedur HapusGrid berfungsi untuk menghapus data pada tabel TMPTerima dengan kode sebagai berikut:

Sub HapusGrid()

DA = New OleDbDataAdapter("Delete * from TMPTerima", CONN) DS = New DataSet

DS.Clear()

DA.Fill(DS, "TMPTerima")

DGV.DataSource = (DS.Tables("TMPTerima")) End Sub

8. Pada prosedur CariTotalTerima berfungsi untuk melakukan penjumlahan pada kolom jumlah terima barang dengan kode sebagai berikut:

Sub CariTotalTerima() On Error Resume Next

CMD = New OleDbCommand("select sum(Diterima) as ketemu from TMPTerima", CONN)

RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

TotalTerima.Text = RD.GetValue(0) Else

TotalTerima.Text = 0 End If

End Sub

9. Pada prosedur Otomatis berfungsi untuk membuat kode pada nomor transaksi dengan ketentuan 2 digit didepan adalah “TR” ditambah dengan tanggal transaksi dan 2 digit penomoran. Contoh: TR1902201601 yang berarti TR adalah kode transaksi, 19022016 adalah tanggal transaksi dan 01 merupakan nomor urut pertama transaksi. kode sebagai berikut:

Private Sub Otomatis()

CMD = New OleDbCommand("Select * from Penerimaan where NomorTrm in (select max(NomorTrm) from Penerimaan) order by NomorTrm desc", CONN)

Dim urutan As String Dim hitung As Long RD = CMD.ExecuteReader RD.Read()

If Not RD.HasRows Then

urutan = "TR" + Format(Now, "yyMMdd") + "01"

Else

If Microsoft.VisualBasic.Mid(RD.GetString(0), 3, 6) <>

Format(Now, "yyMMdd") Then

urutan = "TR" + Format(Now, "yyMMdd") + "01"

Else

hitung = Microsoft.VisualBasic.Right(RD.GetString(0), 2) + 1

urutan = "TR" + Format(Now, "yyMMdd") + Microsoft.VisualBasic.Right("00" & hitung, 2)

End If End If

LBLNomor.Text = urutan End Sub

10. Pada prosedur TampilPemasok berfungsi untuk menampilkan data pemasok ke combobox1 dengan kode sebagai berikut:

Sub TampilPemasok()

CMD = New OleDbCommand("select * from Pemasok", CONN) RD = CMD.ExecuteReader

ComboBox1.Items.Clear() Do While RD.Read

ComboBox1.Items.Add(RD.Item(0)) Loop

End Sub

11. Pada objek form penerimaan prosedur Actived berfungsi untuk memanggil koneksi, prosedur otomatis dan pengaturan LBLTanggal untuk waktu berikut kode sebagai berikut:

Private Sub Penerimaan_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated

Koneksi()

Call Otomatis()

LBLTanggal.Text = Today End Sub

12. Pada objek form penerimaan prosedur load berfungsi untuk memanggil koneksi, prosedur hapus grid, tampilkan dan memanggil data pemasok ketika form dijalankan, berikut kode sebagai berikut:

Private Sub Penerimaan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Call Koneksi() Call HapusGrid() Call Tampilkan()

Call TampilPemasok() End Sub

13. Masukkan kode berikut ini pada DataGridView prosedur CellEndEdit : Private Sub DGV_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)

If e.ColumnIndex = 3 Then

DGV.Rows(e.RowIndex).Cells(4).Value =

DGV.Rows(e.RowIndex).Cells(2).Value * DGV.Rows(e.RowIndex).Cells(3).Value Call CariTotalTerima()

Call Kosongkan() End If

End Sub

14. Masukkan kode berikut ini pada DataGridView prosedur CellValidating : Private Sub DGV_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs)

On Error Resume Next

If e.ColumnIndex = 0 Then

CMD = New OleDbCommand("Select * from barang where KodeBrg='" &

e.FormattedValue.ToString & "'", CONN) RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

DGV.Rows(e.RowIndex).Cells(0).Value = RD.GetString(0) DGV.Rows(e.RowIndex).Cells(1).Value = RD.GetString(1) DGV.Rows(e.RowIndex).Cells(2).Value = RD.GetValue(2)

Exit Sub Else

Beep()

End If

End If

If e.ColumnIndex = 3 Then

DGV.Rows(e.RowIndex).Cells(4).Value =

DGV.Rows(e.RowIndex).Cells(2).Value * e.FormattedValue.ToString End If

End Sub

15. Masukkan kode berikut pada objek botton1:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If ComboBox1.Text = "" Or NomorReff.Text = "" Or TotalTerima.Text =

"" Then

MsgBox("Data belum lengkap") Exit Sub

End If

Try

'simpan ke tabel Penerimaan 'MenuUtama.Panel1.Text

Dim Simpan As String Simpan = "insert into

Penerimaan(nomorTrm,tanggalTrm,KodePms,nomorbon,totalTrm,kodepmk) values "

& _

"('" & LBLNomor.Text & "','" & LBLTanggal.Text & "','" &

ComboBox1.Text & "','" & NomorReff.Text & "','" & TotalTerima.Text & "','"

& MenuUtama.Panel1.Text & "')"

CMD = New OleDbCommand(Simpan, CONN) CMD.ExecuteNonQuery()

'baca tabel TMPTerima

DA = New OleDbDataAdapter("select * from TMPTerima", CONN) DS = New DataSet

DA.Fill(DS)

DGV.DataSource = DS.Tables(0)

Dim TBL As DataTable = DS.Tables(0)

For baris As Integer = 0 To TBL.Rows.Count - 1

Dim sqlsimpan As String = "insert into

DetailTerima(nomorTrm,KODEBRG,stokawal,qtytrm,stokakhir) values " & _

"('" & LBLNomor.Text & "','" & TBL.Rows(baris)(0) & "','" &

TBL.Rows(baris)(2) & "','" & TBL.Rows(baris)(3) & "','" &

TBL.Rows(baris)(2) + TBL.Rows(baris)(3) & "')"

CMD = New OleDbCommand(sqlsimpan, CONN) CMD.ExecuteNonQuery()

'tambahstok barang

CMD = New OleDbCommand("select * from barang where KodeBrg='" & TBL.Rows(baris)(0) & "'", CONN)

RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

Dim TambahStok As String = "update barang set

JumlahBrg= '" & RD.GetValue(3) + TBL.Rows(baris)(3) & "' where KodeBrg='" &

TBL.Rows(baris)(0) & "'"

CMD = New OleDbCommand(TambahStok, CONN) CMD.ExecuteNonQuery()

End If Next baris

Call HapusGrid() Call Tampilkan() Call Kosongkan() Call Otomatis() Call HapusMaster() Catch ex As Exception MsgBox(ex.Message) End Try

End Sub

16. Masukkan kode berikut ini pada objek TKode prosedur KeyPress:

Private Sub Tkode_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TKode.KeyPress If e.KeyChar = Chr(13) Then

If TKode.Text = "" Then 'DaftarBarang.Show()

MsgBox("kode barang masih kosong") Else

CMD = New OleDbCommand("Select * from TMPTerima where kode='" & TKode.Text & "'", CONN)

RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

TNama.Text = RD.GetString(1) TStok.Text = RD.GetValue(2)

MsgBox("kode barang sudah ada dalam transaksi, edit saja jumlahnya")

'Call Kosongkan() TStok.Focus()

Exit Sub Else

CMD = New OleDbCommand("Select * from barang where KodeBrg='" & TKode.Text & "'", CONN)

RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

TNama.Text = RD.GetString(1) TStok.Text = RD.GetValue(3) TTerima.Focus()

Else

MsgBox("Kode tidak terdaftar") TKode.Text = ""

TKode.Focus() End If

End If End If End If

If e.KeyChar = Chr(27) Then

CMD = New OleDbCommand("select * from TMPTerima where kode='" &

TKode.Text & "'", CONN)

RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

Dim sqlhapus As String = "delete * from TMPTerima where kode='" & TKode.Text & "'"

CMD = New OleDbCommand(sqlhapus, CONN) CMD.ExecuteNonQuery()

Call Tampilkan()

Call CariTotalTerima()

If DGV.Rows.Count - 1 = 0 Then Call HapusMaster()

End If

TKode.Text = ""

Else

MsgBox("Kode tidak ada dalam transaksi") TKode.Focus()

End If End If

'If e.KeyChar = Chr(9) Then TDibayar.Focus() End Sub

Kode diatas berfungsi ketika nilai yang sama dimasukkan pada textbox1 atau Tkode maka akan dimunculkan data penerimaan yang sebelumnya telah terinput.

17. Masukkan kode berikut ini pada objek TTerima prosedur KeyPress:

Private Sub TTerima_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TTerima.KeyPress

If e.KeyChar = Chr(13) Then

CMD = New OleDbCommand("select * from TMPTerima where kode='" &

TKode.Text & "'", CONN)

RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

Dim editjumlah As String = "update TMPTerima set diterima='" & TTerima.Text

& "' where kode='" & TKode.Text & "'"

CMD = New OleDbCommand(editjumlah, CONN) CMD.ExecuteNonQuery()

Call Tampilkan()

Call CariTotalTerima() Call Kosongkan()

Else

Dim sqlsimpan As String = "Insert into TMPTerima (kode,nama,stokawal,diterima) values " & _

"('" & TKode.Text & "','" & TNama.Text & "','" & TStok.Text

& "','" & TTerima.Text & "')"

CMD = New OleDbCommand(sqlsimpan, CONN) CMD.ExecuteNonQuery()

Call Tampilkan()

Call CariTotalTerima() Call Kosongkan()

End If End If

If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True

End Sub

18. Pada prosedur HapusMaster berfungsi untuk membersihkan nilai pada textboxt dan combobox, dengan kode sebagai berikut:

Sub HapusMaster()

ComboBox1.Text = ""

LBLPerson.Text = ""

LBLNama.Text = ""

NomorReff.Text = ""

TotalTerima.Text = ""

ComboBox1.Focus() End Sub

19. Masukkan kode pada objek button2 atau tombol batal sebagai berikut :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Call Kosongkan() Call HapusGrid() Call HapusMaster() Call Tampilkan() End Sub

20. Masukkan kode pada objek button3 atau tombol tutup sebagai berikut :

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Me.Close() End Sub

21. Masukkan kode pada objek combobox1 prosedur KeyPress sebagai berikut Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress If e.KeyChar = Chr(13) Then

If ComboBox1.Text = "" Then

MsgBox("Kode Pemasok masih kosong") Else

NomorReff.Focus() End If

End If End Sub

22. Masukkan kode pada objek combobox1 prosedur SelectedIndexChanged sebagai berikut Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

CMD = New OleDbCommand("select * from Pemasok where KodePms='" &

ComboBox1.Text & "'", CONN) RD = CMD.ExecuteReader RD.Read()

If RD.HasRows Then

LBLPerson.Text = RD.Item(5) LBLNama.Text = RD.Item(2)

Else

MsgBox("Kode Pemasok tidak terdaftar") End If

End Sub

23. Masukkan kode pada objek NomorReff prosedur KeyPress sebagai berikut Private Sub NomorReff_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles NomorReff.KeyPress

If e.KeyChar = Chr(13) Then TKode.Focus() End Sub

24. Hasil dari kode program diatas, dapat dilihat pada gambar 7.11 berikut ini :

Gambar 7.11Hasil Form Penerimaan Barang

Form Penerimaan pada gambar 7.11 pada pencarian kode barang masih mengetikkan kode, apabila kasir tidak mengingat seluruh kode barang maka dibutuhkan pencarian barang dengan memilih pada daftar barang. Maka, dibutuhkan form pencarian barang apabila daftar barang di klik maka akan dimunculkan pada kolom kode barang, nama barang dan stok.

Berikut langkah pembuatan form pencarian barang

1. Buatlah form baru dengan klik menu Project dan pilih Add Windows Form 2. Desain Form Daftar Barang seperti pada gambar 7.12 dibawah ini:

Gambar 7.8Form Daftar Barang

3. Gantilah properti masing-masing komponen seperti tertera dibawah ini : Tabel 7.11 Pengaturan Properties Form Daftar Barang

Object Properties Value

Form1 Text Daftar Barang

Form1 Name D_Barang

Form1 Start Position CenterScreen

DataGridView1 Name DGV

4. Masukkan kode berikut diatas Public Class D_barang bertujuan untuk memanggil driver dengan koneksi oleDB

Imports System.Data.OleDb

5. Pada prosedur Tampilkan berfungsi untuk menampilkan data barang ke DataGridView dengan kode sebagai berikut:

Sub Tampilkan()

DA = New OleDbDataAdapter("Select KodeBrg,NamaBrg,StokMinimal from barang", CONN)

ds = New DataSet ds.Clear()

da.Fill(ds, "Barang")

DGV.DataSource = (ds.Tables("Barang")) DGV.ReadOnly = True

End Sub

6. Masukkan kode pada objek form D_Barang prosedur Load berikut ini:

Private Sub D_Barang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Call Koneksi() Call Tampilkan() End Sub

7. Masukkan kode berikut pada objek DataGridView prosedur CellClick : Private Sub DGV_CellClick(ByVal sender As Object, ByVal e As

System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellClick Dim i As Integer

i = Me.DGV.CurrentRow.Index With DGV.Rows.Item(i)

Penerimaan.TKode.Text = .Cells(0).Value Penerimaan.TNama.Text = .Cells(1).Value Penerimaan.TStok.Text = .Cells(2).Value End With

Penerimaan.Show() Me.Close()

Penerimaan.TTerima.Focus() End Sub

End Class

8. Hasil dari kode program diatas, dapat dilihat pada gambar 7.12 berikut ini :

Gambar 7.12Hasil Form Penerimaan Barang

Dokumen terkait