Ir al contenido


Foto

[RESUELTO] Funcion SUM en Quickreport


  • Por favor identifícate para responder
30 respuestas en este tema

#1 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 07 enero 2010 - 07:38

Tengo varios informes en quickreport que utilizo desde un programa que esta hecho en delphi (el programa no es mio y no tengo el código fuente  :( ). Estos informes llevaban varios años funcionando bien, haciendo lo que se supone que tenían que hacer, es mas, si los pruebo en otro equipo funcionan bien, pero el problema es que desde hace unos meses, todos los informes que usan la función SUM obtienen el valor cero como resultado si se utilizan en ese equipo.

¿A alguien le paso algo parecido?
  • 0

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 enero 2010 - 07:39

has revisado la configuración regional??  el asunto del separador de miles y el separador decimal?

Cuando tengo problemas con los números es lo primero que reviso.
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 enero 2010 - 11:05

Vaya, primera vez que escucho algo como lo que mencionas amigo seoane y como bien dice edualcol perdon eduarcol :D :D :D, habrá que ir sobre el formato numérico.

Otra cosa que se me ocurre, pudiese ser que algún registro tenga un valor nulo y por ahi venga el error.

Salud OS
  • 0

#4 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 enero 2010 - 11:57

Vaya, primera vez que escucho algo como lo que mencionas amigo seoane y como bien dice edualcol perdon eduarcol :D :D :D, habrá que ir sobre el formato numérico.

Otra cosa que se me ocurre, pudiese ser que algún registro tenga un valor nulo y por ahi venga el error.

Salud OS


Lo primero que pensé fue en el null pero como dice que en el resto de las pc trabaja bien lo descarte de primero.
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 enero 2010 - 12:10

Cierto amigo Eduardo, "pequeño" detalle que no tome en cuenta. :$

Salud OS
  • 0

#6 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 enero 2010 - 12:19

Cierto amigo Eduardo, "pequeño" detalle que no tome en cuenta. :$

Salud OS


que no vuelva ocurrir la próxima vez, porque para escribir eso mejor no escribas nada jajaja
  • 0

#7 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 07 enero 2010 - 12:30

Hola
Se me ocurre que al ser un programa de tercero puede que la conexión a la BD y la Tabla respectivamente la haga de forma que no encuentre los valores, por eso aparecerían en cero.
El factor SUM no es influyente de la configuración regional, en tal caso envía un error de (invalid float ......).
Para mi es un problema con la conexión a la tabla de donde obtiene los datos ya que no hay errores.
Saludos



  • 0

#8 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 07 enero 2010 - 03:36

Aun no resolví el problema, pero respondo para que veáis que no me olvide del hilo :D

Y de paso doy algún dato mas. La base esta bien y la consulta sql también, ya que si la ejecuto en un visor de paradox me devuelve una tabla con los datos correctos.

El problema viene del report. Si quito la función SUM se me muestran datos en el report (no la suma por supuesto) pero algo sale, sin embargo cuando vuelvo a colocar la función SUM todo se vuelve a poner a cero.

Este problema me va traer dolores de cabeza. Lo único que se me ocurre es formatear todo y empezar desde cero, pero el equipo donde esta instalado es un servidor proliant con windows server 2003 ... y cualquiera le mete mano a ese bicho  :$


  • 0

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 enero 2010 - 04:10

Lo único que se me ocurre es formatear todo y empezar desde cero


Vamos amigo seoane, no seas tan radical :D :D :D

Voy a instalar una pequeña aplicación en una máquina con Windows Server 2003 que tengo en mi casa y probamos a ver si encontramos el problema.

Be right back!!!!

Salud OS
  • 0

#10 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 enero 2010 - 04:44

Podrias colocar como queda la sentencia sum?? o es solo

SUM(db.montototal)???
  • 0

#11 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 07 enero 2010 - 04:51

Podrías colocar como queda la sentencia sum??


Pues la sentencia SQL devuelve una tabla como esta:


delphi
  1. Codigo Stock1 Stock2
  2. 1        1.5      1.3   
  3. 1        2.3      4.6
  4. 2        1.2      1.9
  5. 3        4.1      0.3   



Y en el report agrupo por el Código y la expresión que utilizo es algo asi: SUM(Stock1)
  • 0

#12 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 enero 2010 - 04:53

insisto en la configuración regional, ya revisaste??
  • 0

#13 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 07 enero 2010 - 04:59

insisto en la configuración regional, ya revisaste??

Yo también pensé en la configuración regional, pero no pude probarlo esta tarde y ahora mismo aquí es medianoche así que tendré que esperar hasta mañana  :D . En cuanto compruebe la configuración regional te digo algo.
  • 0

#14 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 enero 2010 - 05:07

revisalo tanto en la de windows como en la del BDE si haces la conexión por allí, deben estar iguales.
  • 0

#15 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 18 enero 2010 - 09:56

Pues no la configuración regional tampoco es  :

De todas formas he revisado mejor todos los informes y creo que mis primeras conclusiones fueron algo precipitadas. Lo primero es que hay un informe que también utiliza la funcion SUM y si que funciona y ademas me he traído uno de los informes a mi ordenador y tampoco va. Ya me estoy volviendo loco.

Y como dice que multitud de ojos ven mas que dos, aqui os dejo los datos del informe que no va.

La consulta es así:


sql
  1. SELECT IdArticulo,
  2.   Stock AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  3. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  4. WHERE IdAlmacen = 99
  5.  
  6. UNION
  7.  
  8. SELECT IdArticulo,
  9.   0 AS Alm1, Stock AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  10. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  11. WHERE IdAlmacen = 100
  12.  
  13. UNION
  14.  
  15. SELECT IdArticulo,
  16.   0 AS Alm1, 0 AS Alm2, Stock AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  17. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  18. WHERE IdAlmacen = 101
  19.  
  20. UNION
  21.  
  22. SELECT IdArticulo,
  23.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, Stock AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  24. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  25. WHERE IdAlmacen = 102
  26.  
  27. UNION
  28.  
  29. SELECT IdArticulo,
  30.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, Stock AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  31. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  32. WHERE IdAlmacen = 103
  33.  
  34. UNION
  35.  
  36. SELECT IdArticulo,
  37.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, Stock AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  38. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  39. WHERE IdAlmacen = 104
  40.  
  41. UNION
  42.  
  43. SELECT IdArticulo,
  44.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, Stock AS Alm7, 0 AS Alm8, 0 AS Alm9, 0 AS Alm10
  45. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  46. WHERE IdAlmacen = 105
  47.  
  48. UNION
  49.  
  50. SELECT IdArticulo,
  51.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, Stock AS Alm8, 0 AS Alm9, 0 AS Alm10
  52. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  53. WHERE IdAlmacen = 106
  54.  
  55. UNION
  56.  
  57. SELECT IdArticulo,
  58.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, Stock AS Alm9, 0 AS Alm10
  59. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  60. WHERE IdAlmacen = 107
  61.  
  62. UNION
  63.  
  64. SELECT IdArticulo,
  65.   0 AS Alm1, 0 AS Alm2, 0 AS Alm3, 0 AS Alm4, 0 AS Alm5, 0 AS Alm6, 0 AS Alm7, 0 AS Alm8, 0 AS Alm9, Stock AS Alm10
  66. FROM ":BackOffice:ArtStocksAlmacenes.DB"
  67. WHERE IdAlmacen = 108
  68.  
  69. ORDER BY IdArticulo

 

Esta consulta nos devuelve para cada articulo varias lineas, una por almacén, en que aparece el stock.  En cada linea todos los stocks salen a cero menos el del almacén que corresponde. La idea que se le ocurrió al genio que hizo el informe fue la siguiente


delphi
  1. ------------------
  2. Cabecera de grupo
  3. ------------------
  4. ------------------
  5. Pie de grupo
  6.   Articulo SUM(Alm1) SUM(Alm2) .....
  7. ------------------



No esta mal y se supone que debería de funcionar, pero sale todo a cero. ¿Se me esta escapando algo?

Y por si no encuentro donde esta el fallo, ¿alguien sabe como puedo modificar la consulta sql para que ya devuelva todo sumado?
  • 0

#16 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 enero 2010 - 10:17

por lo que veo en cada consulta veo que Stock lo llaman de forma distinta, no sé tiene algo que ver, o sea, en una lo llama alm8 en otra alm10 y así sucesivamente.

Saludos.
  • 0

#17 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 18 enero 2010 - 10:47

¿ No estarás trabajando con la base de datos de desarrollo en lugar de la de producción ?

Digo, a mi me paso una vez y vaya que casi me doy un tiro porque nada me coincidia :$

Salud OS
  • 0

#18 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 18 enero 2010 - 10:51

por lo que veo en cada consulta veo que Stock lo llaman de forma distinta, no sé tiene algo que ver, o sea, en una lo llama alm8 en otra alm10 y así sucesivamente.

Esa es la idea, en la tabla original hay una entrada por cada articulo y almacén. Al hacer los UNION se intenta crear una sola tabla en el que cada linea salgan todos los almacenes juntos. La consulta no creo que este mal, de hecho si la ejecuto en un visor de paradox me devuelve los datos correctos. Eso no quiere decir que la consulta no se pueda mejorar ...

¿ No estarás trabajando con la base de datos de desarrollo en lugar de la de producción ?

No creo, porque estoy haciendo los cambios en el ordenador del cliente, y solo hay una base, la buena ... ¿quien dijo miedo?  :D


  • 0

#19 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 18 enero 2010 - 11:00

Si dices que en paradox va bien entonces es el reporte, lo primero que me gustaría saber es si en el reporte se imprimen los detalles.  O sea tu los ves cuando se ejecuta el reporte?
  • 0

#20 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 18 enero 2010 - 11:03

No creo, porque estoy haciendo los cambios en el ordenador del cliente, y solo hay una base, la buena ... ¿quien dijo miedo?  :D


Vaya que eres arriesgado amigo :D :D :D

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.