Karena kesibukan ngajar (terutama nyiapin materi) di semester ini hampir saja membuat mata rantai postingan saya terputus dibulan ini, jadi akhirnya disempat2xin juga nulisnya :D.
Dan sekalian permohonan maaf buat om2x yg nanya responnya enggak bisa secepat dulu, maklum alasannya juga sama “sok sibuk” :D.
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 :)