Quiero ingresar un nuevo libroxproveedor en Visual Fox Pro

Saludos amigo; necesito tu ayuda en el siguiente problema: lo que yo quiero hacer es ingresar un nuevo libroxproveedor, los primeros campos a llenar son un campo llamado txtid_carrera(especificas a que carrera corresponde el libro que vas a introducir) y otro llamado txtNombre nuestro metodo para llenar estos dos campo es el siguiente, si presionas enter y luego hay un "*" en el txtid_carrera abre una tabla llamada carreras y extrae el id_carrera(que es el codigo de la carrera), nombre(nombre de la carrera) y lo almaceno en un cursor llamado bcarr luego abro esta vista con browse y seleciono en la vista el registro que necesito, presiono escape y automaticamente agrego al txtid_carrera.controlsourse="bcarr.id_carrera" y luego a hago lo mismo con el txtnombre.controlsource="bcarr.nombre" asi extraigo el id de la carrera y su nombre, hasta ahi todo bien... Ahora cuando yo quiero insertar otro "*" en el txtid_carrera dicho control no me acepta * ni caracteres osea que me desabilita la posibilidad de introducir caracteres y en cambio me lo activa para valores numericos, cabe destacar que el controlsource de los dos text ya los he limpiado y solo almacenan el valor y mas no asi su fuente... Al querer hacer otra busqueda ya no la puedo hacer puesto que ya no puedo introducir el "*"... COMO PUEDO YO HABILITAR EL TEXT PARA HACER BUSQUEDAS ILIMINADAS PUESTO QUE ASI SOLO ME PERMITE HACER UNA....
He aqui el codigo del evento KeyPress del boton txtid_carreras
IF nKeyCode = 13 AND thisform.txtId_carrera.Value ="*" then
SELECT id_carrera, nombre FROM carreras INTO CURSOR bcarr
BROWSE
thisform.txtId_carrera.ControlSource="bcarr.id_carrera"
thisform.text1.ControlSource="bcarr.nombre"
thisform.Refresh
thisform.txtId_carrera.ControlSource=""
thisform.text1.ControlSource=""
thisform.txtCodigo_a.SetFocus
Thisform.Refresh
Endif

1 Respuesta

Respuesta
1
Supongo el tipo de dato del campo "Id_Carrera" es numérico, si es así, entonces el problema es que cuando tu le asignas el valor del Cursor al Cuadro de Texto, éste último ya solo acepta valores de tipo numérico y por tanto el "*" ya no es válido.
Si quieres usar ese método, lo que debes hacer es reinicializar el Cuadro de Texto a tipo carácter.
...
thisform.txtId_carrera.ControlSource="bcarr.id_carrera"
thisform.text1.ControlSource="bcarr.nombre"
thisform.Refresh
thisform.txtId_carrera.ControlSource=""
thisform.text1.ControlSource=""
thisform.txtCodigo_a.SetFocus
ThisForm.txtId_Carrera.Value = ""
...
** Ahora que si no quieres que pierda su valor
ThiSForm.txtId_Carrera.Value = LTRIM(STR(ThisForm.txtId_Carrera.Value))
Eso es lo que entiendo de tu pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas