PDA

Ver la Versión Completa : Indices con Campos Calculados


jmontoya
10-06-2003, 23:52:01
Hola a todos !!

Estoy realizando una aplicación con paradox y necesito crear un indice de un campo calculado para que ordene los datos por este campo, pero me aparece un error.

Ya tengo indices para todos los campos de las tablas (que según entiendo se necesitan).

Espero que me indiquen como crear un indice de un campo calculado, o si no es posible, entonces que me indiquen otra forma de ordenar los datos por este campo calculado.

Gracias.

marcoszorrilla
11-06-2003, 08:00:20
No se puede.

A no ser que lo que quieras sea un índice compuesto, es decir en el que participe más de un campo.

Explicate un poco más como es ese campo calculado, para ver si se puede crear un índice compuesto similar al mismo.

En el peor de los casos cabría, almacenar el campo calculado en un campo real de la tabla, que habría que crear y luego indexar dicho campo.

Un Saludo.

jmontoya
11-06-2003, 10:22:15
Disculpen.

No es un campo calculado, si no un Lookup. De todas formas creo que da igual (no se puede).

Se trata de mostrar el listado de facturas, para lo cual creo varios campos lookup para el nombre, dir, tel del cliente al que le corresponde la factura.

Debo hacer que estas facturas se ordenen según el campo que se elija, por ej Nº factura, Nombre del cliente, etc. Y si cambio el indice me los ordena como necesito, pero solo por los campos definidos en la tabla.

Me gustaria saber un método para ordenar por los campos lookup, ya sea por medio de una consulta o por otro.

Gracias.

marcoszorrilla
11-06-2003, 15:44:30
Si quieres que te funcione, tienes que hacer una consulta y unes todas las tablas que necesites.

Y luego en el evento TitleClick de la rejilla, programas algo como esto:



procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
orden:STring;
begin
orden:=column.FieldName;
Query1.Close;
Query1.Sql.clear;
Query1.Sql.Add('Select * from customer order by '+Orden);
Query1.open;
end;


Un Saludo.