Лабораторна робота 4 другого семестру
Лабораторна робота 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, приклад можна завантажити в «Матеріалах».