Aqui va todo lo relacionado con el proceso de alta, en ningun momento hago referencia a la tabla auxiliar ya que hasta que la principal no se graba, el ID no tiene valor con lo cual no puedo relacionarlo
Código Delphi
[-]
procedure TF_Rebut.ToolButton1Click(Sender: TObject);
var id: integer;
begin
ToolBar1.Visible := False;
ToolBar2.Visible := True;
Max_Id.Close;
Max_Id.Open;
if Max_IdMAX.Text = '' then
begin
id:=1;
end
else
begin
id := StrToInt(Max_IdMAX.Text)+1;
end;
F_ModulDades.Rebut.Append;
F_ModulDades.RebutID_REBUT.Value := id; F_ModulDades.RebutDATA.Value := Date;
F_ModulDades.RebutDATA.FocusControl;
end;
procedure TF_ModulDades.RebutAfterDelete(DataSet: TDataSet);
begin
IBTRebuts.CommitRetaining;
end;
procedure TF_ModulDades.RebutAfterPost(DataSet: TDataSet);
begin
IBTRebuts.CommitRetaining;
end;
procedure TF_ModulDades.RebutBeforePost(DataSet: TDataSet);
begin
if RebutCODI_CLUB.Value = 0 then
begin
ShowMessage('Has de possar un club abans de gravar');
F_Rebut.DBEdit21.SetFocus;
Abort;
end;
end;
procedure TF_ModulDades.RebutNewRecord(DataSet: TDataSet);
begin
RebutI1.Value := 'N';
RebutI2.Value := 'N';
RebutI3.Value := 'N';
RebutI4.Value := 'N';
RebutI5.Value := 'N';
RebutTI1.Value := 0;
RebutTI2.Value := 0;
RebutTI3.Value := 0;
RebutTI4.Value := 0;
RebutTI5.Value := 0;
RebutARBITRES.Value := 0;
RebutIMPORT.Value := 0;
RebutMATERIAL.Value := 0;
RebutTOTAL_REBUT.Value := 0;
RebutSUSPENSIO.Value := 'N';
RebutASPIRANT.Value := 'N';
RebutPREU_FIX.Value := 'N';
RebutZONA.Value := 0;
RebutTRANSP.Value :='N';
RebutGRAVAT.Value :='N';
RebutACUMULAT.Value :='N';
RebutPREU_FIX.Value :='N';
RebutCAMPIONAT.Value := IncrementsCAMPIONAT.Value;
RebutFEINER.Value := IncrementsFEINER.Value;
RebutDOS_SECTORS.Value := IncrementsDOS_SECTORS.Value;
RebutI10.Value := IncrementsI10.Value;
RebutID_USUARI.Value := F_Inici.Usuari;
RebutCREA_REBUT.Value := ConfiguracioTIPUS_REBUT.Value;
end;
procedure TF_Rebut.ToolButton6Click(Sender: TObject);
begin
If F_ModulDades.Rebut.State in [dsEdit,dsInsert] then
begin
If F_ModulDades.RebutSUSPENSIO.Value = 'N' then
begin
F_ModulDades.RebutTI4.Value := 0;
F_ModulDades.RebutTI5.Value := 0;
If F_ModulDades.RebutIMPORT_2.Value <> 0 then
begin
F_ModulDades.RebutTOTAL_REBUT.Value:= F_ModulDades.RebutIMPORT_2.Value;
end
else
F_ModulDades.RebutTOTAL_REBUT.Value := StrToInt(DBEdit4.text) + F_ModulDades.RebutTI1.Value + F_ModulDades.RebutTI2.Value + F_ModulDades.RebutTI3.Value;
end
else
If F_ModulDades.RebutSUSPENSIO.Value = 'S' then
begin
If F_ModulDades.RebutI4.Value = 'S' then
begin
F_ModulDades.RebutTI4.Value := F_ModulDades.RebutIMPORT.Value / 2;
F_ModulDades.RebutTI5.Value := 0;
F_ModulDades.RebutTOTAL_REBUT.Value := F_ModulDades.RebutTI2.Value + F_ModulDades.RebutTI3.Value + F_Moduldades.RebutTI4.Value;
end
else
If F_ModulDades.RebutI4.Value = 'N' then
begin
F_ModulDades.RebutTI4.Value := 0;
F_ModulDades.RebutTI5.Value := F_Moduldades.RebutARBITRES.Value * F_Moduldades.RebutI10.Value;
F_ModulDades.RebutTOTAL_REBUT.Value := F_ModulDades.RebutTI2.Value + F_ModulDades.RebutTI3.Value +
F_Moduldades.RebutTI5.Value + F_ModulDades.RebutKM_TOTALS.Value * F_ModulDades.IncrementsPREU_KM.Value;
end;
end;
F_ModulDades.Rebut.Post;
end;
ToolBar2.Visible := False;
ToolBar1.Visible := True;
DBEdit1.Enabled := True;
end;
Saludos