Hola,
si por campo calculado entiendes un campo calculado de la VCL que toma su valor en un evento OnCalcFields de un descendiente de TDataSet, lamento decirte que lo que quieres hacer es imposible, dado que en un Query solo puedes hacer referencia a campos físicos. Es lógico, pues piensa que los campos calculados se calculan
después de ejecutar la sentencia SQL y a partir de los valores que se obtienen puedes calcularlos.
De todos modos si tu campo calculado es simple puedes hacer una cosa...
Imaginate que tienes una tabla de facturas. El total de la factura se obtiene de sumar la suma de los conceptos más los impuestos. Pues bien, eso se podría hacer en un CalcFields:
Código:
FieldByName('Total').AsFloat:= FieldByName('SumaConceptos').AsFloat + FieldByName('Impuestos').AsFloat
Sin embargo este es un campo calculado muy simple, que no seria necesario calcular en un calcFields dado que puedes calcularlo al vuelo en el propio SQL:
Código:
SELECT F.*, (SumaConceptos + Impuestos) AS Total
FROM Facturas F
WHERE SumaConceptos + Impuestos >= 1000
Por poner un ejemplo muy simple. En este caso estarías filtrando un campo calculado al vuelo en el SQL. De todos modos no siempre se podrá hacer de este modo ya que a veces hay campos calculados que no pueden hacerse así como así en un SQL.
Espero que te haya servido de ayuda.
Saludos.
EDIT: Marcos, te me has adelantado por muy poco