none
Tengo Catalogo de Provedores del cual lo llamo desde CatdeProduc y CatAduana pero cuando lo llamo se va al que no le corresponde. RRS feed

  • Pregunta

  • El Catalogo carga la clave y el nombre del Proveedor en una variable global y lo hace sin problema,(a las cajas de texto respectivas) la cuestion es cuando lo llamo de una forma se va a otro que no es.les pongo  el codigo del Provedores.

    Private Sub GridProvedores_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles GridProvedores.CellContentDoubleClick

            Dim FrmCatProd As New FrmCatalogoProd
            Dim CatAduanero As New CatAduanero

            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = GridProvedores.CurrentRow()

            'MANDA LOS VALORES DEL LOS CAMPOS DEL GRID PROVEEDORES A EL CATALOGO DE PRODUCTOS

     ' If FrmCatalogoProd.Visible = True Then

                FrmCatProd.ClveProveedor = loFila.Cells("ClaveProv").Value.ToString
                FrmCatProd.Proveedor = loFila.Cells("Empresa").Value.ToString


                VariablesG.Provee_Var1 = FrmCatProd.ClveProveedor
                VariablesG.Provee_Var2 = FrmCatProd.Proveedor

                FrmCatalogoProd.TxtIdProveedor.Text = VariablesG.Provee_Var1
                FrmCatalogoProd.TxtProveedor.Text = VariablesG.Provee_Var2

                Me.Hide()
                Moverme = FrmCatalogoProd
                Moverme.Show()
                '***************** HASTA AQUI TERMINA *******************************

                'MANDA LOS VALORES DEL LOS CAMPOS DEL GRID PROVEEDORES A EL CATALOGO DE ADUANAS
         '   Else
                Dim Fila As DataGridViewRow = GridProvedores.CurrentRow()

                'Public Property Nom_Empresa As String

                CatAduanero.Clave_Empresa = Fila.Cells("ClaveProv").Value.ToString
                CatAduanero.Nom_Empresa = Fila.Cells("Empresa").Value.ToString

                VariablesG.Aduana_var1 = CatAduanero.Clave_Empresa
                VariablesG.Aduana_var2 = CatAduanero.Nom_Empresa

                CatAduanero.TxtClaveProveedor.Text = VariablesG.Aduana_var1
                CatAduanero.TxtProveedor.Text = VariablesG.Aduana_var1

                Me.Hide()
                Moverme = CatAduanero
                Moverme.Show()

          '  End If
        End Sub

    Y ASI LO LLAMO forma CatProductos

     Private Sub TxtIdProveedor_KeyDown(sender As Object, e As KeyEventArgs) Handles TxtIdProveedor.KeyDown
            If e.KeyCode = Keys.Enter Then
                e.Handled = True
                Me.Hide()
                Moverme = Proveedores
                Moverme.Show()
            Else
                Exit Sub
            End If
        End Sub

    Gracias por la ayuda

    jueves, 15 de octubre de 2020 19:01

Todas las respuestas

  • Hola:
    Tienes un "lio" que es dificil de entender al menos para mi.
    A ver si nos puedes decir cual es la opcion que quieres conseguir

    Un Form A llama a Form B y Form C
    1.- Desde el Form B ver datos del Form A
    2.- Desde el Form C ver datos del Form A

    Un Form A llama a Form B y desde el Form B llama al Form C
    1.- Desde el Form B ver datos del Form A
    2.- Desde el Form C ver datos del Form A
    3.- Desde el Form C ver datos del Form B

    Si no es ninguna de estas opciones, ¿Puedes ponernos cual es tu "caso"?

    P.D.
    No estaria de mas que nos pusieses las estucturas de las tablas implicadas y el motor de base de datos

    Un saludo desde Bilbo
    Carlos
    viernes, 16 de octubre de 2020 7:39
  • Tengo 2 Form uno se llama Catalogo de Productos y la otra  Gastos Aduaneros estas 2 llaman al Catalogo de Proveedores como los llamo? R= cuando estan activas las formas es decir cuando entro en ellas y doy enter en la caja de texto llamada  IdProveedor  lanzo la formaCatalogo de Proveedores.

    EL PROBLEMA ES QUE CUANDO ESTOY EN LA FORMA GASTOS ADUANEROS LOS DATOS LOS LANZA A CAT DE PRODUCTOS Y NO AL DE ADUANEROS... LO QUE QUIERO ES QUE SEPA DE DONDE ESTOY MANDANDO LLAMAR LOS DATOS

    ESTO LANZA LOS DATOS A LA FORMA  Catalogo de Productos

                FrmCatalogoProd.TxtIdProveedor.Text = VariablesG.Provee_Var1
                FrmCatalogoProd.TxtProveedor.Text = VariablesG.Provee_Var2

    Y ESTA LANZA LOS DATOS A Gastos Aduaneros

            CatAduanero.TxtClaveProveedor.Text = VariablesG.Aduana_var1
            CatAduanero.TxtProveedor.Text = VariablesG.Aduana_var1

    LES DEJO EL COD COMPLETO MUSCHAS GARCIAS POR SU VALCIO TIEMPO

    Nota : le puse un If pero no lo hace:

     Private Sub GridProvedores_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles GridProvedores.CellContentDoubleClick

            Dim FrmCatProd As New FrmCatalogoProd
            Dim CatAduanero As New CatAduanero

            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = GridProvedores.CurrentRow()

            ''MANDA LOS VALORES DEL LOS CAMPOS DEL GRID PROVEEDORES A EL CATALOGO DE PRODUCTOS

            If FrmCatalogoProd.Visible = True Then

                FrmCatProd.ClveProveedor = loFila.Cells("ClaveProv").Value.ToString
                FrmCatProd.Proveedor = loFila.Cells("Empresa").Value.ToString

                VariablesG.Provee_Var1 = FrmCatProd.ClveProveedor
                VariablesG.Provee_Var2 = FrmCatProd.Proveedor

                FrmCatalogoProd.TxtIdProveedor.Text = VariablesG.Provee_Var1
                FrmCatalogoProd.TxtProveedor.Text = VariablesG.Provee_Var2

                Me.Hide()
                Moverme = FrmCatalogoProd
                Moverme.Show()


                '***************** HASTA AQUI TERMINA *******************************

                'MANDA LOS VALORES DEL LOS CAMPOS DEL GRID PROVEEDORES A EL CATALOGO DE ADUANAS

            Else

                Dim Fila As DataGridViewRow = GridProvedores.CurrentRow()

                'Public Property Nom_Empresa As String

                CatAduanero.Clave_Empresa = Fila.Cells("ClaveProv").Value.ToString
                CatAduanero.Nom_Empresa = Fila.Cells("Empresa").Value.ToString

                VariablesG.Aduana_var1 = CatAduanero.Clave_Empresa
                VariablesG.Aduana_var2 = CatAduanero.Nom_Empresa

                CatAduanero.TxtClaveProveedor.Text = VariablesG.Aduana_var1
                CatAduanero.TxtProveedor.Text = VariablesG.Aduana_var1

                Me.Hide()
                Moverme = CatAduanero
                Moverme.Show()

            End If
        End Sub

    sábado, 17 de octubre de 2020 0:17
  • Hola:
    Tu caso es un Form A(Proveedores) que llama a Form B(Productos) y Form C(Aduaneros)

    En el ejemplo que te expongo el Form A es el Products, el Form B es el de Categories y el Form C es el de Suppliers

    Codigo de FrmProducts que es que llama a los otros 2 Form

    Option Explicit On
    Option Strict On
    Imports System.Data.SqlClient

    Public Class FrmProducts

        Private Sub FrmProducts_Load(sender As Object, e As EventArgs) Handles Me.Load
            DataGridView1.AllowUserToAddRows = False
            Try
                Dim CadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=NorthWind;Integrated Security=True"
                Dim lsQuery As String = "SELECT ProductID, ProductName, SupplierID, CategoryID FROM Products ORDER BY ProductName"
                Using Conexion As New SqlConnection(CadenaSQL)
                    Using DataAdapter As New SqlDataAdapter(lsQuery, Conexion)
                        Dim mDataTable As New DataTable
                        DataAdapter.Fill(mDataTable)
                        DataGridView1.DataSource = mDataTable
                    End Using
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
        End Sub

        Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = DataGridView1.CurrentRow()
            txtProductName.Text = loFila.Cells("ProductName").Value.ToString
            txtSupplierID.Text = loFila.Cells("SupplierID").Value.ToString
            txtCategoryID.Text = loFila.Cells("CategoryID").Value.ToString
        End Sub

        Private Sub txtSupplierID_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtSupplierID.KeyPress
            If e.KeyChar = CChar(Chr(13)) Then
                Using loForm As New FrmSuppliers
                    loForm.Padre = Me
                    loForm.ShowDialog()
                End Using
            End If
        End Sub

        Private Sub txtCategoryID_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCategoryID.KeyPress
            If e.KeyChar = CChar(Chr(13)) Then
                Using loForm As New FrmCategories
                    loForm.Padre = Me
                    loForm.ShowDialog()
                End Using
            End If
        End Sub
    End Class

    Codigo de FrmCategories que es que llamado por FrmProducts

    Option Explicit On
    Option Strict On

    Public Class FrmCategories
        Public Property Padre As FrmProducts

        Private Sub FrmCategories_Load(sender As Object, e As EventArgs) Handles Me.Load
            txtCategoryID.Text = Padre.txtCategoryID.Text
            txtProductName.Text = Padre.txtProductName.Text
        End Sub
    End Class


    Codigo de FrmSuppliers que es que llamado por FrmProducts

    Option Explicit On
    Option Strict On

    Public Class FrmSuppliers
        Public Property Padre As FrmProducts

        Private Sub FrmSuppliers_Load(sender As Object, e As EventArgs) Handles Me.Load
            txtSupplierID.Text = Padre.txtSupplierID.Text
            txtProductName.Text = Padre.txtProductName.Text
        End Sub
    End Class

    El resultado es la siguiente imagen


    Un saludo desde Bilbo
    Carlos
    domingo, 18 de octubre de 2020 10:10
  • Hola 75Solis, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    lunes, 19 de octubre de 2020 17:04
    Moderador
  • Nooo lo que pasa es que tu cargas esos datos desde una misma forma que se llama

    FrmProducts desde ahi haces tu lllamdo a las otras 2 formas FrmSuppliers y FrmCategories  a traves de tu evento key prees y cargas los datos del padre a las 2 formas anteriores. Yo No lo Hago ASI...

    lo Mio es al revez. yo llamo 2 veces a la MISMA Forma en este caso a FRMPROVEEDORES una la llamo cuando doy de Alta el producto en la forma FrmCatDeProducto y la otra llamada es cuando cargo sus costos del producto en  FrmGastosAduana

    y NO tengo campos de texto los cargo directamente del GridPorveedores  que esta en FrmProveedores.

    No se si me explque bien... El problema es que como estoy llamando 2 veces  a la misma forma ("FRMPROVEDORES")necesito que los datos se carguen en donde correponda el llamado. y que campos llamo

    son 2 : el ID Proveedor y el Nombre del Proveedor. estos 2 son los mismis para las 2 formas.

    Nota: cabe mencionar que la funcion por separado funciona sin problema. por eso tego 4 variables globales

    cada una de ellas para enviar la informacion a los repectivos formas. CatProductos y FrmAduanas

       Public Shared Provee_Var1 As String  estas madan los datos al FrmProductos
        Public Shared Provee_Var2 As String

        Public Shared Aduana_var1 As String etas al FrmGatosAduana
        Public Shared Aduana_var2 As String

    EN Resumen tengo que decirle al Catalogo de proveedores de donde lo estan llamando y que mande los datos a esa forma. eso esto todo..

      

     

    aqui el codigo completo de Provedores.

     Private Sub GridProvedores_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles GridProvedores.CellContentDoubleClick

            Dim FrmCatProd As New FrmCatalogoProd
            Dim CatAduanero As New CatAduanero

            If e.RowIndex = -1 Then
                Return
            End If
            Dim loFila As DataGridViewRow = GridProvedores.CurrentRow()

            ''MANDA LOS VALORES DEL LOS CAMPOS DEL GRID PROVEEDORES A EL CATALOGO DE PRODUCTOS

           

    FrmCatProd.ClveProveedor = loFila.Cells("ClaveProv").Value.ToString
            FrmCatProd.Proveedor = loFila.Cells("Empresa").Value.ToString

            VariablesG.Provee_Var1 = FrmCatProd.ClveProveedor
            VariablesG.Provee_Var2 = FrmCatProd.Proveedor

            FrmCatalogoProd.TxtIdProveedor.Text = VariablesG.Provee_Var1
            FrmCatalogoProd.TxtProveedor.Text = VariablesG.Provee_Var2

            Me.Hide()
            Moverme = FrmCatalogoProd
            Moverme.Show()

            ''***************** HASTA AQUI TERMINA *******************************

            ''MANDA LOS VALORES DEL LOS CAMPOS DEL GRID PROVEEDORES A EL CATALOGO DE ADUANAS

            Dim Fila As DataGridViewRow = GridProvedores.CurrentRow()

            CatAduanero.Clave_Empresa = Fila.Cells("ClaveProv").Value.ToString
            CatAduanero.Nom_Empresa = Fila.Cells("Empresa").Value.ToString

            VariablesG.Aduana_var1 = CatAduanero.Clave_Empresa
            VariablesG.Aduana_var2 = CatAduanero.Nom_Empresa

            CatAduanero.TxtClaveProveedor.Text = VariablesG.Aduana_var1
            CatAduanero.TxtProveedor.Text = VariablesG.Aduana_var1

            Me.Hide()
            Moverme = CatAduanero
            Moverme.Show()

        End Sub

    Muchas Gracias por su tiempo.... Salu2 desde Mexico DF


    martes, 20 de octubre de 2020 2:21