Bien, lo que yo suelo hacer, es un campo calculado en el Dataset que me controla lo movimientos y, en el OnClacFields poner una sentencia SQL que me retorne la descripción del artículo en cuestión
Código:
procedure...
var
Q: TIBQuery;
begin
Q := TIBQuery.Create(Self);
Q.Database := .....
Q.SQL.Add('select descripcion from articulos');
Q.SQL.Add('where codart = ' + QuotedStr(MovimientosCodArt.AsString));
try
Q.Open;
if Q.Fields[0].IsNull then
// no hay registros -> no existe el artículo o descripción en blanco
else
MovimientosDesart.AsString := Q.Fields[0].AsString;
except
// control de excepción
end;
end;
Bueno, esto más o menos y de cabeza, pero espero que la idea te sirva