Visual Basic.NET - Problemas con datagridview en una factura

   
Vista:
Imágen de perfil de Elizabeth

Problemas con datagridview en una factura

Publicado por Elizabeth (7 intervenciones) el 24/08/2015 18:00:42
Hola amigos

Una vez mas necesito de su ayuda, estoy haciendo una factura en la cual tengo una cabecera y un detalle el cual el detalle tiene un datagridview el problema es el siguiente.

Necesito insertar mis productos a la grilla lo que quiero hacer es traer esos productos de otro formulario por tecla de funcion y al darle doble click en el formulario producto este me lleve el producto directamente a la grilla del detalle factura.

Espero me entiendan y puedan ayudarme muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de giancarlo

Problemas con datagridview en una factura

Publicado por giancarlo (280 intervenciones) el 24/08/2015 22:05:53
si la estructura del datagridview es el mismo, puedes hacer algo asi:

formulario 1 con datagridview 1
formulario 2 con datagridview 2

en el formulario 2
1
2
3
4
5
dim iFila as integer=datagridview2.currentcell.rowindex
if iFila>=0
dim fila as datagridviewrow=datagridview2.rows(iFila)
formularioFactura.datagridview1.rows.add(fila)
end if

Si son diferentes o no funciona, intenta algo asi:

en el formulario2:
1
2
3
4
5
6
7
dim iFila as integer=datagridview2.currentcell.rowindex
if iFila>=0
formulario1.datagridview1.rows.add()
with formulario1.datagridview1.rows(formulario1.datagridview1.rows.count-1)
.cells("indice o nombre d ecolumna").values=datagridview2.item("nombre columna o indice",iFila).value
end with
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Elizabeth

Problemas con datagridview en una factura

Publicado por Elizabeth (7 intervenciones) el 27/08/2015 17:49:41
Gracias por la ayuda
mis grillas tienen estructuras diferentes el primer código no me funciona, pero el segundo lo eh probado y me trae el producto en mi grilla factura pero solo me trae un producto y el siguiente producto ya no me trae es decir le doy click y me reemplaza el mismo producto que ya esta en la grilla factura y me inserta filas en blanco
producto
espero me ayuden gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Problemas con datagridview en una factura

Traerte los datos de un formulario a otro lo haces muy sencillo usando delegados.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de giancarlo

Problemas con datagridview en una factura

Publicado por giancarlo (280 intervenciones) el 29/08/2015 18:37:31
Wlfredo, como se usa delegados? porfavor dejanos un ejemplo.

Elizabeth, el problema esta en la siguiente linea
with formulario1.datagridview1.rows(formulario1.datagridview1.rows.count-1)

especificamente en formulario1.datagridview1.rows.count-1, que es el indice de fila en que se va a insertar la informacion, asegurate que diga asi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Problemas con datagridview en una factura

Hola Giancarlo

Los delegados son simples de usar, ya que son tipos que devuelven o hacen referencia a métodos, sirven para pasar métodos como parámetros a otros métodos.

Fíjate bien, para el caso de Elizabeth que quiere pasar datos de un formulario a otro, por ejemplo tendríamos un formulario para buscar los productos, y alli declararíamos un delegado y un Evento, ya que trabajan juntos mas o menos así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Delegate Sub TraerProducto(product As Producto)            //**Aqui declaro el delegado
 Public Event EnviarProducto As TraerProducto                               //**Aquí declaro un evento que si te fijas bien es del tipo del delegado
 
//**Aquí selecciono un producto desde un datagridview ***///
******************************************************************
 
 Private Sub DgvProductos_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgvProductos.CellDoubleClick
        Try
            Dim prod = New Producto
            prod.IdProducto = Convert.ToInt32(Me.DgvProductos.Item(0, Me.DgvProductos.CurrentRow.Index).Value)
            prod.NombreProducto = Me.DgvProductos.Item(1, Me.DgvProductos.CurrentRow.Index).Value.ToString
            prod.Precio = Convert.ToDecimal(Me.DgvProductos.Item(2, Me.DgvProductos.CurrentRow.Index).Value)
            prod.Iva = Convert.ToDecimal(Me.DgvProductos.Item(3, Me.DgvProductos.CurrentRow.Index).Value)
            RaiseEvent EnviarProducto(prod)              //*******Aqui envio el producto seleccionado mediante un evento y cierro el formulario
            Me.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
 
 
//**Aca en el formulario de factura llamo al formulario de buscar productos de esta manera fíjate:
*********************************************************************************************************
 
Private Sub BtnBuscarProducto_Click(sender As Object, e As EventArgs) Handles BtnBuscarProducto.Click
        Dim FBusca As New FrmBuscarProductos
        AddHandler FBusca.EnviarProducto, AddressOf MostrarProducto //** Aqui especifico qué método será el que procese los datos que
        FBusca.Show()                                                                                           //** lleguen desde el otro formulario
    End Sub

Entonces es es muy simple no hay que usar variables públicas, hacer tanta cosa, sino que es algo simple y sencillo y que se puede reutilizar donde quieras que es lo mas importante.

1
2
3
4
5
6
7
//****Estoy adjuntando un ejemplo del uso de delegados el proyecto está hecho con VB en su Versión 2013.
//** El proyecto consta de 2 formularios: Factura y BuscarProductos, asimismo 3 clases:Factura,DetalleFactura y Producto.
//**En el formulario de buscarproductos se crea una lista con 50 productos en un for y se muestra en un datagridview.
//**Los productos tienen el nombre PRODUCTO 1, PRODUCTO 2, Y ASÍ HASTA PRODUCTO 50, éste formulario permite hacer una  //**búsqueda tipo las búsquedas LIKE que se usan para buscar por nombres, pero para que vean que funciona tienen que escribir //**producto, espacio y pueden poner el 1, 2, 3 o 4 para que vean que se seleccionan todos los que contengan el 1, es decir 1,10,11,12, //**etc.
 
//**En el formulario de factura hay un textbox Producto y un botón BtnBuscarProducto que tiene 3 puntos suspensivos (...), al darle clic en //**ese botón les mostrará el formulario de búsqueda de productos, en el cual escogen su producto y le dan doble clic y enviarán el //**producto hacia el datagridview del formulario Factura.
//*************En el datagridview del formulario Factura, pueden agregar valores al campo Cantidad y hará el cálculo hacia la columna //**importe **//


formfactu
buscarproducto
facturallenasincalculos
facturallenaconcalculos

Espero les sirva y saquen provecho, espero lo mejoren según sus necesidades, ya que por falta de tiempo no hice algo mas elaborado.

Saludos cordiales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Elizabeth

Problemas con datagridview en una factura

Publicado por Elizabeth (7 intervenciones) el 03/09/2015 04:40:45
Muchas gracias a todos por su ayuda me sirvió de mucho y el código que me has facilitado Giancarlo funciona super bien...!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar