Jumat, 13 Maret 2015

Membuat Laporan Pembelian Per-Nota

Laporan ini digunakan untuk menampilkan informasi mengenai pembelian
berdasarkan nomor transaksi. Untuk memanggil laporan tersebut, kita
membutuhkan satu form tambahan sebagai media informasi nomor transaksi.
Untuk lebih jelasnya, berikut langkahnya:
1. Klik kanan menu mmarketdb à Add Command.
2. Masuk pada halaman Command1 Properties dengan cara klik kanan
Command1 à Properties.
3. Dari jendela Command1 Properties, pilih opsi SQL Statement, kemudian
ketikkan kode program berikut:

SELECT Pembelian_Detail.Kode_Barang,
brg_barang.Nama_Barang, brg_barang.Satuan,
Pembelian_Detail.Harga_Beli, Pembelian_Detail.Jumlah,
Pembelian_Detail.Subtotal
FROM brg_barang, Pembelian, Pembelian_Detail
WHERE Pembelian.No_Masuk = Pembelian_Detail.No_Masuk
AND Pembelian_Detail.Kode_Barang = brg_barang.Kode_Barang
AND Pembelian.No_Masuk


4. Ubahlah nama “Command1” menjadi “rsBeliNota” pada kolom Command
Name. Berikut tampilannya:
Gambar 4.22 Perintah SQL Laporan Pembelian Per- Nota

5. Klik tombol Apply, lalu klik tom bol OK.
6. Tambahkan objek Data Report dari menu Project à Add Data Report.
7. Lakukan drag and drop pada Recordset rsBeliNota ke dalam area Detail
(Section1) pada Data Report. Modifikasilah halaman laporan tersebut sesuai
dengan keinginan Anda dengan menggunakan objek di dalam menu Toolbox.
Berikut tampilannya:
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 35
Gambar 4.23 Hasil Desain Laporan Pembelian Per- Nota

8. Pada halaman DataReport1 yang telah dimodifikasi, Anda dapat mengatur
batas halaman laporan melalui jendela Properties, kem udian pilih tab
Categorized. Berikut tabel pengaturannya:

9. Setelah selesai mengatur batas halaman, maka aturlah halaman DataReport1
menggunakan tabel pengaturan berikut ini:

10. Masuklah pada halaman kode. Caranya, klik menu View à Code.
11. Untuk me- refresh laporan ketika proses penambahan data melalui program
transaksi pembelian, maka ketikkan kode program berikut:

Private Sub DataReport_Terminate()
rptLapBeliNota.Refresh
deKoneksi.rsrsBeliNota.Close
End Sub


2. Simpan laporan ini dengan nam a rptLapBeliNota.Dsr.
13. Tambahkan satu form baru ke dalam proyek dari menu Project à Add
Form.
14. Tambahkan beberapa objek ke dalam form, yaitu objek Label ( ), Frame
( ), TextBox ( ), ComboBox ( ), CommandButton ( ), dan MSFlexGrid
( ). Berikut tampilannya:
Gambar 4.24 Desain Awal Form Laporan Pembelian Per- Nota

Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 37
15. Aturlah form di atas beserta semua objek yang ada di dalamnya dari jendela

16. Periksalah setiap nilai properti dari tabel pengaturan di atas, sehingga hasilnya
ak an tampak seperti gambar berikut:

Gambar 4.25 Hasil Desain Form Laporan Pembelian Per-Nota

17. Kemudian masuklah pada halam an kode.
18. Buatlah prosedur baru bernama AktifGridPreview. Prosedur ini berisi
perintah untuk mengatur tampilan grid data. Berikut kodenya:

Sub AktifGridPreview()
With GridPreview
.Cols = 6
' Kolom Pertama (col 0)
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Kolom Kedua (col 1)
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 39
.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(1) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Kolom Ketiga (col 2)
.Col = 2
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(2) = 4000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Kolom Keempat (col 4)
.Col = 3
.Row = 0
.Text = "HARGA BELI"
.CellFontBold = True
.ColWidth(3) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Kolom Kelima (col 5)
.Col = 4
.Row = 0
.Text = "QTY"
.CellFontBold = True
.ColWidth(4) = 500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Kolom Keenam (col 6)
.Col = 5
.Row = 0
.Text = "SUBTOTAL"
.CellFontBold = True
.ColWidth(5) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub


19. Buatlah prosedur baru bernama TampilGridData. Prosedur ini digunakan
untuk menampilkan data transaksi pembelian barang ke dalam objek
MSFlexGrid (bernama GridPreview). Berikut kodenya:

Sub TampilGridData()
Dim Baris As Integer
GridPreview.Clear
Call AktifGridPreview
GridPreview.Rows = 2
Baris = 0
If rsTampil.BOF Then
MsgBox "DATA TRANSAKSI MASIH KOSONG!", _
vbOKOnly + vbInformation, "Perhatian"
Exit Sub
Else
With rsTampil
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
GridPreview.Rows = Baris + 1
GridPreview.TextMatrix(Baris, 0) = Baris
GridPreview.TextMatrix(Baris, 1) = !Kode_Barang
GridPreview.TextMatrix(Baris, 2) = !Nama_Barang
GridPreview.TextMatrix(Baris, 3) = !Harga_Beli
GridPreview.TextMatrix(Baris, 4) = !Jumlah
GridPreview.TextMatrix(Baris, 5) = _
!Harga_Beli * !Jumlah
.MoveNext
Loop
End With
End If
End Sub


20. Saat form dipanggil, program akan membuka koneksi database dan
memberikan kondisi form. Ketikkan kode program berikut pada prosedur

Form_Load.
Private Sub Form_Load()


Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 41

Call BukaDatabase
Call AktifGridPreview
' Mengambil semua data Pembelian
Set Rs_Pembelian = New ADODB.Recordset
Rs_Pembelian.Open "SELECT Pembelian.No_Masuk, " _
& " Pemasok.Nama_Pemasok FROM Pemasok, " _
& " Pembelian WHERE " _
& " Pembelian.Kode_Pemasok=Pemasok.Kode_Pemasok", _
KonekDb, adOpenDynamic, adLockBatchOptimistic
' Menampilkan No Masuk ke ComboBox
With Rs_Pembelian
If .BOF Then
Exit Sub
Else
.MoveFirst
Do While Not .EOF
cmbNoTransaksi.AddItem ![No_Masuk] _
+ " | " + ![Nama_Pemasok]
.MoveNext
Loop
End If
End With
End Sub


21. Dari halaman desain, klik dua kali objek ComboBox (cmbNoTransaksi) dan
ubahlah status Change menjadi Click. Status ini berfungsi untuk
memindahkan salah satu data transaksi ke dalam combo. Berikut kodenya:


Private Sub cmbNoTransaksi_Click()
Dim CmbTerpilih As String
Dim PanjangKanan As Integer
' Mendapatkan NoMasuk
CmbTerpilih = cmbNoTransaksi.Text
PanjangKanan = Len(cmbNoTransaksi.Text) - 12
' Mendapatkan Nama Pemasok
cmbNoTransaksi.Text = Left(CmbTerpilih, 10)
txtPemasok.Text = Right(CmbTerpilih, PanjangKanan)
Set rsTampil = New ADODB.Recordset
rsTampil.Open "SELECT Pembelian.No_Masuk, " _

& " Pembelian_Detail.Kode_Barang,
brg_barang.Nama_Barang, " _
& " Pembelian_Detail.Harga_Beli,
Pembelian_Detail.Jumlah, " _
& " Pembelian_Detail.Subtotal FROM " _
& " brg_barang, Pembelian,Pembelian_Detail WHERE " _
& " Pembelian.No_Masuk = Pembelian_Detail.No_Masuk "
_
& " AND Pembelian_Detail.Kode_Barang =
brg_barang.Kode_Barang " _
& " AND Pembelian.No_Masuk ='" &
Left(cmbNoTransaksi.Text, 10) & "'", _
KonekDb, adOpenDynamic, adLockBatchOptimistic
Call TampilGridData
End Sub


22. Tombol Tampil digunakan untuk menampilkan laporan pembelian per- nota
yang sudah Anda tentukan pada bagian combo. Untuk membuat kodenya,
masuk pada halaman desain dan klik dua kali tombol Tampil, kemudian
ketikkan kode berikut:

Private Sub cmdTampil_Click()
SQL = "SELECT Pemasok.Nama_Pemasok, Pemasok.Alamat, " _
& " Pembelian.No_Masuk, Pembelian.Tgl_Masuk, " _
& " Pembelian_Detail.Kode_Barang,
brg_barang.Nama_Barang, " _
& " Pembelian_Detail.Harga_Beli,
Pembelian_Detail.Jumlah, " _
& " Pembelian_Detail.Subtotal, brg_barang.Satuan" _
& " FROM Pemasok, brg_barang, Pembelian,
Pembelian_Detail " _
& " WHERE
Pemasok.Kode_Pemasok=Pembelian.Kode_Pemasok" _
& " AND Pembelian.No_Masuk=Pembelian_Detail.No_Masuk"
_
& " AND Pembelian_Detail.Kode_Barang =
brg_barang.Kode_Barang " _
& " AND Pembelian.No_Masuk ='" &
Left(cmbNoTransaksi.Text, 10) & "'"
Set rsTampil = New ADODB.Recordset
rsTampil.Open SQL, KonekDb
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 43
If rsTampil.BOF Then
MsgBox "Pembelian dengan nota " &
cmbNoTransaksi.Text _
& "tidak tersedia !", vbInformation + vbOKOnly,
"Informasi"
Else
'# MEMBUAT QUERY DATA BARU PADA CMD DE
deKoneksi.Commands(9).CommandText = SQL
With rptLapBeliNota
.Sections("Section4").Controls("LblNota").Caption =
Left(cmbNoTransaksi.Text, 10)
.Sections("Section4").Controls("LblTgl").Caption =
Format(rsTampil!Tgl_Masuk, "dd MMMM yyyy")
.Sections("Section4").Controls("LblNama").Caption =
rsTampil!Nama_Pemasok
.Sections("Section4").Controls("LblAlamat").Caption
= rsTampil!Alamat
.Refresh
.WindowState = 2
.Show 1
End With
End If
End Sub


23. Tombol Tutup digunakan untuk membuat form laporan pembelian per- nota
ketika sedang berjalan. Masuklah pada halaman desain, klik dua kali tombol
Tutup, kemudian ketikkan kode berikut:

Private Sub cmdTutup_Click()
Unload Me
End Sub


24. Langkah terakhir adalah simpan form laporan pembelian per- nota tersebut
dengan menggunakan nama frmLapBeliNota.frm.
25. Jalankan program dengan menekan tombol F5 pada keyboard. Anda dapat
mengakses program dari m enu Laporan à Pembelian Per-Nota. Berikut
tam pilannya:

Gambar 4.26 Tampilan Hasil Form Laporan Pembelian Per- Nota

Gambar 4.27 Tampilan Hasil Laporan Pembelian Per- Nota

Tidak ada komentar:

Posting Komentar