berdasarkan periode tertentu. Untuk memanggil laporan tersebut, kita
membutuhkan satu form tambahan untuk menentukan periode tanggal transaksi
yang akan ditampilkan dalam sebuah laporan. Untuk lebih jelasnya, berikut
langkah pembuatannya:
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 Penjualan.No_Nota, Penjualan.Tgl_Nota,
Penjualan_Detail.Kode_Barang, brg_barang.Nama_Barang,
Penjualan_Detail.Harga_Jual, Penjualan_Detail.Jumlah,
Penjualan_Detail.Subtotal
FROM brg_barang, Penjualan, Penjualan_Detail
WHERE Penjualan.No_Nota = Penjualan_Detail.No_Nota
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 75
AND brg_barang.Kode_Barang = Penjualan_Detail.Kode_Barang
AND Penjualan.Tgl_Nota AND
(Penjualan.Tgl_Nota >= ?) AND (Penjualan.Tgl_Nota <= ?)
ORDER BY Penjualan.No_Nota, brg_barang.Kode_Barang
4. Ubahlah nama “Command1” menjadi “rsJualPeriode” pada kolom
Command Name. Berikut tampilannya:
Gambar 4.42 Menambahkan Perintah SQl Laporan Penjualan Per-Periode
5. Ubahlah parameter dari dalam tab Parameters. Klik tanda tanya ( ? ) pada
kolom Parameters, kemudian ubah dari “?” menjadi “Param1” dan
“Param2” pada bagian Name.
Gambar 4.43 Menambahkan Parameter
Klik tanda tanya (?) pada bagian Parameters.
Ketikkan ke-dua parameter tanda tanya (?) dengan menggunakan nama
“Param1” dan “Param2”.
6. Laporan penjualan per-periode ini akan dibentuk grup berdasarkan nomor
transaksi dan tanggal penjualannya. Untuk membuat grup, pilih tab
Grouping. Berikut caranya:
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 77
Gambar 4.44 Memilih Atribut untuk Grup
Aktifkan tanda cek ( ) Group Command Object.
Pilihlah beberapa kolom untuk dijadikan grup laporan, dalam laporan
penjualan per-periode, yang akan dijadikan grup adalah kolom No_Nota
dan Tgl_Nota.
Klik tombol bergambar lebih dari ( ).
Kolom yang akan dijadikan grup akan berpindah pada kotak Fields User
for Grouping.
7. Klik tombol Apply, lalu klik tombol OK.
8. Tambahkan objek Data Report dari menu Project à Add Data Report.
9. Tambahkan kolom grup pada halaman laporan melalui klik kanan bagian
Detail (Section1) Ã Insert Group Header/Footer.
10. Untuk mengisi data grup nomor transaksi dan tanggal penjualan pada laporan
penjualan per-periode, lakukan drag and drop Recordset
rsJualPeriode_Grouping ke dalam kolom Group Header (Section6).
11. Selanjutnya, pindahkan data pada Recordset rsJualPeriode dengan cara drag
and drop ke dalam kolom Detail (Section1).
12. Modifikasilah halaman laporan tersebut sesuai dengan keinginan Anda
dengan menggunakan objek di dalam menu Toolbox. Selain memodifikasi,
Anda juga dapat mengurangi data-data yang kurang dibutuhkan untuk
laporan. Berikut tampilannya:
Gambar 4.45 Hasil Desain Laporan Penjualan Per-Periode
13. Pada halaman DataReport1 yang telah dimodifikasi, Anda dapat mengatur
batas halaman laporan melalui jendela Properties, kemudian pilih tab
Categorized. Berikut tabel pengaturannya:
14. Setelah selesai mengatur batas halaman, maka aturlah halaman DataReport1
menggunakan tabel pengaturan berikut ini:
15. Masuklah pada halaman kode. Caranya, klik menu View à Code.
16. Untuk me-refresh laporan ketika proses penambahan data melalui program
transaksi penjualan, maka ketikkan kode program berikut:
Private Sub DataReport_Terminate()
rptLapJualPeriode.Refresh
koneksiDb.rsrsJualPeriode_Grouping.Close
End Sub
17. Simpan laporan ini dengan nama rptLapJualPeriode.Dsr.
18. Tambahkan satu form baru ke dalam proyek dari menu Project à Add
Form.
19. Tambahkan beberapa objek ke dalam form, yaitu objek Label ( ), Frame
( ), DTPicker ( ), CommandButton ( ), dan MSFlexGrid ( ). Berikut
tampilannya:
Gambar 4.46 Desain Awal Form Laporan Penjualan Per-Periode
20. Aturlah form di atas beserta semua objek yang ada di dalamnya dari jendela
21. Periksalah setiap nilai properti dari tabel pengaturan di atas, sehingga hasilnya
akan tampak seperti gambar berikut:
Gambar 4.47 Hasil Desain Form Penjualan Per-Periode
22. Kemudian masuklah pada halaman kode. Caranya, klik menu View à Code.
23. Buatlah prosedur baru bernama AktifGridPreview. Prosedur ini berisi
perintah untuk mengatur tampilan grid data. Berikut kodenya:
Sub AktifGridPreview()
With GridPreview
.Cols = 8
.RowHeightMin = 300
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 83
.Col = 0
.Row = 0
.Text = "NO"
.CellFontBold = True
.ColWidth(0) = 400
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 1
.Row = 0
.Text = "NO NOTA"
.CellFontBold = True
.ColWidth(1) = 1100
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 2
.Row = 0
.Text = "TANGGAL"
.CellFontBold = True
.ColWidth(2) = 1200
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 3
.Row = 0
.Text = "KODE"
.CellFontBold = True
.ColWidth(3) = 1500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 4
.Row = 0
.Text = "NAMA BARANG"
.CellFontBold = True
.ColWidth(4) = 4000
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 5
.Row = 0
.Text = "HARGA JUAL"
.CellFontBold = True
.ColWidth(5) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 6
.Row = 0
.Text = "QTY"
.CellFontBold = True
.ColWidth(6) = 500
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
.Col = 7
.Row = 0
.Text = "SUBTOTAL"
.CellFontBold = True
.ColWidth(7) = 1300
.AllowUserResizing = flexResizeColumns
.CellAlignment = flexAlignCenterCenter
End With
End Sub
24. Buatlah prosedur baru bernama TampilGridData. Prosedur ini digunakan
untuk menampilkan data transaksi penjualan barang per periode yang sudah
ditentukan ke dalam objek MSFlexGrid (bernama GridPreview). Berikut
kodenya:
Sub TampilGridData()
Dim Baris As Integer
GridPreview.Clear
Call AktifGridPreview
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 85
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) = !No_Nota
GridPreview.TextMatrix(Baris, 2) = !Tgl_Nota
GridPreview.TextMatrix(Baris, 3) = !Kode_Barang
GridPreview.TextMatrix(Baris, 4) = !Nama_Barang
GridPreview.TextMatrix(Baris, 5) = !Harga_jual
GridPreview.TextMatrix(Baris, 6) = !Jumlah
GridPreview.TextMatrix(Baris, 7) = _
!Harga_jual * !Jumlah
.MoveNext
Loop
End With
End If
End Sub
25. 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
' Memberi nilai tgl sekarang pada DTPicker
TglA.Value = Format(Date, "dd MMMM yyyy")
TglB.Value = Format(Date, "dd MMMM yyyy")
End Sub
26. Tombol Preview digunakan untuk memanggil data-data untuk ditampilkan ke
dalam objek MSFlexGrid (bernama GridPreview). Untuk menambahkan
kodenya, masuklah pada halaman desain, klik dua kali tombol Preview,
kemudian ketikkan kode berikut:
Private Sub cmdPreview_Click()
Set rsTampil = New ADODB.Recordset
rsTampil.Open "SELECT Penjualan.No_Nota,
Penjualan.Tgl_Nota, " _
& " Penjualan_Detail.Kode_Barang,
brg_barang.Nama_Barang, " _
& " 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 brg_barang.Kode_Barang =
Penjualan_Detail.Kode_Barang " _
& " AND Penjualan.Tgl_Nota >= #" &
CDate(TglA.Value) & "#" _
& " AND Penjualan.Tgl_Nota <= #" &
CDate(TglB.Value) & "# " _
& " ORDER BY Penjualan.No_Nota,
brg_barang.Kode_Barang", _
KonekDb, adOpenDynamic, adLockBatchOptimistic
Call TampilGridData
End Sub
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 87
27. Tombol Tampil digunakan untuk menampilkan laporan penjualan perperiode
yang sudah Anda tentukan pada objek DTPicker. Untuk membuat
kodenya, masuk pada halaman desain dan klik dua kali tombol Tampil,
kemudian ketikkan kode berikut:
Private Sub cmdTampil_Click()
SQL = ""
SQL = " SELECT Penjualan.No_Nota, Penjualan.Tgl_Nota, "
_
& " Penjualan_Detail.Kode_Barang,
brg_barang.Nama_Barang, " _
& " 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 brg_barang.Kode_Barang =
Penjualan_Detail.Kode_Barang " _
& " AND Penjualan.Tgl_Nota >= #" &
CDate(TglA.Value) & "#" _
& " AND Penjualan.Tgl_Nota <= #" &
CDate(TglB.Value) & "# " _
& " ORDER BY Penjualan.No_Nota,
brg_barang.Kode_Barang"
Set rsTampil = New ADODB.Recordset
Set rsTampil = KonekDb.Execute(SQL)
If rsTampil.BOF Then
MsgBox "Penjualan dengan periode tanggal " _
& Format(TglA.Value, "dd MMMM yyyy") & " S/D " _
& Format(TglB.Value, "dd MMMM yyyy") & " tidak ada
!", _
vbInformation + vbOKOnly, "Informasi"
Else
On Error Resume Next
koneksiDb.rsJualPeriode_Grouping (Format(TglA.Value,
"dd/MM/yyyy")), (Format(TglB.Value, "dd/MM/yyyy"))
With rptLapJualPeriode
.Sections("Section4").Controls("LblPeriode").Caption =
Format(TglA.Value, "dd MMMM yyyy") & " S/D " &
Format(TglB.Value, "dd MMMM yyyy")
.Sections("Section4").Controls("LblTgl").Caption =
Format(Date, "dd MMMM yyyy")
.Refresh
.WindowState = 2
.Show 1
End With
End If
End Sub
28. Tombol Keluar digunakan untuk membuat form laporan penjualan perperiode
ketika sedang berjalan. Masuklah pada halaman desain, klik dua kali
tombol Keluar, kemudian ketikkan kode berikut:
Private Sub cmdKeluar_Click()
Unload Me
End Sub
29. Langkah terakhir, simpan form laporan ini dengan menggunakan nama
frmLapJualPeriode.frm.
30. Jalankan program dengan menekan tombol F5 pada keyboard, Anda dapat
mengakses program dari menu Laporan à Penjualan Per-Periode. Berikut
tampilannya:
Lanjutan : Membuat Laporan Data dan Transaksi Mini Market 89
Gambar 4.48 Tampilan Hasil Form Laporan Penjualan Per-Periode
Gambar 4.49 Tampilan Hasil Laporan Penjualan Per-Periode
Tidak ada komentar:
Posting Komentar