Power Builder - acceso a ventanas por opcion??

 
Vista:

acceso a ventanas por opcion??

Publicado por martin (97 intervenciones) el 21/07/2003 23:19:42
Hola a Todos los Foristas
Bueno ya finalize un modulo, y me han pedido seguridad de acceso a las ventanas, y mas especificos por boton, es decir, por ejemplo entro al menu presupuestos, en ella se encuentra botones como insertar, grabar, eliminar, anular, etc, si alguien de Uds tienen experiencia en estos tipos de aplicaciones les agradezco por su gentil colaboracion, acepto cualquier sugerencia,
lo he pensado restringir por menus, pero para el caso de botones no se como hacerlo.
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:acceso a ventanas por opcion?? (1)

Publicado por Oscar (1178 intervenciones) el 22/07/2003 05:29:13
El ejemplo, considera que en una tabla llamada Empleado, existe un campo llamado nivel (tipo integer). Dependiendo del nivel, los botones estarán activados o nó:
- El de nivel 1, puede Leer, Insertar y Eliminar
- El de nivel 2, puede sólo Leer e Insertar
- El de nivel 3, puede sólo Leer.

1. Creas una tabla, llamada Empleado, con los siguientes campos:
nivel (integer) //Clave principal
nombre(varchar 20)
usuario (varchar 15)
clave (varchar 10)
2. Creas una pequeña ventana que pide el nombre de usuario y password, con los siguientes controles:
sle_usuario
sle_password
cb_Aceptar.
Y declaras dos variables globales:
String gs_usuario
Integer gi_nivel

//(CONTINUA...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:acceso a ventanas por opcion?? (2)

Publicado por Oscar (1178 intervenciones) el 22/07/2003 05:31:14
//(CONTINUACION)
3. El script del botón cb_Aceptar es:
--------------------------------------
//Definiendo variables
String ls_clave
Integer li_valor
gs_usuario=sle_usuario.text

//Consultando si existe el usuario,
//la función Count(*) obtendrá el número de usuarios
// identificados como gs_usuario, asignando el número
//resultante a la variable li_valor.
Select Count(*) Into:li_valor From Empleado
Where usuario=:gs_usuario;

If li_valor=0 then
MessageBox("Aviso", "El usuario no existe", Exclamation!, OK!)
return
End If

//Comprobando que el password ingresado es el correcto.
Select clave Into:ls_clave From Empleado
Where usuario=:gs_usuario;
If ls_clave<>sle_password.text then
MessageBox("Aviso","La clave es incorrecta", Exclamation!, OK!)
return
End If

//Averiguamos el nivel
Select nivel into:gi_nivel From Empleado
Where usuario=:gs_usuario;

Open(w_principal)
-----------------------------------------
//(CONTINUA...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:acceso a ventanas por opcion?? (3)

Publicado por Oscar (1178 intervenciones) el 22/07/2003 05:34:13
//(EPILOGO)
4. La ventana principal (w_principal), tiene los siguientes botones:
cb_Leer
cb_Insertar
cb_Eliminar

5. Script del evento open de la ventana w_principal
---------------------------------
Choose Case gi_nivel
Case 1
cb_Leer.Enabled=TRUE
cb_Insertar.Enabled=TRUE
cb_Eliminar.Enabled=TRUE

Case 2
cb_Leer.Enabled=TRUE
cb_Insertar.Enabled=TRUE
cb_Eliminar.Enabled=FALSE

Case 3
cb_Leer.Enabled=TRUE
cb_Insertar.Enabled=FALSE
cb_Eliminar.Enabled=FALSE
End Choose
-------------------------------
Aclaración extra: El password es sensible a mayúsculas.
Me dices, si era ésto lo que estabas buscando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

(Olvidé un pequeño detalle...)

Publicado por Oscar (1178 intervenciones) el 22/07/2003 13:54:46
En realidad, olvidé dos :

El primero, al crear tu tabla Empleado, la clave principal debe ir en el campo usuario:
nivel (integer)
nombre(varchar 20)
usuario (varchar 15) //Clave principal
clave (varchar 10)

De esta manera no se repite el usuario y podemos asignar un mismo nivel a varios empleados.

El segundo, se refiere a algunas preguntas, sólo por curiosidad. Coméntanos algunos detalles de tu curso de PB. Por ejemplo, donde se realiza (ya que acá en Sucre-Bolivia, no existen esos cursos y la bibliografía de PB, escasea terriblemente); que programa usan para la BD, y si es que en dicho curso les proporcionan un texto guia, se basan en algún libro o les proporcionan alguna bibliografía.

Un saludo desde Sucre-Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Oscar

Publicado por martin (97 intervenciones) el 22/07/2003 16:30:13
Gracias Hermano, muy buenas tus sugerencias, con estos codigos me ha dado ideas el cual los voy a probar y te paso la voz si algun problema ocurre
chau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:acceso a ventanas por opcion?? (2)

Publicado por Carlos (9 intervenciones) el 27/07/2003 18:37:50
Una sugerencia, es de que definas perfiles dependiendo de los usuarios y entonces por ese lado puedes hacer visible o invisible un boton o un campo dependiendo del perfil del usuario.

El perfil lo puedes tener en un campo tabla en el cual tienes todos los usuarios y al ingresar consultar esta, y ponerlo en una variable global y podras controlar toda la aplicacion.

Ojala te sirva de algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar