Como Hacer un Logeo en Power Builder

Disculpa Experto por la molestia pero tengo un pequeño problemita ...
Estuve Creando una ventana de logeo a mi sistema y me sale todo bien pero lo que pasa es que tengo un pequeño problemita... Lo que pasa que cada vez que ingreso una clave incorrecta el mensaje de error (Datos Ingresados Incorrectos, intento Nº : " + string(cont), information!) me sale dos veces en pantalla ... Me podrías ayudar para que esto no suceda... aquí te dejo mi script ...
String ls_tipo
string ls_pass
gs_login = ddlb_usuario.text
ls_pass = sle_pass.text
ls_tipo=ddlb_tipouser.text
SELECT user_nombre, user_contraseña, user_tipo
INTO :gs_login, :ls_pass, :ls_tipo
FROM Usuario
WHERE user_nombre = :gs_login and user_contraseña =:ls_pass and user_tipo=:ls_tipo using sqlca;
if cont >= 3 then
    Messagebox("SALIR","Ud. Ha Hecho 3 Intentos, El Sistema se Cerrara...")
    halt
end if
choose case String(ddlb_tipouser.text)
        case 'ASISTENTE DEL JEFE DE PROYECTOS'
                if SQLCA.sqlcode = 0 then
                        messagebox("ACCESO","Bienvenido <<"+gs_login+">> al sistema ", question!)
                        open(w_principal_asistente_jefe_proyectos)
                        close(parent)
                        close(w_principal_jefe_proyectos)
                        band=0
                else
                    messagebox("ERROR","Datos Ingresados Incorrectos, intento Nº : " + string(cont), information!)
                    sle_pass.text=''
                    sle_pass.setfocus( )
                    cont++
                end if
      case 'JEFE DE PROYECTOS'
                if SQLCA.sqlcode = 0 then
                    messagebox("ACCESO","Bienvenido <<"+gs_login+">> al sistema ", question!)
                    open(w_principal_jefe_proyectos)
                    close(parent)
                    close(w_principal_asistente_jefe_proyectos)
                    band=0
                else
                    messagebox("ERROR","Datos Ingresados Incorrectos, intento Nº : " + string(cont), information!)
                    sle_pass.text=''
                    sle_pass.setfocus( )
                    cont ++
                end if
end choose
Gracias de Anatemano por la Ayuda

2 Respuestas

Respuesta
1
Si tu problema es que el mensaje sale dos veces..
De repente sea que primero te manda el mensaje de tu else. en el choose case. Y luego cuando lo vuelves a intentar te sale el mensaje de tu if preguntando por cont >= 3.
quisas te convenga colocar ese if cont >= 3. despues del end choose.
Y por cierto cont ++ debe ir antes de tu mensaje de error de datos incorrectos. Porque sino el mensaje mostrar intento Nro 0.. ¿?
Aquí te paso el código.. modificque una que otra linea.
///------------------------------------------------------------------
String ls_tipo
string ls_pass
gs_login = ddlb_usuario.text
ls_pass = sle_pass.text
ls_tipo=ddlb_tipouser.text
SELECT user_nombre, user_contraseña, user_tipo
INTO :gs_login, :ls_pass, :ls_tipo
FROM Usuario
WHERE user_nombre = :gs_login
and user_contraseña =:ls_pass
and user_tipo=:ls_tipo
using sqlca;
choose case String(ddlb_tipouser.text)
    case 'ASISTENTE DEL JEFE DE PROYECTOS'
        if SQLCA.sqlcode = 0 then
            messagebox("ACCESO","Bienvenido <<"+gs_login+">> al sistema ", question!)
            open(w_principal_asistente_jefe_proyectos)
            close(parent)
            close(w_principal_jefe_proyectos)
            band=0
        else
            cont++
            if cont < 3 then messagebox("ERROR","Datos Ingresados Incorrectos, intento Nº : " + string(cont), information!)
            sle_pass.text=''
            sle_pass.setfocus( )
        end if
    case 'JEFE DE PROYECTOS'
        if SQLCA.sqlcode = 0 then
            messagebox("ACCESO","Bienvenido <<"+gs_login+">> al sistema ", question!)
            open(w_principal_jefe_proyectos)
            close(parent)
            close(w_principal_asistente_jefe_proyectos)
            band=0
        else
            cont ++
            if cont < 3 then messagebox("ERROR","Datos Ingresados Incorrectos, intento Nº : " + string(cont), information!)
            sle_pass.text=''
            sle_pass.setfocus( )
        end if
end choose
if cont >= 3 then
Messagebox("SALIR","Ud. ha Hecho 3 Intentos, El Sistema se Cerrara...")
Halt
end if
Respuesta
1
Messagebox("ERROR","Datos Ingresados Incorrectos, intento Nº : " + string(cont), information!)
RETURN
Prueba con eso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas