Topic: Предупреждение перед сохранением если отрицательное!

Уважаемые пользователи кто -нибудь знает как можно реализовать скрипт на кнопку с сохранением если:
На кнопку идет скрипт сохранение в Table1 :
procedure frmOrderProduct_Button3_OnClick (Sender: TObject; var Cancel: boolean);
var
s: string;
maxID:string;
maxID2:string;
maxID3:string;
maxID4:string;
sBirthDate: string;

begin
      //Передаем с combobox продукта на другой combobox
      if (frmOrderProduct.ComboBox1.dbItemID = -1) and (frmOrderProduct.ComboBox1.Text <> '') then
    begin
        if 6 = MessageDlg(' Добавить продукт на  '  +  frmOrderProduct.Edit2.Text, mtConfirmation, mbYes + mbNo, 0) then
        begin
      //Сохраняем кнопкой значение в дополнительной таблице
       if frmOrderProduct.DateTimePicker1.Checked then
          sBirthDate  := '"' + FormatDateTime('yyyy-MM-DD 00:00:00.000', frmOrderProduct.DateTimePicker1.Date) + '"'
          else sBirthDate := 'NULL';
      maxID := SQLExecute('SELECT MAX(id) FROM ORDERT');
      maxID2 := SQLExecute('SELECT id_employees FROM ORDERT WHERE id= "'+maxID+'"');
      maxID3 := SQLExecute('SELECT id_product FROM ORDERPRODUCT WHERE id='+frmOrderProduct.cbProduct.sqlValue);
      maxID4 := SQLExecute('SELECT name FROM KolTovar WHERE id='+frmOrderProduct.KolTovar.sqlValue);
      SQLExecute('INSERT INTO bsm_off (Dates, INN, ID_ORDERT, id_employees, id_product, id_Koltovar, productnamedop) VALUES ('+sBirthDate+', "'+frmOrderProduct.KolTovar.Text+'", "'+maxID+'","'+maxID2+'","'+maxID3+'","'+maxID4+'","'+frmOrderProduct.ComboBox1.Text+'")');
      UpdateDatabase('bsm_off');
      frmOrderProduct.Combobox1.dbItemID := Last_Insert_id;
        end;
     end;


Суть такая: есть Edit ( INN ) - общее количество например 10
И есть combobox frmOrderProduct.KolTovar.sqlValue в котором ты указываешь значение например 1
После значение 1 сохраняться в базу даных

А можно сделать так чтобы если 11 раз ты через combobox добавшь строку то скрипт не даст это сделать ?

Re: Предупреждение перед сохранением если отрицательное!

Тоесть по сути сделать счетчик если количество в Edit превысит больше чем ты нажал на кнопку сохранить -- то ошибка и наоборот если меньше 10 тоже уведомление ....Все испробовал помогите пожалуйста

Re: Предупреждение перед сохранением если отрицательное!

Нифига не понял. Хер с ними, с запятыми, но смысл же должен быть в предложениях? Попробуйте в англоязычной ветке написать, может там вас лучше поймут....

Визуальное программирование: блог и телеграм-канал.

Re: Предупреждение перед сохранением если отрицательное!

chartcatuser wrote:

Уважаемые пользователи кто -нибудь знает как можно реализовать скрипт на кнопку с сохранением

procedure Form1_Button1_OnAfterClick (Sender: TObject); 

Re: Предупреждение перед сохранением если отрицательное!

k245 wrote:

Нифига не понял. Хер с ними, с запятыми, но смысл же должен быть в предложениях? Попробуйте в англоязычной ветке написать, может там вас лучше поймут....


Суть в том что на форме есть edit - он принимает цифру например 10
И есть combobox - ты выбираешь количество на определенную дату и кнопкой сохраняешь значение conbobox
Есть ли вариант чтобы если ты 10 раз в комбо бокс выбрал по 1 и сохранил то все ОК  если 9 или 11 то ошибку выдаст?

6 (edited by Andrei 2022-06-28 12:08:33)

Re: Предупреждение перед сохранением если отрицательное!

Все равно не понятна задача.
Посмотрите данный вариант.

procedure frm_Button1_OnClick (Sender: TObject; var Cancel: boolean);
 begin  
      if ((frm.ComboBox1.dbItemID  = 1) and (frm.edit1.Text <> '10'))  then
    begin
        ShowMessage('Не правильно заполнено поле Edit');
        frm.edit1.SetFocus;
        Cancel := True;
        exit;
    end;
end;

7 (edited by chartcatuser 2022-06-30 09:05:36)

Re: Предупреждение перед сохранением если отрицательное!

Andrei wrote:

Все равно не понятна задача.
Посмотрите данный вариант.

procedure frm_Button1_OnClick (Sender: TObject; var Cancel: boolean);
 begin  
      if ((frm.ComboBox1.dbItemID  = 1) and (frm.edit1.Text <> '10'))  then
    begin
        ShowMessage('Не правильно заполнено поле Edit');
        frm.edit1.SetFocus;
        Cancel := True;
        exit;
    end;
end;

Есть edit - в нем напрмиер 10
Есть combobox в нем ты указываешь значение 1 при котором кнопка скриптом сохраняет значение comboboxa -1
И вот вопрос заключается в том как не ошибиться нечайно 11 раз или 9 не сохранить запись так как в edit стоит 10

Re: Предупреждение перед сохранением если отрицательное!

Ну кнопкой записываются 10 записей в отдельную таблицу а вот как создать условие что если 11-я запись будет или 9 то ошибка....Долго страдаю уже>....

9 (edited by pavlenko.vladimir.v 2022-06-30 11:57:48)

Re: Предупреждение перед сохранением если отрицательное!

chartcatuser wrote:

Ну кнопкой записываются 10 записей в отдельную таблицу а вот как создать условие что если 11-я запись будет или 9 то ошибка....Долго страдаю уже>....

Если Вам нужно проверить количество созданных записей  в таблице по конкретному полю и условию

SQLExecute('SELECT COUNT(имя_поля)  FROM имя_таблицы WHERE условия_выборки');

10 (edited by chartcatuser 2022-07-01 10:05:42)

Re: Предупреждение перед сохранением если отрицательное!

Смотрите что получилось я добавил вычислительные поля...
Вот как сделать так чтоб если строка G и строка H соответствовали 10 то сообщение готово если больше 10 в H то ошибка ?

Post's attachments

Attachment icon CALC.rar 292.23 kb, 123 downloads since 2022-07-01 

Re: Предупреждение перед сохранением если отрицательное!

Или допустим ты казала в колонке G - 10  а в колонке H всего 9 и перед тем как выйти с другой формы - ошибка  ну тоесть это альтернативный вариант подсчета остатка в таблице... Как это реализовать?

Re: Предупреждение перед сохранением если отрицательное!

chartcatuser wrote:

Смотрите что получилось я добавил вычислительные поля...
Вот как сделать так чтоб если строка G и строка H соответствовали 10 то сообщение готово если больше 10 в H то ошибка ?

зачем Вы используете SUM ??
в вашем Варианте скорее нужно так

CASE
  WHEN  (SELECT inn FROM bsm_off) < (SELECT minus FROM bsm_off) THEN "ДА"    
ELSE "НЕТ"                                                     
END    

но тут также будет ошибка, программа будет выводить данные только по одному полю.. скорее всего нужен еще какой-то опереатор

Re: Предупреждение перед сохранением если отрицательное!

А есть такой вариант как то сделать когда добавляешь например заказ - и указываешь сумму то автоматически на этот заказ создается как бы лицевой счет с этой суммой и когда ты будешь добавлять по этому заказу продукты - то он будет уменьшаться и когда дойдет до 0 сообщение или если не дошел до 0 то тоже сообщение есть пример? Помогите пожалуйста..