Ver Mensaje Individual
  #2  
Antiguo 19-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 19-02-2007 a las 12:34:06.
Responder Con Cita