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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2005
josem josem is offline
Miembro
 
Registrado: mar 2004
Posts: 23
Poder: 0
josem Va por buen camino
Question Cambio de columnas en una grilla

Hola integrantes.
Tengo un problema en apariencia simple pero no logro resolverlo.

Tengo una grilla asociada a una tabla de datos. en esta grilla estan representadas las reservas de habitaciones para un rango de fechas dado. Cada tipo de ocupacion es coloreado segun sea el caso. Todo funciona de maravillas.., pero tengo el siguiente problema:
Tengo un StaticText, en el cual muestro toda la informacion relacionada con el Cliente de determinada celdilla ( en cada celdilla solo existe un codigo que hace referencia a la tabla de reservaciones de clientes ). Hasta ahi todo va bien. el problema se produce cuando cambio de fila con el teclado o cambio de celdilla con el mouse. el puntero de la grilla sigue apuntando al dato anterior antes de cambiar el foco. Esto no ocurre si con las teclas de flechas me muevo hacia la derecha o isquierda. En este caso por cada movimiento se actualiza el puntero de la grilla y obiamnete mi StaticText.

Alguien puede darme luz, sobre el tema.

Agradecido de antemano.

Saludos
Jose Miguel B.
Responder Con Cita
  #2  
Antiguo 06-04-2005
Avatar de Pablo Carlos
Pablo Carlos Pablo Carlos is offline
Miembro
 
Registrado: jun 2004
Ubicación: Mendoza - Argentina
Posts: 270
Poder: 20
Pablo Carlos Va por buen camino
Hola...
Cita:
Empezado por josem
Tengo un StaticText, en el cual muestro toda la informacion relacionada con el Cliente de determinada celdilla ( en cada celdilla solo existe un codigo que hace referencia a la tabla de reservaciones de clientes ). Jose Miguel B.
probastes el evento afterCroll de la tabla, podrías cambiar la propiedad caption del StaticText en este evento... de esta manera se actualizará en cada cambio de registro que según creo es lo que buscas.
Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.

Última edición por Pablo Carlos fecha: 06-04-2005 a las 01:46:26.
Responder Con Cita
  #3  
Antiguo 06-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Si tuvieses la tabla/query en un módulo de datos, lo mas apropiado sería utilizar el evento OnUpdateData del datasource que sirve de puente entre el grid y el dataset, que está hecho para estos casos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 06-04-2005
josem josem is offline
Miembro
 
Registrado: mar 2004
Posts: 23
Poder: 0
josem Va por buen camino
Hola:

Creo que no me explique vien y conduje a confucion.
El problema que tengo es que cuando me muevo por la grilla hacia la isquierda o derecha, el puntero de la misma se actualiza. Pero no ocurre esto si voy de arriba a abajo. Osea si me muevo entre columnas el puntero de la grilla se actualiza, pero no ocurre lo mismo si me muevo entre filas.

Alguna idea al respecto.

Saludos
Jose Miguel B.
Responder Con Cita
  #5  
Antiguo 06-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino

Definitivamente sigo sin entender...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 07-04-2005
josem josem is offline
Miembro
 
Registrado: mar 2004
Posts: 23
Poder: 0
josem Va por buen camino
Hola
Mira con este ejemplo tomado desde el "Help de delphi" te va a quedar mas claro el problema. Solo Modifique la asignacion del "DisplayLabel" para graficar mejor la situacion:

El ejemplo siguiente requiere de una Grilla, un DataSource y un Table.
con las siguientes asignaciones en la tabla:
Table1.DatabaseName := 'DBDEMOS';
Table1.TableName := 'biofile.db';

... Entonces cada vez que pinches una celdilla o te muevas con las teclas de flecha hacia la isquierda o derecha, en la cabecera de la columna de la celdilla pinchada aparecera un asterisco y los primeros 4 caracteres del campo 'Category'. No ocurrira lo mismo si te mueves con las teclas de flecha hacia arriba o hacia abajo. A pesar de que el campo 'Category' ya tiene otro contenido.

Espero haberme explicado mejor...

Saludos
Jose Miguel B.

var
Form1: TForm1;
StarIsThere: Boolean;
implementation

{$R *.dfm}
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
with DBGrid1.SelectedField do
DisplayLabel := '* ' + copy( Table1.FieldByName('Category').AsString,1,4)+ '* '+ DisplayLabel;
StarIsThere := True;

end;

procedure TForm1.DBGrid1ColExit(Sender: TObject);

var
TheLabel: string;
begin
if StarIsThere then
begin
with DBGrid1.SelectedField do
begin
TheLabel := DisplayLabel;
Delete(TheLabel, 1, 8);
DisplayLabel := TheLabel;
end;
end;
end;
Responder Con Cita
  #7  
Antiguo 07-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pablo Carlos te lo dijo desde un principio: usa el evento AfterScroll del dataset. El evento OnColEnter sólo se activará cuando entres a la columna y no si te mueves sobre ella. Es decir, si te desplazas verticalmente, el evento no se genera porque no has entrado a una nueva columna. Sin embargo tal desplazamiento vertical sí genera un cambio de fila y por tanto el evento AfterScroll.

// Saludos
Responder Con Cita
  #8  
Antiguo 07-04-2005
josem josem is offline
Miembro
 
Registrado: mar 2004
Posts: 23
Poder: 0
josem Va por buen camino
Que facil era, ... gracias por su ayuda. Sirvio de maravilla el AfterScroll.

Dentro del procedimiento AfterScroll hice el llamado a onColEnter y funciono de maravillas.

Una vez mas gracias.

Saludos
Jose Miguel Bakulic V.
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


La franja horaria es GMT +2. Ahora son las 21:58:38.


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