Autor Tema: Operadores Logicos  (Leído 7260 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Kevinharold

  • Sv Full Member
  • *
  • Mensajes: 551
  • Imaginate lo que viene....!!!
    • Untercio Software ®
Operadores Logicos
« : 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

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re:Operadores Logicos
« Respuesta #1 : noviembre 05, 2009, 01:33:10 pm »
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.



-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado Kevinharold

  • Sv Full Member
  • *
  • Mensajes: 551
  • Imaginate lo que viene....!!!
    • Untercio Software ®
Re:Operadores Logicos
« Respuesta #2 : noviembre 05, 2009, 01:35:58 pm »
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

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re:Operadores Logicos
« Respuesta #3 : noviembre 05, 2009, 01:37:39 pm »
      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
« Última Modificación: noviembre 05, 2009, 01:39:14 pm por gilanrodas »

Desconectado Kevinharold

  • Sv Full Member
  • *
  • Mensajes: 551
  • Imaginate lo que viene....!!!
    • Untercio Software ®
Re:Operadores Logicos
« Respuesta #4 : noviembre 05, 2009, 02:09:01 pm »
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

Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re:Operadores Logicos
« Respuesta #5 : noviembre 05, 2009, 02:16:33 pm »
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..
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado Kevinharold

  • Sv Full Member
  • *
  • Mensajes: 551
  • Imaginate lo que viene....!!!
    • Untercio Software ®
Re:Operadores Logicos
« Respuesta #6 : noviembre 05, 2009, 06:21:37 pm »
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


Desconectado rcguillen

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 2320
Re:Operadores Logicos
« Respuesta #7 : noviembre 06, 2009, 08:04:00 am »
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.
-:Rcguillen-NoMercy:-
-:Es inutil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos:-

Desconectado Kevinharold

  • Sv Full Member
  • *
  • Mensajes: 551
  • Imaginate lo que viene....!!!
    • Untercio Software ®
Re:Operadores Logicos
« Respuesta #8 : noviembre 06, 2009, 08:55:04 am »
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:

Desconectado Camus de Acuario

  • The Communiter-
  • *
  • Mensajes: 8455
  • Ōrora Ekusukyūshon!
Re:Operadores Logicos
« Respuesta #9 : noviembre 06, 2009, 09:24:49 am »
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.....