Sv Community El Salvador
Soporte y Tecnología => Programación => FOX => Mensaje iniciado por: Kevinharold en noviembre 05, 2009, 01:10:48 pm
-
Estoy utilizando una sentencia if con un operador OR pero no me da resultado lo estoy haciendo asi
IF THISFORM.TXtColor.Value = 'TAXI' .or. THISFORM.TXtColor.Value = 'A PIE' THEN
thisform.txtPrecio.Value = precioa - 1
ELSE
thisform.txtPrecio.Value = habitaciones.precio
ENDIF
estoy usando FOX9
Diganme si entoy mal en algo, porque al quitar el OR asi:
IF THISFORM.TXtColor.Value = 'TAXI' THEN
thisform.txtPrecio.Value = precioa - 1
ELSE
thisform.txtPrecio.Value = habitaciones.precio
ENDIF
si hace la resta a la variable por como esta en la parte anterios no
-
podria ser detalle de seteos pero si esta raro..
en lo personal buscaria hacer mas estricta las condiciones.
asi :
IF UPPER(ALLTRIM(THISFORM.TXtColor.Value)) == 'TAXI' .or. UPPER(ALLTRIM(THISFORM.TXtColor.Value)) == 'A PIE' THEN
thisform.txtPrecio.Value = precioa - 1
ELSE
thisform.txtPrecio.Value = habitaciones.precio
eNDIF
prueba y si no avisas..y le buscaremos.
-
podria ser detalle de seteos pero si esta raro..
en lo personal buscaria hacer mas estricta las condiciones.
asi :
IF UPPER(ALLTRIM(THISFORM.TXtColor.Value)) == 'TAXI' .or. UPPER(ALLTRIM(THISFORM.TXtColor.Value)) == 'A PIE' THEN
thisform.txtPrecio.Value = precioa - 1
ELSE
thisform.txtPrecio.Value = habitaciones.precio
eNDIF
prueba y si no avisas..y le buscaremos.
De igual forma probe el codigo q me diste y no valida 'A PIE' solo me valida taxi hasta copie el mismo valor que le envio a el txtColor para ver si lo tenia mal escrito y no lo valida
-
IF THISFORM.TXtColor.Value = 'TAXI' .or. THISFORM.TXtColor.Value = 'A PIE' THEN
thisform.txtPrecio.Value = precioa - 1
ELSE
thisform.txtPrecio.Value = habitaciones.precio
ENDIF
Primero, si te da un mensaje de error, ¿qué dice el mensaje?
Creo que esto podría servir:
IF UPPER(ALLTRIM(thisform.txtColor.Value)) = 'TAXI' OR UPPER(ALLTRIM(thisform.txtColor.Value)) = 'A PIE'
thisform.txtPrecio.Value = ALLTRIM(STR(precioa - 1))
ELSE
thisform.txtPrecio.Value = ALLTRIM(STR(habitaciones.precio))
ENDIF
-
Primero, si te da un mensaje de error, ¿qué dice el mensaje?
Creo que esto podría servir:
IF UPPER(ALLTRIM(thisform.txtColor.Value)) = 'TAXI' OR UPPER(ALLTRIM(thisform.txtColor.Value)) = 'A PIE'
thisform.txtPrecio.Value = ALLTRIM(STR(precioa - 1))
ELSE
thisform.txtPrecio.Value = ALLTRIM(STR(habitaciones.precio))
ENDIF
No me da ningun error simplemento no hace nada pro si el valor de txtColor cambia a TAXI si hace la resta
-
ok comienza a depurar
la mejor foma es
hace esto :
VARIABLE = alltrim(thisform.txtcolor.value)
messagebox(variable)
messagebox(vartype(variable))
IF UPPER(ALLTRIM(variable)) == 'TAXI' .or. UPPER(ALLTRIM(variable)) == 'A PIE' THEN
messagebox('ENTRO')
thisform.txtPrecio.Value = precioa - 1
ELSE
messagebox('NO ENTRO')
thisform.txtPrecio.Value = habitaciones.precio
eNDIF
OK Ejecuta todo eso y envias todo lo q te aparecio de formal textual por fa..
-
ok comienza a depurar
la mejor foma es
hace esto :
VARIABLE = alltrim(thisform.txtcolor.value)
messagebox(variable)
messagebox(vartype(variable))
IF UPPER(ALLTRIM(variable)) == 'TAXI' .or. UPPER(ALLTRIM(variable)) == 'A PIE' THEN
messagebox('ENTRO')
thisform.txtPrecio.Value = precioa - 1
ELSE
messagebox('NO ENTRO')
thisform.txtPrecio.Value = habitaciones.precio
eNDIF
OK Ejecuta todo eso y envias todo lo q te aparecio de formal textual por fa..
me da los siguientes mensages:
A PIE
C
ENTRO
-
me da los siguientes mensages:
A PIE
C
ENTRO
Como puedes ver si entro, osea la condicion logica si se cumplio.
ahi ya seria de ver el detalle del txtprecio
me avisas ..como vas.
-
Pero sabes una cosa al cambiar de oreden primero 'A PIE' y luego 'TAXI' si me funciona enviando con A PIE pero con TAXI nop :dumb:
-
nunca he tocado fox, pero por logica, si dice que nunca examina la segunda igualacion, puede ser que se pierda a la hora de las comprobaciones, asi que quizas esperaria esto:
IF (UPPER(ALLTRIM(variable)) == 'TAXI') .or. (UPPER(ALLTRIM(variable)) == 'A PIE') THEN
en fox ¿no podes reemplazar el OR por ||=, para probar.....