FoxPro/Visual FoxPro - Bloquear formulario(urgente!!!)

 
Vista:

Bloquear formulario(urgente!!!)

Publicado por Nayo (8 intervenciones) el 04/11/2003 20:37:57
Como puedo bloquera un formulario???? Lo que quiero hacer es que dos usuarios no puedan abrir el mismo formulario mientras uno ya lo tenga abierto....... Yo no se mucho de visual fox pro e intente hacerlo por mi propia cuenta lo que hice fue crear una tabla con un solo valor asi para que el formulario dependiera del estado de ese valor para abrirse o no, si me funciono el problema es que para que me funcione yo tengo que agregar el codigo en el evento Activate....... primero lo puse en el evento Load pero tal evento no me respeta comandos que yo necesito como thisform.release entonces me vi forzado a ponerlo en el activate espero y me puedan ayudar....de antemano muchas 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:Bloquear formulario(urgente!!!)

Publicado por KRACKER (22 intervenciones) el 04/11/2003 21:26:43
bien, lo podes hacer asi: Cuando un usuario entre al sistema guradas la guarda la contrase en variable de memoria si esta activo .t. campo logico. otro campo que indicque el nombre del formulario como logico tambien, cuando uno de los usuarios entre a ese formulario en la red. podria ser seek clave esta activo en la tabla de usuarios. replce xform. with .t.
en ese mismo momento otro usuarios si quiere entrar. antes del do form. selec usuarios
condicion. que si un usuario esta con el campo xform activo.
manda wait window "asfasdfsad" timout
o
messagebox("no puede entrar en este momento, opcion ocupada por otro usuario")
como me imagino que solo lo queres hacer en un form. yo lo haria asi.
si otro lo ejecuta
espero te sirva
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:Bloquear formulario(urgente!!!)

Publicado por KRACKER (4 intervenciones) el 04/11/2003 21:48:53
Esta funcion permite controlar la apertura de formularios en una sola instancia
tomada de portal fox.com
****************
Function OpenForm
LPARAMETER cForm
LOCAL i, lOk

lOk = .F.

* recorro todos los forms abiertos...

FOR i = 1 TO _SCREEN.FormCount
* consulto por la propiedad \'cFormName\'...
IF PEMSTATUS(_SCREEN.Forms[m.i],\'cFormName\',5)
IF _SCREEN.Forms[m.i].cFormName == cForm
_SCREEN.Forms[m.i].Show()
lOk = .T.
ENDIF
ENDIF
NEXT i
IF !lOk
DO FORM (cForm) NAME _Form NOSHOW
* si no tiene la propiedad \'cFormName\' la creo
IF !PEMSTATUS(_SCREEN.Forms[m.i],\'cFormName\',5)
_SCREEN.Forms[m.i].AddProperty(\'cFormName\')
ENDIF
_Form.cFormName = cForm
_Form.Show()
ENDIF
*******************************

Y SI UTILIZO EL COMANDO WEXIST()?

If Wexist(\"MiForm\")
messagebox(\"Formulario ya ejecutado\")
else
do form Mi Form
endif

adios otro forma de hacerlo cual de todas te interesa y hay mas
te recomiendo que entras a portal fox.com ahi hay de todo muchas rutinas que ya estan hechas. y no veo el porque no Utilizarlas..
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