Selasa, 17 April 2018

Cara Menghapus Baris Data (Rows) Pada Tableview ~ Tutorial Gambas


Saat memasukkan data berbaris-baris pada Tableview/Gridview, kemudian karena alasan tertentu kamu ingin menghapus salah satu baris data dari Tableview tersebut. Pada Tableview maupun Gridview Gambas, setahu penulis tidak/belum ada fitur hapus baris yang dapat dilakukan dengan mudah atau dengan perintah sederhana semacam “TableView1.Rows[3].Delete”. Jika ingin menghapus baris tabel maka mesti dengan cara tertentu.
Adapun dasar menghapus table adalah mengatur jumlah jumlah baris yang digunakan.
Misal, terdapat sebuah Tableview yang jumlah barisnya (Rows) 5. Kemudian ingin menghapus 2 baris terakhir, maka cara menghapus sama halnya dengan saat menentukan jumlah baris data:

Public Sub Form_Open()

   ‘mula-mula baris table di tentukan jumlahnya ada 5
   Tableview1.Rows.Count = 5

End

Public Sub Hapus_Click()

   ‘Lalu baris data dikurangi dua, jadi jumlah baris data ada 3
   Tableview1.Rows.Count = 3

End

Maka kedua baris paling akhir terhapus.

Lalu bagaimana jika posisi baris yang akan dihapus posisinya tidak berada paling akhir. Jika demikian maka yang perlu dilakukan adalah memindahkan atau menukar baris data yang akan dihapus ke posisi baris paling akhir.

Misal terdapat atau diset 10 jumlah baris dan 3 jumlah kolom, yang kemudian masing-masing baris dan kolom diisi dengan data.

Public Sub Form_Open()

   ‘mula-mula baris table di tentukan jumlahnya ada 10
   Tableview1.Rows.Count = 10
   Tableview1.Columns.Count = 3

  End

Lalu baris ke 5 ingin dihapus.

Jika tidak memperdulikan semua urutan karakter (sort) pada Tableview maka bisa dilakukan hanya dengan memindahkan/menukar (posisi) data antar dua baris, yakni baris yang ingin dihapus dengan baris yang paling akhir:

Public Sub Hapus_KeyPress()

   ‘Menhapus dengan tombol Del
   If Key.Code = Key.Del Then
     Swap Tableview1[4, 0].Text, Tableview1[9, 0].Text
     Swap Tableview1[4, 1].Text, Tableview1[9, 1].Text
     Swap Tableview1[4, 2].Text, Tableview1[9, 2].Text
   Endif

End

Ingat bahwa baris ke 5 adalah index ke-4, baris 10 = Index 9. (baris n = index n-1)
Swap adalah perintah untuk menukar.

Sedangkan jika menghapus dengan memperdulikan/tidak merubah urutan karakter yang sudah ada pada Table, maka dilakukan penukaran beruntun menggunakan loop.
Alurnya:
Baris beserta masing-masing data pada kolom ditukar dengan baris setelahnya (dibawahnya), begitu seterusnya sampai posisi data yang ingin dihapus berada pada paling akhir.
Setelah posisi data yang ingin dihapus beraada paling akhir, maka jumlah baris pada Tableview dikurangi 1.

Public Sub Hapus_KeyPress()

   Dim n As Integer
   
  ‘Menghapus dengan tombol Del
   If Key.Code = Key.Del Then
     For n = Tableview1.Row To Tableview.Rows.Max - 1
        Swap Tableview1[n, 0].Text, Tableview1[n + 1, 0].Text
        Swap Tableview1[n, 1].Text, Tableview1[n + 1, 1].Text
       Swap Tableview1[n, 2].Text, Tableview1[n + 1, 2].Text
     Next
     ‘Jumlah baris dikurangi
     TableView1.Rows.Count = TableView1.Rows.Count - 1
   Endif

End

TableView1.Row adalah posisi nomor index table yang dipilih(Selected) untuk dihapus.
Tableview.Rows.Max adalah posisi nomor index table paling akhir.