Clipper/FiveWin - Mi five no sabe sumar

 
Vista:

Mi five no sabe sumar

Publicado por Gabriel Martin (41 intervenciones) el 19/11/2007 10:28:23
Muy buenas a todos:
Si no os riais del titulo, es cierto. O por lo menos yo no encuentro la logica. Mirar el siguiente trozo de código:

LOCAL nFila:=1
DO WHILE
....
.....

nSaldo+=aVarExt[nFila,5]-aVarExt[nFila,6]
IF nSaldo=0
EXIT
ELSE
nFila+=1
ENDIF
ENDDO

las variables se cargaran de la siguiente manera: (Estan verificado los datos que cargan)
aVarExt[1,5]=1140.17 aVarExt[1,6]=0
aVarExt[2,5]=0 aVarExt[2,6]=162.30
aVarExt[3,5]=0 aVarExt[3,6]=1024.59
aVarExt[4,5]=0 aVarExt[4,6]=-46.72

en principio el resultado despues de calcular los valores para nFila=4 sería 0,
1140.17 - 0 + 0 +162.30 + 0 - 1024.59 + 0 - (46.72)

pero no. Si en ese momento haces un say de nSaldo y te indica que su valor es"-0", con lo que el condicional no actua. ¿Como se soluciona eso?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mi five no sabe sumar

Publicado por Adalberto Baqueros (213 intervenciones) el 19/11/2007 13:36:18
Hola Gabriel.

Si no te entendí bien, disculpame, pero ensayaré esta solución, si no es así dimelo, volveré a leer tu mensaje en intentaré otra solución

Para que una variable, de cero cuando es cero hago así:

nSaldo:= VAL( STR( nSaldo , 12 , 0 ) )

Luego si preguntas:

IF EMPTY( nSaldo )
// Vendrá por aquí si es cero

Espero que te ayude.

Saludos, desde Santa Cruz de la Sierra - Bolivia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mi five no sabe sumar

Publicado por Adalberto Baqueros (213 intervenciones) el 19/11/2007 14:32:23
Gabriel,

Probé tu código y el resultado en la variable nSaldo es 0, mirá tu código:

LOCAL nFila:=1 , nSaldo := 0
DECLARE aVarExt[ 4 , 2 ]
//
aVarExt[1,1] := 1140.17 ; aVarExt[1,2] := 0
aVarExt[2,1] := 0 ; aVarExt[2,2] := 162.30
aVarExt[3,1] := 0 ; aVarExt[3,2] := 1024.59
aVarExt[4,1] := 0 ; aVarExt[4,2] := -46.72
WHILE ( nFila < 5 )
nSaldo += ( aVarExt[nFila,1] - aVarExt[nFila,2] )
IF nSaldo = 0
EXIT
ELSE
nFila += 1
ENDIF
ENDDO
nSaldo := VAL( STR( nSaldo , 12 , 0 ) )
IF EMPTY( nSaldo )
? 'nSaldo es: 0'
ELSE
? 'nSaldo es: ' , nSaldo
ENDIF
WAIT
RETURN NIL

Sólo le cambie las columnas al arreglo y claro lo declaré, para tu considearción ve este otro código que hace lo mismo:

LOCA nI , nSaldo := 0
DECLARE aVarExt[ 4 , 2 ]
//
aVarExt[1,1] := 1140.17 ; aVarExt[1,2] := 0
aVarExt[2,1] := 0 ; aVarExt[2,2] := 162.30
aVarExt[3,1] := 0 ; aVarExt[3,2] := 1024.59
aVarExt[4,1] := 0 ; aVarExt[4,2] := -46.72
FOR nI := 1 TO 4
nSaldo += ( aVarExt[ nI , 1 ] - aVarExt[ nI , 2] )
NEXT nI
nSaldo := VAL( STR( nSaldo , 12 , 0 ) )
IF EMPTY( nSaldo )
? 'nSaldo es: 0'
ELSE
? 'nSaldo es: ' , nSaldo
ENDIF
WAIT
RETURN NIL

Deseo que te vaya bien.

Saludos, desde Santa Cruz de la Sierra - Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mi five no sabe sumar

Publicado por Gabriel Martin (41 intervenciones) el 19/11/2007 16:35:12
Pues muchisimas gracias Adalberto Baqueros. Al parecer la solucion esta en el VAL(STR(..))

No sabes que peso me quitaste de encima.

Mil gracias otra vez.

Saludos Gabriel Martin, desde Mataró España
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar