Bueno,, una aclaración, cuando se programa un trigger sobre una tabla, éste sólo se ejecuta y tiene en cuenta el registro activo en ese momento.
Por lo tanto para lo que tú quieres, "sumar todas las cantidades de la tabla detalle para ese artículo y actualizar la tabla Inventario",; lo que debes hacer es programar un "STORE PROCEDURE" y que éste se ejecute justo después de que hayas grabado el resgistro en tu tabla DETALLE..
Más o menos sería así el procedimiento que debes programar dentro de tu base de datos FIREBIRD:
Código Delphi
[-]
CREATE PROCEDURE NEW_PROCEDURE(
COD SMALLINT)
AS
DECLARE VARIABLE TOTAL SMALLINT;
BEGIN
/* Procedure body */
select sum(cantidad_detalle) form tabla_detalle
where cod_recepcion = :COD into :TOTAL;
update tabla_inventario
set cantidad_inventario = :TOTAL
where cod_inventario = :COD;
SUSPEND;
END
;
Donde COD es la llave principal de tu tabla inventario,recepcion y detalle recepcion.
Cabe anotar que este parámetro se lo debes pasar a tu STORE PROCEDURE antes de ejecutarlo.
Un caluroso saludos desde BOGOTA - COLOMBIA