Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Tutorial Active Report Bagian 3 - Sub Report

| Comments

Walaupun sedikit telat janji akan tetap saya penuhi untuk membahas ulang kasus pada postingan sebelumnya menggunakan sub report.

Untuk refreshing dibawah ini merupakan format laporan yang akan kita buat menggunakan sub report.

Langsung saja kita aktifkan project postingan sebelumnya

kemudian klik kanan node Designers -> Add -> Data Dynamics ActiveReports 2.0

setelah itu akan bertambah 1 sub node baru dengan nama ActiveReport1 kemudian ganti properties Name dan Captionnya sesuai gambar berikut :

langkah selanjutnya kita akan menambahkan section baru yaitu section Group Header/Footer dengan cara mengklik kanan salah satu section yang sudah ada

jika berhasil akan ditambahkan 2 section baru yaitu section group header dan footer

kemudian ganti properties namenya menjadi grpKelasID

field kelas_id mengacu pada query berikut

1
2
SELECT kelas.id AS kelas_id, kelas.keterangan AS kelas
FROM kelas INNER JOIN kelas_siswa ON kelas.id = kelas_siswa.kelas_id

kemudian desain laporan sesuai gambar berikut :

bagaimana cara mendesainnya sudah saya bahas tuntas disini.

karena kita disini menggunakan sub report berarti kita harus menambahkan 1 report baru yang akan kita panggil melalui objek sub report.

Tambahkan report baru dengan cara mengklik kanan node Designers -> Add -> Data Dynamics ActiveReports 2.0

kemudian ganti properties Name sesuai gambar berikut :

setelah itu hapus section PageHeader dengan cara mengklik kanan section PageHeader -> Delete Section

kemudian lengkapi desainnya seperti berikut :

sampai disini kita akan mulai menghubungkan report utama dengan sub reportnya dengan cara mengaktifkan report arLapSiswaPerkelas2 kemudian klik ganda section Group Header

kemudian lengkapi kodenya seperti berikut :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub grpKelasID_Format()
    Dim strSql  As String

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

            strSql = "SELECT siswa.nomor_induk, siswa.nama " & 
                     "FROM siswa INNER JOIN kelas_siswa ON siswa.nomor_induk = kelas_siswa.nomor_induk " & 
                     "WHERE kelas_siswa.kelas_id = " & grpKelasID.GroupValue & ""

            ' memanggil sub report
            Set SubReport1.object = New arSubReportSiswaPerKelas
            With SubReport1.object.adoSiswaPerKelas
                .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sampleDb.mdb"
                .Source = strSql
            End With

        End If
    End With
End Sub

setelah itu aktifkan juga report arSubReportSiswaPerKelas kemudian tambahkan kode berikut pada event Detail_Format

1
2
3
4
5
6
7
8
9
10
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

Terakhir kita akan memanggil report utama dari form vb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub cmdPreviewSiswaPerKelas2_Click()
    Dim strSql  As String

    strSql = "SELECT kelas.id AS kelas_id, kelas.keterangan AS kelas " & _
             "FROM kelas INNER JOIN kelas_siswa ON kelas.id = kelas_siswa.kelas_id"

    With arLapSiswaPerkelas2
        .adoSiswaPerKelas.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sampleDb.mdb"
        .adoSiswaPerKelas.Source = strSql

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

        .Show
    End With
End Sub

Yuph selesai sudah :)

Sampai disini modal kita sudah cukup untuk membuat report yang lebih kompleks, insya Allah akan kita bahas di seri terakhir dari tutorial Active Report ini.

Selamat MENCOBA :)

active report, visual basic

Tentang Penulis

Software developer yang fokus mengembangkan aplikasi di atas platform .NET (Desktop, ASP.NET MVC, Web Service) dan Android. Senang mempelajari teknologi baru terutama di bidang OOP, Design Pattern, ORM, Database dan Continuous Integration & Deployment.
Saat ini bekerja sebagai staf IT di salah satu PTS di Yogyakarta sebagai senior software developer. Di waktu luang insya Alloh akan terus berbagi pengalaman di blog ini :)

« Melewatkan data antar form Implementasi konsep Data Access Object (DAO) di VB 6 »

Comments