Según parece usas los componentes Interbase, que en el futuro podrían darte problemas con incompatibilidades, si estas a tiempo, puedes usar MDOLIB, que también son libres y cumplen su función muy bien.
En MDOLIB, (supongo que en IB también lo tienes) en el Dataset tendrá una propiedad GeneratorField, que identifica el generador a usar y cuando usarlo, tienes 3 posibilidades (waServer, waPost, waNewRecord), con waPost funciona como quieres.
En Interbase, hay una variable llamada CopyMasterFieldToDetail en la unidad IBUtils.Pas, figura en la línea 85 y 360 de ese archivo y se usa también en los descendientes de IBCustomDataset. Poniendo esa variable Booleana en True se supone hace lo que quieres.
Acabo de mirar el código de OnNewRecord para IB y en el código aparece:
Código Delphi
[-]
begin
if FGeneratorField.ApplyEvent = gamOnNewRecord then
FGeneratorField.Apply;
if CopyMasterFieldToDetail then
begin
if FDataLink.DataSource <> nil then
if FDataLink.DataSource.DataSet <> nil then
SetFieldsFromParams;
end;
inherited DoOnNewRecord;
end;
Visto esto, en el OnNewRecord también funcionaría... aunque puede darte mucha lata crean un registro vacío y después cancelan dicho registro (el Generador se incrementará en cada OnNewRecord)
Espero que alguno de estos comentarios te sirva.
Saludos