FoxPro/Visual FoxPro - Interacción entre formularios

   
Vista:

Interacción entre formularios

Publicado por jean (5 intervenciones) el 09/07/2015 22:55:39
Hola, tengo un formulario de login el cual quiero que me lleve a un menú con 3 botones, pero quiero que dependiendo del usuario, el botón 3(por ejemplo) sea enable=.f. .
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

Interacción entre formularios

Publicado por Fidel José (321 intervenciones) el 10/07/2015 15:33:41
Y cuál es tu problema?
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

Interacción entre formularios

Publicado por jean (5 intervenciones) el 10/07/2015 21:05:32
tengo un formulario de login el cual quiero que me lleve a un menú con 3 botones, pero quiero que dependiendo del usuario, el botón 3(por ejemplo) sea enabled=.f.

ejemplo solo el usuario "JosePerez" podra utilizar un boton llamado "Opciones" en el formulario del menú principal.
Es decir, solo el botón "Opciones" sera enabled si "JosePerez" ingresa al sistema, si ingresa otro usuario diferente a "JosePerez" el botón "Opciones" no sera enabled
.
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

Interacción entre formularios

Publicado por Fidel José (321 intervenciones) el 11/07/2015 18:10:09
Seguramente ya tienes una tabla para usuarios. En esa tabla asignarás un nivel o clave de permisos, que dependerá de la complejidad del asunto. Por ejemplo si tienes 3 niveles posibles: Usuario, Supervisor, Auditor, donde usuario será nivel= 1, supervisor nivel=2, Auditor nivel=3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
* Todos los botones deben estar Enabled=.f. al inicio
LOCAL oControl
FOR EACH oControl in this.controls
	IF ocontrol.baseClass = "Commandbutton"
		oControl.enabled=.F.
	ENDIF
ENDFOR
 
* Se ingresa un usuario en un textbox ( "txt_Usuario")
 
* Valid Event del textbox txt_Usuario
this.value=ALLTRIM(this.value)
IF NOT EMPTY(this.value)
	LOCAL lcUsuario, lnLevel
	lcUsuario = Upper(this.value)
	lnLevel = 0
	SELECT TablaUsuarios
	LOCATE FOR TRIM(USUARIO) == m.lcUsuario
	IF FOUND()
		lnLevel = TablaUsuarios.Nivel
	ENDIF
	WITH Thisform
		.cmdBoton1.Enabled = INLIST(m.lnLevel,1,2)		&& habilita para los niveles 1 y 2
		.CmdBoton2.Enabled= m.lnLevel > 1				&& habilita para los niveles 2 y 3
		.CmdBoton3.Enabled= m.lnLevel = 3				&& habilita solamente para nivel 3
	ENDWITH
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Interacción entre formularios

Publicado por jean (5 intervenciones) el 11/07/2015 19:14:27
Muchas gracias, excelente!
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

Interacción entre formularios

Publicado por Juan (100 intervenciones) el 11/07/2015 00:56:06
Buenas Jean

No sé que pensarán el resto de foreros, pero mi idea sería la siguiente. Si tienes una tabla con los usuarios, que imagino que sí, sino sería bastante complicado distinguir usuarios, te diría que pusieras un campo a mayores más en la tabla que se llame bottom3 (por ejemplo, es un nombre tonto, pero ese el que prefieras) y declararía como lógico. Entonces sólo los usuarios que tengan el campo a .T. les das acceso al botón 3 del formulario, y los que esté a .F. no. Claro eso implica que en el INIT del formulario tienes que comprobar el valor de ese campo.

Espero haberte ayudado.

Un saludo
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