12 Juni 2008

Create Tabel dari ListView

Seringkali kita ketika para coder (sebutan lain untuk programmer) membuat tabel untuk menampilkan data grid menggunakan datagrid ata flexigrid. Ya, memang penggunaan datagrid atau flexigrid lebih mudah dan usefull. Tapi pernahkan kita menyadari bahwa grid kita tidak bisa grouping, sorting atau anda ingin menempatkan image di dalam grid. Nah ada alteratif lain yang memungkinkan lebih banyak fitur dan aksi dengan menggunakan Listview. Dengan Listview kita dapat melakukan grouping, sorting hanya dengan klik pada headernya, menempatkan image atau textbox ke dalam grid, auto refresh, auto width column dan lain-lain.

Karena itu pola code-ku sudah mulai kurubah menggunakan listview untuk view tabel grid. Dan berikut cara pembuatannya yang simple yang sudah sering aku gunakan;
  1. Drag dan drop listview dari toolbox windows form, beri nama misal; lvSupplier
  2. Kemudian buat fungsi untuk menghandle listview
  3. 'untuk inisiliasasi grid pada listview
    Private sub InitTable(ByRef lvData As ListView)
    lvData.Clear() 'clear semua content dan settingan listview
    lvData.View = View.Details 'set mode details
    lvData.FullRowSelect = True
    lvData.MultiSelect = False
    lvData.BeginUpdate()
    lvData.HideSelection = False
    lvData.Scrollable = True
    lvData.GridLines = True 'menampilkan garis grid
    lvData.Columns.add("Kode Supplier", 150, HorizontalAlignment.Left)
    lvData.Columns.add("Nama Supplier", 150, HorizontalAlignment.Left)
    lvData.Columns.add("Alamat", 150, HorizontalAlignment.Left)
    lvData.Columns.add("No Telepon", 150, HorizontalAlignment.Left)
    End Sub

    'fungsi untuk mengisi data listview dari query database
    Private Sub fillTable(ByRef lvData As ListView, ByVal SQL As String)
    Dim i As Int32
    Dim j As Int32
    Dim k As Int32
    Dim tColumn As Int16
    Dim Content As String

    lvData.BeginUpdate()
    Try
    OpenRs(SQL)
    tColumn = Data.FieldCount
    Catch ex As Exception
    MsgBox(ex.Message & "-" & ex.Source, MsgBoxStyle.Critical)
    End Try
    lvData.Items.Clear()
    j = 0
    k = 0
    Try
    Do While Data.Read
    Content = Data(0)
    lvData.Items.Add(Content)
    For i = 1 To lvData.Columns.Count - 1
    Content = ""
    Content = IIf(IsDBNull(Data(i)), "", Data(i))
    lvData.Items(j).SubItems.Add(Content) 'menambahkan data ke dalam listview
    Next

    'menampilkan grid secara selang-seling warna
    k = j
    If k Mod 2 = 0 Then
    lvData.Items(k).BackColor = Color.AliceBlue
    Else
    lvData.Items(k).BackColor = Color.White
    End If
    j = j + 1
    Loop
    Catch ex As Exception
    MsgBox(ex.Message & "-" & ex.Source, MsgBoxStyle.Critical)
    End Try

    lvData.EndUpdate()
    lvData.Refresh()
    End Sub

  4. Eksekusi fungsi-fungsi tersebut (initTable & fillTable) pada Form_Load

  5. Private sub Form_Load

    Dim SQL$
    SQL="SELECT * FROM tblSupplier"

    initTable(lvSupplier)
    fillTable(lvSupplier,SQL)

    End Sub

Nah sekarang table dari listview sudah terbentuk, lain kali akan saya ceritakan bagaimana mensortir dan grouping atau tips lain mengelola tabel dengan listview. Tunggu jam tayangnya ya! Selamat mencoba !

Tidak ada komentar: