Home > Active Report, Visual Basic > Tutorial Active Report bagian 4 – Membuat Report tanpa Database

Tutorial Active Report bagian 4 – Membuat Report tanpa Database

October 31, 2011

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🙂

  1. fajrin zamzam
    November 5, 2011 at 10:35 pm

    om minta tutor codejock dong om…. yang sederhana aja gimana caranya bikin ribbon mdi form…. tolong ya om… maaf OOT…

    • November 6, 2011 at 3:42 am

      Coba kesini om.

      • fajrin zamzam
        November 7, 2011 at 3:04 am

        makasih banyak om…. sukses trus buat om…

        • November 8, 2011 at 8:39 am

          Sama2x om

  2. November 9, 2011 at 10:17 am

    mantap bgt postingannya jurangan…
    boleh minta alamat emailnya?
    thx sebelumnya…😀

  3. November 30, 2011 at 8:40 am

    Mas Admin bisa minta tolong pencerahannya untuk membuat export data ke Excel dari Active Report yang kita buat. Terima Kasih sebelumnya…

    • December 1, 2011 at 7:43 am

      Coba disini om.

  4. ari
    January 7, 2012 at 8:47 pm

    kalo java gmana gan mohon donk kasih tau… makasih…

    • January 9, 2012 at 8:14 am

      Klo di java sy belum pernah coba om.

  5. jecki
    January 16, 2012 at 1:53 pm

    om mau nanya nih , kalo bwt report untuk microsoft visual studio gimana yak…?

    • January 24, 2012 at 11:37 am

      visual studio 6 / .net ?

  6. February 2, 2012 at 8:18 pm

    om itu tipe data ‘daftarMhs’ pada code report nya yang di public bukankah seharusnya ‘Collection’ ?

    • February 3, 2012 at 8:50 am

      Iya om, klo di vb class dictionary itu merupakan class collection

  7. varid-id
    February 16, 2012 at 4:54 pm

    mas, punya tutorial activereport untuk laporan berdasarkan tanggal gk?, misal dari tanggal berapa sampai tanggal berapa gitu, kalo ada mohon di share ya, trims

    • February 16, 2012 at 8:17 pm

      Klo itu cuma permainan query aja om, sudah sy bahas disini.

  8. varid-id
    February 17, 2012 at 9:06 am

    masalahnya query gk dapet2, aku dah coba misal gini :
    tgl >= ‘ ” & tgl1.value & ” ‘ and tgl <= ' " & tgl2.value & " '
    wkatu di eksekusi gk bisa, ada solusi gk?

    • February 17, 2012 at 10:02 am

      Coba gini om :

      SELECT * FROM nama_tabel WHERE fiedl_tanggal BETWEEN '2012-02-01' AND '2012-02-07'
      

      Klo databasenya pake Ms Acces karakter petik tunggal tunggal diganti karakter #

  9. varid-id
    February 17, 2012 at 10:24 am

    alhamdulillah bisa mas, aku baru tahu kalo format tanggal pake karakter # untuk database acces, biasanya pake ‘
    makasih mas atas solusinya

    • February 17, 2012 at 11:40 am

      Oke om sipppp🙂

  10. mutaqin
    February 24, 2012 at 8:37 pm

    mas gmn cara nya ya kl memilih beberapa data dari list view dan langsung dicetak ke data report ? saya sudah mencoba dan hanya berhasil jika satu data saja yang dipilih dari list view nya. mohon bimbinganya. mksh

    • February 25, 2012 at 9:12 am

      Klo utk data report setau sy blm bisa om karena kemampuannya memang terbatas

  11. mutaqin
    February 26, 2012 at 7:41 pm

    kl untuk crystal report mas ? saya sudah googling blm ktmu mas. tq

    • February 27, 2012 at 5:21 am

      Sama om yg ini juga udah lama enggak pernah sy pake, yg jelas ActiveReport sudah memenuhi semua jenis report yg sy butuhkan jadi males melirik report2x tool yg lain😀

  12. naze12
    March 25, 2012 at 5:23 pm

    gan kalau di vb.net make dgv gimana caranya?

    • naze12
      March 25, 2012 at 5:25 pm

      di atas kan make vb 6 list view kalau di vb.net trus make textbox atau DGV gmn?

      • March 25, 2012 at 9:56 pm

        DGV apaan sih om ?😀

        Contoh menambahkan objek pada saat runtime

        Private Sub rptDD_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart
            Dim txtControl As DataDynamics.ActiveReports.TextBox
            Dim intLeft As Single = 0.0F
            Dim x As Integer = 0
            While x < 10
                txtControl = New DataDynamics.ActiveReports.TextBox
                txtControl.Width = Me.PrintWidth * 0.09
                txtControl.Location = New System.Drawing.PointF(intLeft, 0)
                txtControl.BackColor = System.Drawing.Color.Green
                txtControl.Name = "Text" + x.ToString()
                txtControl.Text = "Text" + x.ToString()
                Me.Detail.Controls.Add (txtControl)
                intLeft += Me.PrintWidth * 0.1
                x += 1
            End While
        End Sub
        

        Referensi : How Can I Add Multiple Controls Dynamically at Runtime ?

  13. naze12
    March 25, 2012 at 10:00 pm

    datagridview om ehehe😀

    • March 26, 2012 at 12:42 pm

      D’oh sory om slama sy coding di dot NET belum pernah pake DataGridView om😀

  14. elle
    May 14, 2012 at 8:28 am

    gmn cara menampilkan gambar di report.. sedangkan fotonya berada dalam folder..

    • May 14, 2012 at 10:14 am

      Coba cek disini.

  15. June 5, 2012 at 5:50 pm

    mas ini bisa dipake di VB.Net gak??

    • June 5, 2012 at 8:45 pm

      Ya enggak bisa, AR utk vb 6 dan vb .net itu kan beda om.

  16. July 21, 2012 at 1:59 pm

    om ada tutuorial Vs gird7 ga

    • July 21, 2012 at 2:02 pm

      Enggak ada om, sy biasanya cuma ngoprek sample bawaanya aj

  17. July 23, 2012 at 12:32 pm

    haduwh
    1. kalu nampilin 1 data yg berulang gmna ya om?
    2. nampilin format ribuan ex: 20.000 di active report2?
    dbantu ya om

    • July 23, 2012 at 12:44 pm

      Tinggal buat fungsi terbilang trus tinggal panggil di ActiveReportnya, untuk fungsi terbilang sudah banyak yg membahasnya jadi coba digooling dulu.

  18. August 2, 2012 at 8:49 pm

    mas kalau buat laporan grouping tapi tanpa query gmn mas??

    • August 4, 2012 at 10:49 am

      Nah coba pelajari dulu postingan sy yg disini, biar ada gambaran.

  19. September 14, 2012 at 1:56 am

    jelasin tentang class dictionary om??

  20. dwaji
    September 14, 2012 at 9:35 am

    om cara manggil data sum biar tampil di aktive repot gmn ya?

  21. heri
    December 5, 2012 at 2:16 am

    om admin maaf …

    jika saya ingin menampilkan 2 report tapi dalam 1 halaman, tapi di ambil dari 2 query yang berbeda…

    jadi intinya saya ingin melakukan perbandingan dari 2 report itu tadi om Admin..mohon pencerahan nya…………………………………

    • December 7, 2012 at 4:23 pm

      1. Siapkan report utama yang menampung sub report, sebaiknya sub report diletakkan di section group header
      gambar 1

      2. Untuk sub report sama saja seperti report biasa
      gambar 2

      3. Pemanggilan sub report dilakukan dari report utama
      gambar 3

      4. Pemanggilan report utama sama seperti biasa langsung dari VB

  22. December 12, 2012 at 5:38 am

    mas admin saya newbie bener ini.. mau tanya please… bingung ini..
    kalo mau nge sum dari field yang bukan dari database gmn ya?
    soalnya field-field ini asalnya dari itung2an field yg lainnya.
    misal:
    field1= field2 + field3
    nah sum dari field1 gmn ya?

    saya sertakan gambar mas..

    • December 12, 2012 at 9:16 am

      Coba seperti ini om :

      Private Sub Detail_Format()
          txtTotalJmlSimpBulanLalu.Text = Val(txtTotalJmlSimpBulanLalu.Text) + Val(txtJmlSimpBulanLalu.Text)
      End Sub
      

      Itu baru contoh untuk menghitung sub total Jumlah simpanan bulan lalu, trus jangan lupa properties Text komponen txtTotalJmlSimpBulanLalu diset nilai awalnya = 0

  23. December 12, 2012 at 2:36 pm

    makasih mas admin pencerahannya…
    udah bisa ini…
    ^_^
    makasih banyak… sungguh membantu…

    • December 12, 2012 at 3:39 pm

      Sama2x om🙂

  24. Anto
    December 18, 2012 at 12:30 pm

    Om Admin Newbie neh gn om gmana ya caranya membuat report yg tampilan reportnya seperti ini [IMG]http://i1300.photobucket.com/albums/ag99/edogawa271/laporancontoh_zps4d38e8cd.jpg[/IMG] ,dimana report tersebut kn gambungan dari beberapa query, yaitu query penjualan,pembelian,retur jual,retur beli, kemudian ada selisih juga untuk menghitung laba, atau kira2 apakah ada cara lain ya om untk membuat report seperti itu tpi tidak menggunakan query banyak, trims sebelumnya ^_^

    • January 2, 2013 at 11:46 am

      Querynya ya memang harus satu2x om

      • Anto
        January 3, 2013 at 7:14 am

        caranya ngatur pada reportnya gmna Om Admin ?

        • January 3, 2013 at 8:58 am

          Buat dulu desain reportnya, cukup menggunakan objek label dan tidak perlu menambahkan objek ADO Data Control

          gambar

          Pada gambar di atas sy baru menambahkan informasi total penjualan dan PPN, setelah itu tinggal panggil dari VB

          Private Sub cmdPrevRugiLaba_Click()
              With rptRugiLaba
                  
                  ' TODO : SELECT utk menghitung total penjualan barang
                  strSql = "SELECT SUM(xxx) AS total_penjualan FROM ...."
                  .lblTotalPenjualanBarangDagang.Caption = rsGetValue(strSql, 0)
                  
                  ' TODO : SELECT utk menghitung PPN
                  strSql = "SELECT ppn FROM ...."
                  .lblPPNPenjualan.Caption = rsGetValue(strSql, 0)
                  
                  ' TODO : perintah SELECT yang lain
                  
                  .Show
              End With
          End Sub
          

          Sample kode diatas membutuhkan fungsi rsGetValue :

          Private Function rsGetValue(ByVal query As String, ByVal defValue As Long) As Long
              Dim rs      As ADODB.Recordset
              Dim result  As Long
              
              On Error GoTo errHandle
              
              result = defValue
              
              Set rs = New ADODB.Recordset
              rs.CursorLocation = adUseClient
              rs.Open query, conn, adOpenForwardOnly, adLockReadOnly
              If Not rs.EOF Then
                  If Not IsNull(rs(0).Value) Then
                      result = rs(0).Value
                  End If
              End If
              rs.Close
              Set rs = Nothing
              
              rsGetValue = result
              
              Exit Function
          errHandle:
              rsGetValue = defValue
          End Function
          
  25. Anto
    December 18, 2012 at 12:31 pm

    Anto :
    Om Admin Newbie neh gn om gmana ya caranya membuat report yg tampilan reportnya seperti ini http://i1300.photobucket.com/albums/ag99/edogawa271/laporancontoh_zps4d38e8cd.jpg ,dimana report tersebut kn gambungan dari beberapa query, yaitu query penjualan,pembelian,retur jual,retur beli, kemudian ada selisih juga untuk menghitung laba, atau kira2 apakah ada cara lain ya om untk membuat report seperti itu tpi tidak menggunakan query banyak, trims sebelumnya ^_^

  26. Anto
    January 8, 2013 at 11:18 pm

    wahh… makasih Om saya coba dulu,berarti tidak perlu menggunakan SUb Report ya… trims buanget ^_^

    • January 9, 2013 at 5:02 am

      oke om, sippp

  27. ecol
    January 18, 2013 at 1:52 am

    Om admin mau nanya kalo cara bikin totalan (isi Value) dari record paling atas gimana ya.. ini link gambarnya http://i1082.photobucket.com/albums/j378/ekomein/reportsemon2.jpg
    mohon dibantu ya om admin ama yg baru belajar ngereport…

    • January 19, 2013 at 10:16 am

      Sebelumnya pengen liat dulu om, kode yg ada di event Detail_Format seperti apa ? Untuk penyesuaian kodenya

  28. cde
    April 18, 2013 at 3:30 pm

    om saya kan punya data yang ditampilkan di listview misalkan 100, tapi yang mau di tampilkan cuma 20 (di pilih dengan menu checkbox),, jadi gmana tuh om buat nampilin data yang di cheked saja
    thx,,,

  29. komo
    January 20, 2014 at 9:28 am

    numpang tanya om, kalau mau ngeprint setengah halaman A4 dan kertanya langsung berhenti ditenggah gitu gimn om?

    • January 20, 2014 at 9:36 am

      Pake direct print om, jadi tidak menggunakan tool-tool reporting seperti CR, AR dll. Jadi langsung ngeprint via code. Contoh :

      Private Sub cmdTestCetak_Click()
          Dim i As Integer
          
          ' contoh printer menggunakan port LPT1
          Open "LTP1:" For Output As #1
              
          For i = 1 To 10
              Print #1, "Tess print"
          Next i
          
          Close #1
      End Sub
      
  30. komo
    January 20, 2014 at 9:40 am

    seumpama lewat active report gimn om?
    aku pakai ini :

    Private Sub ActiveReport_Activate()
    Printer.StartJob Me.documentName
    Printer.StartPage
    Printer.FromPage = 1
    Printer.ToPage = 1
    end sub

    Private Sub ActiveReport_QueryClose(Cancel As Integer, CloseMode As Integer)
    Me.Printer.EndPage
    Me.Printer.EndJob
    End Sub

    asal nyuba aja, itu bisa berhenti di tengah, tapi g bisa ke cetak laporannya, mohon koreksian nya om.

  31. komo
    January 20, 2014 at 9:45 am

    ups, ada yang kurang

    skrip ini di atas Printer.StartJob Me.documentName
    Me.PageSettings.PaperHeight = 1440 * 3

  32. komo
    January 20, 2014 at 9:55 am

    untuk yang artikel dibawah itu sudah saya sesuaikan.

    terimakasih om, cuba tak cari2x lagi

  1. April 16, 2014 at 9:14 am
Comments are closed.
%d bloggers like this: