Yo probé usar un dataSource para el DBGrid y otro DataSource1 para el formulario donde cargo los datos pero no deja ver cuando cargo el segundo registro los datos que estaban en el DBGrid ya cargados.
Cuando Agrego el código es el siguiente:
Código:
procedure TForm4.AgregarClick(Sender: TObject);
Var
n:Variant;
begin
ModuloDatos.DSDetproducto.Enabled:=False; //Aca lo deactivo DataSource
Form16:=TForm16.Create(Self);
Modulodatos.TblConsumos.Active:=True;
ModuloDatos.TblProductos.Active:=True;
ModuloDatos.TblDetproducto.Active:=True;
If Modulodatos.TblDetproducto.IsEmpty Then
begin
ModuloDatos.TblDetproducto.Append;
ModuloDatos.TblDetproducto.FieldValues['IDDETAL']:=1;
ModuloDatos.TblDetproducto.FieldValues['CONSUMO']:=Modulodatos.TblConsumos.FieldValues['IDCONSUMO'];
end
Else
begin
ModuloDatos.TblDetproducto.Last;
n:=ModuloDatos.TblDetproducto.FieldValues['IDDETAL'];
ModuloDatos.TblDetproducto.Append;
ModuloDatos.TblDetproducto.FieldValues['IDDETAL']:=n+1;
ModuloDatos.TblDetproducto.FieldValues['CONSUMO']:=Modulodatos.TblConsumos.FieldValues['IDCONSUMO'];
end;
end;
Y cuando Grabo (en el formulario donde cargo datos)
Código:
procedure TForm16.GrabarClick(Sender: TObject);
begin
ModuloDatos.TblDetproducto.Active:=True;
ModuloDatos.TblDetproducto.Post;
Form4.Modificar.Enabled:=True;
Form4.Quitar.Enabled:=True;
Close;
ModuloDatos.DSDetproducto.Enabled:=True;
end;
Que deberia hacer para corregirlo?
Gracias.
Silvio.-