urgente ....

30/06/2006 - 01:45 por Ricardo | Informe spam
Hola amigo tengo un problema estoy pasando un sistema de vb6.0 a vb.net 2005 y
lo que sucede es que hay dos formulario uno que muestra la cabecera y el
detalle dentro de un datagrid (FORM1), pero lo que sucede es que el detalle
lo
ingresan por un segundo formulario y cuando lo agrega llama a un
procedimiento
publico que declaro en el primero formulario (FORM1) para refrescar el
datagrid y
muestre el item ingresado.. Como puedo hacer eso en .net ya que declare
funciones publicas pero como hago para llamarlo del segundo formulario y
refresque mi datagridview.

bueno el primer formulario (FORM1) lo llamo desde un menu:

Dim objFrm As New frmProGui

objFrm.MdiParent = Me
objFrm.Show()

en el formulario FROM1 codifique:

Public Sub CargarLista(ByVal idcodusu As String)

Dim obj As New clsGuias
dgwlista.DataSource = obj.curtmpdetgui(idcodusu).Tables("DetalleGuia")
End Sub

el formulario FORM2 lo llamo desde la grilla que esta en FORM1 al presinar
enter
de esta forma

If e.KeyCode = Keys.Return Then

Dim objItm As New frmProItmGuia
objItm.ShowDialog()
endif

y al presionar aceptar en el formulario FORM2 me gustario que se ejecute
CargarLista en FORM1 y refresque la grilla de FORM1 pero no cerrar FORM2
para que el
usuario siga ingresando sus datos pero vea todo lo que ha ingresado en la
grilla..

Me prodrian decir como codificar esto???

Gracias anticipadamente por la ayuda...
 

Leer las respuestas

#1 MartinR
30/06/2006 - 02:11 | Informe spam
Me encantaría ayudarte, pero no esta muy claro lo que necesitas. Por
lo que veo estas intentando comunicar datos desde un formulario a otro
del mismo nivel.
Te recuerdo por las dudas, que antes en VB 6.0 eso se podia hacer sin
ningun problema. Lo que pasa que ahora, es todo por clases, y los
formularios tambien son clases, y para llamarlos se utilizan
instancias. Y cada llamada es una nueva instancia. Distinta a la
anterior.
La pregunta que te haría es: Donde estas guardando los datos del
primer formulario? en una base de datos o en un Array?
Si es en una base de datos, no tendras problemas, a menos que estes
utilizando un DataSet, si utilizas un dataset tienes que guardar los
datos modificados en el el dataset en la base antes de hacer una nueva
consulta desde el otro formulario.
Si no utilizas ninguna base de datos. Te recomiendo que utilices un
ArrayList. Create una clase para el dato que modificas. Y una coleccion
de ese objeto o un arrayList. Y Pero desde el primer formulario guarda
el dato en el ArrayList que se tiene que encontrar la clase Manager, y
luego desde el segundo formulario llamar a una función que te devuelva
los datos guardados en el array.
Te recuerdo por las dudas, que si compartis información entre clases
formularios sin utilizar una clase Manager, estas rompiendo la
programación en 3 capas, el encapsulamiento y herencia.
Espero poder ayudarte mucho mas si me explicas un poco mas claro bien
lo que estas utilizando, y no es necesario colocar todo un código,
porque cada programador utiliza tecnicas distintas para nombras
variables por ejemplo, y es mas facil entender un seudocodigo que un
código.
Abrazos.
Martín.
Ricardo ha escrito:

Hola amigo tengo un problema estoy pasando un sistema de vb6.0 a vb.net 2005 y
lo que sucede es que hay dos formulario uno que muestra la cabecera y el
detalle dentro de un datagrid (FORM1), pero lo que sucede es que el detalle
lo
ingresan por un segundo formulario y cuando lo agrega llama a un
procedimiento
publico que declaro en el primero formulario (FORM1) para refrescar el
datagrid y
muestre el item ingresado.. Como puedo hacer eso en .net ya que declare
funciones publicas pero como hago para llamarlo del segundo formulario y
refresque mi datagridview.

bueno el primer formulario (FORM1) lo llamo desde un menu:

Dim objFrm As New frmProGui

objFrm.MdiParent = Me
objFrm.Show()

en el formulario FROM1 codifique:

Public Sub CargarLista(ByVal idcodusu As String)

Dim obj As New clsGuias
dgwlista.DataSource = obj.curtmpdetgui(idcodusu).Tables("DetalleGuia")
End Sub

el formulario FORM2 lo llamo desde la grilla que esta en FORM1 al presinar
enter
de esta forma

If e.KeyCode = Keys.Return Then

Dim objItm As New frmProItmGuia
objItm.ShowDialog()
endif

y al presionar aceptar en el formulario FORM2 me gustario que se ejecute
CargarLista en FORM1 y refresque la grilla de FORM1 pero no cerrar FORM2
para que el
usuario siga ingresando sus datos pero vea todo lo que ha ingresado en la
grilla..

Me prodrian decir como codificar esto???

Gracias anticipadamente por la ayuda...

Preguntas similares