Ver Mensaje Individual
  #1  
Antiguo 06-12-2009
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Reputación: 24
gatosoft Va camino a la fama
hola ozrics, Tu inquietud no es muy clara...

pero hasta donde puedo entender:

1) Haces una consulta de, por ejemplo 100 campos (columnas)...

2) En una DBgrid muestras solo 5 columnas

3) Para cada coumna visible hay (abajo) un componente DbEdit (??? o Edit) donde muestras la suma de cada una...

4) cuando te mueves por la grilla hacia los lados... las cinco columnas cambian y por tanto las 5 sumas (en los edits) deben variar...


Bueno, si es asi, tendrias que tener un control sobre alguna columna de referencia, es decir... saber el numero de la primera columna visible en el lado izquierdo...

pues no conozco una funcion del dbgrid que haga esto, Asi que te voy a proponer una solucion "manual" para hacerlo, y me perdonan los expertos del foro si existe algo mas facil...

1) define un tamaño unico para todas las columnas... Es clave, pues asi sabes que en cada momento hay siempre 5 columnas visibles y no 4 o 6.

2) Define una variable que te indique cual es la primera columna visible de la izquierda.. intPrimeraCoulmnaVisible: Integer; Esta variable, al inicio vale 1,pues se supone que al ejecutar el query se abre con la primera columna visible...

3) Cuando te muevessobre la grilla de hacia los lados, se activa el llamado al evento OnColEnter, asi que debes programar este evento utilizando la propiedad SelectedIndex del DbGrid...la cual te retorna el numero de la columna activa...

4) Si la columna activa es mayor en 5 posiciones a la variable intPrimeraCoulmnaVisible entonces quiere decir que nos movimos hacia la derecha y la intPrimeraCoulmnaVisible aumenta en uno...

5) Si la columna activa es menor en 1 posicion a la variable intPrimeraCoulmnaVisible entonces quiere decir que nos movimos hacia la izquierda y la intPrimeraCoulmnaVisible disminuye en uno..

para los dos casos anteriores (4 y 5) debes llamar una procedimiento que calcule los 5 edits que tienes para los totales..


espero haberte ayudado, un saludo.
Responder Con Cita