Tuesday, September 6, 2011

Cara Membuat No Urut di Data Report

Sebuah pertanyaan yang saya ambil dari thread dari member ibego dengan ID bibi Oryza :-P, Selengkapnya untuk threadnya ada sini [Tanya] No Urut Data Report
Selamat sore om dan tante masta smua.
Saia mo tnya gmn caranya membuat no urut d data report?
Jika record count da 25, berarti no urut dri 1 smpe 25.
Mkacih om n tante masta :(


Menurut beberapa kawan- kawan iBego, hampir sebagian besar berpendapat bahwa belum menemukan fasilitas untuk pembuatan nomor urut di Data Report, dan sebagai solusinya yaitu "dengan cara akal-akal atau diakal-akalin" kecuali kalau untuk Crystal Report dengan mudahnya pembuatan nomor urut itu bisa dibuat dalam hitungan detik atau sekejab, sebab Crystal Report sendiri sudah menyediakan fasilitas untuk pembuatan nomor urut tersebut.


Saya kutip sebagian isi paparan dari om andyutomo yang sangat familir dengan pemrograman Visual Basic 6.0 dan sangat skill dibidangnya :

Teteh oryza ikut sharing aja.. ^:)^
Untuk membuat no urut di dalam Data Report, sampai saat ini saya juga belum menemukan cara yang seharusnya, mksudnya yang benar2 memanfaatkan fasilitas dari Data Report itu sendiri, ataukah memang gk tersedia fasilitas itu atau memang saya aja yg belum tau... :D , jadi selama ini untuk membuat no urut di Data Report biasanya menggunakan cara akal2an yaitu dengan menambahkan satu field di table yang khusus untuk menggenerate no urut

Selanjutnya, sedikit saya juga akal-akalan terhadap Data Report ini, agar bisa membuat nomor urut, berikut dibawah ini tahapan pembuatannya :

  1. Buat Databasenya terlebih dahulu dengan nama FarrahaSOft.MBD atau silahkan dengan nama yang lain
  2. Buat tabel dengan nama siswa dengan struktur tabel (NIS Text(7), NamaSiswa Text(25), Alamat Text(60))
  3. Silahkan isi tabel tersebut sejumlah yang anda mau, misal (0111001, Eka Riana, Parungpanjang-Bogor
  4. Buka Visual Basic 6.0
  5. Buat Interface Cetak Laporan seperti gambar dibawah ini dan propeties Namenya frmSampleReport
  6. Buat Desain Data Report Seperti pada gambar dibawah ini
  7. Tambahkan Modul dan create coding seperti dibawah ini, tapi sebelumnya jangan lupa untuk menambahkan Referensi (Klik Project ---> References ---> Microsoft ActiveX Data Objects 2.6 Library ---> Ok)
  8. Option Explicit
    Public fConn    As ADODB.Connection
    Public fRs      As New ADODB.Recordset
    Public fSQL     As String
    Sub Main()
        Set fConn = New ADODB.Connection
       
        fConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
              & "Data Source=" & App.Path & "\FarrahaSOfT.mdb"
        
        If fConn.State = adStateOpen Then
            fConn.Close
        Else
            fConn.Open
            fConn.CursorLocation = adUseClient
            frmSampleReport.Show 'vbModal
        End If
    End Sub
    
    
  9. Create coding dibawah ini pada Form Cetak Laporan yang sudah dibuat
    Option Explicit
    
    Private Sub cmdCetak_Click()
        Set fRs = New ADODB.Recordset
        fSQL = "SELECT Temp.NIS,Temp.Nama,Temp.Alamat," _
                & "(select count(NIS) from Siswa Where NIS" _
                & "<=Temp.[NIS]) AS NoUrut FROM Siswa " _
                & "AS Temp ORDER BY Temp.NIS"
        
        fRs.Open fSQL, fConn, adOpenKeyset, adLockPessimistic 
        
        Set RptSiswa.DataSource = fRs.DataSource
       
        If Not fRs.EOF Then
            With RptSiswa.Sections("Section1")
                .Controls("txtNo").DataField = "NoUrut"
                .Controls("txtNIS").DataField = "NIS"
                .Controls("txtNama").DataField = "NAMA"
                .Controls("txtAlamat").DataField = "Alamat"
            End With
            RptSiswa.Show
        End If
    End Sub
    
    
    Private Sub cmdKeluar_Click()
        fConn.Close
        End
    End Sub
    
    
  10. Silahkan RUN
Bila ada yang kurang dimengerti silahkan berikan komentar dan untuk perhatian bahwa paparan ini bukanlah dalam rangka unjuk gigi atau taring :D, tapi dalam rangka melakukan Dokumentasi Pribadi dan sekedar berbagi Informasi buat para pengunjung Blog nGOpre-X Community ini. Kalau memerlukan source code sample Projectnya silahkan unduh ----> FrSOfT-DataReport
Semoga bermanfaat,

18 comments:

  1. Manteb om
    Tapi ngomong2x posting kodenya masih kurang optimal ya om ?

    ReplyDelete
  2. Sip Makasih om,,

    Iya om ane juga rada bingung, punya optimalnya ga om ... ?

    ReplyDelete
  3. Passwordnya Apa Gan...

    ReplyDelete
  4. Perasaan ane gak pake passwordnya ... tapi ane cek dulu ...

    tapi coba aja pake password "ekaperintis" (tanpa pake tanda kutip dua)

    ReplyDelete
  5. Bisa Gan..
    Tinkiu..
    Ane coba2 Dulu...hehe
    :)

    ReplyDelete
  6. Syukurlah kalau bisa, sama-sama

    Silahkan, semoga bermanfaat ...

    ReplyDelete
  7. om link nya mati,mohon di perbaiki :)

    ReplyDelete
    Replies
    1. Waduh, kayanya di remove sama pihak ziddunya, tar ane cari dulu di komputer lama

      Delete
    2. di tunggu ya om,soalnya artikel om ini sangat ber manfaat :)

      Delete
  8. gmana caranya kalo tanpa php buat auto number'a??
    Thanks

    ReplyDelete
  9. Bro...itu gak nambah field pada database kan?

    ReplyDelete
  10. Gan klo mau menampilkan berdasarkan kriteria gimana ya, misalkan field Tahun, mau menampilkan data di tahun 2014 aja, mohon penjelasan gan, thanks B4

    ReplyDelete
    Replies
    1. Untuk membuat data reportnya apakah sudah bisa ???

      Delete
    2. Untuk data report seperti agan punya sudah bisa gan, nah saya coba menambah field tahun,
      seperti ini saya cobanya
      fSQL = "SELECT Temp.NIS,Temp.Nama,Temp.Alamat," _
      & "(select count(NIS) from Siswa Where tahun = "2012" and NIS" _
      & "<=Temp.[NIS]) AS NoUrut FROM Siswa " _
      & "AS Temp ORDER BY Temp.NIS"

      Delete
    3. oia gan dan klo saat menapilkan datareport agar total penjumlahan sum(total) bisa melakukan perhitungan disetiap lembarnya gmna ya.
      saya mencoba meletakkan sum(total) pada page footer(section 3) tidak bisa, cuma bisa diletakan pada report footer(section5).

      Delete