Создание программного обеспечения для небольшого супермаркета

Требования, предъявляемые к базе данных. Основы построения базы данных. Программный продукт 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.