Jumat, 20 Maret 2015

Membuat Laporan Penjualan Per-Nota

Laporan ini digunakan untuk menampilkan informasi mengenai penjualan
berdasarkan nomor transaksi. Untuk memanggil laporan tersebut, kita
membutuhkan satu form tambahkan 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:
ELECT Penjualan_Detail.Kode_Barang, brg_barang.Nama_Barang,
brg_barang.Satuan, Penjualan_Detail.Harga_Jual,
Penjualan_Detail.Jumlah, Penjualan_Detail.Subtotal
FROM brg_barang, Penjualan, Penjualan_Detail
WHERE Penjualan.No_Nota = Penjualan_Detail.No_Nota
AND Penjualan_Detail.Kode_Barang = brg_barang.Kode_Barang
AND Penjualan.No_Nota


4. Ubahlah nama “Command1” menjadi “rsJualNota” pada kolom Command
Name. Berikut tampilannya:

Gambar 4.28 Menambahkan Perintah SQL Laporan Penjualan 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 rsJualNota 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 47

Gambar 4.29 Hasil Desain Laporan Pembelian Per- Nota

8. Pada halaman DataReport1 yang telah dimodifikasi, Anda dapat mengaktur
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 penjualan, maka ketikkan kode program berikut:

Private Sub DataReport_Terminate()
rptLapJualNota.Refresh
koneksiDb.rsrsJualNota.Close
End Sub


12. Simpan laporan ini dengan nam a rptLapJualNota.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

Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 49

Gambar 4.30 Desain Awal Form Laporan Penjualan Per-Nota

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 hasilny a
ak an tampak seperti gambar berikut:

Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 51

Gambar 4.31 Hasil Desain Form Penjualan Per- Nota

17. Kemudian masuklah pada halaman kode.
18. Buatlah prosedur baru bernama AktifGridPreview. Prosedur ini berisi
perintah untuk mengatur tampilan grid data. Berikut kodenya:
Sub AktifGridPreview()
With GridPreview
.Cols = 6
' Atur kolom pertama (Col 0)
.RowHeightMin = 300
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Atur kolom kedua (Col 1)
.RowHeightMin = 300
.Col = 1
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(1) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Atur kolom ketiga (Col 2)
.Col = 2
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(2) = 4000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Atur kolom keempat (Col 3)
.Col = 3
.Row = 0
.Text = "HARGA JUAL"
.CellFontBold = True
.ColWidth(3) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Atur kolom kelima (Col 4)
.Col = 4
.Row = 0
.Text = "QTY"
.CellFontBold = True
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 53
.ColWidth(4) = 500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
' Atur kolom keenam (Col 5)
.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 penjualan 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
'SubTotal = !Harga_Jual * !Jumlah
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_jual
GridPreview.TextMatrix(Baris, 4) = !Jumlah
GridPreview.TextMatrix(Baris, 5) = _
!Harga_jual * !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()
Call BukaDatabase
Call AktifGridPreview
' Query mendapatkan semua data penjualan retail
Set Rs_Penjualan = New ADODB.Recordset
Rs_Penjualan.Open "SELECT Penjualan.No_Nota, " _
& " Pelanggan.Nama_Pelanggan FROM Pelanggan, " _
& " Penjualan WHERE " _
& "
Penjualan.Kode_Pelanggan=Pelanggan.Kode_Pelanggan", _
KonekDb, adOpenDynamic, adLockBatchOptimistic
' Data No Nota ditampilkan ke ComboBox
With Rs_Penjualan
If .BOF Then
Exit Sub
Else
.MoveFirst
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 55
Do While Not .EOF
cmbNota.AddItem ![No_Nota] _
+ " | " + ![Nama_Pelanggan]
.MoveNext
Loop
End If
End With
End Sub


21. Dari halaman desain, klik dua kali objek ComboBox (cmbNota) dan ubahlah
status Change menjadi Click. Status ini berfungsi untuk memindahk an salah
satu data transaksi ke dalam combo. Berikut kodenya:
Private Sub cmbNota_Click()
Dim CmbTerpilih As String
Dim PanjangKanan As Integer
' Mendapatkan NoMasuk
CmbTerpilih = cmbNota.Text
PanjangKanan = Len(cmbNota.Text) - 12
' Mendapatkan Nama Pemasok
cmbNota.Text = Left(CmbTerpilih, 10)
txtPelanggan.Text = Right(CmbTerpilih, PanjangKanan)
Set rsTampil = New ADODB.Recordset
rsTampil.Open "SELECT
Penjualan.No_Nota,Pelanggan.Nama_Pelanggan, " _
& " Penjualan_Detail.Kode_Barang,
brg_barang.Nama_Barang, " _
& " Penjualan_Detail.Harga_Jual,
Penjualan_Detail.Jumlah, " _
& " Penjualan_Detail.Subtotal FROM brg_barang, " _
& " Penjualan_Detail, Penjualan INNER JOIN
pelanggan ON " _
& " Penjualan.Kode_Pelanggan =
pelanggan.Kode_Pelanggan " _
& " Where Penjualan.No_Nota =
Penjualan_Detail.No_Nota AND " _
& " Penjualan_Detail.Kode_Barang =
brg_barang.Kode_Barang " _
& " AND Penjualan.No_Nota='" & Left(cmbNota.Text,
10) & "'", _
KonekDb, adOpenDynamic, adLockBatchOptimistic
Call TampilGridData
End Sub


22. Tombol Tampil digunakan untuk menampilkan laporan penjualan 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()
' Query baru menampilkan data laporan
SQL = ""
SQL = " SELECT
Penjualan.No_Nota,Pelanggan.Nama_Pelanggan, " _
& " Penjualan_Detail.Kode_Barang,
brg_barang.Nama_Barang," _
& " brg_barang.Satuan,Penjualan_Detail.Harga_Jual,
" _
& "
Penjualan_Detail.Jumlah,Penjualan_Detail.Subtotal " _
& " FROM brg_barang,Penjualan_Detail, Penjualan
INNER JOIN " _
& " pelanggan ON Penjualan.Kode_Pelanggan =
pelanggan.Kode_Pelanggan " _
& " Where Penjualan.No_Nota =
Penjualan_Detail.No_Nota AND " _
& " Penjualan_Detail.Kode_Barang =
brg_barang.Kode_Barang " _
& " AND Penjualan.No_Nota='" & Left(cmbNota.Text,
10) & "'"
On Error Resume Next
Set rsTampil = New ADODB.Recordset
rsTampil.Open SQL, KonekDb
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 57
If rsTampil.BOF Then
MsgBox "Penjualan dengan nota " & cmbNota.Text & "
tidak tersedia !", _
vbInformation + vbOKOnly, "Informasi"
Else
On Error Resume Next
koneksiDb.Commands(11).CommandText = SQL
' Panggil Halaman Laporan
With rptLapJualNota
.Sections("Section4").Controls("LblNota").Caption =
Left(cmbNota.Text, 10)
.Sections("Section4").Controls("LblTgl").Caption =
Format(Date, "dd MMMM yyyy")
.Refresh
.WindowState = 2
.Show 1
End With
End If
End Sub

23. Dari halaman desain, klik dua kali tombol Keluar, kemudian ketikkan kode
berikut:
Private Sub cmdKeluar_Click()
Unload Me
End Sub

24. Langkah terakhir, simpan form laporan ini dengan menggunakan nama
frmLapJualNota.frm.
25. Jalankan program dengan menekan tombol F5 pada keyboard. Anda dapat
mengakses program dari menu Laporan à Penjualan Per-Nota. Berikut
tam pilannya:

Gambar 4.32 Tampilan Hasil Form Laporan Penjualan Per- Nota

Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 59

Gambar 4.33 Tampilan Hasil Laporan Penjualan Per- Nota

Tidak ada komentar:

Posting Komentar