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 25-11-2012
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Ordenar un DBGrid por columna

Hola a todos, he visto en internet y en este foro tambien como ordenan un DBGrid al hacer click en el titulo de la columna
Código Delphi [-]
procedure TForm13.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,   Y: Integer); 
var   
  pt: TGridcoord; 
begin   
  pt:= DBGrid1.MouseCoord(x, y);    
  if pt.y=0 then     
    DBGrid1.Cursor:=crHandPoint   
  else     
    DBGrid1.Cursor:=crDefault;  
end;
y despues en el evento title click del DBGrid
Código Delphi [-]
procedure TForm1.DBGrid1TitleClick(Column: TColumn); 
{$J+}
const PreviousColumnIndex : integer = -1; 
{$J-} 
begin
  if DBGrid1.DataSource.DataSet is TCustomADODataSet then
  with TCustomADODataSet(DBGrid1.DataSource.DataSet) do 
  begin
    try
      DBGrid1.Columns[PreviousColumnIndex].title.Font.Style := DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];     
    except
    end;
    Column.title.Font.Style := Column.title.Font.Style + [fsBold];     
    PreviousColumnIndex := Column.Index;      
    if (Pos(Column.Field.FieldName, Sort) = 1) and (Pos(' DESC', Sort)= 0) then
      Sort := Column.Field.FieldName + ' DESC'
    else
      Sort := Column.Field.FieldName + ' ASC';   
  end;
end;
El esunto es que trabajo con Delphi 7, Paradox, Ttable y datasource, no con ADO, no se si se puede adaptar el codigo o le puedo agregar ADOtable?
Tambien encontre este codigo para reemplazar el anterior
Código Delphi [-]
Table1.IndexFieldNames:=Column.FieldName;
con la opcion de reemplazar IndexFieldNames por IndexName, pero me tira un error "Index does not exist..." se ve que debo crear el indice de las columnas o las tablas, como se realiza esto?
si alguien me puede ayudar le agradecere, de ultima si no se puede hacer esto en la columna, lo haria en un boton, como
Código Delphi [-]
procedure TForm17.Button2Click(Sender: TObject); 
begin 
  Query1.Close; 
  Query1.SQL.Clear; 
  Query1.SQL.Add('Select Codigo,Servicio,Importe'); 
  Query1.SQL.Add('From Table1 '); 
  Query1.SQL.Add('order by 2'); 
  Query1.Active:=true; 
  Query1.Open; 
end;
Que tampoco funciono

Última edición por Casimiro Notevi fecha: 25-11-2012 a las 19:26:49.
Responder Con Cita
  #2  
Antiguo 25-11-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La verdad no entiendo la pregunta.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 25-11-2012
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Hola Caral,
lo que quiero hacer es ordenar las columnas del DBRgrid que por defecto esta ordenado por el ID, se pueda ordenar por lo que el usuario necesite.
Supongamos que en el DBGrid muestra ID, nombre, apellido, ciudad. el usuario al hacer click en el encabezado de la columna, pueda ver ordenado a travez de apellido o de ciudad o de nombre, y si es con un boton, podria ser con la ayuda de un checkbuton en donde tenga la posibilidad de elegir ID, apellido, nombre y ciudad y al apretar el boton se ordene por la seleccion correspondiente.
En lo personal, me gustaria la primer opcion, de hacer click en el titulo de la columna y se ordene por este.
Espero que haber sido mas claro ahora, Saludos.
Responder Con Cita
  #4  
Antiguo 25-11-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Se podria hacer muy facilmente con un combobox, no?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 25-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.084
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
De todas formas, de una o de otra forma, lo que no se entiende es el problema que tienes.
Responder Con Cita
  #6  
Antiguo 26-11-2012
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
el problema es que no se como hacerlo, como mencione me gustaria poder hacer click en el titulo de la columna y que se ordene por este, pero la codificacion que encontre trabaja con ADO.
se puede modificar esa codificacion para que funcione con Ttable y datasource?
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 STringGrid por más de una columna dandia28 OOP 3 05-07-2011 05:37:37
Ordenar un DBGrid por una columna por defecto JM75 OOP 2 04-05-2007 12:46:53
Ordenar TStoreProc al clickear columna en DBGrid Mauro.NET Varios 0 04-05-2006 17:28:18
Ordenar Listview por columna Coco_jac Varios 10 03-01-2006 19:03:20
Como ordenar un dbgrid segun la columna seleccionada pyanqn Varios 1 08-11-2005 15:59:41


La franja horaria es GMT +2. Ahora son las 02:01:11.


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