Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/11/2009, 00:31
Avatar de krakxp
krakxp
 
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 17 años, 11 meses
Puntos: 0
80 % Solucionado: Como enviar un parametro a un ... pero kiero otra solucion

hola comunidada hace mucho ke no los visitaba ya han crecido bastante felicidades a toda la comunidad!!!!

Necesito de su ayuda bueno si me kieren ayudar y si pueden claro, porke miren tengo una duda con respecto a como "implementar un control de usuario (login) ke tiene en su funcion una variable ke tiene ke ser parametrizada y ke se debe enviar su valor desde la clase de la pagina donde se implementa el control".

Chequen eee, el reto es este, hice un control de usuario de login ke tiene 3 controles ya sabran:
textbox = TxtUsu
textbox = TxtPass
boton = btnLogin
Y ya se komo recuperar lo ke kapturo el usuario en los texbox y como llamar el boton del login del control, bueno todo eso esta leve porke se hace en el vb del control y es relativamente sencillo:

Código:
Private _usuario As String
   Private _contraseña As String
 
   Public ReadOnly Property Usuario() As String
        Get
           Return Me.TxtUsu.Text
        End Get
   End Property
 
   Public ReadOnly Property Contraseña() As String
        Get
           Return Me.TxtPass.Text
        End Get
   End Property
 
'Funcion ke retorna un objeto
Public Function Login() As Object
 
       Dim oRes As Object = Nothing
 
       Dim CLusuario As New CLUsuarios
        Dim sRes, sUsu, sPass As String

       sUsu = Me.usuario
      sPass = Me.contraseña
 
      dim variabletiposistema as integer= 2
      sRes = CLusuario.GetLogUsu(variabletiposistema, sUsu, sPass)
 
     If sRes <> "" Then
                LblErr.Text = sRes
               oRes = Nothing
      Else
               LblErr.Text = "ok"
                oRes = usuario              
     End If
 
     Return oRes
 
End Function

Public Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Login()
End Sub
Ok todo eso va en el vb del control y furula chido ya ke recupera el valor de los txt y puede hacer el logeo chido y asi lo implemente en la pagina:
Código:
       Dim oUsu As Object = Me.WebLogin1.Login()
       If Not oUsu Is Nothing Then
           Response.Write("si existe el usuario")
       Else
           Response.Write("mojojojo")
       End If
Ok hasta aki todo chido chido chido chidooo. Pero yo necesito saber a ke sistema se kiere logear (sin tener ke pedirle al usuario mediante un combo u otro control),
a ke sistema se kiere logear por lo tanto agrege una enumeracion, para ke el developer diga aaaaaaa a este sistema se va a logear, y lo ke hice fue agregar esto:

Código:
 Enum sisMexico
         SDSPM = 1
        SICEEF = 2
         SIEP = 3
        SIP = 4
         SISGESCOR = 5
    End Enum
y entonces ahora creo otra funcion pero esta parametrizada, ya ke recibe un valor de la enumeracion como parametro y entonces dicha funcion keda asi!!

Código:
 'login parametrizado con una variable tipo enumeracion 
     Public Function Login(ByVal Sistema As sisMexico) As Object

         Dim oRes As Object = Nothing

         If Sistema <> 0 Then

             Dim CLusuario As New CLUsuarios
            Dim sRes, sUsu, sPass As String
 
            sUsu = Me.usuario
             sPass = Me.contraseña
            sRes = CLusuario.GetLogUsu(Sistema, sUsu, sPass)
             If sRes <> "" Then
                LblErr.Text = sRes
                 oRes = Nothing
            Else
                 LblErr.Text = ""
                oRes = usuario
             End If
        End If
 
        Return oRes
 
    End Function
y ok ahora asi es como la implemento (la hice de 2 formas, y ninguna de las 2 keda chalessss).

1.- por medio de funcion parametrizada con una enumeracion, no furula porke en el vb del control de usuario recibe un cero y eso no debe de ser.

Código:
Protected Sub LoginButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
 
        Dim oUsu As Object = Me.WebLogin1.Login(sisMexico.sistemas.SICEEF)
         If Not oUsu Is Nothing Then
            Response.Write("no existe")
         Else
            Response.Write("mojojojo")
         End If

     End Sub

2.- y por medio de una propiedad  ke agrege en el vb del control de usuario,

    Private _sistema As Integer
     Public Property Sistema() As Integer
        Get
             Return _sistema
        End Get
         Set(ByVal value As Integer)
            _sistema = value
         End Set
    End Property
 
    'login en base a una propiedad, sin parametros
     Public Function Login() As Object

         Dim oRes As Object = Nothing

         If Sistema <> 0 Then

             Dim CLusuario As New CLUsuarios
            Dim sRes, sUsu, sPass As String
 
            sUsu = Me.usuario
             sPass = Me.contraseña
            sRes = CLusuario.GetLogUsu(sistema, sUsu, sPass)
             If sRes <> "" Then
                LblErr.Text = sRes
                 oRes = Nothing
            Else
                 LblErr.Text = ""
                oRes = usuario
             End If
        End If
 
        Return oRes
 
    End Function
pero tampoco furula en la implementacion porke la propiedad dice ke es cero y eso no debe de ser.

Código:
        WebLogin1.Sistema = sisMexico.sistemas.SICEEF
        Dim oUsu As Object = Me.WebLogin1.Login()
         If Not oUsu Is Nothing Then
            Response.Write("no existe")
         Else
            Response.Write("mojojojo")
         End If
Ahora la pregunta del millon es como carambas le paso ese valor a la funcion o la clase vb del control, porke siempre obtengo un 0 en la variabe sistema de aki abajo

CLusuario.GetLogUsu(sistema, sUsu, sPass)

!!!!!?

y pos no se me ocurre nadaaa, como ven alguna idea !!!!!?

gracias por leer el post, jejeje ,espero ke me haya dado a enteder !!!!!!

gracias por todo y adios

Última edición por krakxp; 09/11/2009 a las 11:14 Razón: se cambio de titulo!!!!