Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-08-2008
Avatar de rloayzal
rloayzal rloayzal is offline
Registrado
 
Registrado: ene 2007
Posts: 5
Poder: 0
rloayzal Va por buen camino
Problema con actualizacion de campo calculado

hola a todos

tengo un problema con los campos calculados, ojala alguien pudiera ayudarme

resulta que desea calcular totales acumulados de saldos mensuales, para ello estoy usando un campo calculado para mostrar los valores del total acumulado, pero cuando hago clic o me desplazo usando el scrool del dbgrid hasta el primer registro, todos los valores de los campos calculados se actualizan dandome como veran resultados incorrectos


¿Sera posible llegado cierto numero de registros, detener la actualizacion de campos calculados??

Gracias de antemano por cualquier propuesta de solucion a mi problema
Responder Con Cita
  #2  
Antiguo 16-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
¿No sera que esta en insert la tabla cuando das flecha abajo?...
__________________
Web
Responder Con Cita
  #3  
Antiguo 16-08-2008
Avatar de rloayzal
rloayzal rloayzal is offline
Registrado
 
Registrado: ene 2007
Posts: 5
Poder: 0
rloayzal Va por buen camino
Felipe gracias por auxiliarme ...

En realidad la tabla no esta en modo insert

si no que para obtener el valor de total saldo acumulado voy acumulando en una variable los saldos mensuales y luego los paso al campo calculado, pero cada que me desplazo por el dbgrid desde el 1 registro al ultimo o viceversa, se actualizan todos los campos calculados actualizando al mismo tiempo mi variable y dan datos incorrectos en el campo calculado.

lo que quiero es que de alguna forma pueda yo desplazarme por el dbgrid y no se modifiquen los valores del campo calculado ya cargado pero no veo como
Responder Con Cita
  #4  
Antiguo 16-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Cita:
Empezado por rloayzal Ver Mensaje
Felipe gracias por auxiliarme ...

En realidad la tabla no esta en modo insert

si no que para obtener el valor de total saldo acumulado voy acumulando en una variable los saldos mensuales y luego los paso al campo calculado, pero cada que me desplazo por el dbgrid desde el 1 registro al ultimo o viceversa, se actualizan todos los campos calculados actualizando al mismo tiempo mi variable y dan datos incorrectos en el campo calculado.

lo que quiero es que de alguna forma pueda yo desplazarme por el dbgrid y no se modifiquen los valores del campo calculado ya cargado pero no veo como
Y como los acumulas en la variable, porque normalmente un campo calculado no deberia hacer eso; en el momento no tengo como probar ejemplos con tablas pero podria ser que la falla este en acumulado, ¿en que evento lo haces?
__________________
Web
Responder Con Cita
  #5  
Antiguo 16-08-2008
Avatar de rloayzal
rloayzal rloayzal is offline
Registrado
 
Registrado: ene 2007
Posts: 5
Poder: 0
rloayzal Va por buen camino
se sigue acualizando

Lo estoy realizando en el evento on calculate del adoquery que es la fuente de donde llevo datos al dbgrid, de esta manera

saldo:=saldo+self.ADOQSaldosdepsaldomensual.Value;
self.ADOQSaldosdepsaldoacumulado.Value:=saldo;


donde : saldo es la variable donde acumulo los saldos y los paso al campo calculado "saldoacumulado"

asi, cada que recorre un registro la variable me acumula el saldo y lo paso al campo calculado para que lo muestre,

pero cuando me desplazo por el dbgrid repetidas veces sigue actualizando e incrementando los valores, que no deberia suceder, ya que los mismos ya fueron calculados
Responder Con Cita
  #6  
Antiguo 16-08-2008
Avatar de JoysticK
JoysticK JoysticK is offline
Miembro
 
Registrado: abr 2004
Posts: 68
Poder: 20
JoysticK Va por buen camino
Cool

En el OnCalculate me imagino que habra mas codigo no ? Postealo e intentare echarte un cable, es que no consigo pillar la idea de que es lo que estas haciendo en el OnCalculate, porque

B = B + A
A = B

Cuando B vale 0 y C vale 0.... eso como se come ? de donde sacas los valores iniciales ?


Me imagino que en cada registro existe un campo de "venta" por ejemplo y tu lo que quieres hacer es tener en cada registro un campo de "ventas hasta la fecha" que sume las ventas anteriores no ?
__________________
Borland Delphi XE2 // Interbase Server
Responder Con Cita
  #7  
Antiguo 18-08-2008
Avatar de rloayzal
rloayzal rloayzal is offline
Registrado
 
Registrado: ene 2007
Posts: 5
Poder: 0
rloayzal Va por buen camino
si tienes razon..

Yoystick

si efectivamente lo que estoy haciendo es eso, un campo saldos que sume las anteriores, el valor inicial se carga de la base de datos cuando se abre el form, el calculo realiza correctamente, el problema es el dbgrid, que cuando se desplaza sigue recalculando los valores del campo calculado, lo que no deberia suceder, ya qe solo quiero que se calcule una sola vez


es problema de funcionalidad del dbgrid??
Responder Con Cita
  #8  
Antiguo 19-08-2008
Avatar de JoysticK
JoysticK JoysticK is offline
Miembro
 
Registrado: abr 2004
Posts: 68
Poder: 20
JoysticK Va por buen camino
Cita:
Empezado por rloayzal Ver Mensaje
Yoystick

si efectivamente lo que estoy haciendo es eso, un campo saldos que sume las anteriores, el valor inicial se carga de la base de datos cuando se abre el form, el calculo realiza correctamente, el problema es el dbgrid, que cuando se desplaza sigue recalculando los valores del campo calculado, lo que no deberia suceder, ya qe solo quiero que se calcule una sola vez


es problema de funcionalidad del dbgrid??

Pues yo no veo que sea problema de funcionalidad sino de codigo, eso no se hace ¡¡¡


"Select Sum(campo) as total from tabla where id < :id"


No seria mas facil ?
__________________
Borland Delphi XE2 // Interbase Server
Responder Con Cita
  #9  
Antiguo 19-08-2008
Avatar de rloayzal
rloayzal rloayzal is offline
Registrado
 
Registrado: ene 2007
Posts: 5
Poder: 0
rloayzal Va por buen camino
Es una opcion buena

les cuento que probe haciendo uso de consultas, y si, da resultado, aunque aun me sigue la duda, de todas maneras, el problema fue resuelto aumentando un componente query para cada registro del campo calculado, no se como no pude pensar en cosa tan simple, creo que a veces sucede,


gracias a todos..
Responder Con Cita
  #10  
Antiguo 18-12-2008
petete2008 petete2008 is offline
Miembro
 
Registrado: oct 2008
Posts: 109
Poder: 16
petete2008 Va por buen camino
Yo tengo un dbgrid y una de las columnas quiero que se autocalcule en base a las otras.


No encuentro la forma!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Campo Calculado!!! Ledian_Fdez OOP 1 03-10-2007 23:10:01
Pasar un campo calculado a un campo del mismo DbGrid maravert Conexión con bases de datos 3 12-05-2006 01:31:30
Campo calculado sercornejov MySQL 3 09-08-2005 03:54:35
Problema al visualizar una suma de un campo calculado con QReport Arkaz Impresión 0 06-06-2005 14:19:17
Campo de bd calculado davidgaldo MS SQL Server 3 20-05-2005 16:50:22


La franja horaria es GMT +2. Ahora son las 15:14:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi