Tutorial Active Report bagian 4 – Membuat Report tanpa Database
Karena kesibukan ngajar (terutama nyiapin materi) di semester ini hampir saja membuat mata rantai postingan saya terputus dibulan ini, jadi akhirnya disempat2xin juga nulisnya .
Dan sekalian permohonan maaf buat om2x yg nanya responnya enggak bisa secepat dulu, maklum alasannya juga sama “sok sibuk” .
Oke, langsung saja beberapa waktu yang lalu ada yang nanya bagaimana menampilkan data yang ada di ListView ke ActiveReport.
Misal kita mempunyai data mahasiswa seperti berikut :
Sebelumnya kita akan membuat terlebih dulu sebuah class Mahasiswa untuk menampung data diatas kemudian tinggal kita lewatkan melalui variabel public yang kita tambahkan dibagian ActiveReportnya.
Berikut kode lengkap class Mahasiswa
Private m_Npm As String
Private m_nama As String
Private m_kota As String
Public Property Let Npm(ByVal vData As String)
m_Npm = vData
End Property
Public Property Get Npm() As String
Npm = m_Npm
End Property
Public Property Let Nama(ByVal vData As String)
m_nama = vData
End Property
Public Property Get Nama() As String
Nama = m_nama
End Property
Public Property Let Kota(ByVal vData As String)
m_kota = vData
End Property
Public Property Get Kota() As String
Kota = m_kota
End Property
Untuk ActiveReportnya buat desain seperti biasa
Setelah itu lengkapi juga kodenya
Public daftarMhs As Dictionary
Private Sub ActiveReport_FetchData(EOF As Boolean)
Static i As Integer
i = i + 1
If i > daftarMhs.Count Then
EOF = True
Exit Sub
Else
EOF = False
End If
Dim mhs As Mahasiswa
Set mhs = daftarMhs.Item(CStr(i))
txtNpm.Text = mhs.Npm
txtNama.Text = mhs.Nama
txtKota.Text = mhs.Kota
End Sub
Private Sub Detail_Format()
txtNo.Text = Val(txtNo.Text) + 1
End Sub
Pada kode diatas terlihat variabel daftarMhs bertipe Dictionary dengan access modifier public, jadi nilainya bisa kita set dari form.
Class Dictionary mirip seperti class Collection di C# atau java.
Terakhir kode untuk menampilkan ActiveReport plus mengeset nilai variabel daftarMhs yang diambil dari ListView.
Private Sub cmdPreview_Click()
Dim rpt As New ActiveReport1
Dim daftarMhs As New Dictionary
Dim mhs As Mahasiswa
Dim i As Integer
For i = 1 To lsvMahasiswa.ListItems.Count
Set mhs = New Mahasiswa
With mhs
.Npm = lsvMahasiswa.ListItems(i).SubItems(1)
.Nama = lsvMahasiswa.ListItems(i).SubItems(2)
.Kota = lsvMahasiswa.ListItems(i).SubItems(3)
End With
daftarMhs.Add CStr(i), mhs
Next i
With rpt
Set .daftarMhs = daftarMhs
.Show
End With
End Sub
Selamat MENCOBA
Comments