none
recuperar valores asignados a un objeto, que se encuentra en una biblioteca de clases. RRS feed

  • Pregunta

  • Hola, necesito ayuda.

    como podria recuperar los valores que he seteado a un objeto, que se encuentra en una biblioteca de clases?.

    He referenciado la capa de presentacion, hacia la biblioteca de clases para poder acceder a mis distintas clases.

    Cuando realizo "Dim Empleado as new LoginBE", lo que estoy hacienda es crear un Nuevo objeto y no deseo eso. Lo que deseo es recuperar los valores que antes asigne a "LoginBE"

    Mi objeto EmpleadoBE (en eliminado un poco de lineas repetidas)

    Public Class LoginBE
    
        Private IdEmpleado, IdEmpresa As Integer
        Private Planilla, ModAdministracion, ModPostventa, ModGestionTalentoHumano, ModSistemas, ModTesoreria, ModVentas As Boolean
        Private Empleado, AlertaCumpleañosTo, AlertaCumpleañosCc, AlertaCumpleañosBcc As String
    
        Sub New(ByVal IdEmpleado As Integer, ByVal IdEmpresa As Integer, ByVal Planilla As Boolean, ByVal Empleado As String)
    
            _IdEmpleado = IdEmpleado
            _IdEmpresa = IdEmpresa
            _Planilla = Planilla
            _Empleado = Empleado
    
    
        End Sub
    
        Sub New()
    
        End Sub
    
    
        Public Property _Empleado() As String
            Get
                Return Empleado
            End Get
            Set(ByVal value As String)
                Empleado = value
            End Set
        End Property
    
    
    
    End Class

    En la siguiente funcion, asigno mis valores.

    Imports BusinessEntity
    
    Public Class EmpleadoBL
    
        Inherits Connection
        Dim dt As DataTable
        Dim Login As New LoginBE
    
        Function ValidarLogin(ByVal ds As EmpleadoBE)
            Try
                dt = getExecSP("usp_tthh_ValidarLogueo", ds._Usuario, ds._Contraseña)
                If dt.Rows.Count <> 0 Then
                    Login._IdEmpleado = dt.Rows.Item(0).Item("IdEmpleado")
                    Login._IdEmpresa = dt.Rows.Item(0).Item("IdEmpresa")
                    Login._Empleado = CStr(dt.Rows.Item(0).Item(2) & " " & dt.Rows.Item(0).Item(3) & ", " & dt.Rows.Item(0).Item(4))
                    Login._ModAdministracion = dt.Rows.Item(0).Item(6)
                    Login._ModPostventa = dt.Rows.Item(0).Item(7)
                    Login._ModGestionTalentoHumano = dt.Rows.Item(0).Item(8)
                    Login._ModSistemas = dt.Rows.Item(0).Item(9)
                    Login._ModTesoreria = dt.Rows.Item(0).Item(10)
                    Login._ModVentas = dt.Rows.Item(0).Item(11)
                    Login._AlertaCumpleañosTo = dt.Rows.Item(0).Item(12)
                    Login._AlertaCumpleañosCc = dt.Rows.Item(0).Item(13)
                    Login._AlertaCumpleañosBcc = dt.Rows.Item(0).Item(14)
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Function
    
    
    End Class

    ahora quiero recuperar algunos valores para imprimir en la pantalla de menu y aqui me he atascado...

    Imports BusinessEntity
    Imports BusinessLogical
    
    Public Class Menu
    
        Private Sub Menu_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            CargarDatos()
        End Sub
    
        Sub CargarDatos()
            Try
                bsiEmpleado.text =  'AQUI QUIERO PINTAR EL VALOR QUE TENGO EN MI OBJETO  LoginBE (_Empleado)
            Catch ex As Exception
    
            End Try
        End Sub

    espero que me podais ayudar a enteder esto.

    saludos!!!!



    martes, 19 de abril de 2016 22:05

Respuestas

  • Hola,

    No crees que sería mejor crear el objeto de tipo LoginBE y mandarlo como parámetro al otro form, para que tomes los valores.

    Algo así :

      Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
    
            Dim login As New LoginBE
            login.correo = "micorreo"
            login.contrasena = "12345"
    
    
            'Envio como paráemtro el objeto cargado de datos
            Dim frm2 As New Form2(login)
            frm2.Show()
    
        End Sub

    Y en el form que recibe.

       Private datos As LoginBE
    
        Sub New(ByVal objeto As LoginBE)
    
            InitializeComponent()
    
            'Almaceno el objeto
            datos = objeto
    
        End Sub
    
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.Text = datos.correo
            TextBox2.Text = datos.contrasena
        End Sub
    

    Resultado :

    Así te evitas de estar modificando los valores, ya que el objeto que envias tiene toda la información.

    O necesariamente quieres setearlos?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 19 de abril de 2016 22:30

Todas las respuestas

  • Hola,

    No crees que sería mejor crear el objeto de tipo LoginBE y mandarlo como parámetro al otro form, para que tomes los valores.

    Algo así :

      Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
    
            Dim login As New LoginBE
            login.correo = "micorreo"
            login.contrasena = "12345"
    
    
            'Envio como paráemtro el objeto cargado de datos
            Dim frm2 As New Form2(login)
            frm2.Show()
    
        End Sub

    Y en el form que recibe.

       Private datos As LoginBE
    
        Sub New(ByVal objeto As LoginBE)
    
            InitializeComponent()
    
            'Almaceno el objeto
            datos = objeto
    
        End Sub
    
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox1.Text = datos.correo
            TextBox2.Text = datos.contrasena
        End Sub
    

    Resultado :

    Así te evitas de estar modificando los valores, ya que el objeto que envias tiene toda la información.

    O necesariamente quieres setearlos?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 19 de abril de 2016 22:30
  • si, ya lo habia hecho asi antes.

    El tema viene luego cuando voy a usar el mismo objeto (LoginBE) en otros formularios para realizar otras operaciones (por ejemplo, necesitare la empresa, los permisos asignado que tiene, y otros valores mas que ire agregando conforme el Proyecto crece) (en web uso Session y me olvido de esto)

    Estaria moviendo los objetos de aqui para alla..

    ademas al momento de añadir mas propiedades a mi objeto, tendria que modificar cada una de las presentaciones, y no seria optimo para mantenimiento.....

    ... o me estoy equivocando tal vez......

    martes, 19 de abril de 2016 22:49
  • Hola,

    Entonces si vas a usar el mismo objeto en casi todos los forms, deberías tener una variable global de tipo LoginBE, el cual almacenará la data, así evitas estar pasando objeto por objeto cada vez que quieras obtener el valor.

    Y cada vez que consultes el objeto, verificas si es nulo, para que no te produzca errores.

    Claro, si luego quieres hacerlo para web usarías session o cookies, para almacenar la data temporalmente.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 19 de abril de 2016 23:01