Desde donde lo veo, es muy sencillo si usas la instrucción Case de Firebird...
suponiendo que tienes un campo o un modo de saber como es que se calcula ese precio a segun el articulo que estas seleccionando lo resolverías mas o menos asi:
Código SQL
[-]select
case
when TipoVenta= "Kilo" then Precio_Unitario * Cuantos_Kilos
when TipoVenta= "Onza" then PrecioUnitario * Cuantas_Onzas
when (TipoVenta= "Caja") and (Cuantas_Cajas > 12) then PrecioUnitario * Cuantas_Cajas * Porcentaje_Descuento
when TipoVenta= "Caja" then PrecioUnitario *Cuantas_Cajas
end as precio
from articulos
Como puedes ver en estoy poniendo las formulas de las condiciones que me interesaria controlar en la misma consulta y ahí puedes agregar las formulas que se te antojen o necesites en su momento... como puedes ver en una sola consulta puedes controlar todos los casos sin ningun problema, por ejemplo puedes ver que he puesto una condicion de que si se vende por caja y son mas de 12 cajas se aplica un descuento, sino solo se obtiene el precio a partir de cuantas cajas se compro...y asi puedo agregar todas las reglas de negocio que se me ocurrieran...
Puedes crear esta consulta en tiempo de ejecución con las formulas que necesites y no creo que tengas mayores problemas, generalmente esto es suficiente a menos de que tus formulas resulten ser algo asi como ecuaciones de doceavo grado con calculos de integrales y cosas similares con lo que entonces la recomendación sería que crees una DLL y que tu formula se calcule en una funcion dentro de esa DLL... ya nos dirás si es ese tu caso
Saludos