Botón buscar foto
resulta que tengo un botón buscar foto quiero que se habilite el botón cuando todos los campos estén llenos para luego de ultimo ingresar la foto.
1 respuesta
Pues creo que habría un par de opciones, una es que en cada evento valid de los text llames a una función que te valide que todos los text estén llenos y que habilite el botón según sea el caso, la otra opción es que lo hagas en el evento clic del botón, en ese evento primero validar que todos los text estén llenos e incluso mostrar un mensaje indicando que falta llenar tal campo
He aplicado el siguiente código pero no me funciona.
Método Habilitar
IF !Empty(Thisform.TxtNie.Value)
Thisform.Command1.Enabled = .T.
else
endif
¿Estas seguro que va al método habilitar? Ubica messagebox antes de que llames al método y también dentro del método para saber que esta yendo allá y ver porque parte de la pregunta se esta yendo
if !empty(thisform.txtnie.value)
thisform.command1.enabled=.t.
messagebox('ingresa por el verdadero de la condición')
else
Messagebox('no entra a la validación')
Endif
Entonces eso es porque la validación no esta bien hecha, de pronto no te esta validando bien el empty, si es un campo carácter puedes usar la siguiente condición para saber si esta vacío o no
if len(alltrim(thisform.text1.value)) = 0
reemplaza esa linea en vez de if ! Empty(thisform.txtnie.value) e intenta nuevamente haber si te valida y me comentas
así tengo el código.
y es el mismo problema
IF LEN(Alltrim(Thisform.TxtNie.Value)) = 0 And;
LEN(Alltrim(Thisform.TxtNom.Value)) = 0 And;
LEN(Alltrim(Thisform.TxtApe.Value))= 0 And;
LEN(Alltrim(Thisform.TxtLug.Value))= 0 And;
LEN(Alltrim(Thisform.TxtNac.Value))= 0 And;
LEN(Alltrim(Thisform.edtDir.Value))= 0 And;
LEN(Alltrim(Thisform.CboSex.Value))= 0 And;
LEN(Alltrim(Thisform.TxtIng.Value))= 0 And;
LEN(Alltrim(Thisform.TxtTel.Value))= 0 And;
LEN(Alltrim(Thisform.TXTnen.Value))= 0 And;
LEN(Alltrim(Thisform.TxtAen.Value))= 0
Thisform.Command1.Enabled = .T.
messagebox('ingresa por el verdadero de la condición')
ELSE
messagebox('no entra a la validación')
ENDIF
Pero es que si te das cuenta si lo pones indicas que el botón de la foto solo se te habilite si todos los text están vacíos y no al contrario, todas las condiciones no deberían llevar = sino > para que así le indiques que te active el botón si todos los text están llenos
IF LEN(Alltrim(Thisform.TxtNie.Value)) > 0 And; LEN(Alltrim(Thisform.TxtNom.Value)) > 0 And; LEN(Alltrim(Thisform.TxtApe.Value)) > 0 And; LEN(Alltrim(Thisform.TxtLug.Value)) > 0 And; LEN(Alltrim(Thisform.TxtNac.Value)) > 0 And; LEN(Alltrim(Thisform.edtDir.Value)) > 0 And; LEN(Alltrim(Thisform.CboSex.Value)) > 0 And; LEN(Alltrim(Thisform.TxtIng.Value)) > 0 And; LEN(Alltrim(Thisform.TxtTel.Value)) > 0 And; LEN(Alltrim(Thisform.TXTnen.Value)) > 0 And; LEN(Alltrim(Thisform.TxtAen.Value)) > 0
Y en teoría ahí te debería dar el resultado que deseas
No pues ese código debe ir en el método habilitar y en el evento lostfocus debes llamar a ese método
Ah es que recién noto que en tu validación tienes un combo y los combos se validan de otra manera, reemplaza esta linea
LEN(Alltrim(Thisform. CboSex.Value)) > 0
Por esta
Thisform. Cbosex.listindex > 0
Txttel debe ser
Thisform.TxtTel.Value > 0
Las fechas son un poco mas complicadas, lo mejor que puedes hacer es asignarles en el evento init o en algún lado la fecha de hoy y te evitas esa validación
thisform.txtnac.value = date()
thisform.txting.value = date()
Ok entonces nos toca hacerlo poco a poco, en el método habilitar debes irlo haciendo por parte, primero valida un campo
IF LEN(Alltrim(Thisform.TxtNie.Value)) > 0
Thisform.Command1.Enabled = .T.
messagebox('ingresa por el verdadero de la condición')
ELSE
Messagebox('no entra a la validación')
ENDIF
Puedes enviarme el form ( el archivo .scx y .sct) al mail [email protected]
- Compartir respuesta