Home, Forum diskusi, Chatting, Download


Latihan 2

Judul : Mencetak data peserta ke Form (Print Preview)

1. Tambahkan pada project Latihan 1 sebuah form, dan tanamkan sebuah ComboBox dan Command sebagai berikut :

Kontrol Properti Value
Form1 Name
Caption
BorderStyle
MDIChild
frmDaftarPeserta
Cetak Daftar Peserta
3 - Fixed Dialog
True
Combo1 Name cboPrinter
Command1 Name
Caption
cmdCetak
&Cetak

2. Tambahkan lagi sebuah form dengan nama frmPreview, dan atur properti form sebagai berikut

Kontrol Properti Value
Form1 Name
BorderStyle
MDIChild
frmPreview
0 -None
True

3. Lakukan Koding pada frmDataPeserta sebagai berikut :

'General Declaration

'Struktur data untuk random file
Private Type Peserta
Email As String * 30
nama As String * 30
Alamat As String * 30
Kota As String * 20
Propinsi As String * 20
Negara As String * 20
Tempat As String * 20
TglLahir As Date
Pria As Integer
End Type
'Deklarasi variabel form level
Dim DatPeserta As Peserta
Private Function InchToTwips(x)
InchToTwips = x * 1440			'1 inch = 1440 Twips
End Function
Private Sub cetak(x, y, z)
frmPreview.CurrentX = InchToTwips(x)	'Set posisi pencetakkan berdasarkan x
If Not z Then
   frmPreview.Print y;			
Else
   frmPreview.Print y			'Akhiri pencetakkan dengan CrLf
End If
End Sub

Private Sub Form_Load()
Dim i As Integer
For i = 0 To Printers.Count - 1
    cboPrinters.AddItem Printers(i).DeviceName & " [" & _
        Printers(i).DriverName & "]"
Next
cboPrinters.ListIndex = 0
End Sub
Private Sub cmdCetak_Click()
Load frmPreview
frmPreview.Top = 0
frmPreview.Left = 0
frmPreview.Width = InchToTwips(8)	'Mengatur Lebar form menjadi 8 inch
frmPreview.Height = InchToTwips(11)	'Mengatur tinggi form menjadi 11 inch

frmPreview.AutoRedraw = True		'Membuat pencetakkan dengan metoda menjadi permanen

Open "Peserta.Dat" For Random As #1 Len = Len(DatPeserta)
JlhRec = LOF(1) / Len(DatPeserta)

For i = 1 To JlhRec
    If frmPreview.CurrentY = 0 Then	'Jika halaman baru, maka set margin atas
       frmPreview.CurrentY = InchToTwips(0.75)
       frmPreview.Font.Name = "Courier New"
       frmPreview.Font.Size = 14	'Atur Font untuk judul pencetakkan
       frmPreview.Font.Bold = True
       Call cetak(0.75, "Laporan Data Peserta Indoprog-vb", True)
       frmPreview.Line (0.75 * 1440, frmPreview.CurrentY)-(7.25 * 1440, frmPreview.CurrentY)
       frmPreview.Font.Name = "Courier New"
       frmPreview.Font.Size = 10
       frmPreview.Font.Bold = False
       Call cetak(0.75, "Email                           Nama                            Kota", True)
       frmPreview.Line (0.75 * 1440, frmPreview.CurrentY)-(7.25 * 1440, frmPreview.CurrentY)
       frmPreview.Print
    End If
    Get #1, i, DatPeserta
    Call cetak(0.75, DatPeserta.Email & Space(2) & _
                     DatPeserta.nama & Space(2) & _
                     DatPeserta.Kota, True)
    If i = JlhRec Then
       frmPreview.Line (0.75 * 1440, frmPreview.CurrentY)-(7.25 * 1440, frmPreview.CurrentY)
       Call cetak(0.75, "By indoprog-vb", True)
    End If
    'If frmPreview.CurrentY >= frmPreview.Height - InchToTwips(0.75) Then
       'Printer.NewPage				'Sementara dimatikan
    'End If
Next i
frmPreview.AutoRedraw = False
frmPreview.Visible = True
'Printer.EndDoc					'Sementara dimatikan
Close #1
End Sub

4. Pada menu di MDIForm lakukan koding untuk mnuDaftarPeserta.

Private Sub mnuDaftarPeserta_Click()
frmDaftarPeserta.Show
End Sub

Dibuat  oleh hendra@indoprog.com
Medan - Sumatera Utara
Indonesia