Input data via grid
Sudah lama enggak posting tentang Visual Basic 6 jadi kangen juga .
Kali ini kita akan membahas bagaimana mudahnya melakukan input data langsung di grid menggunakan komponen VSFlexGrid.
VSFlexGrid sudah menyediakan beberapa method dan event yang mempermudah kita untuk melakukan hal ini, kita lihat screenshotnya.
 As Integer
convertToUpper = Asc(UCase$(Chr$(keyAscii)))
End Function
Private Function numericOnly(ByVal keyAscii As Integer) As Integer
Dim strValid As String
On Error GoTo errHandle
strValid = "0123456789."
If InStr(strValid, Chr(keyAscii)) = 0 And Not (keyAscii = vbKeyBack) Then
numericOnly = 0
Else
numericOnly = keyAscii
End If
Exit Function
errHandle:
numericOnly = 0
End Function
Selanjutnya fungsi diatas tinggal dipanggil di event KeyPressEdit dari komponen VSFlexGrid.
Private Sub Grid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, keyAscii As Integer)
If keyAscii = vbKeyReturn Then
Call nextFocus
End If
Select Case Col
Case 0 ' kode barang
Case 1 ' nama barang
keyAscii = convertToUpper(keyAscii)
Case 2, 3 ' stok dan harga
keyAscii = numericOnly(keyAscii)
End Select
End Sub
2. Focus dan Lostfocus backcolor
Sesuai nama fiturnya cell grid akan berubah warna ketika cursor mouse aktif pada cell.
Private Sub Grid1_StartEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
If Col = 3 Then ' harga jual
Grid1.TextMatrix(Row, Col) = Replace(Grid1.TextMatrix(Row, Col), ",", "")
End If
Grid1.CellBackColor = &HC0FFFF ' warna kuning
End Sub
Private Sub Grid1_AfterEdit(ByVal Row As Long, ByVal Col As Long)
If Col = 3 Then ' harga jual
If IsNumeric(Grid1.TextMatrix(Row, Col)) Then
Grid1.TextMatrix(Row, Col) = FormatNumber(Grid1.TextMatrix(Row, Col), 0)
End If
End If
Grid1.CellBackColor = vbDefault
End Sub
Terakhir agar mode edit cellnya aktif pada saat cursor mouse aktif tinggal panggil method EditCell di event Click dan EnterCell
Private Sub Grid1_Click()
Grid1.EditCell
End Sub
Private Sub Grid1_EnterCell()
Grid1.EditCell
End Sub
Selamat MENCOBA
Comments