Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2008
enchoneg23 enchoneg23 is offline
Miembro
 
Registrado: may 2008
Posts: 12
Poder: 0
enchoneg23 Va por buen camino
Post ordenar un ClientDataSet

Hola a todos, estoy manejando delphi 6 con interbase y tengo un problema al tratar de ordenar un ClientDataSet en el cual he Guardado un lista de datos, necesito ordenar el ClientDataSet por dos campos a la vez es decir tengo un campo clientes y un campo estados, entre otros, necesito que me quede ordenado por clientes y a su vez los clientes por el cambio de estado, mostrando todos los estados por los que haya pasado este, de modo que al imprimir un reporte pueda agrupar por clientes y estos ordenados por el sus diferentes Estado, he intentado con la propidad IndexFieldByName('CLIENTE;ESTADO');
pero no he logrado mi cometido, desde ya agradezco sus aportes.
Responder Con Cita
  #2  
Antiguo 21-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, ¿y por qué usas un query usando la clausula ORDER BY?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 21-06-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Si de pronto, por cosas de la vida, no puedes usar una sentencia SQL como la que te ha mencionado enecumene, entonces podrías hacerlo de la siguiente forma:

Código Delphi [-]
ClientDataSet1.IndexFieldNames := 'CLIENTE;ESTADO';

Y listo .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 21-06-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡Hola!

Respecto a la buena respuesta de Jhonny Suárez, cabe mencionar que esa es una de las muchas ventajas del componente TClientDataSet: que puede ordenarse por cualquiera de sus campos con solo especificar el nombre de éstos en la propiedad IndexFieldNames y sin importar de qué índices se disponga en ese momento.

Cita:
Empezado por Ayuda de Delphi
Tip: Use IndexFieldNames to create sort orders on the fly at runtime.
Felizmente veo que cada vez hay más foristas usando y preguntando por TClientDataSet. Una maravilla de ingeniería, llevo dos años estudiando su lado VCL y no termino de sorprenderme. Y pensar que lleva mucho más tiempo entre nosotros.

Un abrazo DBClient.

Al González.
Responder Con Cita
  #5  
Antiguo 23-06-2008
enchoneg23 enchoneg23 is offline
Miembro
 
Registrado: may 2008
Posts: 12
Poder: 0
enchoneg23 Va por buen camino
Unhappy gracias

hola a todos gracias por sus aportes, pero como ya les mencione la opcion INDEXFIELDBYNAMES ya la utilize para tratar de ordenar el componente pero sin lograr mi cometido, la verdad no se si es que lo estoy utilizando mal, la indexacion hay que hacerla antes o despues de abrir el componente??
Responder Con Cita
  #6  
Antiguo 23-06-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por enchoneg23 Ver Mensaje
...como ya les mencione la opcion INDEXFIELDBYNAMES ya la utilize para tratar de ordenar...
Lo siento, pero no conozco nada que se llame así.
Responder Con Cita
  #7  
Antiguo 23-06-2008
enchoneg23 enchoneg23 is offline
Miembro
 
Registrado: may 2008
Posts: 12
Poder: 0
enchoneg23 Va por buen camino
Post corrijo

es IndexFieldNames
Responder Con Cita
  #8  
Antiguo 23-06-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por enchoneg23 Ver Mensaje
es IndexFieldNames
Y debes asignarlo así:

Código Delphi [-]
ClientDataSet1.IndexFieldNames := 'CLIENTE;ESTADO';

No así :

Código Delphi [-]
IndexFieldByName('CLIENTE;ESTADO');

Lo digo porque en el primer POST, dijiste que lo habias hecho de esa forma...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #9  
Antiguo 23-06-2008
enchoneg23 enchoneg23 is offline
Miembro
 
Registrado: may 2008
Posts: 12
Poder: 0
enchoneg23 Va por buen camino
hola

Gracias por tu aporte, mira si la verdad es que me quedo mal escrito pero ya lo utilize tal como tu me lo indicas y nada, no logro hacerlo que me ordene por ambos, solo me ordena por el primer parametro que introduzco
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Between y ClientDataSet d2nemi Firebird e Interbase 10 26-02-2008 09:21:00
Ordenar registros de manera descendente con ClientDataSet alucardo Conexión con bases de datos 2 31-05-2006 18:27:34
Clientdataset+ galmacland Conexión con bases de datos 3 11-11-2004 15:17:37
DE BD SQL a CLIENTDATASET ada MySQL 0 05-10-2004 12:18:41


La franja horaria es GMT +2. Ahora son las 04:12:25.


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