Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-03-2009
tebre tebre is offline
Miembro
 
Registrado: nov 2008
Posts: 93
Poder: 16
tebre Va por buen camino
Ayuda al recorrer el resultado de un select

aqui le muestro mi codigo..haber si puede ver el error llevo rato y no doy con el error.......

cabe aclarar que el codigo que es para pintar un datagrid..dependiendo de una condicion....


Código Delphi [-]
 
procedure TFrmDetalleSolicitudAutorizada.GridDetalleSolicitudAutorizadasDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState);
begin
  Datos.QryFindSolicitud.Active:= False;
  Datos.QryFindSolicitud.SQL.Clear;
  Datos.QryFindSolicitud.SQL.Add('SELECT Seleccionado');
  Datos.QryFindSolicitud.SQL.Add('FROM DetalleSolicitud');
  Datos.QryFindSolicitud.SQL.Add('WHERE FolioSolicitud='+ QuotedStr(EdFolio.Text));
  Datos.QryFindSolicitud.Active:= True;
   With Datos.QryFindSolicitud Do
   begin
     First;
     While Not Eof Do
     begin
       if Datos.QryFindSolicitud.FieldbyName('Seleccionado').AsString ='True' then
        begin
         if (gdFocused in State) then
          Begin
            GridDetalleSolicitudAutorizadas.canvas.brush.color := clBlue;
          end
          else
            Begin
            GridDetalleSolicitudAutorizadas.Canvas.Font.Color := clRed; //Cambie esta linea
            GridDetalleSolicitudAutorizadas.DefaultDrawColumnCell(rect,DataCol,Column,State);
          end
        end
       Next;// ERROR me lo marca en rojo... expected ; but receiver and identifier 'Next'
     end
   end
end;
Responder Con Cita
  #2  
Antiguo 18-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿será que te faltan los puntos y comas después de cada "end"?
__________________

Responder Con Cita
  #3  
Antiguo 18-03-2009
tebre tebre is offline
Miembro
 
Registrado: nov 2008
Posts: 93
Poder: 16
tebre Va por buen camino
saludos

oka lo chceque y si fuinciono pero no me hizo nada..es que esta mal el codigo...

ya estuve buscando varios codigos y estoy tratando de adaptarlo al mio pero no quedqa.....quiero que me pinte mi datagrid apartir de una condicion..te muestro otro codigo para ver si me puedes ayudar

esto lo busque en foro:

Código Delphi [-]
 
if (Column.Index = 2) and (Column.Field.Dataset.FieldbyName('PRECIO').AsFloat < 0) then  //cambie esta linea (bueno la adapte)
     if (gdFocused in State) then    
     Begin      
         DBGrid1.canvas.brush.color := clBlue;    
     end    
     else    
     Begin      
         DBGrid1.Canvas.Font.Color := clRed; //Cambie esta linea
         DBGrid1.DefaultDrawColumnCell(rect,DataCol,Column,State);
     end;

lo trato de adaptar al mio asi:

Código Delphi [-]
procedure TFrmDetalleSolicitudAutorizada.GridDetalleSolicitudAutorizadasDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState);
begin
 if (Column.Index = 7) and (Column.Field.DsOpSolicitud.FieldbyName('Seleccionado').AsString = 'True') then  //EROR en esta linea me marca errores
 begin
   if (gdFocused in State) then
    Begin
        GridDetalleSolicitudAutorizadas.canvas.brush.color := clBlue;
    end
    else
     Begin
         GridDetalleSolicitudAutorizadas.Canvas.Font.Color := clRed;          GridDetalleSolicitudAutorizadas.DefaultDrawColumnCell(rect,DataCol,Column,State);
     end
 end
end;
Responder Con Cita
  #4  
Antiguo 18-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, no debes hacer el select dentro del evento OnDrawColumnCell, lo haces en otro lado y cuando se refresque con tu consulta el DBGrid se va activar dicho evento para todos los registros.

Código Delphi [-]
procedure TFrmDetalleSolicitudAutorizada.GridDetalleSolicitudAutorizadasDrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn;State: TGridDrawState);
begin
  if Datos.QryFindSolicitud.FieldbyName('Seleccionado').AsString ='True' then
    begin
      if (gdFocused in State) then
         GridDetalleSolicitudAutorizadas.canvas.brush.color := clBlue
      else
        GridDetalleSolicitudAutorizadas.Canvas.Font.Color := clRed;

      GridDetalleSolicitudAutorizadas.DefaultDrawColumnCell(rect,DataCol,Column,State);
    end;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 18-03-2009
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
Tal como dice ContraVeneno, como mínimo te falta el ; después del último end antes del Next. Pero yo quisiera comentar aparte que no es recomendable hacer una consulta SQL en un evento como DrawColumnCell que puede lanzarse decenas de veces tan sólo por hacer un scroll. Suponiendo que tu grid muestra solicitudes, deberías incluir los camposde la tabla de detalles en la misma consulta haciendo un join, en lugar de hacer una consulta por cada registro y por cada vez que requiera pintarse dicho registro en el grid.

// Saludos
Responder Con Cita
  #6  
Antiguo 18-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
cierto, no había notado que lo estabas haciendo en el "OnDrawCollumCell", lo cuál no es nada recomendable.
__________________

Responder Con Cita
  #7  
Antiguo 18-03-2009
tebre tebre is offline
Miembro
 
Registrado: nov 2008
Posts: 93
Poder: 16
tebre Va por buen camino
resuelto

gracias a todos la verdad q es un alivio tenerlos cerca..ya qquedo y gracias por sus concejos......aqui seguimos...saludos
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
Ordenar por una columna resultado de otro select salvica SQL 3 10-01-2008 06:26:02
Agrupar campos en ClientDataSet y recorrer el resultado David Conexión con bases de datos 3 20-06-2007 11:13:11
Como recojo el resultado de SELECT MAX(ID) masnovita SQL 9 05-10-2005 15:45:31
Resultado de un select HugoH Conexión con bases de datos 1 29-04-2004 00:56:47
Resultado de un select vacio jourdan SQL 4 22-03-2004 17:27:42


La franja horaria es GMT +2. Ahora son las 11:39: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