Программа для учета товаров в книжном магазине

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    822,14 Кб
  • Опубликовано:
    2016-01-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программа для учета товаров в книжном магазине

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное

учреждение высшего образования

«КРЫМСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ

им. В.И. Вернадского»

(ФГАОУ ВО «КФУ им. В.И. Вернадского)






Пояснительная записка к курсовому проекту

Технология разработки программного обеспечения

Программа для учета товаров в книжном магазине

Специальность 09.02.03 «Программирование в компьютерных системах»

Исполнитель, студент гр. 3ПКС

Дудко А.А.

Руководитель

Преподаватель Железняк А.В.



2015

ВВЕДЕНИЕ

С развитием вычислительной техники, параллельно развивается и рынок программного обеспечения. С каждым годом разрабатываются всё новые и новые программы на самую разную тематику и для выполнения самых различных видов задач. Уже сейчас практически в каждой отрасли требуется определенное аппаратное обеспечение, а соответственно и программное обеспечение тоже. На каждом предприятии сейчас установлены компьютеры и программы, выполняющие поставленные предприятием задания, которые так или иначе облегчат или ускорят производство, продажи и т.п.

Не является исключением и книжный магазин - в нем имеются товары, а это значит, что удобнее будет вести учет этих товаров не на бумаге, а при помощи базы данных. Это не просто упростит работникам их задания, но и ускорит их работу, так как при помощи программы они смогут быстро находить нужную книгу в базе данных, уточнить цену и другие параметры, а также, нажав на одну кнопку, выполнить распечатку для покупателя.

Задачей моего курсового проектирования является создание программы, в которой имеются:

·    База данных книг;

·        Архив;

·        Все необходимые функции, позволяющие отображать, добавлять, изменять и удалять книги в базе;

·        Система авторизации пользователей;

·        Возможность печати книг из базы данных;

·        Удобный интерфейс;

1. Постановка задач

Первоначальной задачей моего курсового проектирования было определиться с языком программирования, на котором будет написан курсовой проект.

После оценки возможностей я подсчитал все минусы и плюсы языков с которыми я теоретически смог бы работать и выбрал язык программирования Delphi.

Следующей задачей было изучение этого языка, изучение тонкостей написания программ на нем, а также изучение нужных мне компонентов. Как оказалось Delphi очень прост в изучении и применении, а это значит, что на изучение языка я потратил меньше времени, чем планировал.

После изучения языка Delphi мне было нужно научиться работать с базами данных, ведь выполнение курсового проекта подразумевает использование в нем баз данных в обязательном порядке. После просмотра нескольких уроков я выучил необходимый мне для написания программы синтаксис, как правильно составлять SQL-запросы, как и где их применять.

Следующей задачей было скачать и установить все необходимые программы, компиляторы и т.п.

И я установил такие программы, как Borland Delphi 7 и Microsoft Office Access 2007.

Далее непосредственно написание программы:

·        Добавление компонентов для работы с базой данных;

·        Создание и заполнение базы данных;

·        Подключение компонентов к базе данных;

·        Добавление и подключение таблицы;

·        Добавление модуля поиска и сортировки;

·        Создание модуля добавления записей в базу данных;

·        Создание модуля изменения записей в базе данных;

·        Создание таблицы для архива;

·        Создание модуля покупки - переноса в архив и удаления;

·        Создание системы авторизации пользователей в программе;

·        Создание модуля печати из таблицы.

2. Требования к программе

интерфейс язык база данные

2.1 Требования к функциональности

Программа должна содержать все необходимые функции, которые должны обеспечивать учет товаров в книжном магазине, а именно:

·        Отображение таблицы, которая содержит перечень книг;

·        Возможность добавлять и изменять записи в таблице;

·        Возможность сортировать книги по удобному параметру, а также

быстрый поиск нужной книги из списка;

·        Возможность удалять книги, а также перемещать их в архив;

·        Возможность распечатки книг из таблицы;

2.2 Требования к надежности

Для повышения надежности я решил сделать удаление в два уровня:

Удаление из основной таблицы с перемещением удаляемой записи в архив;

Удаление записи непосредственно из архива.

При удалении из основной таблицы запись помещается в таблицу «архив» и при этом в ней добавляются такие колонки, как «продавец» и «дата продажи». В колонке «продавец» указан логин продавца, который он использует при входе в программу, а в колонке «дата продажи» указывается число, месяц и год удаления книги из основной таблицы (продажи этой книги).

А также я сделал систему авторизации (Рис. 2.1), которая позволит контролировать и документировать, какой продавец продал ту или иную книгу:

Рис. 2.1 - Система авторизации

2.3 Требования к составу и параметрам технических средств

Минимальные системные требования:

·        Процессор: Intel Pentium 233 МГц и выше;

·        Операционная система: Microsoft Windows XP и новее;

·        Оперативная память: 64 Мбайт;

·        Пространство на жестком диске: 8 МБ;

·        Монитор: SVGA или выше;

·        Другое аппаратное обеспечение: клавиатура, мышь;

·        Процессор: Intel Pentium 233 МГц и выше;

·        Операционная система: Microsoft Windows XP и новее;

·        Оперативная память: 128 Мбайт;

·        Пространство на жестком диске: 16 МБ;

·        Монитор: SVGA или выше;

·        Другое аппаратное обеспечение: клавиатура, мышь, принтер;

2.4 Требования к программной совместимости

Операционная система, которую я использовал - Microsoft Windows 8.1 Корпоративная. Программа написана на языке Delphi в среде программирования Borland Delphi 7. Для создания и работы с базой данных я использовал Microsoft Office Access 2007. А также требуется Microsoft Office Word для осуществления распечатки содержимого таблицы.

3. Проектирование

.1 Выбор языка программирования

Для решения поставленной задачи и представления информационных материалов оптимально использовать язык Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения.

Для реализации программы я выбрал систему программирования Delphi версии 7 фирмы Enterprise (Borland), так как она предоставляет наиболее широкие возможности для программирования приложений ОС Windows.- это продукт Borland International для быстрого создания приложений. Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и многое другое, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды.

Преимущества Delphi по сравнению с аналогичными программными продуктами.

быстрота разработки приложения;

высокая производительность разработанного приложения;

низкие требования разработанного приложения к ресурсам компьютера;

наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;

возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);

удачная проработка иерархии объектов.

Система программирования Delphi рассчитана на программирование различных приложений и предоставляет большое количество компонентов для этого.

3.2 Структурная схема программного продукта

Рис. 3.1 - Структурная схема программы

.3 Алгоритм представления задачи

В начале программы отображается окно авторизации, если пользователь уже зарегистрирован - он вводит свои данные, если нет, то по нажатию кнопки «Регистрация» появляется окно, где он сможет создать себе новый профайл. После авторизации появляется главное окно программы, в котором есть кнопки, таблица и поиск по таблице. По нажатию на кнопку «Добавить», появляется окно добавления. По нажатию кнопки «Изменить», появляется окно изменения выделенной записи. По нажатию кнопки «Купить» или «Удалить» (В зависимости от того, какая таблица отображена: книги - купить; архив - удалить), появляется окно подтверждения удаления/покупки книги. По нажатию кнопки «Печать», открывается новый документ Microsoft Office Word, в котором присутствует таблица, которая имеется в программе.

.4 Проектирование пользовательского интерфейса

.4.1 Выбор типа пользовательского интерфейса

Так как программа, которую я разрабатываю, является Windows-приложением, в качестве пользовательского интерфейса в программе реализован интерфейс со свободной навигацией. Использовать программу крайне удобно, ведь интерфейс прост, понятен и легок в освоении. Для совершения нужного действия достаточно нажать на соответствующую кнопку и не более того.

3.4.2 Разработка форм ввода-вывода информации

Вывод информации из базы данных осуществляется компонентом Delphi 7 - DBGrid. DBGrid подключен к компоненту DataSource. DataSource, в свою очередь, подключен к ADOQuery, к которому подключен компонент ADOConnection, в котором и осуществляется подключение к базе данных, а точнее формирование строки подключения. Нагляднее это можно увидеть на рисунке 3.2.

Рисунок 3.2 - Расстановка компонентов подключения в проекте.

Также по нажатию кнопки «Печать» произойдет вывод таблицы в печатной форме в документ Microsoft Office Word (Рис. 3.3).

Рисунок 3.3. - Печать таблицы

По нажатию кнопки «Добавить» появляется окно для ввода всех нужных параметров книги, таких как: название, автор, ISBN, жанр, год выпуска, цена, количество страниц и количество книг в наличии (Рис. 3.4).

Рис.3.4 - Добавление новой книги

ЗАКЛЮЧЕНИЕ

В процессе достижения цели я использовал знания, полученные из книги Александра Чиртика «Программирование в Delphi. Трюки и эффекты», просмотра ознакомительных видеоуроков по Delphi 7 от Антона Макрушина, а также консультируясь с преподавателем дисциплины «Программирование в компьютерных системах».

Я использовал такие программы, как:

·  Microsoft Office Access - для создания базы данных и таблиц в ней;

·        Borland Delphi 7 Enterprise - для разработки программы;

·        Adobe Photoshop CS6 - для обработки картинок для кнопок.

Результатом проделанной работы стало написание программы, готовой для использования в книжном магазине. Программа обладает приятным, а главное простым и интуитивно понятным интерфейсом. С программой легко разобраться и без документаций и руководств, в связи с отсутствием лишних деталей в интерфейсе. Однако это не означает, что пришлось уступить функционалом - он такой, как и был запланирован. Все нужные задачи были решены, а планы воплощены в действие. Программа, как и предусматривалось, имеет следующие функции:

Ø  Отображение таблицы, которая содержит перечень книг;

Ø  Возможность добавлять и изменять записи в таблице;

Ø  Возможность сортировать книги по удобному параметру, а также быстрый поиск нужной книги из списка;

Ø  Возможность удалять книги, а также перемещать их в архив;

Ø  Возможность распечатки книг из таблицы;

СПИСОК ИСТОЧНИКОВ

1.      Александр Чиртик: «Программирование в компьютерных системах» Издательство «Питер» , 2010 год.

ПРИЛОЖЕНИЯ

ПРИЛОЖЕНИЕ 1

Рисунок П.1 - Общий вид программы при входе.

ПРИЛОЖЕНИЕ 2

Код главной формы программы

start;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, Grids, DBGrids, StdCtrls, Spin, ExtCtrls, Buttons, comobj,;, BookSQL : String; // Объявление переменных "Tablizza" и "BookSQL" типа String= class(TForm): TADOConnection;: TDBGrid;: TDataSource;: TADOQuery;: TEdit;: TLabel;: TLabel;: TLabel;: TEdit;: TADOQuery;: TADOTable;: TComboBox;: TLabel;: TEdit;: TLabel;: TEdit;: TSpinEdit;: TSpinEdit;: TLabel;: TLabel;: TLabel;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TADOQuery;: TBitBtn;: TBitBtn;: TLabel;: TBitBtn;: TPopupMenu;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;Button1Click(Sender: TObject);FormCreate(Sender: TObject);BitBtn2Click(Sender: TObject);Btn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn4Click(Sender: TObject);Button3Click(Sender: TObject);FormMouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);DBGrid1TitleClick(Column: TColumn);BitBtn5Click(Sender: TObject);ADOQuery1AfterOpen(DataSet: TDataSet);btn1Click(Sender: TObject);DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);N1Click(Sender: TObject);N2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;Unit2, Unit4, Unit5;

{$R *.dfm}proverka:Integer; // Объявление переменной "proverka" типа Integer

var SortAZ : BOOL; // Объявление переменной "SortAZ" типа BOOL

procedure TForm1.FormCreate(Sender: TObject);

begin // При старте формы::='книги'; // Указываем, что при старте подгружается основная таблица "книги" в переменной "Tablizza":= 'select * from книги'; // Присваиваем переменной "BookSQL" SQL запрос:=0; // Присваиваем переменной proverka 0:=True; // Указываем, что изначально сортировка от А до Я

ADOQuery2.Active:=True; // Активируем компонент ADOQuery2

ADOQuery2.Recordset.MoveFirst; // Перемещаем указатель рекордсета на первую позициюnot ADOQuery2.Recordset.EOF do // Объявлем цикл "Пока не закончились записи в рекордсете".Items.Add(ADOQuery2.Recordset.Fields[0].Value); // Присваиваем ComboBox'а соответствующую запись в рекордсете.Recordset.MoveNext; // Перемещаем указатель на следующую запись рекордсета

end;;TForm1.Button1Click(Sender: TObject);.SQL.Text:=BookSQL; // Присваиваем SQL-запросу переменную запроса.Active:=True; // Активируем компонент ADOQuery1;Poisk : string; // Объявление переменной "Poisk" типа stringIfPoiskActive : integer; // Объявление переменной "IfPoiskActive" типа integerTForm1.BitBtn2Click(Sender: TObject);

begin //Блок поиска:=0; // Указываем, что изначально поиск не активен

beginIfPoiskActive=0 then // Если поиск еще не активен, то:= BookSQL +' where автор LIKE'+chr(39)+'%'+edit1.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос:=1; // Указываем в переменной, что поиск теперь активен// Если поиск уже активен, то::=Poisk + ' AND автор LIKE'+chr(39)+'%'+edit1.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос

end;;Edit2.Text<>'' then // Если поле Edit2.Text было измененно

beginIfPoiskActive=0 then // Если поиск еще не активен, то:= BookSQL +' where название LIKE'+chr(39)+'%'+edit2.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос:=1; // Указываем в переменной, что поиск теперь активен// Если поиск уже активен, то::=Poisk + ' AND название LIKE'+chr(39)+'%'+edit2.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос

end;;Edit3.Text<>'' then // Если поле Edit3.Text было изменено

beginIfPoiskActive=0 then // Если поиск еще не активен, то:= BookSQL +' where ISBN LIKE'+chr(39)+'%'+edit3.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос:=1; // Указываем в переменной, что поиск теперь активен// Если поиск уже активен, то::=Poisk + ' AND ISBN LIKE'+chr(39)+'%'+edit3.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос

end;;Edit4.Text<>'' then // Если поле Edit4.Text было изменено

beginIfPoiskActive=0 then // Если поиск еще не активен, то:= BookSQL +' where год LIKE'+chr(39)+'%'+edit4.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос:=1; // Указываем в переменной, что поиск теперь активен// Если поиск уже активен, то::=Poisk + ' AND год LIKE'+chr(39)+'%'+edit4.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос

end;;ComboBox1.Text <> '-' then // Если поле ComboBox1.Text было измененно

beginIfPoiskActive=0 then // Если поиск еще не активен, то:= BookSQL +' where жанр LIKE '+chr(39)+'%'+ComboBox1.Text+'%'+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос:=1; // Указываем в переменной, что поиск теперь активен// Если поиск уже активен, то::= Poisk + 'AND жанр LIKE ' +chr(39)+ComboBox1.Text+chr(39); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос;;IfPoiskActive=0 then // Если поиск еще не активен, то:= BookSQL +' where цена BETWEEN '+IntToStr(SpinEdit1.Value)+' AND '+IntToStr(SpinEdit2.Value); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос:=1; // Указываем в переменной, что поиск теперь активен// Если поиск уже активен, то::= Poisk + 'AND цена BETWEEN '+IntToStr(SpinEdit1.Value)+' AND '+IntToStr(SpinEdit2.Value); // Присваиваем переменной "Poisk" соответствующеий SQL-запрос

end; IfPoiskActive<>0 then // Если поиск активен, то :

begin.SQL.Text:=Poisk; // Присваиваем SQL-запросу текст из переменной Poisk

end// Если нет, то :.SQL.Text:=BookSQL; // Возвращаем "чистый" запрос на таблицу

end;.Active:=True; // Активируем компонент ADOQuery1;TForm1.BitBtn3Click(Sender: TObject);

begin //Описываем действие при нажатии кнопки "Все книги":='книги'; // Присваиваем переменной "Tablizza" значение "книги":='select * from книги'; // Присваиваем переменной "BookSQL" запрос на вывод книг, которые сейчас в наличии.SQL.Text:=BookSQL; // Присваиваем SQL-запросу текст из переменной "BookSQL"

ADOQuery1.Active:=True; // Активируем компонент ADOQuery1

BitBtn4.Caption:='Купить '; // Меняем надпись на кнопке.Caption:='Все книги:'; // Меняем метку, которая указывает название активной таблицы.Glyph.LoadFromFile('buy.bmp'); // Меняем иконку на кнопке "Купить"

end;TForm1.BitBtn1Click(Sender: TObject);

begin.Tag:=1; //

// Форма №2 откроется с тегом 1

Form2.ShowModal; //;TForm1.Btn2Click(Sender: TObject);

begin.Tag:=2; //

// Форма №2 откроется с тегом 2

Form2.ShowModal; //;TForm1.BitBtn4Click(Sender: TObject);

beginTablizza = 'книги' then // Если сейчас выведена таблица "книги", то:

begin.Tag:=1; // Тег формы №4 = 1

end// Если нет, то:

begin.Tag:=2; // Тег формы №4 = 2

end;.ShowModal;// Модальное открытие формы №4

end;TForm1.Button3Click(Sender: TObject);

begin.ShowModal; // Модальное открытие формы №5

end;TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);proverka<>1 then

begin.ShowModal;// Модальное открытие формы №5:=1; // Присваиваем переменной "Проверка" значение 1

end;;TForm1.DBGrid1TitleClick(Column: TColumn);StrokaSortirovki,Zapros : string; // Объявление переменных "StrokaSortirovki" , "Zapros" типа string

begin //Блок сортировки записей в таблице по одной из колонокSortAZ=True then // Если мы сортируем по алфавиту от А до Я, то:= Column.FieldName; // Переменная "StrokaSortirovki" будет содержать название (титл) колонки:=false; // Сортировка от А до Я выключена, т.е сортировка будет от Я до А:=True; // Включаем сортировку по алфавиту от А до Я:= Column.FieldName+ ' DESC'; // Переменная "StrokaSortirovki" будет содержать название (титл) колонки и параметр "DESC", что обеспечит сортировку в обратном порядке;:=ADOQuery1.SQL[0]; // Переменная "Zapros" будет содержать верхнюю запись SQL-запросаADOQuery1 do //Следующие действия будут проходить с компонентом "ADOQuery1"; // Закрыть.Clear; // Очистить запрос.Add(Zapros); // Добавить в запрос текст из переменной "Zapros".Add('ORDER BY '+StrokaSortirovki); // Добавить в запрос "ORDER BY " и текст из переменной "StrokaSortirovki"

Open; //Открыть;;TForm1.BitBtn5Click(Sender: TObject);num_rows, num_columns , i, j: Integer; // Объявление переменных "num_rows" , "num_columns" , "i", "j" типа Integertable, word, doc: OleVariant; // Объявление переменных "table", "word", "doc" типа OleVariant.Active:=False; //

// Перезапускаем компонент ADOQuery1.Active:=True; //_rows:=DBGrid1.DataSource.DataSet.RecordCount; // Присваиваем переменной "num_rows" количество записей в выведенной таблице_columns:=DBGrid1.DataSource.DataSet.FieldCount; // Присваиваем переменной "num_columns" количество полей в выведенной таблице:= CreateOleObject('Word.Application'); // Создаем OleObject - приложение MS Word и присваиваем это переменной "word"

except('Не возможно открыть MS Word!'+#13#10+'Проверьте, установлен ли он!'); // При невозможности открытия MS Word будет выведена ошибка, которая это сообщает;.Documents.Add; // Создание нового документа MS Word:=word.Documents.Item(1); // doc - обращение к первому элементу документа.Tables.Add(doc.Range, NumRows:=num_rows+1,NumColumns:=num_columns); // Добавляем новую таблицу.Tables.Item(1).Style:='Сетка таблицы'; // Указываем стиль таблицы:=word.activedocument.tables.item(1); // table - активный элемент таблицыj:=0 to num_columns-1 do // Цикл создания названий колонок в таблице

begin.cell(0, j+1).range.text:=DBGrid1.Columns[j].Title.caption;.cell(0, j+1).range.Font.Bold:=1;;.cell(0, 0).range.text:='Код';.cell(0, 0).range.Font.Bold:=1;:=2;:=word.activedocument.tables.item(1); // table - активный элемент таблицыnot (DBGrid1.DataSource.DataSet.eof) do // Цикл добавления записей в таблицуj:=0 to num_columns-1 do.cell(i, j+1).range.text:=DBGrid1.DataSource.DataSet.Fields[j].asstring;;.DataSource.DataSet.next;(i);;.Columns.Item(1).SetWidth(30,'wdAdjustNone'); //.Columns.Item(2).SetWidth(105,'wdAdjustNone'); // Задаем.Columns.Item(3).SetWidth(80,'wdAdjustNone'); // каждому.Columns.Item(4).SetWidth(98,'wdAdjustNone'); // столбцу.Columns.Item(5).SetWidth(35,'wdAdjustNone'); // нужную.Columns.Item(6).SetWidth(47,'wdAdjustNone'); // ширину.Columns.Item(7).SetWidth(100,'wdAdjustNone'); // полей.Columns.Item(8).SetWidth(43,'wdAdjustNone'); //.Columns.Item(9).SetWidth(35,'wdAdjustNone'); //.activedocument.Pagesetup.LeftMargin:=20; // Задаем отступ слева - 20 pt

word.Visible:=True; // Делаем документ видимым

end;TForm1.ADOQuery1AfterOpen(DataSet: TDataSet);.Columns[0].Width:=22; //.Columns[4].Width:=35; //.Columns[5].Width:=45; // После открытия ADOQuery1 задаем ширину колонок.Columns[7].Width:=36; //.Columns[8].Width:=28; //;TForm1.btn1Click(Sender: TObject);

begin:='архив'; // Указываем в переменной "Tablizza", что сейчас активна таблица "архив":='select * from архив'; // Помещаем в переменную "BookSQL" SQL-запрос на вывод таблицы архива.SQL.Text:=BookSQL; // Присваиваем SQL-запросу текст из переменной "BookSQL"

ADOQuery1.Active:=True; // Активируем компонент ADOQuery1

BitBtn4.Caption:='Удалить '; // Изменяем надпись на кнопке.Caption:='Архив:'; // Меняем метку, которая указывает название активной таблицы.Glyph.LoadFromFile('del.bmp'); // Меняем иконку на кнопке "Удалить".Columns[8].Width:=76; //.Columns[9].Width:=52; // Задаем ширину колонок

DBGrid1.Columns[10].Width:=36; //.Columns[3].Width:=150; //;TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);

var P: TPoint; // Объявление переменной "P" типа TPoint (точка)// Блок, отвечающий за открытие PopupMenu по нажатию на запись в таблице

P:=GetClientOrigin;Button = mbRight then.Popup(X+P.X+DBGrid1.Left, Y+P.Y+DBGrid1.Top);;TForm1.N1Click(Sender: TObject);

begin.Click; // Задаем кнопку, которая нажимается по нажатию компонента в PopupMenu

end;TForm1.N2Click(Sender: TObject);

begin.Click; // Задаем кнопку, которая нажимается по нажатию компонента в PopupMenu;. // Завершение программы

ПРИЛОЖЕНИЕ 3

Код формы Добавления/Изменения

 Unit2;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, start, Mask, DBCtrls, Spin, Unit3;

= class(TForm): TBitBtn;: TEdit;: TComboBox;: TEdit;: TSpinEdit;: TSpinEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TBitBtn;: TDBEdit;: TLabel;: TSpinEdit;: TSpinEdit;: TLabel;: TDBEdit;FormCreate(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);FormShow(Sender: TObject);

{ Private declarations }

{ Public declarations };

: TForm2;

{$R *.dfm}

TForm2.FormCreate(Sender: TObject);

.ADOQuery2.Active:=True; // Активация рекордсета для.ADOQuery2.Recordset.MoveFirst; // заполнения списка жанров

not Form1.ADOQuery2.Recordset.EOF do ////.Items.Add(Form1.ADOQuery2.Recordset.Fields[0].Value); // Заполнение списка жанров.ADOQuery2.Recordset.MoveNext; // из базы данных

end; //.ItemIndex:=0; // Установка первого компонента в списке жанров

end;

TForm2.BitBtn2Click(Sender: TObject);

(Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') then // Если нужные поля заполнены, то:

beginTag=1 then // Если Тег формы = 1 , то добавление.ADOQuery1.Insert; // Подача команды добавления в базу данных

DBEdit1.Text:=Edit1.Text; //.Text:=Edit2.Text; //.Text:=Edit3.Text; //.Text:=ComboBox1.Text; // Заполнение полей базы данных.Text:=SpinEdit1.Text; // из полей для ввода.Text:=SpinEdit2.Text; //.Text:=SpinEdit3.Text; //.Text:=se1.Text; //.ADOQuery1.Post; // Отправка новой записи в базу данных

end else // Если Тег формы не равен 1 , то редактирование.ADOQuery1.Edit; // Подача команды добавления в базу данных

DBEdit1.Text:=Edit1.Text; //.Text:=Edit2.Text; //.Text:=Edit3.Text; //.Text:=ComboBox1.Text; // Заполнение полей базы данных.Text:=SpinEdit1.Text; // из полей для ввода.Text:=SpinEdit2.Text; //.Text:=SpinEdit3.Text; //

dbedt1.Text:=se1.Text; //.ADOQuery1.Post; // Отправка отредактированной записи в базу данных.Close;;else('Одно или несколько полей не заполнено!'); // Если возникает ошибка, то выводится оповещение о ней

TForm2.BitBtn1Click(Sender: TObject);

begin.ShowModal; // По нажатию кнопки "Добавление жанра" - модальное открытие окна добавления жанра

end;

TForm2.FormShow(Sender: TObject); // При появлении окна добавления/изменения

if Tag=1 then // Если Тег формы = 1 , то:.Caption:='Добавить'; // Меняем текст на кнопках и.Caption:='Добавление новой книги'; // название формы на "Добавление"..Text:=''; // Опустошаем все поля

Edit2.Text:=''; //.Text:=''; //.Text:='-'; //.Text:='2015'; //.Text:='1'; //.Text:='1'; //;Tag=2 then // Если Тег формы = 2 , то:

BitBtn2.Caption:='Изменить'; // Меняем текст на кнопках и.Caption:='Изменение книги'; // название формы на "Изменение".

Edit1.Text:=DBEdit1.Text; //.Text:=DBEdit3.Text; //.Text:=DBEdit5.Text; // Заполняем все поля.Text:=DBEdit2.Text; // данными об записи,.Text:=DBEdit4.Text; // которую собираемся.Text:=DBEdit6.Text; // изменить.Text:=DBEdit7.Text; //.Text:=dbedt1.Text; //;

end;

.

ПРИЛОЖЕНИЕ 4

Код формы авторизации

Unit5;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, start, ADODB, DB, StdCtrls;

= class(TForm): TLabel;: TLabel;: TButton;: TEdit;: TEdit;: TADOQuery;: TADOTable;: TButton;: TDataSource;Button1Click(Sender: TObject);FormCreate(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);FormShow(Sender: TObject);Button2Click(Sender: TObject);Edit2KeyDown(Sender: TObject; var Key: Word;: TShiftState);

{ Private declarations }

{ Public declarations };Login, Password: string;: TForm5;

Unit7;

{$R *.dfm}proverka: Integer;

TForm5.Button1Click(Sender: TObject);

begin:=Edit1.Text; // Помещаем потенциальный логин:=Edit2.Text; // и пароль в соответствующие переменные.Recordset.MoveFirst; // Устанавливаем указатель рекордсета на первую позицию

while not ADOQuery1.Recordset.EOF do(Login=ADOQuery1.Recordset.Fields[0].Value) and (Password=ADOQuery1.Recordset.Fields[1].Value) then

begin // Если логин и пароль правильные,:=1; // указываем, что проверка прошла.lbl1.Caption:='Здравствуй, '+Login+'!'; // меняем текст на метке с приветствием.; //.Recordset.MoveNext; // Устанавливаем указатель рекордсета на следующую позицию;proverka=1 then // Если проверка прошло, то:

begin.Close; // Форма закрывается// иначе:

begin('Неправильный логин и/или пароли'); // Выводится ошибка

end;;

TForm5.FormCreate(Sender: TObject);:=0;.Active:=True;;

TForm5.FormClose(Sender: TObject; var Action: TCloseAction);

beginproverka<>1 then // Если проверка не пройденна, а окно авторизации закрыто, то//.Close; // закрываем и главное окно

end;;TForm5.FormShow(Sender: TObject);

begin:=0; // Проверка изначально не пройденна

end;

TForm5.Button2Click(Sender: TObject);

begin.ShowModal; // Выводим форму регистрации

end;

TForm5.Edit2KeyDown(Sender: TObject; var Key: Word;: TShiftState);Key=13 then // При нажатии кнопки ENTER

begin // в поле ввода пароля.Click; // нажимается кнопка "Вход";;

.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!