Создание программного обеспечения для небольшого супермаркета
Требования, предъявляемые к базе данных. Основы построения базы данных. Программный продукт Delphi. Структура базы данных и интерфейс программы. Построение функциональной схемы подсистемы "Учет и реализация товара", общая схема построения системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.12.2011 |
Размер файла | 5,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
1. Запись добавляется в таблицу Данные о поступлении
2. Поле Количество соответствующего товара в таблице Данные о товаре увеличивается
3. Поля вода очищаются и можно добавлять следующую запись
Поля № п\п и Дата поступления заполняются автоматически.
Пункт главного меню Сервис содержит следующие подпункты:
- Смена пароля
- Добавить (единицы измерения, фирму-производителя, вид товара)
При выборе команды Смена пароля открывается следующее окно (Рис. 12).
Рисунок 12. Смена пароля
На данной форме можно сменить пароль как на режим Кассир, так и на режим Администратор. Для смены пароля обязательно вводится старый, в случае если он не верен, пароль сменить не удастся.
При добавлении товара, либо изменении, такие данные как вид товара, фирма-производитель и единицы измерения, выбираются из списков. Для изменения списков выбирается пункт меню Сервис - Добавить, далее в подпунктах выбирается необходимое поле. При выборе поля откроется соответствующая форма (Рис. 13).
Рисунок 13. Добавление единиц измерения
Пункт главного меню Отчеты предназначен для формирования и распечатки отчетов. Отчет можно сформировать по отсутствующим товарам, присутствующим товарам и полный отчет (Рис. 14).
Рисунок 14. Отчет
Пункт главного меню Экспорт предназначен для экспорта данных из таблиц в новый документ MS Excel.
5. РАЗРАБОТКА ПРОГРАММЫ
5.1 Создание базы данных
Для создания таблиц воспользуемся программой Database Desktop. Создадим таблицу со следующей структурой (рис. 15).
Рисунок 15. Структура таблицы supermarket.db
Аналогично создадим таблицы postuplenie.db и chek.db.
Таблица 1. Список полей таблицы postuplenie.db
Наименование поля |
Тип данных |
|
kod |
Autoincrement(счетчик) |
|
name |
Longinteger (целое) |
|
naimen |
Alpha (строковый) - 15 символов |
|
data_post |
Date (Дата) |
|
kol_vo |
Number (вещественное) |
Таблица 2. Список полей таблицы chek.db
Наименование поля |
Тип данных |
|
kod |
Number (вещественное) |
|
name |
Alpha (строковый) - 25 символов |
|
trademark |
Alpha (строковый) - 25 символов |
|
cena |
Number (вещественное) |
|
kol_vo |
Number (вещественное) |
|
summa |
Number (вещественное) |
5.2 Разработка главной формы режима «Администратор»
Создадим новый проект в Delphi. Создадим форму согласно рисунку 16.
Рис. 16. Форма
Добавим на форму следующие компоненты для работы с базами данных: Table1, DataSource1, DbGrid1, Table2, DataSource2, DbGrid2.
Для того, чтобы база данных была независимой от места расположения при переносе с одного компьютер на другой, пропишем следующую процедуру.
Листинг1.
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:=false;
Path:=Application.ExeName; // полный путь и название запущенной программы
Path:=ExtractFileDir(Path); // отбрасываем название программы. Остается путь.
if Path[Length(Path)]<>'\' then Path:=Path+'\'; // если последний символ не \ то добавить его
{Последняя строка нужна для присвоения последнего символа '\',
потому что при обрезке файла 'C:\PROG.EXE' получим 'C:\',
а при обрезке 'C:\WINDOWS\PROG.EXE' получим 'C:\WINDOWS' }
form1.table1.databasename:= Path;
form1.table1.tablename:='supermarket.db';
form1.Query1.DatabaseName:=Path;
form1.table2.databasename:= Path;
form1.table2.tablename:='postuplenie.DB';
form1.Query2.DatabaseName:=Path;
table2.Active:=true;
end;
При использовании вышеуказанной процедуры, достаточно чтобы таблицы находились в одной папке с файлом проекта.
В таблице DbGrid1 названия полей таблицы отображаются на английском языке. Для того чтобы заменить их на русский, щелкаем дважды на компоненте, в отобразившемся окне Editing DBGrid.Columns правой кнопкой выбираем пункт Add All Fields. Выделяя каждое поле, изменяем свойство Title на подходящее название на русском языке.
Создадим главное меню с помощью компонента MainMenu.
Для кнопки Добавить пропишем следующий исходный код: procedure TForm1.N2Click(Sender: TObject);
begin
form5.Show// открывается форма Добавление товара
end;
Для кнопки Изменить
procedure TForm1.N4Click(Sender: TObject);
begin
form6.Show; // открывается форма Изменение товара
form6.edit2.Text:=form1.Table1.FieldByName('Name').AsString;
form6.edit3.Text:=form1.Table1.FieldByName('Trademark').AsString;
form6.edit4.Text:=form1.Table1.FieldByName('Kind').AsString;
form6.combobox1.Text:=form1.Table1.FieldByName('Ed_izm').AsStrin;
form6.edit6.Text:=floattostr(form1.Table1.FieldByName('Cena').AsFloat;
end;
Для кнопки Удалить
procedure TForm1.N3Click(Sender: TObject);
begin
form1.Table1.Delete
end;
Для кнопки Поступление товара
procedure TForm1.N19Click(Sender: TObject);
begin
form11.Show// открывается форма Поступление товара
end;
Полный код формы приведен в приложении 1.
5.3 Разработка формы «Вход в программу»
Создадим форму как на рис. 17.
Рис. 17. Вход в программу
Для кнопки ОК пропишем следующий исходный код:
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if combobox1.Text='администратор' then
if edit1.text=paroladmin then
begin
Form1.Show; //показать главное окно
form2.tag:=1;
form2.close;
end
else showmessage('Пароль не верен');
if combobox1.Text='кассир' then
if edit1.text=parolkassir then
begin
Form3.Show; //показать главное окно
form2.Tag:=1;
form2.close;
end
else showmessage('Пароль не верен');
end;
Для кнопки Cancel:
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
if form2.tag=0 then Application.Terminate;
end;
Полный код формы приведен в приложении 2.
5.4 Разработка формы Добавление товара
Создадим форму согласно рис. 18.
Рис. 18 Добавление товара
Для кнопки Добавить пропишем следующий исходный код:
procedure TForm5.Button1Click(Sender: TObject);
begin
form1.Table1.insert;
form1.Table1.FieldByName('Name').Asstring :=edit2.Text;
form1.Table1.FieldByName('Trademark').Asstring := edit3.Text;
form1.Table1.FieldByName('Kind').Asstring := edit4.Text;
form1.Table1.FieldByName('Ed_izm').Asstring := combobox1.Text;
form1.Table1.FieldByName('Cena').AsFloat:=strtofloat(edit6.Text);
form1.Table1.FieldByName('Kol_vo').Asinteger:=0;
form1.table1.Next;
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit6.Text:='';
combobox1.Text:='';
form5.Close
end;
Для кнопки Отмена:
procedure TForm5.Button2Click(Sender: TObject);
begin
form5.Close
end;
Для удобного перехода по полям с помощью нажатия клавиши Enter для полей ввода пропишем следующую процедуру:
procedure TForm5.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit3.SetFocus;
end;
Аналогично для других полей.
Полный код формы приведен в приложении 5.
5.5 Разработка формы Изменение товара
Создадим форму согласно рис. 19.
Рис. 19. Изменение формы
Для кнопки Изменить пропишем следующий исходный код:
procedure TForm6.Button1Click(Sender: TObject);
begin
form1.Table1.edit;
form1.Table1.FieldByName('Name').Asstring :=edit2.Text;
form1.Table1.FieldByName('Trademark').Asstring := edit3.Text;
form1.Table1.FieldByName('Kind').Asstring := edit4.Text;
form1.Table1.FieldByName('Ed_izm').Asstring := combobox1.Text;
form1.Table1.FieldByName('Cena').AsFloat:=strtofloat(edit6.Text);
form1.table1.post;
form6.Close
end;
Для кнопки Отмена:
procedure TForm6.Button2Click(Sender: TObject);
begin
form6.Close
end;
Для перехода по записям таблицы предназначены кнопки Назад и Вперед. Для них соответственно пропишем следующие процедуры:
procedure TForm6.Button4Click(Sender: TObject);
begin
form1.Table1.Prior;
form6.edit2.Text:=form1.Table1.FieldByName('Name').AsString;
form6.edit3.Text:=form1.Table1.FieldByName('Trademark').AsString;
form6.edit4.Text:=form1.Table1.FieldByName('Kind').AsString;
form6.combobox1.Text:=form1.Table1.FieldByName('Ed_izm').AsString;
form6.edit6.Text:= floattostr(form1.Table1.FieldByName('Cena').AsFloat);
end;
procedure TForm6.Button3Click(Sender: TObject);
begin
form1.Table1.Next;
form6.edit2.Text:=form1.Table1.FieldByName('Name').AsString;
form6.edit3.Text:=form1.Table1.FieldByName('Trademark').AsString;
form6.edit4.Text:=form1.Table1.FieldByName('Kind').AsString;
form6.combobox1.Text:=form1.Table1.FieldByName('Ed_izm').AsString;
form6.edit6.Text:= floattostr(form1.Table1.FieldByName('Cena').AsFloat);
end;
Так как список единиц измерения, фирм-производителей, вида товаров находится в файлах, перед созданием формы необходимо загрузить их в поля выбора с помощью следующего исходного кода:
procedure TForm6.FormActivate(Sender: TObject);
begin
combobox1.Items.LoadFromFile(path+'edin.txt');
edit3.Items.LoadFromFile(path+'firm.txt');
edit4.Items.LoadFromFile(path+'vid.txt');
end;
Полный код формы приведен в приложении 6.
5.6 Разработка формы Смена пароля
Пароль как на режим Администратор, так и на режим Кассир можно сменить с помощью формы. (Рис. 20).
Рис. 20. Смена пароля
Для кнопки Сменить пароль Администратора пропишем следующий исходный код:
procedure TForm4.Button1Click(Sender: TObject);
begin
if edit1.Text=form2.paroladmin then
begin form2.paroladmin:=edit2.text;
showmessage('пароль принят');
end
else showmessage('пароль не верен');
end;
Для кнопки Сменить пароль Кассира пропишем следующий исходный код:
procedure TForm4.Button2Click(Sender: TObject);
begin
if edit3.Text=form2.parolkassir then begin
form2.parolkassir:=edit4.text;
showmessage('пароль принят');
end
else showmessage('пароль не верен');
end;
Для того чтобы при закрытии формы измененные пароли сохранились в файл project.ini, создадим следующую процедуру:
procedure TForm4.WriteParams;
Var IniFile:TIniFile;Path:String;
begin
Path:=Application.ExeName;
Path:=ExtractFileDir(Path);
IniFile:=TIniFile.Create(Path+'project.ini');
IniFile.WriteString('FORM1','parol1',form2.parolkassir);
IniFile.WriteString('FORM1','parol2',form2.paroladmin);
IniFile.Free;
end;
При закрытии создадим вызов процедуры WriteParams.
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WriteParams;
end;
Полный код формы приведен в приложении 4.
5.7 Разработка формы Единицы измерения
Для работы со списком единиц измерения создадим следующую форму (рис. 21).
Рис. 21. Единицы измерения
Для кнопки Добавить пропишем следующий код:
procedure TForm10.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(edit1.Text);
edit1.Text:='';
edit1.SetFocus
end;
Для кнопки Удалить:
procedure TForm10.Button3Click(Sender: TObject);
begin
listbox1.Items.Delete(listbox1.ItemIndex);
end;
Для кнопки Сохранить
procedure TForm10.Button2Click(Sender: TObject);
begin
listbox1.Items.SaveToFile(path+'edin.txt');
form10.close
end;
Полный код формы приведен в приложении 8.
Аналогично создаются формы для работы со списком фирм-производителей и видом товара. Листинг формы для изменения списка фирм-производителей приведен в приложении 10. Листинг формы для изменения списка вида товаров приведен в приложении 11.
Вызов формы единицы измерения осуществляется через пункт главного меню Сервис-Добавить-Единицы измерения, где прописывается следующий код:
procedure TForm1.N21Click(Sender: TObject);
begin
form10.show
end;
Полный код формы приведен в приложении 1.
5.8 Разработка отчетов
Для создания отчета создадим следующую форму (рис. 22).
Рис. 22. Отчет
Для отображения текущей даты на отчете пропишем следующую процедуру:
procedure TForm7.FormCreate(Sender: TObject);
begin
qrlabel10.Caption:=datetostr(now);
end;
Полный листинг формы приведен в приложении 7.
Для пункта меню Отчет - по присутствующим товарам пропишем следующую процедуру:
procedure TForm1.N13Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.SQL.Add('where kol_vo>0');
query1.Open;
form7.quickrep1.Preview;
form7.Close
end;
Для пункта меню Отчет - по отсутствующим товарам пропишем следующую процедуру:
procedure TForm1.N14Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.SQL.Add('where kol_vo=0');
query1.Open;
form7.QRLabel2.Caption:='по отсутствующим товарам ';
form7.quickrep1.Preview;
form7.Close
end;
Для пункта меню Отчет - Полный отчет пропишем следующую процедуру:
procedure TForm1.N15Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.Open;
form7.QRLabel2.Caption:='по всем товарам, имеющимся в базе данных ';
form7.quickrep1.Preview;
form7.Close
end;
5.9 Разработка формы режима Кассир
Создадим следующую форму (Рис.23).
Рис. 23. Режим Кассира
В верхней таблицы хранятся данные о товарах, приобретенных пользователем. В нижней таблице хранятся сведения о товарах супермаркета.
Пропишем процедуру при создании формы:
procedure TForm3.FormCreate(Sender: TObject);
begin
form1.table2.Active:=true;
form1.table1.Active:=true;
form3.Table1.DatabaseName:=Path;
form3.table1.tablename:='chek.db';
table1.Active:=true;
table1.Edit;
while not(Table1.IsEmpty) do table1.Delete;
end;
Для поля Edit1 (Код товара) пропишем следующую процедуру:
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if not(form1.Table1.Locate('kod',edit1.Text,[]))
then begin showmessage('Код не существует'); edit1.Text:=''; end
else
edit2.SetFocus;
end;
end;
Если введенный код товара не существует, то программа выдаст соответствующее сообщение, если существует то, фокус перейдет к следующему полю ввода.
Для поля ввода Edit2 пропишем следующую процедуру:
procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if strtofloat(edit2.Text)<= form1.Table1.FieldByName('Kol_vo').AsFloat
then begin
Table1.insert;
Table1.FieldByName('kod').AsInteger :=form1.Table1.FieldValues['kod'];
Table1.FieldByName('Name').Asstring :=form1.Table1.FieldValues['name'];
Table1.FieldByName('Cena').Asstring :=form1.Table1.FieldValues['cena'];
Table1.FieldByName('trademark').Asstring :=form1.Table1.FieldValues['trademark'];
Table1.FieldByName('Kol_vo').AsFloat:=strtofloat(edit2.Text);
Table1.FieldByName('Summa').AsFloat:=Table1.FieldByName('Kol_vo').AsFloat*Table1.FieldByName('Cena').AsFloat;
form1.Table1.Edit;
form1.Table1.FieldByName('Kol_vo').AsFloat:= form1.Table1.FieldByName('Kol_vo').AsFloat-strtofloat(edit2.Text);
form1.Table1.Post ;
table1.Prior;
s:=0;
while not(Table1.eof) do begin
s:=s+Table1.FieldByName('Summa').AsFloat;
table1.Next;
end
end
else showmessage('не хватает количества');
label4.Caption:=floattostr(s);
edit1.Text:='';
edit2.Text:='';
edit1.SetFocus
end;
end;
В данной процедуре при нажатии в поле ввода клавиши Enter происходит следующие действия:
1. Определяется не меньше ли, количество товара приобретенного пользователем, имеющегося в базе.
2. Если товара достаточно, то производится запись в таблицу Чек.
3. Производится расчет общей суммы.
4. Если товара недостаточно, выводится соответствующее сообщение
При нажатии кнопки Печать :
procedure TForm3.Button2Click(Sender: TObject);
begin
form14.show;
form14.QuickRep1.Preview;
form14.close;
end;
Для Чека создадим следующую форму (рис. 24):
Рис. 24. Отчет «Чек»
Для формы отчета Чек пропишем следующую процедуру:
procedure TForm14.FormShow(Sender: TObject);
begin
qrlabel4.Caption:=datetimetostr(now);
qrdbtext1.DataField:='kod';
qrdbtext2.DataField:='name';
qrdbtext3.DataField:='trademark';
qrdbtext4.DataField:='cena';
qrdbtext5.DataField:='kol_vo';
qrdbtext6.DataField:='summa';
qrlabel11.Caption:=floattostr(s);
qrlabel12.Caption:=form3.Edit3.Text;
qrlabel13.Caption:=floattostr(strtofloat(form3.Edit3.Text)-s);
end;
Полный листинг формы приведен в приложении 12.
Для создания нового чека пропишем следующую процедуру:
procedure TForm3.Button1Click(Sender: TObject);
begin
table1.Edit;
while not(Table1.IsEmpty) do table1.Delete;
edit1.SetFocus ;
label4.Caption:='';
s:=0;
edit3.Text:='';
end;
Полный листинг формы приведен в приложении 3.
ЗАКЛЮЧЕНИЕ
Любой супермаркет, для продажи какого бы вида товаров он ни предназначался, представляет собой комплексное предприятие, в орбиту которого вовлекаются многие и многие отрасли хозяйства.
По характеру своей деятельности супермаркет - организация, целью которой является продажа населению продуктов и прочих товаров широкого потребления с целью получения прибыли.
Выбранная в данной дипломной работе структурная схема автоматизированной системы управления супермаркетом достаточно удобна как для рядового сотрудника, так и для инженера АСУ.
Центром любой подобной АСУ всегда является мощный энергонезависимый сервер, хранящий информацию о деятельности всех подсистем супермаркета в виде совокупности распределенных баз данных. Каждая база данных содержит одну или несколько информационных таблиц, содержание которых определяется названием БД и может различаться по внутренним характеристикам; одна и та же база данных может использоваться для работы различных подсистем путем выделения из нее соответствующей информационной таблицы.
Базы данных представляют собой эффективный инструмент для организации ввода, хранения, поиска и обработки структурированных данных.
В качестве среды разработки была выбрана среда Delphi.
Delphi - это среда разработки, используемой прежде всего для создания и поддержки приложений, предназначенных как для отдельных персональных компьютеров, так и для серверов. Delphi, как и разработанные с ее помощью приложения, могут функционировать под практически любой 32 разрядной операционной системой типа Windows. Создать саму БД (не СУБД) средствами Delphi очень сложно, даже невозможно. Если выбрать двух- или трехзвенную архитектуру, не обойтись без сервера БД, который создать собственными силами очень трудно (да и ни к чему, если на рынке предлагаются десятки таких программ, а в Интернете при желании можно найти и бесплатный, но вполне приличный сервер MySQL).
Если речь идет о файл-серверной БД, то и здесь понадобятся специальные средства. В Delphi для этих целей обычно используется утилита Database Desktop.
База данных АСУ «Супермаркет» состоит из 3 таблиц. Связь между таблицами осуществляется посредством процедур.
Программа АСУ «Супермаркет» имеет два режима работы: режим кассира и режим администратора.
При работе в режиме Администратора можно добавлять новый товар, удалять и изменять существующий товар, оформлять поступление товара.
Режим Кассир предназначен для фиксирования операции реализации товара в виде чека.
Одно из достоинств данной программы - независимость от места расположения таблиц и ехе-файла программы, главное чтобы они находились в одной папке. Программа сама прописывает все необходимые свойства, что облегчает работу пользователя.
Поставленная цель дипломной работы достигнута. На примере небольшого супермаркета рассмотрены возможности его автоматизации. Программное обеспечение можно использовать в минимаркетах, небольших магазинах осуществляющих реализацию любого товара.
Для конкретного использования данной программы необходимо доработать механизма получения кода товара, что невозможно без специального оборудования для считывания штрих-кода с продукта.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Smtrade.ru
2. Auit.ru
3. Equipnet.ru
4. smartcode.ru
5. Электронный журнал «Товар лицом»
6. Чертовской В.Д. Базы и банки данных.
7. Проектирование баз данных СУБД MS Access/ Гринченко н.Н. и др./ М.: Горячая линия-Телеком, 2004.
8. Информационные системы/ В.Н. Петров/учебник/ПИТЕРСпб 2002г.
9. Информационные технологии в экономике и управлении. Учебник/ Козырев А.А./ Спб.: Питер, 2001.
10. Информационные системы в экономике/ Патрушина С.М./ М.: ИКЦ «МарТ», 2004.
11. Окулов С.М. Основы программирования. Москва. 2002г.-424с.
12. Культин Н.Б. Программирование в Turbo Pascal 7.9 и Delphi. Санкт-Петербург, 2001г.
13. Александровский А.Д. Delphi 5. Разработка корпоративных приложений. Изд.”Для программистов” М.-2000г.
14. Брябкин В.М. “Программное обеспечение персональных ЭВМ”. М.-1990г.
15. Культин Н.Б. Delphi 6. Программирование на Object Pascal.
16. Периодическая литература «Мир ПК», «КомпьюПресс».
17. Гофман В.Е., А.Д. Хомоненко. «Delphi 7».
18. Кузнецов С.Д. «Основы современных баз данных», http://www.citforum.ru/database/osbd/contents.shtml
19. Карпова Т. «Базы данных. Модели, разработка, реализация», С-Петербург, 2001.
20. Кириллов В.В. Структуризованный язык запросов (SQL). - СПб.: ИТМО, 1994. - 80 с.
21. Кириллов В.В. «Структурированный язык запросов (SQL)». - СПб.: ИТМО, 1994
22. Культин. Н.Б.»Delphi 7 - программирование на Object Pascal.»
23. Тиори Т., Фрай Дж.» Проектирование структур баз данных». В 2 кн., - М.: Мир, 1985
24. Тиори Т., Фрай Дж. Проектирование структур баз данных. В 2 кн., - М.: Мир, 1985. Кн. 1. - 287 с.: Кн. 2. - 320 с.
25. Фараонов В.В., «Delphi 6.0», учебный курс, ISBN 5-8952-020-4, 400 с.
26. Фаронов В. «Система программирования Delphi», Санкт-Петербург, «БХВ-Петербург», 2005
27. Фаронов В. «Программирование баз данных в Delphi 7».
28. Хаббард Дж. «Автоматизированное проектирование баз данных». - М.: Мир, 1999
29. Эрик Хармон «Руководство разработчика баз данных в Delphi/Kylix», Москва,2002.
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ 1. ЛИСТИНГ UNIT1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBTables, DB, Grids, DBGrids, Menus,inifiles, StdCtrls,comobj,
jpeg, ExtCtrls, OleCtrls;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
Query1: TQuery;
MainMenu2: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
Table2: TTable;
Query2: TQuery;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
Label1: TLabel;
Label2: TLabel;
N16: TMenuItem;
N17: TMenuItem;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Table1Name: TStringField;
Table1Trademark: TStringField;
Table1Kind: TStringField;
Table1Ed_izm: TStringField;
Table1Opisanie: TMemoField;
Table1Cena: TFloatField;
Table1Kol_vo: TIntegerField;
table1kod: TAutoIncField;
N18: TMenuItem;
Table2Name: TIntegerField;
Table2Kod: TAutoIncField;
Table2Kol_vo: TFloatField;
Table2Data_post: TDateField;
Table2Srok_god: TDateField;
Table2Naimen: TStringField;
N22: TMenuItem;
N23: TMenuItem;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure N23Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
path:string;
implementation
uses Unit2, Unit4, Unit5, Unit6, Unit3, Unit7, Unit10, Unit11, Unit12,
Unit13;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:=false;
Path:=Application.ExeName; // полный путь и название запущенной программы
Path:=ExtractFileDir(Path); // отбрасываем название программы. Остается путь.
if Path[Length(Path)]<>'\' then Path:=Path+'\'; // если последний символ не \ то добавить его
{Последняя строка нужна для присвоения последнего символа '\',
потому что при обрезке файла 'C:\PROG.EXE' получим 'C:\',
а при обрезке 'C:\WINDOWS\PROG.EXE' получим 'C:\WINDOWS' }
form1.table1.databasename:= Path;
form1.table1.tablename:='supermarket.db';
form1.Query1.DatabaseName:=Path;
form1.table2.databasename:= Path;
form1.table2.tablename:='postuplenie.DB';
form1.Query2.DatabaseName:=Path;
table2.Active:=true;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
table1.Active:=true;
table2.Active:=true;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
table1.Active:=false;
table2.Active:=false;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
form1.Close
end;
procedure TForm1.N11Click(Sender: TObject);
begin
form4.Show;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
form5.Show
end;
procedure TForm1.N3Click(Sender: TObject);
begin
form1.Table1.Delete
end;
procedure TForm1.N4Click(Sender: TObject);
begin
form6.Show;
form6.edit2.Text:=form1.Table1.FieldByName('Name').AsString;
form6.edit3.Text:=form1.Table1.FieldByName('Trademark').AsString;
form6.edit4.Text:=form1.Table1.FieldByName('Kind').AsString;
form6.combobox1.Text:=form1.Table1.FieldByName('Ed_izm').AsString;
form6.edit6.Text:= floattostr(form1.Table1.FieldByName('Cena').AsFloat);
end;
procedure TForm1.N13Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.SQL.Add('where kol_vo>0');
query1.Open;
form7.quickrep1.Preview;
form7.Close
end;
procedure TForm1.N14Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.SQL.Add('where kol_vo=0');
query1.Open;
form7.QRLabel2.Caption:='по отсутствующим товарам ';
form7.quickrep1.Preview;
form7.Close
end;
procedure TForm1.N15Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.Open;
form7.QRLabel2.Caption:='по всем товарам, имеющимся в базе данных ';
form7.quickrep1.Preview;
form7.Close
end;
procedure TForm1.N16Click(Sender: TObject);
begin
form7.show;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from supermarket');
query1.SQL.Add('where Srok_god<"'+datetostr(date)+'"');
query1.Open;
form7.QRLabel2.Caption:='по отсутствующим товарам ';
form7.quickrep1.Preview;
form7.Close
end;
procedure TForm1.N21Click(Sender: TObject);
begin
form10.show
end;
procedure TForm1.N19Click(Sender: TObject);
begin
form11.Show
end;
procedure TForm1.N17Click(Sender: TObject);
var
XLApp,Sheet,Colum:Variant;
index,i:Integer;
begin
XLApp:=CreateOleObject('Excel.Application');
XLApp.Visible:=true;
XLApp.Workbooks.Add(-4167) ;
XLApp.Workbooks[1].Worksheets[1].Name:='Отчет';
colum:=XLApp.Workbooks[1].Worksheets[1].Columns;
Colum.columns[1].ColumnWidth:=20;
Colum.columns[2].ColumnWidth:=20;
Colum.columns[3].ColumnWidth:=20;
Colum.columns[4].ColumnWidth:=20;
Colum.columns[5].ColumnWidth:=20;
Colum.columns[6].ColumnWidth:=20;
Colum.columns[7].ColumnWidth:=20;
Colum:=XLApp.Workbooks[1].Worksheets[1].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14;
Sheet:=XLApp.Workbooks[1].Worksheets[1];
Sheet.Cells[1,2]:='Данные о товаре';
Sheet.Cells[2,1]:='Код товара';
Sheet.Cells[2,2]:= 'Наименование' ;
Sheet.Cells[2,3]:='Фирма-производитель';
Sheet.Cells[2,4]:='Вид';
Sheet.Cells[2,5]:='Единица измерения';
Sheet.Cells[2,6]:='Цена за ед';
Sheet.Cells[2,7]:='Количество';
index:=3;
table1.First;
for i:=0 to table1.RecordCount-1 do
begin
Sheet.Cells[index,1]:=table1.Fieldbyname('kod').Asinteger;
Sheet.Cells[index,2]:=table1.Fieldbyname('name').AsString;
Sheet.Cells[index,3]:=table1.Fieldbyname('trademark').AsString;
Sheet.Cells[index,4]:=table1.Fieldbyname('kind').AsString;
Sheet. Cells [index, 5] :=table1.Fieldbyname('ed_izm').AsString;
Sheet. Cells [index, 6] :=table1.Fieldbyname('cena').Asinteger;
Sheet. Cells [index, 7] :=table1.Fieldbyname('kol_vo').Asinteger;
Inc( index) ;
table1.Next;
end;
end;
procedure TForm1.N18Click(Sender: TObject);
var
XLApp,Sheet,Colum:Variant;
index,i:Integer;
begin
XLApp:=CreateOleObject('Excel.Application');
XLApp.Visible:=true;
XLApp.Workbooks.Add(-4167) ;
XLApp.Workbooks[1].Worksheets[1].Name:='Отчет';
colum:=XLApp.Workbooks[1].Worksheets[1].Columns;
Colum.columns[1].ColumnWidth:=20;
Colum.columns[2].ColumnWidth:=20;
Colum.columns[3].ColumnWidth:=20;
Colum.columns[4].ColumnWidth:=20;
Colum.columns[5].ColumnWidth:=20;
Colum:=XLApp.Workbooks[1].Worksheets[1].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14;
Sheet:=XLApp.Workbooks[1].Worksheets[1];
Sheet.Cells[1,2]:='Данные о поступлении';
Sheet.Cells[2,1]:='№п\п';
Sheet.Cells[2,2]:= 'Код товара' ;
Sheet.Cells[2,3]:='Наименование';
Sheet.Cells[2,4]:='Дата поступления';;
Sheet.Cells[2,5]:='Количество';
index:=3;
table2.First;
for i:=0 to table2.RecordCount-1 do
begin
Sheet.Cells[index,1]:=table2.Fieldbyname('kod').Asinteger;
Sheet.Cells[index,2]:=table2.Fieldbyname('name').Asinteger;
Sheet.Cells[index,3]:=table2.Fieldbyname('naimen').AsString;
Sheet.Cells[index,4]:=table2.Fieldbyname('data_post').AsDateTime;
Sheet. Cells [index, 5] :=table2.Fieldbyname('kol_vo').Asinteger;
Inc( index) ;
table2.Next;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
form10.ListBox1.Items.LoadFromFile(path+'edin.txt');
dbgrid1.Columns[4].PickList:=form10.ListBox1.Items;
end;
procedure TForm1.N22Click(Sender: TObject);
begin
form12.show
end;
procedure TForm1.N23Click(Sender: TObject);
begin
form13.show
end;
end.
ПРИЛОЖЕНИЕ 2. ЛИСТИНГ UNIT2
база данное программный delphi
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, inifiles, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Image1: TImage;
procedure ReadParams; // процедура чтения параметров
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
paroladmin,parolkassir:string[5];
end;
var
Form2: TForm2;
a:integer;
implementation
uses Unit1, Unit3;
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if combobox1.Text='администратор' then
if edit1.text=paroladmin then
begin
Form1.Show; //показать главное окно
form2.tag:=1;
form2.close;
end
else showmessage('Пароль не верен');
if combobox1.Text='кассир' then
if edit1.text=parolkassir then
begin
Form3.Show; //показать главное окно
form2.Tag:=1;
form2.close;
end
else showmessage('Пароль не верен');
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
if form2.tag=0 then Application.Terminate;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if form2.tag=0 then Application.Terminate;
end;
procedure TForm2.ReadParams;
Var IniFile:TIniFile;Path:String; // объявление переменной, через которую будут обрабатываться данные
begin
Path:=Application.ExeName; // полный путь и название запущенной программы
Path:=ExtractFileDir(Path); // отбрасываем название программы. Остается путь.
if Path[Length(Path)]<>'\' then Path:=Path+'\'; // если последний символ не \ то добавить его
{Последняя строка нужна для присвоения последнего символа '\',
потому что при обрезке файла 'C:\PROG.EXE' получим 'C:\',
а при обрезке 'C:\WINDOWS\PROG.EXE' получим 'C:\WINDOWS' }
IniFile:=TIniFile.Create(Path+'project.ini');
//IniFile:=TIniFile.Create('project.ini'); // создаем переменную
parolkassir:=IniFile.ReadString('FORM1','parol1','');
paroladmin:=IniFile.ReadString('FORM1','parol2','');
IniFile.Free;
end;
procedure TForm2.FormCreate(Sender: TObject);
var Path:String;
begin
ReadParams;
end;
end.
ПРИЛОЖЕНИЕ 3. ЛИСТИНГ UNIT3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables, ExtCtrls, DBCtrls,
RpRave, RpCon, RpConDS, RpConBDE, RpRenderCanvas, RpRenderPrinter,
RpDefine, RpRender, RpRenderText, jpeg;
type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Edit1: TEdit;
Table1: TTable;
DBGrid2: TDBGrid;
DataSource1: TDataSource;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
DBNavigator1: TDBNavigator;
Button2: TButton;
Image1: TImage;
Label5: TLabel;
Edit3: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Button2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
s:real;
implementation
uses Unit1, Unit2, Unit4, Unit14;
{$R *.dfm}
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
form1.table2.Active:=true;
form1.table1.Active:=true;
form3.Table1.DatabaseName:=Path;
form3.table1.tablename:='chek.db';
table1.Active:=true;
table1.Edit;
while not(Table1.IsEmpty) do table1.Delete;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
table1.Edit;
while not(Table1.IsEmpty) do table1.Delete;
edit1.SetFocus ;
label4.Caption:='';
s:=0;
edit3.Text:='';
end;
procedure TForm3.Edit1Change(Sender: TObject);
begin
//form1.Table1.SetKey;
//form1.Table1.FieldByName('kod').Asinteger := strtoint(Edit1.Text);
//form1.Table1.GotoKey;
end;
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if not(form1.Table1.Locate('kod',edit1.Text,[]))
then begin showmessage('Код не существует'); edit1.Text:=''; end
else
edit2.SetFocus;
end;
end;
procedure TForm3.FormShow(Sender: TObject);
begin
edit1.SetFocus
end;
procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
if strtofloat(edit2.Text)<= form1.Table1.FieldByName('Kol_vo').AsFloat
then begin
Table1.insert;
Table1.FieldByName('kod').AsInteger :=form1.Table1.FieldValues['kod'];
Table1.FieldByName('Name').Asstring :=form1.Table1.FieldValues['name'];
Table1.FieldByName('Cena').Asstring :=form1.Table1.FieldValues['cena'];
Table1.FieldByName('trademark').Asstring :=form1.Table1.FieldValues['trademark'];
Table1.FieldByName('Kol_vo').AsFloat:=strtofloat(edit2.Text);
Table1.FieldByName('Summa').AsFloat:=Table1.FieldByName('Kol_vo').AsFloat*Table1.FieldByName('Cena').AsFloat;
form1.Table1.Edit;
form1.Table1.FieldByName('Kol_vo').AsFloat:= form1.Table1.FieldByName('Kol_vo').AsFloat-strtofloat(edit2.Text);
form1.Table1.Post ;
table1.Prior;
s:=0;
while not(Table1.eof) do begin
s:=s+Table1.FieldByName('Summa').AsFloat;
table1.Next;
end
end
else showmessage('не хватает количества');
label4.Caption:=floattostr(s);
edit1.Text:='';
edit2.Text:='';
edit1.SetFocus
end;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
form14.show;
form14.QuickRep1.Preview;
form14.close;
end;
procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then button2.Click
end;
end.
ПРИЛОЖЕНИЕ 4. ЛИСТИНГ UNIT4
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, inifiles, ExtCtrls, jpeg;
type
TForm4 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Button2: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure WriteParams;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
if edit1.Text=form2.paroladmin then
begin form2.paroladmin:=edit2.text;
showmessage('пароль принят');
end
else showmessage('пароль не верен');
end;
procedure TForm4.WriteParams;
Var IniFile:TIniFile;Path:String;
begin
Path:=Application.ExeName; // полный путь и название запущенной программы
Path:=ExtractFileDir(Path); // отбрасываем название программы. Остается путь.
if Path[Length(Path)]<>'\' then Path:=Path+'\'; // если последний символ не \ то добавить его
{Последняя строка нужна для присвоения последнего символа '\',
потому что при обрезке файла 'C:\PROG.EXE' получим 'C:\',
а при обрезке 'C:\WINDOWS\PROG.EXE' получим 'C:\WINDOWS' }
//IniFile:=TIniFile.Create('project.ini');
IniFile:=TIniFile.Create(Path+'project.ini');
IniFile.WriteString('FORM1','parol1',form2.parolkassir);
IniFile.WriteString('FORM1','parol2',form2.paroladmin);
IniFile.Free;
end;
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WriteParams;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
if edit3.Text=form2.parolkassir then begin
form2.parolkassir:=edit4.text;
showmessage('пароль принят');
end
else showmessage('пароль не верен');
end;
end.
ПРИЛОЖЕНИЕ 5. ЛИСТИНГ UNIT5
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, jpeg, ExtCtrls;
type TForm5 = class(TForm)
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit2: TEdit;
Edit6: TEdit;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
Image1: TImage;
edit3: TComboBox;
edit4: TComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1Change(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit1, Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
begin
form1.Table1.insert;
form1.Table1.FieldByName('Name').Asstring :=edit2.Text;
form1.Table1.FieldByName('Trademark').Asstring := edit3.Text;
form1.Table1.FieldByName('Kind').Asstring := edit4.Text;
form1.Table1.FieldByName('Ed_izm').Asstring := combobox1.Text;
form1.Table1.FieldByName('Cena').AsFloat:=strtofloat(edit6.Text);
form1.Table1.FieldByName('Kol_vo').Asinteger:=0;
form1.table1.Next;
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit6.Text:='';
combobox1.Text:='';
form5.Close
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
form5.Close
end;
procedure TForm5.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit3.SetFocus;
end;
procedure TForm5.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit4.SetFocus;
end;
procedure TForm5.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then combobox1.SetFocus;
end;
procedure TForm5.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit6.SetFocus;
end;
procedure TForm5.DateTimePicker1Change(Sender: TObject);
begin
button1.SetFocus;
end;
procedure TForm5.FormActivate(Sender: TObject);
begin
combobox1.Items.LoadFromFile(path+'edin.txt');
edit3.Items.LoadFromFile(path+'firm.txt');
edit4.Items.LoadFromFile(path+'vid.txt');
end;
end.
ПРИЛОЖЕНИЕ 6. ЛИСТИНГ UNIT6
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, jpeg, ExtCtrls;
type
TForm6 = class(TForm)
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit2: TEdit;
Edit6: TEdit;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
Button3: TButton;
Button4: TButton;
Image1: TImage;
edit3: TComboBox;
edit4: TComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit1, Unit5;
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
form1.Table1.edit;
form1.Table1.FieldByName('Name').Asstring :=edit2.Text;
form1.Table1.FieldByName('Trademark').Asstring := edit3.Text;
form1.Table1.FieldByName('Kind').Asstring := edit4.Text;
form1.Table1.FieldByName('Ed_izm').Asstring := combobox1.Text;
form1.Table1.FieldByName('Cena').AsFloat:=strtofloat(edit6.Text);
form1.table1.post;
form6.Close
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
form6.Close
end;
procedure TForm6.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit3.SetFocus;
end;
procedure TForm6.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit4.SetFocus;
end;
procedure TForm6.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then combobox1.SetFocus;
end;
procedure TForm6.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit6.SetFocus;
end;
procedure TForm6.DateTimePicker1Change(Sender: TObject);
begin
button1.SetFocus;
end;
procedure TForm6.Button3Click(Sender: TObject);
begin
form1.Table1.Next;
form6.edit2.Text:=form1.Table1.FieldByName('Name').AsString;
form6.edit3.Text:=form1.Table1.FieldByName('Trademark').AsString;
form6.edit4.Text:=form1.Table1.FieldByName('Kind').AsString;
form6.combobox1.Text:=form1.Table1.FieldByName('Ed_izm').AsString;
form6.edit6.Text:= floattostr(form1.Table1.FieldByName('Cena').AsFloat);
end;
procedure TForm6.Button4Click(Sender: TObject);
begin
form1.Table1.Prior;
form6.edit2.Text:=form1.Table1.FieldByName('Name').AsString;
form6.edit3.Text:=form1.Table1.FieldByName('Trademark').AsString;
form6.edit4.Text:=form1.Table1.FieldByName('Kind').AsString;
form6.combobox1.Text:=form1.Table1.FieldByName('Ed_izm').AsString;
form6.edit6.Text:= floattostr(form1.Table1.FieldByName('Cena').AsFloat);
end;
procedure TForm6.FormActivate(Sender: TObject);
begin
combobox1.Items.LoadFromFile(path+'edin.txt');
edit3.Items.LoadFromFile(path+'firm.txt');
edit4.Items.LoadFromFile(path+'vid.txt');
end;
end.
ПРИЛОЖЕНИЕ 7. ЛИСТИНГ UNIT7
unit Unit7;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, jpeg, QuickRpt, ExtCtrls;
type TForm7 = class(TForm)
QuickRep1: TQuickRep;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
SummaryBand1: TQRBand;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
QRImage1: TQRImage;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRDBText3: TQRDBText;
QRLabel7: TQRLabel;
QRDBText5: TQRDBText;
QRLabel8: TQRLabel;
QRLabel6: TQRLabel;
QRDBText4: TQRDBText;
QRLabel9: TQRLabel;
QRDBText6: TQRDBText;
QRLabel10: TQRLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm7.FormCreate(Sender: TObject);
begin
qrlabel10.Caption:=datetostr(now);
end;
end.
ПРИЛОЖЕНИЕ 8. ЛИСТИНГ UNIT10
unit Unit10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm10 = class(TForm)
ListBox1: TListBox;
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form10: TForm10;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm10.FormCreate(Sender: TObject);
begin
listbox1.Items.LoadFromFile('edin.txt');
end;
procedure TForm10.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(edit1.Text);
edit1.Text:='';
edit1.SetFocus
end;
procedure TForm10.Button2Click(Sender: TObject);
begin
listbox1.Items.SaveToFile(path+'edin.txt');
form10.close
end;
procedure TForm10.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then button1.SetFocus
end;
procedure TForm10.Button3Click(Sender: TObject);
begin
listbox1.Items.Delete(listbox1.ItemIndex);
end;
end.
ПРИЛОЖЕНИЕ 9. ЛИСТИНГ UNIT11
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, ComCtrls, StdCtrls, ExtCtrls,
DBCtrls, jpeg;
type
TForm11 = class(TForm)
Label2: TLabel;
Label7: TLabel;
Edit7: TEdit;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
Label1: TLabel;
Edit1: TEdit;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11: TForm11;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm11.Button1Click(Sender: TObject);
begin
form1.Table2.insert;
form1.Table2.FieldByName('Name').Asinteger :=strtoint(edit1.Text);
form1.Table2.FieldByName('Naimen').Asstring := combobox1.Text;
form1.Table2.FieldByName('Kol_vo').Asinteger := strtoint(edit7.Text);
form1.Table1.Edit;
form1.Table1.FieldByName('Kol_vo').AsInteger:= form1.Table1.FieldByName('Kol_vo').AsInteger+ strtoint(edit7.Text);
form1.Table1.post;
form1.Table2.FieldByName('data_post').AsDateTime:=now();
form1.table2.Next;
combobox1.Text:='';
edit1.Text:='';
edit7.Text:='';
end;
procedure TForm11.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm11.ComboBox1Change(Sender: TObject);
begin
form1.Table1.Locate('name',combobox1.Text,[]);
edit1.Text:=inttostr(form1.Table1.FieldValues['kod'] );
end;
procedure TForm11.FormShow(Sender: TObject);
begin
form1.Table1.First;
combobox1.Items.Clear;
while not(form1.Table1.eof) do begin
combobox1.Items.Add(form1.Table1.FieldByName('name').Asstring);
form1.table1.Next;
end ;
end;
end.
ПРИЛОЖЕНИЕ 10. ЛИСТИНГ UNIT12
unit Unit12;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm12 = class(TForm)
Image1: TImage;
Label1: TLabel;
ListBox1: TListBox;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form12: TForm12;
implementation
uses Unit10, Unit1;
{$R *.dfm}
procedure TForm12.FormCreate(Sender: TObject);
begin
listbox1.Items.LoadFromFile('firm.txt');
end;
procedure TForm12.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(edit1.Text);
edit1.Text:='';
edit1.SetFocus
end;
procedure TForm12.Button2Click(Sender: TObject);
begin
listbox1.Items.SaveToFile(path+'firm.txt');
form12.close
end;
procedure TForm12.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then button1.SetFocus
end;
procedure TForm12.Button3Click(Sender: TObject);
begin
listbox1.Items.Delete(listbox1.ItemIndex);
end;
end.
ПРИЛОЖЕНИЕ 11. ЛИСТИНГ UNIT13
unit Unit13;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm13 = class(TForm)
Image1: TImage;
Label1: TLabel;
ListBox1: TListBox;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form13: TForm13;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm13.FormCreate(Sender: TObject);
begin
listbox1.Items.LoadFromFile('vid.txt');
end;
procedure TForm13.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(edit1.Text);
edit1.Text:='';
edit1.SetFocus
end;
procedure TForm13.Button2Click(Sender: TObject);
begin
listbox1.Items.SaveToFile(path+'vid.txt');
form13.close
end;
procedure TForm13.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then button1.SetFocus
end;
procedure TForm13.Button3Click(Sender: TObject);
begin
listbox1.Items.Delete(listbox1.ItemIndex);
end;
end.
ПРИЛОЖЕНИЕ 12. ЛИСТИНГ UNIT14
unit Unit14;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls;
type
TForm14 = class(TForm)
QuickRep1: TQuickRep;
TitleBand1: TQRBand;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
SummaryBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRLabel10: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRLabel11: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRLabel15: TQRLabel;
QRLabel16: TQRLabel;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form14: TForm14;
implementation
uses Unit3;
{$R *.dfm}
procedure TForm14.FormShow(Sender: TObject);
begin
qrlabel4.Caption:=datetimetostr(now);
qrdbtext1.DataField:='kod';
qrdbtext2.DataField:='name';
qrdbtext3.DataField:='trademark';
qrdbtext4.DataField:='cena';
qrdbtext5.DataField:='kol_vo';
qrdbtext6.DataField:='summa';
qrlabel11.Caption:=floattostr(s);
qrlabel12.Caption:=form3.Edit3.Text;
qrlabel13.Caption:=floattostr(strtofloat(form3.Edit3.Text)-s);
end;
end.
Размещено на Allbest.ru
Подобные документы
Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.
курсовая работа [185,6 K], добавлен 08.11.2008Типы оборудования, относящиеся к компьютерной технике. Состав системного блока и периферийные устройства. Классификация программного обеспечения. Требования, предъявляемые к системам управления базами данных. Задачи и этапы проектирования баз данных.
контрольная работа [4,1 M], добавлен 18.02.2014Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.
дипломная работа [2,0 M], добавлен 25.03.2014Понятие банка и базы данных, их назначение. Создание базы данных "Учет нарушений ПДД" с удобным пользовательским интерфейсом. Требования к функциональным характеристикам. Условия эксплуатации и программные требования. Описание входных и выходных данных.
курсовая работа [2,9 M], добавлен 22.09.2012Авторизация с каталогами проектирования базы данных магазина. Задачи базы данных: учет всех товаров, поиск и выдача данных о клиентах, адрес, телефоны, цена и наличие товара. Этапы проектирования базы данных. Схема данных, создание запросов и их формы.
реферат [1,6 M], добавлен 22.10.2009Концептуальная модель базы данных "Бюро по трудоустройству". Разработка информационного и программного обеспечения объектов автоматизации. Реализация базы данных в СУБД MsAccess. Запросы к базе данных. Таблицы, отчеты и макросы. Интерфейс пользователя.
курсовая работа [5,2 M], добавлен 30.05.2016Основные подходы к организации баз данных, компоненты языка Delphi, используемые для их построения. Разработка программного обеспечения - базы данных "Школа", предназначенной для хранения информации об учащихся, их успеваемости по различным дисциплинам.
курсовая работа [739,8 K], добавлен 14.07.2012Программа поиска в базе данных в среде Borland Delphi 7.0 Enterprise. Условия и блок-схемы задач. Ввод массива. Текст программ в Delphi, в Паскаль. Текст программы поиска в базе данных. Кодирование материала. Изготовление реляционной базы данных.
практическая работа [27,6 K], добавлен 11.10.2008Создание базы данных "Автовокзал" как части информационной системы. Требования к базе данных и этапы ее разработки. Анализ информационных потоков, выбор модели. Входные и выходные данные. Программирование базы данных на языке Borland Delphi 7.0.
курсовая работа [105,8 K], добавлен 16.05.2011Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012