21 Juni 2011

Membuat Struk dengan Data Report VB6

Aku Awali Ya! Buat Struknya dengan Data Report
Dengan anggapan hanya buat struk saja, form penjualan telah dibuat.

1. Buat Data Environtment sesuaikan dengan Database


isi propertisnya sehingga keluar Query seperti field gambar diatas
contohnya demikian (Lebih enak pakai Query Builder)

SELECT 
penjualan.KdJual, 
penjualan.TglJual, 
penjualan.Jam, 
pemakai.Username, 
detpenjualan.KdBarang, 
barang.NmBarang, 
detpenjualan.Qty, 
detpenjualan.HargaJual, 
detpenjualan.SubTotal, 
penjualan.GrandTotal, 
penjualan.Bayar, 
penjualan.Kembali, 
penjualan.Diskon, 
penjualan.PPN
FROM
minimarket.penjualan INNER JOIN minimarket.detpenjualan ON (penjualan.KdJual = detpenjualan.KdJual) INNER JOIN minimarket.barang ON (detpenjualan.KdBarang = barang.KdBarang) INNER JOIN minimarket.pemakai ON (pemakai.IdUser = penjualan.UserId);

2. Lalu buat Data Report set Besar Kecilnya sesuaikan

3. Set DataSources dan DataMember sesuai Data Environment yang kita buat tadi


4. Lalu Susun Posisi Tiap label dan textbox report seperti ini


5. Set Bottom Margin dan Top Margin dengan 0 (Agar Tidak Ada Lebih Kertas).


6. Koding Tiap Section Saya Tandai dengan Nomor


--1.Biodata Toko
Set RsBio = New ADODB.Recordset 
RsBio.CursorLocation = adUseClient 
RsBio.Open "Select * From Biodata Where ID='0'", Koneksi, adOpenDynamic, adLockOptimistic  
If Not RsBio.BOF Then 
rptNota.Sections("Section4").Controls("Toko").Caption = RsBio!Nama
rptNota.Sections("Section4").Controls("Alamat").Caption = RsBio!Alamat + " " + RsBio!Kota + Chr(13) + "Telp./Faks. " + RsBio!Telepon 
End If

--2. Barang Yang di Beli TextBox ini Harus ditempatkan di section detail hasil diambil dari database ada penambahan WHERE lain dengan yang ada di DATA ENVIRONMENT.
Set RsLap = New ADODB.Recordset
RsLap.CursorLocation = adUseClient
RsLap.Open "SELECT penjualan.KdJual, penjualan.TglJual, penjualan.Jam" _
& ", penjualan.IdUser, penjualan.KdPelanggan, penjualan.Diskon" _
& ", penjualan.PPN, penjualan.GrandTotal, penjualan.Bayar" _
& ", penjualan.Kembali, detpenjualan.KdBarang, detpenjualan.HargaJual" _
& ", detpenjualan.Qty, detpenjualan.SubTotal, barang.NmBarang, pemakai.Username" _
& " From minimarket.penjualan INNER JOIN minimarket.detpenjualan" _
& " ON (penjualan.KdJual = detpenjualan.KdJual)" _
& " INNER JOIN minimarket.barang" _
& " ON (detpenjualan.KdBarang = barang.KdBarang)" _
& " INNER JOIN minimarket.pemakai" _
& " ON (pemakai.IdUser = penjualan.IdUser)" _
& " WHERE Penjualan.KdJual='" & Pembayaranfrm.txtNoFaktur & "'" _
, Koneksi, adOpenDynamic, adLockOptimistic

--3. Hasil dari Query Tadi Lalu di Masukkan Kebagian Perhitungan Harga
If Not RsLap.BOF Then
rptNota.Sections("Section4").Controls("KdJual").Caption = RsLap!KdJual
rptNota.Sections("Section4").Controls("Tgl").Caption = RsLap!TglJual
rptNota.Sections("Section4").Controls("Jam").Caption = RsLap!Jam
rptNota.Sections("Section4").Controls("User").Caption = RsLap!UserName
rptNota.Sections("Section4").Controls("Cust").Caption = "CUST : " & RsLap!KdPelanggan
rptNota.Sections("Section5").Controls("Netto").Caption = RsLap!GrandTotal
rptNota.Sections("Section5").Controls("Diskon").Caption = RsLap!Diskon
rptNota.Sections("Section5").Controls("PPN").Caption = RsLap!PPN
rptNota.Sections("Section5").Controls("Bayar").Caption = RsLap!Bayar
rptNota.Sections("Section5").Controls("Kembali").Caption = RsLap!Kembali
End If

--4. Fungsi SUM(QTY) menggunakan RptFunction.(Lihat Gambar)

--5. Pesan Atau Catatan
If Not RsPesan.BOF Then
rptNota.Sections("Section5").Controls("Pesan1").Caption = RsPesan!Pesan1
rptNota.Sections("Section5").Controls("Pesan2").Caption = RsPesan!Pesan2
End If

7. Koding Print
On Error GoTo Error
Set DEMarket.rsNota.DataSource = RsLap 
rptNota.LeftMargin = 10 
rptNota.RightMargin = 0 
rptNota.BottomMargin = 0 
rptNota.TopMargin = 0 
rptNota.WindowState = 2 
Printer.CurrentX = 0 
rptNota.PrintReport 
Printer.EndDoc 
Printer.KillDoc 
Exit Sub  
Error: 
MsgBox Err.Description, vbInformation, "Pesan"

8. Selanjutnya Kita Setting Server Propertis Printer, untuk membuat ukuran kertas yang sesuai.
http://djuliar.blogspot.com/2011/03/setting-kertas-struk-untuk-printer-lx.html

9. Terima Kasih Telah Membaca. Jika Ada kesalahan pada tutorial ini Aku lampirkan link download kodenya yang saya buat dan telah berhasil berjalan dengan baik dan kertas print gak nge-roll. Hasil akhirnya Seperti Ini.

10. Nanggung Gak Nyampe' Sepuluh. Kesepuluh Tolong Di Like Ya...Ya...!!!

3 komentar:

Anonim mengatakan...

mas matur suwun tutornya sangat membantu saya mas
klo boleh tanya mas gimana buat laporan perhari minggu dan bulan dengan data riport ataou sigate cristal ripot v.7 terima kasih email saya mas : sabda_narendra@yahoo.com

Anonim mengatakan...

Gimana mau buat report barang yang dibelinya kalau melebihi 1 kertas buat 2 nota???

baby mischa mengatakan...

nice info ..
thx ;)

:) :( ;) :D ;;-) :-/ :x :P :-* =((
:-O X( :7 B-) :-S #:-S 7:) :(( :)) :|
/:) =)) O:-) :-B =; :-c :)] ~X( :-h :-t
8-7 I-) 8-| L-) :-a :-$ [-( :O) 8-} 2:-P
(:| =P~ :-? #-o =D7 :-SS @-) :^o :-w 7:P
2):) X_X :!! \m/ :-q :-bd ^#(^ :ar!

Poskan Komentar