Yang dibahas pada
artikel ini adalah mengurutkan data tabel berdasarkan pada kolom
tertentu karena (bagi penulis) sedikit lebih sulit dan mungkin lebih
banyak digunakan dibandingkan mengurutkan berdasarkan masing-masing
kolom. Jika pembaca ingin mencari cara mengurutkan berdasarkan
masing-masing kolom tentu masih bisa hanya dengan memahami kode-kode
program pada artikel ini.
Artikel ini mungkin
sepertinya lebih cocok bagi pengguna gambas dengan keahlian tingkat
lanjut karena disini tidak akan dijabarkan secara rinci arti dari
tiap-tiap kode perintah, dan saya anggap pembaca sudah mempunyai
pengetahuan dan pengalaman cukup dasar-dasar pemrogaman Gambas.
Buat sebuah tampilan
sebagai contoh seperti berikut:
Nama Class:
grdvw.class
Properti : GridView1
Kode program
didalamnya
' Gambas class file
Public Sub
Form_Open()
GridView1.Header =
4
GridView1.Header =
GridView1.Both
GridView1.Columns.Count = 4
GridView1.Rows.Count = 4
GridView1.Columns[1].Title = "A"
GridView1.Columns[2].Title = "E"
GridView1.Columns[3].Title = "B"
GridView1.Columns[0].Title = "C"
GridView1[0,
0].Text = "kamu"
GridView1[0,
1].Text = "semua"
GridView1[0,
2].Text = "bisa"
GridView1[1,
0].Text = "aku"
GridView1[1,
1].Text = "mungkin"
GridView1[1,
2].Text = "belum"
GridView1[2,
0].Text = "dia"
GridView1[2,
1].Text = "harus"
GridView1[2,
2].Text = "tahu"
GridView1[3,
0].Text = "halo"
GridView1[3,
1].Text = "1"
GridView1[3,
2].Text = "2"
GridView1.Sorted =
True
‘Memastikan
posisi tanda kolom urut/sort berada pada kolom header index ke 0
GridView1.Columns.Sort = 0
End
Public Sub
GridView1_Sort()
‘Memastikan
tanda enable sort tetap di header kolom index ke 0
GridView1.Columns.Sort = 0
End
Public Sub
GridView1_ColumnClick(Column As Integer)
Dim C1, C2 As New
String[]
Dim n, n1, n2 As
Short
If Column <>
0 Then Return
‘Memasukkan data
tabel index kolom ke 0 ke variabel array C1
For n1 = 0 To
GridView1.Rows.Max
C1.Add(GridView1[n1, 0].Text)
Next
‘Disalin ke
variabel array C2
C2 = C1.Copy()
C2.Sort
For n1 = 0 To
C1.Max
For n2 = 0 To
GridView1.Columns.Max
'Menukar data
Swap
GridView1[n1, n2].Text, GridView1[C1.Find(C2[n1], 0, n1), n2].Text
Next
Next
'Jika terjadi
error karen kesalahan index (dan blum berururtan),
'maka proses
diulangi
Catch
GridView1_ColumnClick(Column)
End
Tampilan eksekusi
sebelum di urutkan
Setelah diurutkan