Dim baris, kolom As Integer 'Untuk menyimpan informasi baris dan kolom yang dipilih user Dim i, j As Integer 'Untuk keperluan looping Private Sub cbTes_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 'Isi kolom flexgrid sesuai isi teks combo yang dipilih Call isiFlexGrid 'Combo dihide dulu cbTes.Visible = False 'Jika baris dan kolom yang dipilih adalah baris dan kolom yang terakhir If flexTes.Row = flexTes.Rows - 1 And flexTes.Col = flexTes.Cols - 1 Then 'Cek, apakah ada kolom yang belum terisi For i = 1 To flexTes.Col If flexTes.TextMatrix(flexTes.Row, i) = "" Then Exit Sub 'Jika ada kolom yang belum terisi, maka jangan buat baris baru Next i 'Buat baris baru flexTes.Rows = flexTes.Rows + 1 'Pindah fokus ke baris yang baru flexTes.Row = flexTes.Row + 1 'Pindah fokus ke kolom pada baris yang baru flexTes.Col = 1 'Fungsi untuk seolah-olah tombol panah bawah keyboard ditekan 'Ini berguna ketika baris flexgrid sudah mencapai batas bawah flexgrid, maka baris paling atas seolah-olah akan dihide 'sehingga posisi baris yang baru akan dinaikkan agar lebih kelihatan SendKeys "{DOWN}" 'Jika kolom yang dipilih adalah kolom yang terakhir tetapi barisnya bukan baris terakhir(baris-baris sebelum baris yang terakhir) ElseIf flexTes.Col = flexTes.Cols - 1 And flexTes.Row < flexTes.Rows - 1 Then 'Pindah ke baris berikutnya(tidak membuat baris baru, tetapi pindah ke baris berikutnya) flexTes.Row = flexTes.Row + 1 'Pindah ke kolom berikutnya flexTes.Col = 1 Else 'Pindah ke kolom berikutnya flexTes.Col = flexTes.Col + 1 End If End If End Sub Private Sub flexTes_KeyDown(KeyCode As Integer, Shift As Integer) 'Jika ditekan tombol ennter If KeyCode = 13 Then 'Tampilkan combobox Call tampilCombo 'Jika ditekan tombol delete ElseIf KeyCode = vbKeyDelete Then 'Tidak boleh melakukan hapus pada baris yang merupakan satu-satunya baris yang tersisa If flexTes.Rows = 2 Then Exit Sub 'Hapus baris yang dipilih flexTes.RemoveItem flexTes.Row End If End Sub Private Sub Form_Load() 'Default combobox dihide dulu cbTes.Visible = False 'Tambahkan item(daftar isi) combobox cbTes.AddItem "Item 1" cbTes.AddItem "Item 2" 'Setting flexgrid Call setGrid End Sub Private Sub tampilCombo() cbTes.Visible = True 'Inisialisasi default koordinat kiri dan atas combo cbTes.Left = flexTes.Left 'Koordinat kiri combo disamakan dengan koordinat kiri flexgrid cbTes.Top = flexTes.Top 'Koordinat atas combo disamakan dengan koordinat atas flexgrid 'Looping untuk menentukan koordinat kiri combo 'Jika kita memilih kolom ke 3, maka looping akan dilakukan mulai dari kolom ke 0 sampai kolom ke 2 For i = 0 To flexTes.Col - 1 cbTes.Left = cbTes.Left + flexTes.ColWidth(i) 'Pada setiap looping koordinat kiri combo akan ditambah dengan lebar cell Next i 'Looping untuk menentukan koordinat atas combo 'Jika kita memilih baris ke 3, maka looping akan dilakukan mulai dari baris ke 0 sampai baris ke 2 For j = 0 To flexTes.Row - 1 cbTes.Top = cbTes.Top + flexTes.RowHeight(j) 'Pada setiap looping koordinat atas combo akan ditambah dengan tinggi cell Next j '***Setelah melakukan kedua looping diatas, combo akan berada pada koordinat atas dan kiri kolom yang dipilih*** 'Jika baris paling atas yang nampak di grid merupakan baris yang lebih dari baris ke 1, koordinat top dari cbTes dikurangi akumulasi lebar baris-baris 'sebelum baris paling atas yang nampak di grid If flexTes.TopRow > 1 Then cbTes.Top = cbTes.Top - ((flexTes.TopRow - 1) * flexTes.RowHeight(1)) End If 'Munculkan combo yang sebelumnya dihide cbTes.Visible = True 'Sesuaikan lebar combo dengan lebar cell yang dipilih cbTes.Width = flexTes.ColWidth(flexTes.Col) 'Fokus ke combo cbTes.SetFocus End Sub Private Sub setGrid() 'Setting baris dan kolom flexgrid flexTes.Rows = 2 '2 baris flexTes.Cols = 4 '4 kolom 'Lebar untuk kolom 0 langsung dipatok 500 'Kolom 0 akan diisi nomor baris flexTes.ColWidth(0) = 500 'Teks akan ditaruh ditengan-tengah kolom flexTes.ColAlignment(0) = flexAlignCenterCenter 'Judul baris ke 0 pada kolom ke 1,2 dan 3 flexTes.TextMatrix(0, 1) = "Kolom 1" flexTes.TextMatrix(0, 2) = "Kolom 2" flexTes.TextMatrix(0, 3) = "Kolom 3" 'Inisialisasi awal lebar flexgrid flexTes.Width = 0 'Looping untuk menentukan lebar flexgrid agar sesuai dengan lebar seluruh cell For i = 0 To flexTes.Cols - 1 flexTes.Width = flexTes.Width + flexTes.ColWidth(i) Next i 'Menambah lebar flexgrid agar ada celah sedikit pada ujung sebelah kanannya flexTes.Width = flexTes.Width + 100 End Sub Private Sub isiFlexGrid() 'Informasi baris yang dipilih user disimpan di variabel baris baris = flexTes.Row 'Informasi kolom yang dipilih user disimpan di variabel kolom kolom = flexTes.Col 'Beri nomor Pada setiap baris pada kolom ke 0 flexTes.TextMatrix(baris, 0) = flexTes.Row 'Pada baris dan kolom yang dipilih user, setelah user melakukan enter, akan diisi dengan teks dari combo flexTes.TextMatrix(baris, kolom) = cbTes.Text End Sub
15 March 2016
Input di Cell Flexgrid
Subscribe to:
Posts (Atom)
-
Berikut adalah cara yang saya tahu Untuk melihat strukur tabel pada SQL Server 2012 1. Cara pertama adalah dengan menggunakan SSMS (SQL Ser...
-
Untuk merename nama kolom pada SQL Server 2012 ada dua cara yang bisa dilakukan, yaitu: 1. Menggunakan SSMS (SQL Server Management Studio)...
-
Saya adalah orang yang sangat benci untuk melakukan hal-hal yang tidak penting, terutama jika saya yang menjadi sasaran hal-hal tidak penti...