Ticker

6/recent/ticker-posts

Membuat Laporan Data Report Hierarkis Tanpa Data Environment

Gambar 1. Contoh Laporan Model Hierarki

Kita akan membuat sebuah laporan yang berbentuk hierarchical/hierarikal dengan memanfaatkan data report di vb 6. Disini saya menggunakan MySQL sebagai databasenya. Nah, sebelum kita membuatnya, akan lebih baik jika kita mengerti apa itu Hierarki/Hierarcichal , Memahami Data Shaping, Contoh Database, Membuat Koneksi, Merancang Data Report

Apa itu Hierarki /Hierarcichal ?

Menurut  wikipedia (https://id.wikipedia.org/wiki/Model_hierarkis), Model database Hierarki merupakan model data yang dimana data tersebut diatur dengan struktur data tree. Struktur ini dapat mewakili informasi menggunakan hubungan child/parent: setiap parent dapat memiliki banyak child, tetapi setiap child hanya boleh memiliki satu parent (yang dikenal juga dengan hubungan 1-ke-banyak). Seluruh atribut dari record yang ditentukan telah diatur dengan tipe entitas.
Sumber: Wikipedia

Memahami Data Shaping

Data Shaping/Pembentukan Data berarti membangun hubungan hierarkis antara dua atau lebih entitas logis dalam sebuah kueri. Hierarki dapat dilihat dalam hubungan parent-child relationship antara sebuah record dari sebuah recordset dan satu satu atau lebih record dari recordset lain.

Dalam hubungan Parent-Child Recordset, Parent Recordset terdiri atas Child Recordset. Contoh Relasi Hierarki atau Hierarichal relationship adalah pembelian dan

Berikut contoh pemakaian shape :

SHAPE {SELECT no_nota,tgl_nota from penjualan where tgl_nota BETWEEN '" & Format(DTtgldari.Value, "YYYY-mm-dd") & "' and '" & Format(DTtglsampai.Value, "YYYY-mm-dd") & "'} " _
    & "APPEND ({SELECT a.id_trx, a.kdbarang, b.nmbarang, a.jumlah, a.satuan, a.subtotal from temp_barang a, barang b where a.kdbarang =b.kdbarang} " _
    & "AS detil " _
    & "RELATE no_nota TO id_trx)

Menyiapkan Tabel untuk Report di Database

Berikut contoh struktur minimal tabel penjualan, tabel detil penjualan dan tabel barang yang saya gunakan untuk merancang laporan data report.

Nama tabel: Penjualan alias penjualan
Name     Type
no_nota   varchar (12) primary key
tgl_nota   date

Nama tabel: Detil Penjualan alias detil_penjualan
Name      Type
no_nota    varchar (12) foreign key
kdbarang  varchar (10) foreign key
jumlah      int (10)
satuan      varchar (30)
subtotal    int(10)

Nama tabel : Barang alias barang
Name       Type
kdbarang   varchar (10) primary key
nmbarang  varchar (50)
harga_jual  int (10)

Membuat Koneksi Ke MYSQL

Untuk dapat membuat laporan hierarkis atau yang biasa disebut data shaping maka kita perlu melakukan setting koneksi dengan menambahkan PROVIDER=MSDataShape;Data PROVIDER=MSDASQL pada file koneksi.Namun sebelumya kita perlu memastikan apakah koneksi driver sudah sukses atau belum tes koneksi ODBC


Set konekdb = New ADODB.Connection
konekdb.CursorLocation = adUseClient
    '#3.53 =Versi myODBC yang diinstall
konekdb.ConnectionString = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;driver={MySQL ODBC 5.3 ANSI Driver};SERVER=localhost;DATABASE=apotik;UID=root;PWD=123456;PORT=3306;OPTION=3"



Note:
Untuk pengisian optional
driver =sesuaiakan nama driver yang anda punyai
database =sesuaikan dengan nama
PWD =optional jika ada password bisa diisi namun jika tidak ada kosongkan saja


Melakukan Koding

Set konekdb = New ADODB.Connection konekdb.CursorLocation = adUseClient
    '#3.53 =Versi myODBC yang diinstall
konekdb.ConnectionString = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;driver={MySQL ODBC 5.3 ANSI Driver};SERVER=localhost;DATABASE=apotik;UID=root;PWD=123456;PORT=3306;OPTION=3"

 Set Rs = konekdb.Execute("SHAPE {SELECT no_nota,tgl_nota from penjualan where tgl_nota BETWEEN '" & Format(DTtgldari.Value, "YYYY-mm-dd") & "' and '" & Format(DTtglsampai.Value, "YYYY-mm-dd") & "'} " _
    & "APPEND ({SELECT a.id_trx, a.kdbarang, b.nmbarang, a.jumlah, a.satuan, a.subtotal from temp_barang a, barang b where a.kdbarang =b.kdbarang} " _
    & "AS detil " _
    & "RELATE no_nota TO id_trx)")
        If Rs.BOF Then
        MsgBox "Tidak Terjadi Pembelian di periode Yang dipilih", vbInformation, "info"
        Else
        Call Tampillaporan
        rptjualgolongan.Show 1
        End If

If Rs.BOF Then
   MsgBox "Data Tidak Tersedia.", vbInformation + vbOKOnly, "informasi"
Else
   With rptjualgolongan
   Set .DataSource = Nothing
   .DataMember = ""
    Set .DataSource = Rs
      
    .Sections("Section4").Controls("lbltgldari"). _
    Caption = Format(DTtgldari.Value, "dd-mm-YYYY")
     .Sections("Section4").Controls("lbltglsampai"). _
    Caption = Format(DTtglsampai, "dd-mm-YYYY")
    .LeftMargin = 100
    .RightMargin = 100
    .WindowState = 2
   End With
End If


Merancang Laporan di Data Report

Klik kanan pada project >pilih add> pilih data report.
Pada awalnya struktur laporan di data report hanya terdiri report header, page header, detail, page fooetr, report footer.

Sehingga untuk membuat sebuah laporan berbentuk hierarkis maka kita melakukan penambahan insert group header/footer dengan cara klik kanan pada data report kemudian pilih insert group hedaer/footer.

Masukkan 2 (dua) RptTextbox pada Page Footer serta 5 (lima ) RptTextbox pada Detail. Isi data source untuk masing -masing RptTextbox sesuaikan dengan field yang ada. Kusus untuk bagian Detail isi juga bagian Data Member dalam hal ini isi data member detil.



Sumber :
http://www.vbforums.com/showthread.php?12881-Creating-a-Hierarchical-Data-Report-WITHOUT-using-a-DataEnvironment

Post a Comment

0 Comments