Clarion - Problemas al Sumar

 
Vista:

Problemas al Sumar

Publicado por Marco Torres (108 intervenciones) el 04/01/2008 14:34:37
Tengo un informe anual de ventas en el cual estan las columnas por meses, enero, febrero,.., diciembre y las filas por poducto, el problema es que tengo un campo loc:total de tipo long (14) que es la suma total de los movimientos del año que tuvo el producto, pasa lo siguiente, cuando llega a sumar seis meses en adelante comienza a salir negativo y no se porque, ya que revise varias veces el programa y no encuentro nada raro y es solo en dos filas que el total aproximado es de 3 mil millones, que podria ser?
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
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

RE:Problemas al Sumar

Publicado por Marcelo Madelón (319 intervenciones) el 04/01/2008 16:47:50
Hola Marcos, No tendría que darte error. Imagino que a la suma la haces por código en:
Take Record y sería algo asi:

loc:total += PRO:IMPORTE

No se si haces un corte por mes y un total general.
De todos modos en un Report común podes hacerlo sin muchas dificultades

En Bands seleccioná

SORROUNDING BREAK y en variable poné el campo mes
GROUPHEADER Acá podes poner un encabezado VENTAS MES .....
DETAIL Este sería el detalle FECHA COMPROBANTE IMPORTE...
GROUPFOOTER Acá totalizas TOTAL VENTAS: IMPORTE

Luego vas a STRING PROPERTIES del campo Importe y en TOTAL TYPE indicás que sume y en RESET le indicás que se inicie con el cambio de BREAK o según lo nesecites, de esta manera Clarion se encarga de todo.
Avisame si te sirve sinó vemos como podemos solucionarlo.

Marcelo Madelón
Venado Tuerto - Argentina
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:Problemas al Sumar

Publicado por Marco Torres (108 intervenciones) el 07/01/2008 14:11:44
El movimiento mes por mes ya lo tengo en un queue, en le eporte lo unico que hago es la suma total, y ahi es donde me da el error, porque controlando mes por mes esta todo bien, el formato de mi informe es algo asi:

Producto Enero, Febrero,Marzo,Abril,Mayo,Junio,....,Diciembre, Total

Yo totalizo por filas, por un lado y por supuesto tambien por columnas, pero al totalizar por filas es que me da ese inconveniente
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
sin imagen de perfil

RE:Problemas al Sumar

Publicado por Ing. Isaac Flores (54 intervenciones) el 04/01/2008 19:50:03
Hola Marco, necesitas checar el rango del tipo de dato long
copiado del manual de clarion 6, es el siguiente. por lo que estás fuera de dicho rango con el valor de 3,000,000,000 millones que mencionas.

Range: -2,147,483,648 to 2,147,483,647

utiliza un UNSIGNED LONG, o mejor todavía, cambialo por un DECIMAL(13,2). si ya tienes cantidades tan grandes, es recomendable utilizar un digito más en los enteros para evitar estos problemas y quedar sobrado.
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:Problemas al Sumar

Publicado por Marco Torres (108 intervenciones) el 17/01/2008 14:59:42
Ya cambie mi total por decimal(13,2) y me sigue saliendo negativo
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:Problemas al Sumar

Publicado por Jose Luis (126 intervenciones) el 17/01/2008 17:03:23
Supongo q tienes un queue mas o menos asi

Productos Queue
Productos:Nombre STRING(40)
Productos:Enero DECIMAL(13,2)
Productos:Febrero DECIMAL(13,2)
Productos:Marzo DECIMAL(10,2)
......
Productos:Diciembre DECIMAL(10,2)
END

y q tu procesas el archivo y guardas en la queue las sumas de los meses y al final lo imprimes asi:

!! inicializar totales
Loc:TEnero = 0
Loc:TFebrero = 0
Loc:TMarzo = 0
..... Hasta diciembre
LOOP n# = 1 TO RECORDS(Productos)
GET(Productos, n#)
PRINT(RPT:Detalle)
Loc:TEnero += Productos:Enero
Loc:TFebrero += Productos:Febrero
Loc:TMarzo += Productos:Marzo
... Hasta Diciembre
END
!! imprimir el total
PRINT(RPT:Totales)

Si es asi pues no debes tener mayores problemas excepto q tus datos vengan mal desde el queue ya checaste eso?
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:Problemas al Sumar

Publicado por Joan V (69 intervenciones) el 11/11/2009 12:06:09
Hola amigos, por si le sirve a alguien

cuando se usa en alguna parte de un calculo alguna variable tipo LONG que está limitada a +2147483647 de valor maximo si a este numero le sumas +1 el resulatado es negativo y vale -2147483648

Saludos Joan V
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