
datagridview
Publicado por jorge (3 intervenciones) el 12/10/2021 02:02:05
buenas tardes amigos son nuevo en esto pero estoy haciendo un programa que me haga remisiones de venta, uso un datagridview para ingresar los productos con una lista desplegable, solo que en la columna cantidad me depliega tambien la lista y es lo que quiero evitar ademas de que solo me acepte nuemeros decimales
alguien podria auxiliarme por favor
aqui les pongo lo que llevo las lineas de programacion a partir de editincontrolshowing
Private Sub DataGridRemision_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridRemision.EditingControlShowing
Dim txproducto As String = DataGridRemision.Columns(0).HeaderText
If txproducto.Equals("Descripcion") Then
Dim autotex As TextBox = TryCast(e.Control, TextBox)
If autotex IsNot Nothing Then
autotex.AutoCompleteMode = AutoCompleteMode.Suggest
autotex.AutoCompleteSource = AutoCompleteSource.CustomSource
Dim datacolection As New AutoCompleteStringCollection()
additems(datacolection)
autotex.AutoCompleteCustomSource = datacolection
End If
End If
End Sub
Private Sub BSalir_Click(sender As Object, e As EventArgs) Handles BSalir.Click
Me.Close()
End Sub
Public Sub additems(ByVal col As AutoCompleteStringCollection)
Call cargarpro()
cmd = New OleDbCommand(" SELECT * FROM [Base de Datos Productos]", conn)
dr = cmd.ExecuteReader
Do While dr.Read
col.Add(dr("Descripcion"))
Loop
End Sub
'indexa por la descripcion y importa los datos en la tabla
Private Sub DataGridRemision_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridRemision.CellEndEdit
Dim precio, importe, IVA1 As Decimal
Dim cant As Decimal
If e.ColumnIndex = 1 Then
cmd = New OleDbCommand("SELECT * FROM [Base de Datos Productos] WHERE Descripcion LIKE'" & DataGridRemision.Rows(e.RowIndex).Cells(0).Value & "%'", conn)
dr = cmd.ExecuteReader
dr.Read()
If dr.HasRows Then
DataGridRemision.Rows(e.RowIndex).Cells(2).Value = dr("Unidad de Medida") ' le dices en donde poner los datos en la tabla
DataGridRemision.Rows(e.RowIndex).Cells(3).Value = dr("Precio Unitario")
cant = DataGridRemision.Rows(e.RowIndex).Cells(1).Value
precio = DataGridRemision.Rows(e.RowIndex).Cells(3).Value
DataGridRemision.Rows(e.RowIndex).Cells(4).Value = dr("IVA")
IVA1 = DataGridRemision.Rows(e.RowIndex).Cells(4).Value
importe = cant * precio
DataGridRemision.Rows(e.RowIndex).Cells(5).Value = importe
End If
End If
suma += importe
suma = Format(suma, "#.#0")
sumaiva += IVA1
sumaiva = Format(sumaiva, "#.#0")
Totalremision = suma + sumaiva
Totalremision = Format(Totalremision, "#.#0")
TxImporteSuma.Text = suma.ToString
TxIvaSuma.Text = sumaiva.ToString
TxTotalR.Text = Totalremision.ToString
End Sub
espero puedan ayudarme saludos
alguien podria auxiliarme por favor
aqui les pongo lo que llevo las lineas de programacion a partir de editincontrolshowing
Private Sub DataGridRemision_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridRemision.EditingControlShowing
Dim txproducto As String = DataGridRemision.Columns(0).HeaderText
If txproducto.Equals("Descripcion") Then
Dim autotex As TextBox = TryCast(e.Control, TextBox)
If autotex IsNot Nothing Then
autotex.AutoCompleteMode = AutoCompleteMode.Suggest
autotex.AutoCompleteSource = AutoCompleteSource.CustomSource
Dim datacolection As New AutoCompleteStringCollection()
additems(datacolection)
autotex.AutoCompleteCustomSource = datacolection
End If
End If
End Sub
Private Sub BSalir_Click(sender As Object, e As EventArgs) Handles BSalir.Click
Me.Close()
End Sub
Public Sub additems(ByVal col As AutoCompleteStringCollection)
Call cargarpro()
cmd = New OleDbCommand(" SELECT * FROM [Base de Datos Productos]", conn)
dr = cmd.ExecuteReader
Do While dr.Read
col.Add(dr("Descripcion"))
Loop
End Sub
'indexa por la descripcion y importa los datos en la tabla
Private Sub DataGridRemision_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridRemision.CellEndEdit
Dim precio, importe, IVA1 As Decimal
Dim cant As Decimal
If e.ColumnIndex = 1 Then
cmd = New OleDbCommand("SELECT * FROM [Base de Datos Productos] WHERE Descripcion LIKE'" & DataGridRemision.Rows(e.RowIndex).Cells(0).Value & "%'", conn)
dr = cmd.ExecuteReader
dr.Read()
If dr.HasRows Then
DataGridRemision.Rows(e.RowIndex).Cells(2).Value = dr("Unidad de Medida") ' le dices en donde poner los datos en la tabla
DataGridRemision.Rows(e.RowIndex).Cells(3).Value = dr("Precio Unitario")
cant = DataGridRemision.Rows(e.RowIndex).Cells(1).Value
precio = DataGridRemision.Rows(e.RowIndex).Cells(3).Value
DataGridRemision.Rows(e.RowIndex).Cells(4).Value = dr("IVA")
IVA1 = DataGridRemision.Rows(e.RowIndex).Cells(4).Value
importe = cant * precio
DataGridRemision.Rows(e.RowIndex).Cells(5).Value = importe
End If
End If
suma += importe
suma = Format(suma, "#.#0")
sumaiva += IVA1
sumaiva = Format(sumaiva, "#.#0")
Totalremision = suma + sumaiva
Totalremision = Format(Totalremision, "#.#0")
TxImporteSuma.Text = suma.ToString
TxIvaSuma.Text = sumaiva.ToString
TxTotalR.Text = Totalremision.ToString
End Sub
espero puedan ayudarme saludos
Valora esta pregunta


0