![]() |
|
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