|
1 |
| -# DataGridView |
2 |
| - Este proyecto consiste en una aplicacion de venta de productos que agrega los campos decriptivos de un producto al DataGrid para luego hacer el calculo del total a pagar por el cliente |
| 1 | +# Project Title: DataGridView |
| 2 | + |
| 3 | + Este proyecto consiste en una aplicacion de venta de productos |
| 4 | + que agrega los campos decriptivos de un producto al DataGrid |
| 5 | + para luego hacer el calculo del total a pagar por el cliente. |
| 6 | + |
| 7 | + |
| 8 | +# Descripcion |
| 9 | + |
| 10 | + Este proyecto consiste en el desarrollo de una aplicacion que |
| 11 | + lleva a cabo la venta de una serie de productos que han sido |
| 12 | + agregados a una Coleccion <List> en el evento Form_Load. |
| 13 | + Luego al buscar a cada producto y colocar la cantidad de unidades |
| 14 | + a llevar por el cliente, se hace click en un boton que agregara |
| 15 | + los productos al DataGrid para posteriormente hacer el calculo |
| 16 | + del total a pagar por el cliente por la cantidad de productos |
| 17 | + que lleva. |
| 18 | + |
| 19 | + # Actualizacion: 23/01/2025 |
| 20 | + # Hora: 22:48 |
| 21 | + |
| 22 | +Detalles técnicos del proyecto: |
| 23 | +Idioma: Visual Basic.NET |
| 24 | +Versión del framework: 4.7.2 |
| 25 | + |
| 26 | +## Autores |
| 27 | + |
| 28 | +- [@ozzies-code](https://www.github.com/ozzies-code) |
| 29 | + |
| 30 | +## Contribuciones |
| 31 | + |
| 32 | +¡Las contribuciones son siempre bienvenidas! |
| 33 | + |
| 34 | +Consulta `contributing.md` para conocer cómo comenzar. |
| 35 | + |
| 36 | +Por favor, respeta el `código de conducta` de este proyecto. |
| 37 | + |
| 38 | +## Despliegue |
| 39 | + |
| 40 | +Para implementar este proyecto, descargue los archivos del proyecto |
| 41 | +del repositorio y el código del proyecto que se encuentra |
| 42 | +en el archivo README.md |
| 43 | + |
| 44 | +## 🚀 Acerca de Mi |
| 45 | +Soy un apasionado desarrollador fullstack de Venezuela 🇻🇪 y Países Bajos 🇳🇱 |
| 46 | + |
| 47 | + |
| 48 | +🔭 Actualmente estoy trabajando en .NET Framework |
| 49 | + |
| 50 | +🔭 Actualmente estoy trabajando en desarrollo web |
| 51 | + |
| 52 | +🔭 Actualmente estoy trabajando en proyectos de .Console |
| 53 | + |
| 54 | +🔭 Actualmente estoy trabajando en bases de datos .SQL |
| 55 | + |
| 56 | +🌱 Actualmente estoy aprendiendo sobre frameworks, cursos, tutoriales y libros electrónicos |
| 57 | + |
| 58 | +💬 Pregúntame sobre desarrollo de software |
| 59 | + |
| 60 | +📫 Cómo contactarme oswaldojmp.nl@proton.me |
| 61 | + |
| 62 | +👨💻 Todos mis proyectos están disponibles en https://developerandtechnologyozziescode.blogspot.com/ (mi sitio web) |
| 63 | + |
| 64 | +📝 Escribo artículos regularmente en Medium.com/Ozzies.Code |
| 65 | + |
| 66 | + ## 🔗 Links |
| 67 | +[]( https://developerandtechnologyozziescode.blogspot.com) |
| 68 | +[](www.linkedin.com/in/oswaldo-jesús-marín-pagés-ab4499a4) |
| 69 | +[](https://twitter.com/ozzies_code) |
| 70 | + |
| 71 | +## Lecciones Aprendidas |
| 72 | + |
| 73 | +- Manejo del DataGrid |
| 74 | +- eventos de una Coleccion List |
| 75 | +- logica de programacion |
| 76 | + |
| 77 | +## image of the Project |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | +## Soporte |
| 82 | + |
| 83 | +Para soporte, email oswaldojmp.nl@proton.me |
| 84 | + |
| 85 | +## Pila de tecnología |
| 86 | + |
| 87 | +**Plataforma:** Visual studio 2022 |
| 88 | + |
| 89 | +**Lenguaje:** Visual Basic.NET |
| 90 | + |
| 91 | +Codigo del Proyecto: |
| 92 | + |
| 93 | +Public Class Form1 |
| 94 | + |
| 95 | + Dim listaproductos As New List(Of Producto) 'Lista de productos |
| 96 | + |
| 97 | + |
| 98 | + Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load |
| 99 | + |
| 100 | + 'Se crean los productos |
| 101 | + 'Se adhieren los productos a la lista de productos |
| 102 | + |
| 103 | + listaproductos.Add(New Producto("ARROZ X 500GR", 1800)) |
| 104 | + listaproductos.Add(New Producto("ACEITE X 1000ML", 9800)) |
| 105 | + listaproductos.Add(New Producto("ATUN EN LATA MARCA XYZ", 5400)) |
| 106 | + listaproductos.Add(New Producto("SALSA DE TOMATE X 500GR", 4300)) |
| 107 | + |
| 108 | + desactivaTextBox() 'ver en la rutina |
| 109 | + |
| 110 | + 'Dim codigo As DataGridViewColumn |
| 111 | + |
| 112 | + 'codigo.HeaderText = "Codigo" |
| 113 | + 'codigo.CellTemplate = New DataGridViewTextBoxCell |
| 114 | + 'dgvProductos.Columns.Add(codigo) |
| 115 | + 'Esto se realizo por las propiedades del DataGridView |
| 116 | + |
| 117 | + |
| 118 | + End Sub |
| 119 | + |
| 120 | + Private Sub limpiaTextBox() |
| 121 | + |
| 122 | + 'Se limpian los TextBox de la interfaz |
| 123 | + |
| 124 | + txtCodigo.Clear() |
| 125 | + txtDescripcion.Clear() |
| 126 | + txtPrecioU.Clear() |
| 127 | + txtCantidad.Clear() |
| 128 | + txtTotal.Clear() |
| 129 | + |
| 130 | + End Sub |
| 131 | + |
| 132 | + Private Sub txtCantidad_LostFocus(sender As Object, e As EventArgs) Handles txtCantidad.LostFocus |
| 133 | + |
| 134 | + 'Se calcula el total de la compra |
| 135 | + 'Se valida que la cantidad sea mayor a 0 y el campo no este vacio |
| 136 | + |
| 137 | + |
| 138 | + If txtCantidad.Text <> " " And Val(txtCantidad.Text) > 0 Then |
| 139 | + Dim total As Double = Val(txtPrecioU.Text) * Val(txtCantidad.Text) |
| 140 | + |
| 141 | + txtTotal.Text = total.ToString |
| 142 | + End If |
| 143 | + End Sub |
| 144 | + |
| 145 | + Private Sub desactivaTextBox() |
| 146 | + |
| 147 | + 'Se desactivan los TextBox de la interfaz |
| 148 | + |
| 149 | + txtDescripcion.Enabled = False |
| 150 | + txtPrecioU.Enabled = False |
| 151 | + txtTotal.Enabled = False |
| 152 | + End Sub |
| 153 | + |
| 154 | + Private Sub txtCodigo_LostFocus(sender As Object, e As EventArgs) Handles txtCodigo.LostFocus |
| 155 | + |
| 156 | + 'Se busca el producto en la lista de productos |
| 157 | + 'Se muestra la descripcion y el precio del producto en los TextBox |
| 158 | + 'Se captura la excepcion si el codigo no existe |
| 159 | + |
| 160 | + Try |
| 161 | + Dim codigo As String = txtCodigo.Text.ToUpper |
| 162 | + |
| 163 | + For i = 0 To listaproductos.Count - 1 Step 1 |
| 164 | + If codigo.Equals(listaproductos.Item(i).Codigo_Producto) Then |
| 165 | + |
| 166 | + txtDescripcion.Text = listaproductos.Item(i).Descripcion_Producto |
| 167 | + txtPrecioU.Text = listaproductos.Item(i).Precio_Producto |
| 168 | + Exit For |
| 169 | + End If |
| 170 | + Next |
| 171 | + Catch ex As Exception |
| 172 | + MsgBox("El codigo ingresado no existe") |
| 173 | + End Try |
| 174 | + End Sub |
| 175 | + |
| 176 | + Private Sub dgvProductos_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvProductos.CellContentClick |
| 177 | + |
| 178 | + End Sub |
| 179 | + |
| 180 | + Private Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles btnAgregar.Click |
| 181 | + |
| 182 | + 'Se agregan los campos a la tabla de productos |
| 183 | + |
| 184 | + dgvProductos.Rows.Add(txtCodigo.Text, txtDescripcion.Text, txtPrecioU.Text, txtCantidad.Text, txtTotal.Text) |
| 185 | + |
| 186 | + |
| 187 | + End Sub |
| 188 | + |
| 189 | + Private Sub btnVertotales_Click(sender As Object, e As EventArgs) Handles btnVertotales.Click |
| 190 | + |
| 191 | + 'Se calculan los totales de la venta |
| 192 | + 'Se recorre la tabla de productos y se suman los totales |
| 193 | + 'Se calcula el subtotal, el iva y el total de la venta |
| 194 | + 'Se muestran los totales en los TextBox |
| 195 | + |
| 196 | + Dim total As Double = 0 |
| 197 | + |
| 198 | + For i = 0 To dgvProductos.Rows.Count - 1 Step 1 |
| 199 | + total += dgvProductos.Rows.Item(i).Cells.Item(4).Value |
| 200 | + |
| 201 | + Next |
| 202 | + |
| 203 | + Dim subtotal As Double = total - (total * 0.19) |
| 204 | + Dim iva As Double = total * 0.19 |
| 205 | + |
| 206 | + txtSubtotal.Text = subtotal.ToString |
| 207 | + txtIva.Text = iva.ToString |
| 208 | + txtTotalVenta.Text = total.ToString |
| 209 | + End Sub |
| 210 | + |
| 211 | + Public Class Producto |
| 212 | + |
| 213 | + 'Atributoso Miembros de la clase |
| 214 | + 'Variables de Clase |
| 215 | + Private codigo As String |
| 216 | + Private descripcion As String |
| 217 | + Private precioU As Double |
| 218 | + Private Shared indiceCodigo As Integer = 1 'Atributo Compartido que automatiza el valor del atributo Codigo |
| 219 | + |
| 220 | + Public Sub New(ByVal des As String, ByVal pu As Double) |
| 221 | + |
| 222 | + codigo = "AR00" & indiceCodigo 'Texto + numeros. Inicia con 1/ |
| 223 | + indiceCodigo += 1 |
| 224 | + descripcion = des |
| 225 | + precioU = pu |
| 226 | + |
| 227 | + End Sub |
| 228 | + |
| 229 | + Public ReadOnly Property Codigo_Producto As String |
| 230 | + |
| 231 | + Get |
| 232 | + Return codigo |
| 233 | + End Get |
| 234 | + End Property |
| 235 | + |
| 236 | + Public ReadOnly Property Descripcion_Producto As String |
| 237 | + |
| 238 | + Get |
| 239 | + Return descripcion |
| 240 | + End Get |
| 241 | + End Property |
| 242 | + |
| 243 | + Public ReadOnly Property Precio_Producto As String |
| 244 | + |
| 245 | + Get |
| 246 | + Return precioU |
| 247 | + End Get |
| 248 | + End Property |
| 249 | + |
| 250 | + |
| 251 | +End Class |
| 252 | + |
| 253 | +End Class |
0 commit comments