Kamis, 06 September 2012

Laporan periodik dengan Data Environtment

//SQL statement
SELECT * FROM Input_BMB WHERE Input_BMB.Tanggal AND
(Input_BMB.Tanggal >= ?) AND (Input_BMB.Tanggal <= ?) 
ORDER BY Kode_Barang

//code 
Private Sub cmdTampil_Click()
Dim periode As String
    SQL = ""
    SQL = " SELECT * FROM Input_BMB" _
        & " WHERE Input_BMB.Kode_Barang" _
        & " AND Input_BMB.Tanggal >= #" & CDate(TglA.Value) & "#" _
        & " AND Input_BMB.Tanggal <= #" & CDate(TglB.Value) & "# " _
        & " ORDER BY Input_BMB.Tanggal, Input_BMB.Nama_Barang"

    Set rsTampil = New ADODB.Recordset
    Set rsTampil = konekDb.Execute(SQL)
     periode = Format(TglA.Value, "dd MMMM yyyy") & " S/D " & Format(TglB.Value, "dd MMMM yyyy")
    If rsTampil.BOF Then
        MsgBox "Barang BMB 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
    deKoneksi.Input_BMB (Format(TglA.Value, "dd/MM/yyyy")), (Format(TglB.Value, "dd/MM/yyyy"))
    With rptLapBMB
     .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

Senin, 03 September 2012

Membuat Laporan Periodik (3)


A. Membuat Laporan (Report)
Laporan digunakan sebagai sarana untuk menampilkan hasil pengolahan data, baik tampilan di layar maupun di kertas melalui printer. Pada pemrograman visual basic, laporan dapat dibuat dengan fasilitas Cristal Report (diinstal tersendiri) maupun dengan Data Report (bawaan standard). Pada bahasan di bawah ini laporan dibuat engan menggunakan Data Report.
a)      Persiapan
Untuk membuat laporan dengan Data Report, dapat dilakukan dengan cara menambahkan objek Data Report pada project, yaitu :
-          Tampilkan menu Project
-          Klik pilihan Add Data Report, sehingga akan ditampilkan desain laporan.
Sebelum melanjutkan untuk merancang laporan yang diinginkan, ada beberapa tahapan yang perlu dilakukan yaitu :
1)      Menetapkan Data Enviroment (Lingkungan Data)
Untuk membuat Data Environment lakukan langkah-langkah sbb :
-          Klik kanan pada jendela Project
-          Pilih Add
-          Pilih Data Environment, sehingga akan ditampilkan layar seperti gambar di bawah ini :
Gambar 47 : Kotak Dialog Data Environment
Untuk masing-masing nama (DataEnvironment1 dan Connection1) dapat dirubah namanya melalui properties.
-          Buat koneksi data agar bisa dihubungkan dengan Database yang akan digunakan untuk pembuatan laporan. Caranya adalah dengan klik kanan pada Connection1, lalu pilih Properties, sehingga akan ditampilkan jendela seperti gambar di bawah ini.
Gambar 48 : Kotak Dialog Link Database
-          Klik pilihan Microsoft Jet 4.0 OLE DB Provider, lalu klik tombol Next, sehingga akan ditampilkan jendela di bawah ini
Gambar 49 : Kotak Dialog Koneksi Database
-          Ketikkan nama database yang digunakan (pada posisi kursor saat ini) atau klik tombol titik tiga sehingga memudahkan dalam menentukan database yang dimaksudkan. Setelah database selesai ditetapkan, maka untuk mencoba koneksi bisa diklik tombol Test Conection. Jika dinyatakan sukses, maka langkah selanjutnya dapat dilakukan dengan mengklik tombol OK.
2)      Membuat Sumber Data (Tabel/SQL yang akan digunakan)
Untuk mempersipkan sumber data yang akan digunakan, maka lakukan langkah-langkah di bawah ini.
-          Klik kanan pada bagian Connection1
-          Pilih Add Command, sehingga akan ditambahkan satu nama untuk sumber data yaitu Command1. Nama ini dapat dirubah pada properties. (setiap kali ingin menambah sumber data lakukan hal yang sama seperi di atas)
-          Tentukan sumber data dengan klik kanan pada Command1, lalu pilih Properties sehingga akan ditampilkan kotak dialog seperti gambar di bawah ini.
Gambar 50 : Kotak Dialog Properties Pembuatan Sumber Data
Sumber data dapat berupa tabel atau sql. Jika sumber data adalah tabel, maka klik Database Object lalu pilih Table. Setelah itu pada bagian bawahnya pilih nama tabel yang akan digunakan. Jika sumber data adalah query maka klik SQL Statement, lalu tulis SQL yang dibutuhkan. Untuk memperjelas keadaan dari dua alternatif di atas dapat dilihat gambar di bawah ini.
Gambar 51 : Sumber Data Berupa Tabel
Gambar 52 : Sumber Data Berupa SQL
-          Setelah selesai menentap Tabel atau SQL, klik tombol Apply.
-          Apabila laporan yang dibuat adalah mengambil seluruh data pada tabel seperti contoh di atas, maka proses sudah selesi dengan mengklik tombol OK. Tapi jika laporan yang dibuat agak bervariasi, misalnya menampikan data tertentu atau menampilkan data dengan kelompok tertentu, maka dapat ditindak lanjuti dengan menetapkan beberapa hal pada kotak dialog di atas.
b)      Proses Pembuatan
Setelah persiapan-persiapan atau kelengkapan dari pembuatan laporan sudah dilakukan, maka proses pembuatan dapat dilakukan. Ada dua tahapan yang perlu dilakukan supaya laporan bisa terwujud yaitu mengatur properties dan membuat rancangan (desain) laporan. Untuk keperluan tersebut kembali dulu ke tampilan rancangan report. Jika masih dalam tampilan Environmet, maka tutup dulu tampilan tersebut.
1)      Mengatur properties laporan
Gambar 53 : Layar Desain Laporan
Pada saat tampilan desain report seperti di atas, maka atur propertiesnya yaitu DataSource dan DataMember.
-          Mengatur DataSource
Klik properti DataSource, lalu pilih sesuai dengan nama Environment (pada contoh di atas namanya adalah Environment1)
-          Mengatur DataMember
Klik properties DataMember, lalu pilih nama sumber data ysng digunakan (pada contoh di atas menggunakan Command1).
Properties yang lain dapat diatur, misalnya batas kiri laporan (Left Margin), batas kanan laporan (Right Margin), batas atas laporan (Top Margin), dan batas bawah laporan (Bottom Margin).
2)      Membuat desain laporan
Untuk membuat rancangan laporan dapat digunakan kontrol-kontrol yang sudah disediakan. Untuk penerapannya sama seperti dalam perancangan form. Langkah-langkahnya sebagai berikut :
  1. Gunakan kontrol Label (RptLabel) untuk membuat tampilan berupa keterangan seperti judul dan sebagainya. Atur propertiesnya terutama Caption.
  2. Gunakan kontrol text (RptTextbox)  untuk menampilkan data berupa field dan letakkan pada bagian Detail. Properties yang diatur adalah DataMember (sesuai nama sumber datanya) data DataField (sesuai dengan field-field yang akan ditampilkan)
  3. Gunakan kontrol fungsi (RptFunction) untuk menampilkan perhitungan seperti penjumlahan dan letakkan pada bagian Report Footer. Properties yang diatur adalah DataMember (sesuai nama sumber datanya) data DataField (sesuai dengan field-field yang akan ditampilkan)
  4. Gunakan kontrol Shape (RptShape) untuk membuat kotak atau kolom-kolom pada laporan.
  5. Gunakan kontrol Line (RptLine) untuk membentuk garis pada laporan.
  6. Gunakan kontrol Image (RptImage) untuk menampilkan gambar pada laporan. Properties yang diatur adalah properties Picture.
c)      Menjalankan/Memanggil Report
Untuk memanggil/menjalankan report dapat dilakukan dengan dua bentuk, yaitu laporan yang akan ditampilkan di layar dan laporan yang akan dicetak.
1)      Memanggil/Menjalankan laporan untuk layar
DataReport1.Show
2)      Memanggil/Menjalankan laporan yang akan dicetak
DataReport1.PrintReport
Catatan :
DataReport1 adalah nama laporan.
Perintah tersebut dituliskan pada tombol peritah yang sesuai.
d)     Contoh Penerapan
Di bawah ini adalah database sederhana dari administrasi perhotelan. Beri saja nama database ini dengan DATAHOTEL.MDB. Diminta untuk membuat laporan tentang daftar tamu yang menginap dengan pilihan (semua, tanggal tertentu, bulan tertentu, tahun tertentu.
Gambar 54 : Relasi Antar Tabel Database Sederhana
Penyelesaian :
1)      Rancang terlebih dahulu database dengan menggunakan Microsoft Access
2)      Buat seluruh tabel dan tentukan jenis field dan kunci jika ada.
3)      Buatlah Query agar memudahkan dalam menghasilkan informasi yang lengkap, khusus untuk penginapan yang menggabungkan tabel Inap, tabel Tamu, tabel Petugas, tabel Kamar dan tabel Jeniskm. Simpanlah Query tersebut dengan nama Qinap. Setelah database selesai, jangan lupa untuk melakukan proses Convert Database.
4)      Buatlah project untuk menghasilkan aplikasi yang diinginkan.
5)      Buatlah laporan dengan menambahkan Objek Data Report ke dalam project.
6)      Lakukan persiapan laporan dengan membuat Data Environment
7)      Tetapkanlah koneksi data untuk membuat sumberdata
8)      Ciptakanlah 4 buah sumber data (klik kanan pada Connection lalu klik Add Command) karena laporan yang akan dihasilkan sebanyak 4 buah laporan. Nama masing-masingnya biarlah seperti aslinya (Command, Command2, Command3, dan Command4). Untuk masing-masing sumber data dibuat dengan SQL saja.
-          SQL pada Command1 (semua data)
Klik kanan pada Command1, lalu pilih Properties dan tulis SQL sbb :
Select * from QINAP
Klik Apply
-          SQL pada Command2 (data tanggal tertentu)
Klik kanan pada Command2, lalu pilih Properties dan tulis SQL sbb :
Select * from QINAP Where (tglmasuk = ?)
Klik Apply
Klik tab Parameters, klik tanda tanya yang muncul, lalu tulis nama parameter pada bagian Name dengan nama VTGL, klik Apply
Klik tab Group, tandai check box Group Command Object, klik field tglmasuk, pindahkan ke sebelah kanan dengan tombol arah kanan
Klik tombol OK
-          SQL pada Command3 (data bulan tertentu)
Klik kanan pada Command3, lalu pilih Properties dan tulis SQL sbb :
Select *, month(tglmasuk) as BULAN, year(tglmasuk) as TAHUN from QINAP Where (month(tglmasuk) = ? and year(tglmasuk) = ?)
Klik Apply
Klik tab Parameters, klik tanda tanya yang muncul. Tanda tanya pertama beri nama pada Name dengan VBULAN, tanda tanya kedua beri nama pada Name dengan VTAHUN, lalu klik Apply
Klik tab Group, tandai check box Group Command Object, klik field BULAN pindahkan ke sebelah kanan dengan tombol arah kanan, field TAHUN pindahkan kesebelah kanan dengan tombol arah kanan.
Klik tombol OK
-          SQL pada Command4 (data tahun tertentu)
Klik kanan pada Command3, lalu pilih Properties dan tulis SQL sbb :
Select *, year(tglmasuk) as TAHUN from QINAP Where (year(tglmasuk) = ?)
Klik Apply
Klik tab Parameters, klik tanda tanya yang muncul dan nama pada Name dengan VTAHUN, lalu klik Apply
Klik tab Group, tandai check box Group Command Object, field TAHUN pindahkan kesebelah kanan dengan tombol arah kanan.
Klik tombol OK
Catatan :
Penggunaan tanya (?) dalam SQL menunjukkan pada bagian itu akan diisi oleh parameter (nilainya tidak pasti) yang akan dikirim dari form pemanggilnya
Setelah selesai membuat SQL masing-masing sumber data, akan terlihat pada jendela Environment seperti terlihat pada gambar di bawah ini.
Gambar 55 : Jendela Environment
Tutup jendela di atas supaya kembali ke desain report.
9)      Rancanglah 4 buah laporan untuk masing-masing sumber data yang telah dibuat. Hubungkan dengan sumber data yang sesuai.
10)  Rancanglah form untuk menjalankan report yang telah dibuat dengan rancangan seperti gambar di bawah ini.
Gambar 56 : Rancangan Form Laporan
11)  Tulislah kode program pada form sebagai berikut :
Dim bl As Single
Private Sub Form_Load()
Option1.Value = True
thn.Text = Year(Date)
End Sub
Private Sub cmdlayar_Click()
Call cekbulan
If Option1.Value = True Then
If DataEnvironment1.rsCommand1.State = adStateOpen Then
DataEnvironment1.rsCommand1.Close
DataEnvironment1.rsCommand1.Open
If DataEnvironment1.rsCommand1.RecordCount = 0 Then
MsgBox “Data belum ada atau tabel masih kosong!”
Else
DataReport1.Show
End If
ElseIf Option2.Value = True Then
If DataEnvironment1.rsCommand2_Grouping.State = adStateOpen Then
DataEnvironment1.rsCommand2_Grouping.Close
DataEnvironment1.command2_Grouping tgl.Value
If DataEnvironment1.rsCommand2_Grouping.RecordCount = 0 Then
MsgBox “Data belum ada atau tabel masih kosong!”
Else
DataReport2.Show
End If
ElseIf Option3.Value = True Then
If DataEnvironment1.rsCommand3_Grouping.State = adStateOpen Then
DataEnvironment1.rsCommand3_Grouping.Close
DataEnvironment1.command3_Grouping bl, Val(thn.Text)
If DataEnvironment1.rsCommand3_Grouping.RecordCount = 0 Then
MsgBox “Data belum ada atau tabel masih kosong!”
Else
DataReport3.Show
End If
ElseIf Option4.Value = True Then
If DataEnvironment1.rsCommand4_Grouping.State = adStateOpen Then
DataEnvironment1.rsCommand4_Grouping.Close
DataEnvironment1.command4_Grouping Val(thn.Text)
If DataEnvironment1.rsCommand4_Grouping.RecordCount = 0 Then
MsgBox “Data belum ada atau tabel masih kosong!”
Else
DataReport4.Show
End If
End If
End Sub
Private Sub cmdselesai_Click()
Unload Me
End Sub
Public Sub cekbulan()
If bln.Text = “Januari” Then
bl = 1
ElseIf bln.Text = “Februari” Then
bl = 2
ElseIf bln.Text = “Maret” Then
bl = 3
ElseIf bln.Text = “April” Then
bl = 4
ElseIf bln.Text = “Mei” Then
bl = 5
ElseIf bln.Text = “Juni” Then
bl = 6
ElseIf bln.Text = “Juli” Then
bl = 7
ElseIf bln.Text = “Agustus” Then
bl = 8
ElseIf bln.Text = “September” Then
bl = 9
ElseIf bln.Text = “Oktober” Then
bl = 10
ElseIf bln.Text = “Nopember” Then
bl = 11
ElseIf bln.Text = “Desember” Then
bl = 12
End If
End Sub
Private Sub Option1_Click()
Label2.Visible = False
tgl.Visible = False
Label3.Visible = False
bln.Visible = False
Label4.Visible = False
thn.Visible = False
End Sub
Private Sub Option2_Click()
Label2.Visible = True
tgl.Visible = True
Label3.Visible = False
bln.Visible = False
Label4.Visible = False
thn.Visible = False
tgl.SetFocus
End Sub
Private Sub Option3_Click()
Label2.Visible = False
tgl.Visible = False
Label3.Visible = True
bln.Visible = True
Label4.Visible = True
thn.Visible = True
bln.SetFocus
End Sub
Private Sub Option4_Click()
Label2.Visible = False
tgl.Visible = False
Label3.Visible = False
bln.Visible = False
Label4.Visible = True
thn.Visible = True
thn.SetFocus
End Sub
Keterangan :
Kode untuk tombol Cetak tidak disertakan pada listing di atas. Anda dapat membuat kodenya dengan meng-copy kode pada tombol Layar, lalu DataReport1.Show diganti dengan DataReport1.PrintReport. Sesuaikan juga untuk perintah yang lain.

Membuat Laporan Periodik (2)


di modul connection
Public KONEKSI As StringPublic MyDB As New ADODB.ConnectionPrivate Sub Main()On Error GoTo PESANWith MyDBKONEKSI = “Provider=SQLOLEDB.1;” & _“Password=” & namapassword & “;” & _“User ID=” & namaUserID & “;” & _“Initial Catalog =” & namaDB & “;” & _“Data Source=” & namaoperator & “”.CursorLocation = 3.Open KONEKSIIf .State = adStateOpen ThenMenu.ShowElseMsgBox “CONNECTION VIEW ERROR”, vbOKOnly + vbInformation, “KONEKSI BARU”End IfEnd WithExit Sub
PESAN:MsgBox “ERROR 010 :” & vbTab & Err.Description & vbCrLf & ” BUAT KONEKSI BARU “, vbCritical + vbOKOnly, “ERROR”End Sub
Private Sub cmdprint_Click()Dim RptKeluar As New LapTanggalMasukDim RsKeluar As New ADODB.RecordsetIf dtawal.Value > dtakhir.Value ThenMsgBox “Tanggal Mulai tidak boleh lebih kecil dari tanggal akhir”,   vbInformation, “PRINT”dtawal.SetFocusExit SubEnd If
StrSQL = “SELECT * FROM OBAT_MASUK where(Tanggal between ‘” & (Format(dtawal.Value, “mm/dd/yyyy”)) & “‘ and ‘” & ((Format(dtakhir.Value, “mm/dd/yyyy”))) & “‘)”RsKeluar.Open StrSQL, MyDB, adOpenKeyset, adLockOptimisticRptKeluar.ReportTitle = “LAPORAN OBAT MASUK/KELUAR DARI TANGGAL” &  vbCrLf & Format(dtawal.Value, “DD-MM-YYYY”) & space(3) & “S/D” & space(3) & Format(dtakhir.Value, “DD-MM-YYYY”)RptKeluar.Database.SetDataSource RsKeluarCRViewer1.Visible = TrueCRViewer1.ReportSource = RptKeluarCRViewer1.DisplayGroupTree = FalseCRViewer1.DisplayToolbar = TrueCRViewer1.ViewReportCRViewer1.Zoom 100Screen.MousePointer = vbDefaultpictgl.Visible = Falsepicobt.Visible = FalseMe.WindowState = 2
End SubPrivate Sub Command2_Click()Unload MeEnd Sub



Jumat, 31 Agustus 2012

Tampilkan Record Kosong


adobarang.RecordSource = "select * from barang where nama_barang  is Null"
adobarang.Refresh

Kamis, 30 Agustus 2012

Form Login (Tampilkan Foto)


Private Sub txtkodeuser_Change()
If adouser.Recordset.RecordCount = 0 Then Exit Sub
If txtkodeuser.Text <> "" Then
    adouser.Recordset.MoveFirst
    adouser.Recordset.Find "[kodeuser]= '" & txtkodeuser.Text & "'"
    If Not (adouser.Recordset.EOF Or adouser.Recordset.BOF) Then
        txtnamauser.Text = adouser.Recordset!namauser
        txtjabatan.Text = adouser.Recordset!jabatan
        var_password = adouser.Recordset!Password
    End If
Else
        txtnamauser.Text = ""
        txtjabatan.Text = ""
        var_password = ""
        Imgfoto.Picture = Nothing
End If
End Sub

TAMPILKAN DATA DAN FOTO

Private Sub txtpassword_GotFocus()
If adouser.Recordset.RecordCount = 0 Then Exit Sub
adouser.Recordset.MoveFirst
adouser.Recordset.Find "[kodeuser]= '" & txtkodeuser.Text & "'"
If Not adouser.Recordset.EOF Then
                On Error GoTo pesan
                If Not IsNull(adouser.Recordset!foto) Then
                Imgfoto.Picture = LoadPicture(adouser.Recordset!foto)
                End If
                Exit Sub
pesan: MsgBox ("Maaf, path anda salah Jadi fotonya tidak tampil")
Imgfoto.Picture = Nothing
       
        Exit Sub
End If


Form Untuk Mengakses Image


TOMBOL BROWSE
Private Sub cmdbrowse_Click()
CD.ShowOpen
Image1.Picture = LoadPicture(CD.FileName)
XFOTO = CD.FileName
txtfoto.Text = XFOTO
End Sub


TOMBOL SIMPAN


Private Sub cmdsimpan_Click()
If txtkodeuser.Text = "" Then Exit Sub
adouser.Recordset.MoveFirst
adouser.Recordset.Find "[KodeUser]= '" & txtkodeuser.Text & "' "
If adouser.Recordset.EOF Then
    adouser.Recordset.AddNew
End If
    adouser.Recordset!kodeuser = txtkodeuser.Text
    adouser.Recordset!namauser = Trim(txtnamauser.Text)
    adouser.Recordset!jabatan = Trim(txtjabatan.Text)
    adouser.Recordset!Password = Trim(txtpassword.Text)
    adouser.Recordset!foto = Trim(txtfoto.Text)
adouser.Recordset.Update
adouser.Refresh
kosongkan
Call MsgBox("Data Telah Tersimpan", vbInformation, "Simpan Data")
End Sub

TAMPILKAN DATA


Private Sub txtkodeuser_Change1()
If txtkodeuser.Text <> "" Then
    adouser.Recordset.Filter = "KodeUser Like '*" & txtkodeuser.Text & "*' "
    If Not (adouser.Recordset.EOF Or adouser.Recordset.BOF) Then
        txtnamauser.Text = adouser.Recordset!namauser
        txtjabatan.Text = adouser.Recordset!jabatan
        txtpassword.Text = adouser.Recordset!Password
                On Error GoTo pesan
                If Not IsNull(adouser.Recordset!foto) Then
                txtfoto.Text = adouser.Recordset!foto
               Image1.Picture = LoadPicture(adouser.Recordset!foto)
                End If
                Exit Sub
pesan: MsgBox ("Maaf, path anda salah Jadi fotonya tidak tampil")

        
        Exit Sub
    Else
        adouser.Refresh
txtnamauser.Text = ""
txtjabatan.Text = ""
txtpassword.Text = ""
txtfoto.Text = ""
Image1.Picture = Nothing
        
        Exit Sub
    End If
Else
adouser.Refresh
kosongkan
Exit Sub
End If
End Sub


Membuat View Laporan Periodik di MySQL


create
view `pos`.`view_jual_periodik`
as
(SELECT jual.tanggaljual, jual.nota, item_jual.kodebarang, barang.namabarang, barang.hargajual, item_jual.jumlahjual, (hargajual*jumlahjual) AS subtotal
FROM (jual INNER JOIN item_jual ON jual.nota = item_jual.nota) INNER JOIN barang ON item_jual.kodebarang = barang.kodebarang)

Code Print ke Printer OPOS (Printer Kasir)



Option Explicit
Dim CRLF    As String * 2
Dim ESC     As String * 1
Dim no As Integer
Dim statchg As Integer
Dim gtotal As Double
Dim gdisk As Double
Dim gst As Double
Dim MSOLD As Integer
Dim MONHAND As Integer
Dim KODEx As String


Private Sub printSTRUK1()
    Dim fDate   As String
    Dim fTime   As String
    Dim RecNo   As Long
    Dim fRecNo  As String
    Dim ManualCut   As String
    Dim OutputData As String
    Dim totalall As Double
    Dim diskall As Double
    Dim stall As Double
    Dim chg As Double
    Dim ttl As Double
    Dim mnotran As Double
 
   ' Printer.Print SetBitmap; App.Path + "\mbb001.bmp";
      Printer.FontSize = 9
      Printer.FontBold = True
      Picture = LoadPicture
   
      'Printer.PaintPicture(
      Printer.Print "TAMAN BALITA MERBY      "
      Printer.Print " "
      Printer.FontSize = 7
      Printer.FontBold = False
      Printer.Print " Jl. PANDANARAN II/2D SEMARANG"
      Printer.Print "         Telp: 024-8317067"
      Printer.Print " "
      Printer.Print " "
       fDate = Format(Date, "dd-mm-yyyy")   'System date
       fTime = Format(Time, "hh:mm")            'System time
       RecNo = 1                               'Receipt No.
       fRecNo = Format(RecNo, "R-0000")
        Printer.FontSize = 9
        Printer.FontBold = False
        Printer.Print "  "; fDate; "                          "; fTime
        Printer.Print " "
        Printer.FontSize = 9
        Printer.FontBold = True
        Printer.Print "      BUKTI PEMBAYARAN "
        Printer.Print
        Printer.FontSize = 8
        Printer.FontBold = False
        ST00TEMP.RecordSource = "select * from st00temp"
        ST00TEMP.Refresh
        Do While Not ST00TEMP.Recordset.EOF
           Printer.Print Str(ST00TEMP.Recordset.Fields("qty")); "  "; ST00TEMP.Recordset.Fields("name"); Space(26 - Len(ST00TEMP.Recordset.Fields("name"))); Space(9 - Len(Format(ST00TEMP.Recordset.Fields("price"), "#,#0"))); Format(ST00TEMP.Recordset.Fields("price"), "#,#0")
           totalall = totalall + ST00TEMP.Recordset.Fields("total")
           diskall = diskall + ST00TEMP.Recordset.Fields("discpct")
           ttl = ST00TEMP.Recordset.Fields("price") * ST00TEMP.Recordset.Fields("qty")
           mnotran = ST00TEMP.Recordset.Fields("notran")
           ST00TEMP.Recordset.MoveNext
           Loop
           Printer.Print " "
           Printer.FontSize = 10
           Printer.FontBold = True
           Printer.Print "SubTotal  :"; Space(9 - Len(Format(stall, "#,#0"))); Format(stall, "#,#0")
           Printer.Print "Disk      :"; Space(9 - Len(Format(diskall, "#,#0"))); Format(diskall, "#,#0")
           Printer.Print "Total     :"; Space(9 - Len(Format(totalall, "#,#0"))) + Format(totalall, "#,#0")
           Printer.Print " "
           'Printer.PaintPicture
           Printer.FontSize = 9
           Printer.FontBold = False
           Printer.Print "CASH      :"; Space(15 - Len(totalall)) + IIf(Val(Text2(1).Text) = "0", Format(totalall, "#,#0"), Format(Val(Text2(1).Text), "#,#0"))
           Printer.Print "KEMBALI   :"; Space(15 - Len(Text2(2).Text)) + Format(Val(Text2(2).Text), "#,#0")
           Printer.Print "  "
           Printer.Print "Cashier : "; xuser; "    RPC   :"; Space(3 - Len(Format(mnotran, "#,#0"))); Format(mnotran, "#,#0")
           Printer.Print "  "
           Printer.Print "     Terima Kasih Selamat Bergabung"
 Printer.EndDoc
 End Sub