Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-12-2009
ozrics ozrics is offline
Registrado
 
Registrado: jun 2006
Posts: 6
Poder: 0
ozrics Va por buen camino
Question DBGrid + Columna (Icógnita)

Estimados, en detalle explicaré lo que quiero lograr en el fondo, pero la questión es si puedo saber en un DBGrid cual es la 1era, 2da, 3era, etc... columna que se muestra en pantalla, suponiendo que la cantidad de columnas sobrepasa el ancho de la grilla ???

Necesito ayuda en cómo saber qué nombre de campo de base de dato tiene una columna. (DBGrid1.Columns[X].FieldName).. Esto está claro como el agua.

Lo trágico es que a partir de un Query, genero columnas variables (Funcion crosstab) y muestro los campos que salen y lo que quisiera lograr al final es poder mostrar los totales de cada columna en un DBText.

Al principio cuando se carga la aplicación no hay problema ya que sé que voy a partir de la primera columna hacia adelante linkeando el datafield a cada DBtext.

Pero después cuando el usuario se va moviendo hacia al lado de la grilla y muestre los campos que vienen, desearía actualizar el total de los DBText correspondientes a cada columna que se muestra...

Por último, mis disculpas por tanta palabrería.
Responder Con Cita
  #2  
Antiguo 04-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Question

Disculpa no comprendo muy bien lo que pretendes hacer..
¿Quieres sumar una columna del dbGrid y poner el resultado en algun control(Componente)?.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 06-12-2009
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 22
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
  #4  
Antiguo 07-12-2009
ozrics ozrics is offline
Registrado
 
Registrado: jun 2006
Posts: 6
Poder: 0
ozrics Va por buen camino
... Si, es eso lo que quiero lograr - Mostar los totales en en un DBEdit para cada columna visible de un DBgrid y que al momento que me desplace por la grilla a través del scroll horizontal, se vayan actualizando los totales según corresponda a la columna.

Voy a probar la idea en el evento onColEnter que propone gatoSoft.

Gracias, y comento como me fue.
Responder Con Cita
Respuesta



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
Hacer que una columna de un DbGrid aparezca distinta según valor Aprendiendo OOP 11 30-11-2018 14:47:20
Poner una columna de un DBGrid como columna Fija rgstuamigo OOP 4 04-03-2009 21:54:38
Suma de una columna de un DBGRID Pollo2004 Varios 20 29-10-2008 16:58:33
Nombre de columna en dbgrid joanajj Varios 4 30-07-2006 00:34:42
blockear columna de dbgrid, Renees Varios 2 17-06-2006 16:00:14


La franja horaria es GMT +2. Ahora son las 02:29:44.


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