para cómo crear campos calculados te remito a este hilo
http://www.clubdelphi.com/foros/show...&threadid=2819
Y un ejemplo....
yo tengo una tabla de detalle factura en el que guardo Cantidad e Importe. Este Importe, supongamos que es unitario y, quiero saber el Total de esa linea de factura. Pues bien, en lugar de crear un campo físico en la Tabla, creo un campo calculado como explico en el hilo que te comento al cual le llamo Total y, programo el evento OnCalcFields de mi Dataset de la siguiente manera
Código:
Tabla1.FieldByName('Total').AsFloat :=
Tabla1.FieldByName('Cantidad').AsFloat *
Tabla1.FieldByName('Importe').AsFloat
Esto es una operacion sencilla, pero podrias hacer otras cosas como, por ejemplo, la tabla de clientes tiene un campo que es el codigo de la moneda de ese cliente, y queremos saber las descripcion que esta en la tabla monedas. Pues podemos crear un campo calculado que se llame DescripcionMoneda y en el OnCalcFields poner.....
Código:
var
// miramos la descripcion mediante una Query
if Tabla1.FieldByName('Id_Moneda').AsInteger <> 0 then begin
Quer1.SQL.Text := 'select * from Monedas where ID = ' +
Tabla1.FieldByName('ID_Moneda').AsString;
Query.Open;
if not Query.Fields[0].IsNull then
Tabla1.FieldByName('DescripcionMoneda').AsString :=
Query.FieldByName('Descripcion').AsString
else
Tabla1.FieldByName('DescripcionMoneda').AsString := '';
end else
Tabla1.FieldByName('DescripcionMoneda').AsString := '';
Espero que te sirvan los ejemplos