DriveSoft wrote:Напишите сюда код данного события полностью.
рабочий код.
procedure frmAddSch1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
if frmAddSch1.dbAction = 'NewRecord' then frmAddSch1.Tag := 1 else frmAddSch1.Tag := 0;
end;
procedure frmAddSch1_Button1_OnAfterClick (Sender: TObject);
var
vyrab_otp: string;
begin
if frmAddSch1.Tag = 1 then
begin
vyrab_otp := SQLExecute('SELECT IFNULL(vyrab_otp, 0) FROM sch LEFT OUTER JOIN print ON print.id=sch.id_print WHERE sch.id = ' + IntToStr(frmAddSch1.Button1.dbGeneralTableId));
if ValidInt(vyrab_otp) then SQLExecute ('INSERT INTO res (res, date,id_print, id_sch) VALUES('+IntToStr(Trunc(frmAddSch1.Edit1.Value) - StrToInt(vyrab_otp))+', now(), ' + IntToStr(idprint)+', '+ IntToStr(frmAddSch1.Button1.dbGeneralTableId)+')');
end;
С учетом замечаний vovka3003. Ошибка перед оператором THEN осталась.
procedure frmAddSch1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
if frmAddSch1.dbAction = 'NewRecord' then frmAddSch1.Tag := 1 else frmAddSch1.Tag := 0;
end;
procedure frmAddSch1_Button1_OnAfterClick (Sender: TObject);
var
vyrab_otp: string;
maxpok: string;
begin
if frmAddSch1.Tag = 1 then
begin
vyrab_otp := SQLExecute('SELECT IFNULL(vyrab_otp, 0) FROM sch LEFT OUTER JOIN print ON print.id=sch.id_print WHERE sch.id = ' + IntToStr(frmAddSch1.Button1.dbGeneralTableId));
maxpok := SQLExecute('SELECT MAX(sch) FROM sch WHERE id_print = '+ IntToStr(idprint));
if (ValidInt(vyrab_otp) and (IntToStr(frmAddSch1.Edit1.Value) <= (ValidInt(maxpok)) then MessageDlg('Идите лесом....', mtInformation, mbOK, 1)
else SQLExecute ('INSERT INTO res (res, date, id_print, id_sch) VALUES('+IntToStr(Trunc(frmAddSch1.Edit1.Value) - StrToInt(vyrab_otp))+', now(), ' + IntToStr(idprint)+', '+ IntToStr(frmAddSch1.Button1.dbGeneralTableId)+')');
end;