Senin, 16 Juli 2018

Cara Menghapus Satu atau Banyak Baris Tabel Data (TableView Selection) Pada Pemrogaman Gambas


Jika hanya menghapus 1 baris tabel yang dipilih cukup mudah dengan perintah:
Rumus:
TableView.Rows.Remove(Index As integer, Length As Integer)

Contoh:
Public Sub HapusTabel_Cilck()



   'Menghapus baris tabel index ke 0, 
   'jumlah baris yang dihapus = 1

   TabelView1.Rows.Remove(0, 1)



End

Namun jika menginginkan menghapus lebih dari 1 baris tabel dengan pilihan secara acak maupun tidak (Rows Selection) tentu tidak semudah menghapus 1 baris.
Contoh kasus:
Terdapat 10 baris tabel dengan 5 kolom. Jadi rinciannya adalah 0 sampai 9 index baris dan 0 sampai 4 index kolom. Baris yang akan dihapus adalah baris ke 1, 4, 5 ,7 atau index ke 0, 3, 4, 6.

Public Sub Hapus_Click()



   Dim n As Byte

   Dim Arr As New Byte[] ‘Buat objek baru array bertype byte


   'Simmpan nomor index baris yang diseleksi/pilih ke dalam array

   For n = 0 To TableView1.Rows.Selection.Max

     Arr.Add(TableView1.Rows.Selection[n])

   Next

   'Tanda pilihan dihilangkan semua supaya tidak membingungkan pengguna

   'karena jika tidak akan meninggalkan tanda seleksi akibat perpindahan baris

   TableView1.Rows.UnSelectAll
'Mengurutkan Nilai 
Arr.Sort(gb.Ascent)

   For n = Arr.Max DownTo 0

     'Menghapus baris per-index berturut-turut yang telah disimmpan dalam array

     'Mulai dari index yang terbesar ke index yang terkecil

     TableView1.Rows.Remove(Arr[n], 1)

     'Dihentikan jika index sudah mencapai angka 0

     If n = 0 Then Break

   Next



End

Semoga bermanfaat

Senin, 09 Juli 2018

Penggunaan Properti Edit/EditWith TableView pada Gambas

Pada pemrogaman Gambas, penggunaan Properti Edit/EditWith pada TableView digunakan untuk mengaktifkan editor table sehingga tabel bisa diedit, artinya user dapat memasukkan suatu nilai pada tabel yang ditunjuk.

Perbedaan penggunaan TabelView1.Edit dan TableView1.EditWith() adalah, jika "Edit" maka control dihandle oleh ediitor default tableview, namun jika menggunakan EdithWith() maka control akan di handle oleh editor lain yang ditunjuk seperti TextBox, ComboBox, ValueBox.

Penggunaan TableView1.Edit

‘Tiap-tiap tabel dapat diedit
Public Sub TableView1_Click()
TableView1.Edit
End

Masing-masing kolom pada TableView1 bisa diedit ketika di Click (menggunakan event Click). Namun bisa juga memilih kolom mana saja yg bisa diedit atau tidak.
contoh:

Public Sub TableView1_Click()
If TableView1.Column = 0 Then
TableView1.Edit
Endif
End

Bisa juga Editor diaktifkan melalui event selain Click()

Public Sub TextBox1_KeyPress()
If Key.Code = Key.Return Then
TableView1.SetFocus
'Memposisikan ke baris index 1 dan kolom index 0
TableView1.Row = 1
TableView1.Column = 0
If TableView1.Column = 0 Then
TableView1.Edit
Endif
Endif
End

Hati-hati jika penggunaan Edit/EditWith tidak digunakan pada event Clilck, mengakibatka aktivasi editor tidak berjalan saat di klik (pada Table).

Penggunaan EditWith()
Rumus: TableView.EditWith(Edit As Control).
Editor pada TableView menggunakan control yang telah ditunjuk.
Contoh

'Buat object textbox untuk control editor tableview
Private EditorTabel As TextBox

Public Sub Form_Open()
EditorTable = New TextBox(Me) As "EditorTable"
End

Public Sub EditorTable_KeyPress()
'Setiap input karakter huruf akan diubah menjadi
'huruf besar (namun tombol keyboard yang
'lain tidak difungsikan)
StopEvent
EditorTable.Insert(Ucase(Key.Text))
End

Public Sub TableView1_Click()
'Hanya kolom index ke 2 yang bisa diedit
If TableView1.Column = 2 Then
TableView1.EditWith(EditorTable)
Endif
End

Skrip diatas berfungsi untuk control input keyboard pada editor tableview.