Лабораторна робота 4 другого семестру

 

Лабораторна робота 4 другого семестру

 

         Метою лабораторної роботи є написання програмного додатку який коректно обробляє таблицю матеріалів складу, а саме:

  1. Реалізує прихід заданого товару
  2. Реалізує списання заданого товару
  3. Перевіряє коректність вееденого числа
  4. Виводить попередження, якщо списується товару більше ніж є на складі.

 

        Програма використовує БД sklad аліс SkladDB.

Приклад одного із можливого варіанту обробки таблиці:

 

procedure TForm1.DBGrid1CellClick(Column: TColumn);

begin

 Label2.Caption:=Query1.FieldByName('Id').AsString+' - '+

                 Query1.FieldByName('Name').AsString+'.';  // При натисканні на сітці мишкою виводить назву вибраного товару

end;

 

Procedure SkladUpdate(i,id:integer); // Функція оновлення складу перший параметр -1 списуємо 1 проводимо прихід, другий параметр ідентифікатор товару

Var

S:String; //Змінна для спрощення роботи

Begin

With Form1 do //Так як функція за межами класу вказуємо об’єкт на якому працюємо

Begin

  S:=MaskEdit1.Text; //Присвоюємо текст з поля

 if StrToInt(S)>0 then //якщо число нам підходить

  Begin

   Query2.SQL.Clear; //очищуємо запит

   Query2.SQL.Add(Format('UPDATE stuff SET count=count+%d WHERE id=%d;',[StrToInt(S)*i,id])); //формуємо запит на списання/прихід

   try Query2.ExecSQL; except MessageBoxA(handle,'Списання Неможливе','Помилка',MB_ICONERROR); end; //якщо ж ми увійшли в мінуси вивести помилку

   Query1.Active:=False; // оновлюємо відображення

   Query1.Active:=True;

  End else MessageBoxA(handle,'Введіть кількість','Помилка',MB_ICONERROR); //відображаєеться пи введенні невірної кількості

 End;

End;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

 SkladUpdate(1,Query1.FieldByName('id').AsInteger); //Прихід

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

 SkladUpdate(-1,Query1.FieldByName('id').AsInteger); //списання

end;

 

 

P.S. Для того шоб при списанні в таблиці не утворувалися мінуси потрібно поле count оголосити як беззнакове ціле (int(10) UNSIGNED). Як це зробити можна переглянути в файлі stuff.sql, приклад можна завантажити в «Матеріалах».