Problema con formulario Visual FoxPro

Hola Raven buenas noches tengo una duda espero me puedas ayudar. Tengo un formulario el cual cuenta con un cuadro de texto en donde se le pide al usuario que ingrese la cedula de identidad de un empleado, al ser ingresada la cedula de identidad y presionar Aceptar llamo a otro formulario.
¿Cómo haría para que ese nuevo formulario que llamo aparezcan los datos completos del empleado partiendo desde el numero de cedula? Me imagino que tendría que hacer una búsqueda pero la verdad no tengo conocimientos. Un abrazo fuerte.
Respuesta
1
Pues para llamar a otro formulario desde un evento (un click en un botón, tal como va tu caso) debes usar el comando DO FORM y especificar enter comillas el nombre del formulario. Este nombre es con el que esta guardado el form en tu carpeta del proyecto, cuya extensión es .SCX
Algo así:
**--Llamamos al form datos del empleado
DO FORM "detalleempleado.scx"
Y listo. Ahora... para llamar al form detalle y que te muestre los datos del empleado que cargas en el form de cedulas, debes hacer así:
Imagino que el numero de cedula corresponde a un dato en la tabla que usas para tu form detalle. Asumiré que es así! :) La lógica de esto es:
1.Llamar al form detalle
2.Pasar un PARAMETRO desde el form de cedula al form detalle. Que significa esto? Que el valor que deseas buscar en tu form detalle para mostrar el registro del empleado (numero de cedula) debe pasar del form 1 al form 2, es decir, cuando llamas (con DO FORM "detalleempleados.scx" ), debes pasar el valor de la cedula a ese 2do form. 
3. Al iniciar el form detalle, es decir, al disparar el evento INIT() del mismo, se debe recibir el parámetro enviado desde el form 1.
4. Se debe realizar la búsqueda del registro en la tabla que coincida con el numero de cedula. Una vez Encontrado, se muestran los datos completos del empleado.
Procederás así:
Supongamos que cargas el numero de cedula en un control text llamado Text1, tu form detalle se llama "empledeta.scx", dicho form tiene asociada una tabla llamada "detalle" en su entorno de datos con un campo llamado "numcedula" que es donde están los numero de cedula y es sobre ese campo que realizaremos la búsqueda. Va asi: 
1. En el evento Click() de tu botón, en el form 1, coloca un código como este (adecua tu código a tus condiciones actuales :) )
**--
**--En el text1 cargamos el numero de cedula
numerocedula = (THISFORM.Text1.Value)
**--Pasamos el dato de la cedula al form detalle con WITH
DO FORM [empledeta.scx] WITH numerocedula
**--
2. En el evento INIT() del form de detalle, debes poner un código como este:
**--Recibimos el parametro q contiene el numero de cedula
LPARAMETERS numerocedula
**--Realizamos la busqueda
LOCATE FOR detalle.numcedula = numerocedula
IF FOUND()
Thisform. Refresh
Endif
THISFORM. Refresh
**--
Y listo. Ahora guarda los cambios y ejecuta. Proba y cualquier cosa me avisas para ayudarte con muchísimo gusto! :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas