Pada tutorial kali ini aku akan memperlihatkan Logika dalam Membuat Form Transaksi Penjualan pada VB .NET. Koding form transaksi memang biasanya lebih panjang dari form master lainnya. Karena pada form transaksi lebih kompleks dan banyak yang harus di kendalikan pada Dataridview Visual Basic .NET biar form transaksi ini berjalan dengan semestinya.
Hasil dari from transaksi penjualan ialah menyerupai gambar dibawah ini :
Bagaimana apakah anda tertarik untuk menciptakan Form transaksi diatas?
Berikut langkahnya :
Silahakn buka VB .NET anda
Bautlah sebuah project VB .NET
Jika sudah muncul Form1, silahkan design form1 menyerupai gambar dibawah ini :
Pada gambar diatas terdapat :
DataGridView yang diganti namanya menjadi : dgvData
Button Tambah : btnAdd
Button Hapus : btnRemove
Label Total
dan TexBox : txtSumTotal
JIka sudah simpulan menciptakan Form menyerupai gambar diatas,
Silahkan Masukan Koding pada Form1 dibawah ini :
Demikian Source Code Contoh From Transaksi Penjualan VB .NET, semoga bermanfaat untuk anda
Silahkan KLIK DISINI untuk download Project diatas
Hasil dari from transaksi penjualan ialah menyerupai gambar dibawah ini :
Bagaimana apakah anda tertarik untuk menciptakan Form transaksi diatas?
Berikut langkahnya :
Silahakn buka VB .NET anda
Bautlah sebuah project VB .NET
Jika sudah muncul Form1, silahkan design form1 menyerupai gambar dibawah ini :
Pada gambar diatas terdapat :
DataGridView yang diganti namanya menjadi : dgvData
Button Tambah : btnAdd
Button Hapus : btnRemove
Label Total
dan TexBox : txtSumTotal
JIka sudah simpulan menciptakan Form menyerupai gambar diatas,
Silahkan Masukan Koding pada Form1 dibawah ini :
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.CenterToScreen() Me.Text = "Contoh Form Transaksi Penjualan - www.javanetmedia.com" txtSumTotal.Text = "0.00" SetupGridView() Dim row As String() = New String() {1, "BRG0001", "Nama Barang 1", 1, 0.0, 0.0} ' Add First Row dgvData.Rows.Add(row) ' Focus dgvData.Focus() dgvData.CurrentCell = dgvData.Rows(dgvData.RowCount - 1).Cells(3) ' / Summary Cell Index = 5 CalSumTotal() End Sub ' / -------------------------------------------------------------------------------- Private Sub SetupGridView() With dgvData .RowHeadersVisible = False .AllowUserToAddRows = False .AllowUserToDeleteRows = False .AllowUserToResizeRows = False .MultiSelect = False .ReadOnly = False ' Columns Specified dgvData.ColumnCount = 6 dgvData.Columns(0).Name = "No" 'dgvData.Columns(0).Visible = False ' Don't show Primary Key dgvData.Columns(1).Name = "Kode_Barang" dgvData.Columns(2).Name = "Nama_barang" dgvData.Columns(3).Name = "Jumlah" dgvData.Columns(3).ValueType = GetType(Integer) dgvData.Columns(4).Name = "Harga" dgvData.Columns(4).ValueType = GetType(Double) dgvData.Columns(5).Name = "Total" dgvData.Columns(5).ValueType = GetType(Double) ' Hidden column index 0 ... It's Primary Key for DataBase .Columns("No").Visible = True ' False .Columns("Kode_Barang").HeaderText = "Kode_Barang" .Columns("Nama_Barang").HeaderText = "Nama_Barang" .Columns("Jumlah").HeaderText = "Jumlah" .Columns("Harga").HeaderText = "Harga" ' Total Column With .Columns("Total") .HeaderText = "Total" .ReadOnly = True .DefaultCellStyle.BackColor = System.Drawing.Color.LightGoldenrodYellow .DefaultCellStyle.ForeColor = System.Drawing.Color.Red .DefaultCellStyle.Font = New Font(dgvData.Font, FontStyle.Bold) End With ' Adjust Column width .Columns(0).Width = 35 .Columns(1).Width = dgvData.Width \ 5 .Columns(2).Width = dgvData.Width \ 5 .Columns(3).Width = dgvData.Width \ 5 - 20 .Columns(4).Width = dgvData.Width \ 5 - 20 .Columns(5).Width = dgvData.Width \ 5 ' + 2 ' Header Own Style With .ColumnHeadersDefaultCellStyle .BackColor = Color.Navy .ForeColor = Color.White .Font = New Font(dgvData.Font, FontStyle.Bold) End With ' Alignment only columns 3 to 5 For i As Byte = 3 To 5 ' Header Alignment .Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight ' Cell Alignment .Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight Next End With End Sub ' / -------------------------------------------------------------------------------- Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize With dgvData .Width = Me.Width - 22 End With txtSumTotal.Left = Me.Width - (txtSumTotal.Width + 20) Label1.Location = New Point(txtSumTotal.Left - Me.Label1.Width, txtSumTotal.Top + 3) End Sub ' / -------------------------------------------------------------------------------- ' / Add new row Private Sub btnAddRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click Dim Position As Integer = dgvData.Rows.Count - 1 Dim LastRow = (From Items In dgvData.Rows.Cast(Of DataGridViewRow)() Select Items).ElementAt(Position) Dim PK As Long = LastRow.Cells(0).Value + 1 Dim row As String() = New String() {PK, "BRG000" & PK, "Nama Barang " & PK, 1, 0.0, 0.0} dgvData.Rows.Add(row) ' Focus dgvData.CurrentCell = dgvData.Rows(dgvData.RowCount - 1).Cells(3) dgvData.Focus() ' / CalSumTotal() End Sub ' / -------------------------------------------------------------------------------- ' / Remove selected row Private Sub btnDelRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click If dgvData.RowCount = 1 Then Exit Sub dgvData.Rows.Remove(dgvData.CurrentRow) dgvData.Refresh() ' / CalSumTotal() End Sub ' / -------------------------------------------------------------------------------- ' / Calcualte sum of Total (Column Index = 5) Private Sub CalSumTotal() txtSumTotal.Text = "0.00" For i As Byte = 0 To dgvData.RowCount - 1 ' CDbl = Convert to Double txtSumTotal.Text = CDbl(txtSumTotal.Text) + CDbl(dgvData.Rows(i).Cells(5).Value) Next txtSumTotal.Text = Format(CDbl(txtSumTotal.Text), "#,##0.00") End Sub ' / -------------------------------------------------------------------------------- ' / Before Edit Data Private Sub dgvData_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles dgvData.CellBeginEdit Dim Quantity As Integer = dgvData.Rows(e.RowIndex).Cells(3).Value Dim UnitPrice As Double = dgvData.Rows(e.RowIndex).Cells(4).Value dgvData.Rows(e.RowIndex).Cells(5).Value = (Quantity * UnitPrice).ToString("#,##0.00") ' / CalSumTotal() End Sub ' / -------------------------------------------------------------------------------- ' / After you press Enter Private Sub dgvData_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvData.CellEndEdit Select Case e.ColumnIndex Case 3, 4 ' Column Index = 3 (Quantity), Column Index = 4 (UnitPrice) ' Quantity ' If Null Value If IsDBNull(dgvData.Rows(e.RowIndex).Cells(3).Value) Then dgvData.Rows(e.RowIndex).Cells(3).Value = 0 Dim Quantity As Integer = dgvData.Rows(e.RowIndex).Cells(3).Value ' Keep original value in temporary. (Tag Properties) dgvData.Tag = Quantity If Quantity <= 0 Then dgvData.Rows(e.RowIndex).Cells(3).Value = dgvData.Tag Quantity = dgvData.Tag End If ' UnitPrice ' If Null Value If IsDBNull(dgvData.Rows(e.RowIndex).Cells(4).Value) Then dgvData.Rows(e.RowIndex).Cells(4).Value = 0.0 Dim UnitPrice As Double = dgvData.Rows(e.RowIndex).Cells(4).Value dgvData.Tag = UnitPrice If UnitPrice < 0 Then dgvData.Rows(e.RowIndex).Cells(4).Value = dgvData.Tag UnitPrice = dgvData.Tag End If ' Quantity x UnitPrice dgvData.Rows(e.RowIndex).Cells(5).Value = (Quantity * UnitPrice).ToString("#,##0.00") CalSumTotal() End Select End Sub ' / -------------------------------------------------------------------------------- Private Sub dgvData_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgvData.EditingControlShowing Select Case dgvData.Columns(dgvData.CurrentCell.ColumnIndex).Name ' / Can use both ColumeIndex or Field Name Case "Quantity", "UnitPrice" RemoveHandler e.Control.KeyPress, AddressOf ValidKeyPress AddHandler e.Control.KeyPress, AddressOf ValidKeyPress End Select End Sub ' / -------------------------------------------------------------------------------- Private Sub ValidKeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Dim tb As TextBox = sender Select Case dgvData.CurrentCell.ColumnIndex Case 3 ' Quantity is Integer Select Case e.KeyChar Case "0" To "9" ' digits 0 - 9 allowed Case ChrW(Keys.Back) ' backspace allowed for deleting (Delete key automatically overrides) Case ChrW(Keys.Delete) ' Delete key Case Else ' everything else .... ' True = CPU cancel the KeyPress event e.Handled = True ' and it's just like you never pressed a key at all End Select Case 4 ' UnitPrice is Double Select Case e.KeyChar Case "0" To "9" ' Allowed "." Case "." ' can present "." only one If InStr(tb.Text, ".") Then e.Handled = True Case ChrW(Keys.Back) Case ChrW(Keys.Delete) Case Else e.Handled = True End Select End Select End Sub Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Application.Exit() End Sub End Class
Jika sudah silahkan anda Save dan Jalankan Project VB .NET andaDemikian Source Code Contoh From Transaksi Penjualan VB .NET, semoga bermanfaat untuk anda
Silahkan KLIK DISINI untuk download Project diatas
0 comments:
Post a Comment