Tutorial Membuat Laporan Dengan Active Report Bag 2

Pada pembahasan tutorial kali ini adalah pembuatan format laporan yang sering digunakan yaitu grouping. Contoh laporan yang akan kita buat adalah seperti yang nampak pada gambar berikut :

Tampilkan Gambar



Masih menggunakan database yang sama pada tutorial pertama, kita akan tambahkan 2 buah tabel lagi yaitu kelas dan kelas_siswa
Tampilkan Gambar







Sebelum membuat laporannya, kita liat dulu query yang digunakan untuk menampilkan data siswa berikutnya kelasnya.

SELECT kelas.id AS kelas_id, kelas.keterangan AS kelas, siswa.nomor_induk, siswa.nama
FROM siswa INNER JOIN (kelas INNER JOIN kelas_siswa ON kelas.id = kelas_siswa.kelas_id) ON siswa.nomor_induk = kelas_siswa.nomor_induk

Tampilkan Gambar



Oke sampai disini persiapannya sudah cukup, saatnya kita membuka project pada tutorial pertama klik kanan di nama project - Add -Data Dynamics ActiveReport 2.0

Tampilkan Gambar



jika berhasil akan ditambahkan sub node baru dengan nama ActiveReport1 seperti yang nampak pada gambar berikut.

Tampilkan Gambar



kemudian ganti properties namenya menjadi arLapSiswaPerKelas dan caption menjadi Laporan Data Siswa Per Kelas seperti yang nampak pada gambar berikut ini

Tampilkan Gambar



Selanjutnya kita akan menambahkan section Group dengan cara mengklik kanan salah satu section (PageHeader atau Detail) -> Insert -> Group Header/Footer. Seperti yang nampak pada gambar berikut.

Tampilkan Gambar



Jika berhasil akan ditambahkan 2 section baru yaitu GroupHeader1 dan GroupFooter1 seperti gambar berikut.

Tampilkan Gambar




kemudian ganti properties namenya menjadi grpKelasID untuk lebih jelasnya lihat gambar di bawah ini.

Tampilkan Gambar




field kelas_id mengacu pada query diatas
untuk format laporannya sesuai dengan contoh diatas

Tampilkan Gambar



bagaimana cara mendesainnya sudah saya bahas tuntas disini.
Setelah desain reportnya jadi, kita akan menambahkan beberapa baris kode di event Detail_Format

Tampilkan Gambar



kemudian ketik kode berikut :

Private Sub Detail_Format()
    With adoSiswaPerKelas.Recordset
        If Not .EOF Then
            txtNo.Text = Val(txtNo.Text) + 1
            txtNoInduk.Text = .Fields("nomor_induk").Value
            txtNama.Text = .Fields("nama").Value
        End If
    End With
End Sub

selanjutnya kita akan menambahkan kode di event Detail_BeforePrint

Tampilkan Gambar



Private Sub Detail_BeforePrint()
    txtNo.Height = Detail.Height
    txtNoInduk.Height = Detail.Height
    txtNama.Height = Detail.Height
End Sub

terakhir event grpKelasID_Format

Private Sub grpKelasID_Format()
    With adoSiswaPerKelas.Recordset
        If Not .EOF Then
            txtKelas.Text = .Fields("kelas").Value
        End If
    End With
End Sub

kemudian aktifkan form yang sudah ada setelah itu tambahkan 1 buah tombol untuk menampilkan laporan siswa per kelas seperti gambar berikut ini :

Tampilkan Gambar



adapun untuk kodenya seperti berikut :

Private Sub cmdPreviewSiswaPerKelas_Click()
    Dim strCon  As String
    Dim strSql  As String

    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sampleDb.mdb"
    strSql = "SELECT kelas.id AS kelas_id, kelas.keterangan AS kelas, siswa.nomor_induk, siswa.nama " & _
             "FROM siswa INNER JOIN (kelas INNER JOIN kelas_siswa ON kelas.id = kelas_siswa.kelas_id) ON siswa.nomor_induk = kelas_siswa.nomor_induk"

    With arLapSiswaPerkelas
        .adoSiswaPerKelas.ConnectionString = strCon
        .adoSiswaPerKelas.Source = strSql

        .lblHeader1.Caption = "SEKOLAH MENGENGAH ..."
        .lblHeader2.Caption = "Laporan Data Siswa Per Kelas"

        .Show
    End With
End Sub

Jalankan program kemudian klik tombol “Tampilkan Report Siswa Per Kelas”

Tampilkan Gambar




Ada yang aneh pada laporan diatas, nomor urut untuk kelas VII B (UNGGULAN) harusnya dimulai dari 1 bukan 12 (melanjutkan nomor urut kelas sebelumnya).
Untuk menyelesaikan masalah ini kita harus kembali ke desain reportnya kemudian aktifkan event grpKelasID_Format setelah itu tambahkan kode berikut :

txtNo.text = "0"

untuk kode lengkapnya seperti berikut :

Private Sub grpKelasID_Format()
    With adoSiswaPerKelas.Recordset
        If Not .EOF Then
            txtNo.Text = "0" ' reset nomor urut kelas
            txtKelas.Text = .Fields("kelas").Value
        End If
    End With
End Sub

coba dijalankan lagi programnya kemudian klik tombol “Tampilkan Report Siswa Per Kelas”




Yupz nomor urut untuk kelas berikutnya sudah dimulai dari 1

Untuk postingan kali ini rasanya cukup sampai disini, postingan berikutnya insya Allah kita masih akan membahas kasus yang sama (menampilkan daftar siswa per kelas) tetapi dengan memanfaatkan Sub Report.

dikutip dari : http://coding4ever.net


 Saya akan memberikan link download tutorial dan source codenya di akhir tulisan ini silahkan di download dan semoga dapat bermanfaat.


DOWNLOAD :

1. Tutorial
2. Source Code



Tags:
Tutorial Membuat Laporan Dengan Active Report,Membuat Grup pada Laporan,Cara membuat grup pada active report,bagaimana membuat grup pada laporan active report,Membuat Grouping pada active report

1 comment:

  1. cara buat subtotal sama grand total gimana ya om di active report?

    ReplyDelete