FoxPro/Visual FoxPro - Formulario

 
Vista:

Formulario

Publicado por analia_allison (103 intervenciones) el 25/06/2005 00:56:35
Necesito que un formulario se ejecute solo la primera vez que se ejecuta el programa , ¿
como podria hacerse ?
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:Formulario

Publicado por Plinio (7841 intervenciones) el 25/06/2005 14:52:23
Quieres decir la primera vez que se ejecuta tu sistema donde un cliente?. Podrias tener una tabla con un campo, luego de ejecutarse grabas un valor.

Algo asi:
SELEC 0
USE tabla_control
SELECT tabla_control
GO TOP
IF tabla_control.ya_paso = .f. &&nunca ha pasado
DO FORM tupantalla
SELECT tabla_control
REPLACE ya_paso WITH .T.
ENDIF

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:Formulario

Publicado por analia_allison (103 intervenciones) el 25/06/2005 23:16:27
ya habia pensado en una solucion similar , pero como el formulario que tiene que aparecer una unica vez es para establecer una clave que permita el uso del programa.alguien podria agarrar y cambiarme el valor de tabla_control.ya_paso
y establecer su propia clave.Como podria evitarse esto ?
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:Formulario

Publicado por Plinio (7841 intervenciones) el 26/06/2005 18:50:10
Es solo una idea.
Tienes varias opciones:

1- Encriptar esa tabla o poner un nombre que pocas personas lo sepan.
2- Usar los procedimientos almacenados (si usas VFP7 o superior) para crear un codigo que no permita accesar esa tabla sin x permiso (esto es facil)
3- Crear un registo en Windows.
4- Crear un archivo despues de que haya pasado la pantalla.
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:Formulario

Publicado por analia_allison (103 intervenciones) el 27/06/2005 03:14:44
Te agradeceria que me explicaras como realizar la opcion 2-Usar los procedimientos almacenados.y la opcion 3-Crear un registro en windows.
ya que son temas totalmente nuevos para mi.
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:Formulario

Publicado por Plinio (7841 intervenciones) el 27/06/2005 03:51:46
1- Si usas VFP7 o superior, dentro del contenedor de la base de datos le das al boton derecho del mouse y aparecen todos los procedimientos que maneja VFP.
Yo uso el evento dbc_BeforeOpenTables (ver la ayuda) el cual recibe como parametro una tabla y si la ponemos a devolver .f. no se habre la tabla.
ALgo asi

***********
PROCEDURE dbc_BeforeOpenTable(cTableName)
IF ALLTRIM(UPPER(cTableName))=="MITABLA"
IF TYPE("mivariable") = "U" &&No existe esta variable como publica
RETURN .F. &&Al retornar .F. no deja abrir tabla
ENDIF
ENDIF
*********
La idea del codigo anterior es que la variable "mivariable" solo existe en tu sistema como publica, la persona que intente abrir la tabla tendrias que conocer de esa variable.

2- Si quieres trabajar con el registro de windows, chequea esto:
http://www.sopaul.com.ar/cursos/vfoxpro/vfp_api6.htm
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:Formulario

Publicado por analia_allison (103 intervenciones) el 27/06/2005 18:18:56
ya intente con el procedimiento que me diste , pero puedo seguir abriendo la tabla.Cual puede ser el error ?
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:Formulario

Publicado por Plinio (7841 intervenciones) el 28/06/2005 20:28:14
Intenta eliminando la variable, la logica es qeu si no esta en la memoria no te deja entrar.
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