Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ordenar un campo lookup (https://www.clubdelphi.com/foros/showthread.php?t=61364)

Ripoll1021 05-11-2008 04:48:44

Ordenar un campo lookup
 
Buenas, no encontre la solucion en el buscar. Asi que lo posteo, mi problema es el siguiente:
Trabajo con Delphi 7 y Mysql con los componentes AdoQuery. Tengo una tabla creada con un campo lookup, como los campos fisicos de esa tabla son todos numericos, el lookup no, contiene nombres, me interesaria ordernar por ese campo lookup o un su defecto crear un campo en memoria. Campo fisico me lo resuelve pero manejo gran cantidad de registros, y si lo coloco tendria que actualizarlos cada vez que me cambien el Campo Nombre en la otra tabla. Por eso estoy buscando si se puede ordenar por el campo lookup o en su defecto crear un campo en memoria para poder ordenarlo. Espero se entienda.

Desde ya gracias. Saludos

Pablo Medina 13-08-2020 17:55:52

Hola Ripoll1021. El código está en Delphi 2010. Sabes que tengo el mismo problema ahora y no puedo hacer que se ordene por los campos tipo lookup. Al principio me daba error y no entendía el motivo. Ahora solo ordena los otros campos menos los lookup.

Código Delphi [-]
procedure TBasicExplorer.dbgBaseTitleClick(Column: TColumn);
begin
  inherited;
  if Column.Field.FieldKind = fkData then
    TPSQLQuery(dsBase.DataSet).SortFieldNames := Column.FieldName;
end;

Te agradecería que me cuentes si descubriste otra manera de hacerlo.

Pablo Medina 14-08-2020 12:31:51

Una respuesta que no me convence
 
Supongo que te responden en éste otro foro (La web del programador con el tema Ordenar tabla por campo lookup) Pero no es la respuesta que yo necesito. Porque, si bien estoy usando un control query, estoy usando la propiedad RequestLive que actualiza directamente la tabla sin que yo tenga que escribir sentencias en SQL. Y, si yo hago caso a la respuesta que te dieron, ya no se puede usar ésta propiedad. Bueno. Se agradece igual.

Yo por mi parte, y solo para salvar el momento, agregué una condición más para que no de error.
Código Delphi [-]
    if Column.Field.FieldKind = fkLookup then
      TPSQLQuery(dsBase.DataSet).SortFieldNames := Column.Field.KeyFields;
El código realiza un ordenamiento según la columna id (clave foránea) de la tabla. Es decir, no me garantiza un ordenamiento alfabético de las filas. Pero ya no produce error.

Casimiro Notevi 14-08-2020 13:17:17

Ese usuario hizo la pregunta hace 12 años.
Te aconsejo que leas nuestra guía de estilo y crees un nuevo hilo para tu problema.
Gracias.


La franja horaria es GMT +2. Ahora son las 16:17:28.

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