Tutorial Active Report bagian 4 – Membuat Report tanpa Database

Posted by Kamarudin • 1 minute read • Comments

Karena kesibukan ngajar (terutama nyiapin materi) di semester ini hampir saja membuat mata rantai postingan saya terputus dibulan ini, jadi akhirnya disempat2xin juga nulisnya :grin:.

Dan sekalian permohonan maaf buat om2x yg nanya responnya enggak bisa secepat dulu, maklum alasannya juga sama “sok sibuk” :grin:.

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 :blush:

Comments