Высокоуровневые методы информатики и программирования
Этапы разработки базы данных информационной системы. Особенности разработки концептуальной модели базы данных. Проектирование логической модели БД. Проектирование приложений. Выбор среды программирования. Разработка интерфейса. Формирование запросов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.12.2016 |
Размер файла | 421,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://allbest.ru
Введение
база данных информационный
База данных является важнейшей составной частью информационных систем, которые предназначены для хранения и обработки информации. Изначально такие системы существовали в письменном виде. Для этого использовались различные картотеки, папки, журналы, библиотечные каталоги. Развитие средств вычислительной техники обеспечило возможность для создания и широкого использования автоматизированных информационных систем. Разрабатываются информационные системы для обслуживания различных систем деятельности, системы управления хозяйственными и техническими объектами, модельные комплексы для научных исследований, системы автоматизации проектирования и производства, всевозможные тренажеры и обучающие системы. Современные информационные системы основаны на концепции интеграции данных, характеризующих большими объектами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей. Для управления этими данными и обеспечения эффективности доступа к ним были созданы системы управления данными. Актуальность темы заключается в том, что использование баз данных на ЭВМ удобнее, чем ведение документов в бумажном виде, так же при правильном подходе база данных может обеспечить высокую надёжность хранения, скорость обработки и передачи информации. Цель курсового проекта - разработка базы данных «Склад магазина оптовой продажи». В процессе разработки базы данных «Склад магазина оптовой продажи» необходимо решить следующие задачи: изучение предметной области, учёт поступления товаров, учёт отпуска товаров, формирование перечня товаров имеющегося в складских помещениях, ценовая информация о товарах. Объектом исследования является среды Access и Delphi, с их помощью будет реализована база данных. Предметом исследования является возможность реализации базы данных «разработать ИС склад» в среде Access и Delphi.
1. Этапы разработки базы данных
1.1 Разработка концептуальной модели базы данных
При проектировании программ выясняются запросы и пожелания клиента и определяется возможный подход к решению задачи. Задача анализируется. На
основе этого анализа реализуется конкретная модель в конкретной программной среде. Результаты каждого этапа проектирования используются в качестве исходного материала для следующего этапа. Анализируется текущая организация предприятия, выделяются проблемы для решения, определяются объекты и отношения между ними, составляется «эскиз» текущей организации предприятия, разрабатывается модель с учетом конкретных условий ее функционирования. База данных ориентирована на определенную предметную область, например: учёт товарной продукции, и организована на основе некоторого подмножества данных. Возможности баз данных полезны в областях, связанных с долговременным управлением информацией, таких как электронные библиотеки и хранилища данных. Предварительное планирование, подготовка данных, последовательность создания информационной модели. В первую очередь при проектировании системы обработки данных необходимо решить вопрос: «Как организовать данные?». Помочь понять организацию данных, призвана информационная модель. Процесс создания информационной модели начинается с определения концептуальных требований ряда пользователей. Концептуальные требования могут определяться и для некоторых задач (приложений), которые в ближайшее время реализовывать не планируется. Это может несколько повысить трудоемкость работы, однако поможет наиболее полно учесть все нюансы функциональности, требуемой для разрабатываемой системы, и снизит вероятность переделки в дальнейшем. Требования отдельных пользователей должны быть представлены в едином «обобщенном представлении». Последнее называют концептуальной моделью. Объект - это абстракция множества предметов реального мира, обладающих одинаковыми характеристиками и законами поведения. Объект представляет собой типичный неопределенный экземпляр такого множества. Объекты объединяются в классы по общим характеристикам. Например, в предложении «Белый Дом является зданием», «Белый Дом» представляет объект, а «здание» - класс. Классы обозначаются абстрактными существительными. Класс - это множество предметов реального мира, связанных общностью структуры и поведением.
Система автоматизированной обработки данных основывается на использовании определенной модели данных или информационной модели. Модель данных отражает взаимосвязи между объектами. Процесс создания информационной модели начинается с определения концептуальных требований
ряда пользователей. Концептуальные требования могут определяться и для некоторых задач (приложений), которые в ближайшее время реализовывать не планируется. Это может несколько повысить трудоемкость работы, однако поможет наиболее полно учесть все нюансы функциональности, требуемой для разрабатываемой системы, и снизит вероятность ее переделки в дальнейшем. Требования отдельных пользователей интегрируются в едином «обобщенном представлении». Последнее называют концептуальной моделью.
Концептуальная модель представляет объекты и их взаимосвязи без указания способов их физического хранения. Таким образом, она является, по существу, моделью предметной области. При проектировании концептуальной модели все усилия разработчика должны быть направлены в основном на структуризацию данных и выявление взаимосвязей между ними без рассмотрения особенностей реализации и вопросов эффективности обработки. Проектирование концептуальной модели основано на анализе решаемых на этом предприятии задач, по обработке данных. Концептуальная модель включает описания объектов и их взаимосвязей, представляющих интерес в рассматриваемой предметной области и выявляемых в результате анализа данных.
1.2 Разработка логической модели базы данных
Логическая модель отражает логические связи между элементами данных вне зависимости от их содержания и среде хранения.
Логическая модель данных может быть реляционной, иерархической или сетевой. Пользователям выделяются подмножества этой логической модели, называемые внешними моделями, отражающие их представления о предметной области. Внешняя модель соответствует представлениям, которые пользователи получают на основе логической модели, в то время как концептуальные требования отражают представления, которые пользователи первоначально желали иметь и которые легли в основу разработки концептуальной модели. Логическая модель отображается в физическую память, такую, как диск, лента или какой-либо другой носитель информации.
2. Проектирование приложений
2.1 Выбор среды программирования
Delphi - это попытка фирмы borland объединить лучшее, что было создано на тему визуального программирования, в единый продукт. В Delphi мы имеем: среду для создания программ, напоминающую среду Visual Basic и включающую в себя средство для наглядного создания программ, и редактор для написания кода. В Delphi практически все создаваемые программы являются объектно-ориентированными. В качестве языка был выбран Object Pascal - объектно-ориентированное расширение языка третьего поколения Раsса1. Почему Pascal, а не язык C++, ставший практически индустриальным стандартом? Все дело в том, что на язык Pascal нет стандарта. Точнее, есть ANSI-стандарт, принятый в начале 80-х годов. Отсутствие стандарта на язык позволяет разработчикам компиляторов вносить в него необходимые расширения, что недопустимо, скажем, в С/С++. Если первые версии turbo Pascal ещё как-то следовали спецификации, предложенной Никлаусом Виртом, то далее стала заметна не только тенденция привязки языка к компьютеру, но и стремление сделать его гибким и удобным инструментом, которому «тесно» в рамках каких-либо стандартов.
С помощью Delphi можно создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера, практически ничего не зная об HTML, XML или ASP. Можно создавать Интернет- и intranet-приложения, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO.
Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). В принципе. BDE позволяет осуществлять доступ к данным как с использованием традиционного record- ориентированного (навигационного) подхода, так и с использованием set- ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию Open DataBase Connectivity (ODBC) фирмы Microsoft.
Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, «наследуются» BDE, и поэтому этими же особенностями обладает и Delphi.
Одним из преимуществ Delphi является то, что он поддерживает все SQL-БД, доступ к которым осуществляется через Borland Database Engine, ADO или драйверы InterBase. Через Borland SQL Links BDE так же возможен доступ к Oracle, Sybase, Informix, MS SQL Server, DB2 и InterBase
Access - это, прежде всего, система управления базами данных. Как и другие продукты этой категории, она предназначена для хранения и поиска данных, представления информации в удобном виде и автоматизации часто повторяющихся операций.
С помощью Access можно разрабатывать простые и удобные формы ввода данных, а также осуществлять обработку данных и выдачу сложных отчетов. Access - мощное приложение Windows, впервые производительность СУБД органично сочетается с теми удобствами, которые имеются в распоряжении пользователей Microsoft Windows. Поскольку оба эти продукта, детища компании Microsoft, они прекрасно взаимодействуют между собой. С помощью объектов OLE (Object Linking and Embedding - связывание и внедрение объектов) в Windows и компонентах Microsoft Office (Excel, Word, PowerPoint и Outlook) можно превратить Access в настоящую операционную
среду баз данных. С помощью новых расширений для Internet можно создавать формы, которые будут напрямую взаимодействовать с данными из World Wide Web, и транслировать их в представление на языке HTML, обеспечивающее работу с такими продуктами, как Internet Explorer и Netscape Navigator. Как реляционная СУБД Access обеспечивает доступ ко всем типам данных и позволяет использовать одновременно несколько таблиц базы данных. Таблицу Access можно связать с данными, хранящимися на большой ЭВМ или на сервере. Система Access - это набор инструментов конечного пользователя для управления базами данных. В ее состав входят конструкторы таблиц, форм, запросов и отчетов. Эту систему можно рассматривать и как среду разработки приложений. Используя макросы или модули для автоматизации решения задач, можно создавать ориентированные на пользователя приложения такими же мощными, как и приложения, написанные непосредственно на языках программирования.
В данном курсовом проекте Access будет использоваться как место хранения данных, т.е. как БД, а средства Delphi будет использоваться как средство доступа к хранящимся данным, т.е. как СУБД.
2.2 Разработка интерфейса
Программа, будет начинать работу с вывода главной формы, на которой будет располагаться самое главное меню, т.е. другими словами «панель навигации».
Рисунок 1-панель навигации
При наведении курсора на кнопку «Создать» выпадает меню с выбором вариантов таких как, «Клиенты», «Товары» и «Поставщики».При наведении курсора мыши на «Отчеты» выпадает список со следующим выбором форм ввода: «Прайс-лист», «Приход товара», «Расход товара».Во вкладке «Файл» находиться кнопка «Выход из программы» при её нажатии приложение закроется.
При наведении мышки на слово «Поиск» открывается форма, которая предоставит возможность расширенного поиска.
Рисунок 2-Расширенный поиск
При нажатии кнопки «Отчёты» программа выводит всю информации по пунктам «Прайс-лист», «Приход товара», «Расход товара».
Рисунок 3-Отчёт организации
Рисунок 4- Главная форма программы
Но прежде чем все эти формы, кнопки, таблицы и прочее появилось мне пришлось разрабатывать примерный дизайн шаблона в Adobe Photoshop. И только тогда я полностью разработал интерфейс моего приложения.
2.3 Разработка запросов
Для соединения формы с таблицами использовался объект приложения Delphi, ADOConnections, который помещаю в DataModule.
ADOConnections подключается к базе данных. Поставщики данных (Provider) перечислены все доступные ADO драйверы доступа к базам данных: для Access используется драйвер Microsoft Jet OLE DB Provider. Такой драйвер обязательно устанавливается на машину вместе с MS Office, а в последних версиях Windows он устанавливается всегда по умолчанию. В новом окне с заголовком Form1.ADOTable1.ConnectionString нужно выбрать пункт Use Connection String затем, Build в вновь открывшемся окне указывается путь к своей базе данных.
Как только произошёл выбор нужной базы данных, необходимо проверить подключение, для этого нажимается кнопка «Проверить подключение» (Test Connection), чтобы протестировать соединение.
Следующий шаг, на форму устанавливается компонент DataSource с вкладки Data Access палитры компонентов. Теперь этому компоненту указывается таблица отображения: свойство DataSet-ADOTable1, который связан с таблицей. Все приготовления готовы, далее нужно приступить к реальному отображению данных. Самый простой способ отобразить таблицу - установить компонент DBGrid (Вкладка Data Controls). Этот компонент - сетка, которая может отображать данные в виде таблицы. DBGrid (см. рисунок 2.6). Так же есть другой способ отображения данных, с помощью компонента Delphi DBEdit, это так называемое поле DBEdit позволяет отображать конкретное поле из таблицы, эти два способа будут использованы в курсовом проекте.
Чтобы отобразить форму ввода для «Прайс-листа» (см. рисунок 2.6), использовался следующий запрос:
SELECT ЦеныТовара.ЦенаТовара, ЦеныТовара.Товар, Товары.Название, ЦеныТовара.Дата, ЦеныТовара.Цен
FROM ЦеныТовара, Товары
WHERE ЦеныТовара.Товар=Товары.[Код товара]
ORDER BY Товары.Название;
Этот запрос был реализован в СУБД Access, он подключён через компонент Delphi ADOTeble, и компонент DataSet, данные выведены на форму с помощью DBGrid.
Запрос основан на двух таблицах: «ЦеныТовара», «Товары» которые объединены через «Код товара» и упорядочены по текстовому полю таблицы «Товары».
Раздел реквизитов формы «Накладная приход» основана на следующем запросе, созданном в СУБД Access:
SELECT Накладные.Накладная, Накладные.Номер, Накладные.Приход, Накладные. Клиент, Накладные.Дата, Накладные.Ответственный,
Накладные.Комментарий, Накладные.Обработана
FROM Накладные
WHERE (((Накладные.Приход)=True) AND ((Накладные.Обработана) Is Null))
ORDER BY Накладные.Дата;
Подключение этого запроса к выводу в форму представления данных осуществляется, так же, как и для первого примера (Прайс-лист). Он выводит, как можно увидеть из запроса, только те данные из таблицы «Накладные», которые удовлетворяют условиям, перечисленным в разделе WHERE, т.е. значение «Приход» должно быть истинным и значение поля «Обработана» должно равняться значению Null. Это было сделано для того, чтобы человек вводящий данные мог работать только с необработанными накладными, т.е. с теми заказами, которые были сделаны, но не пришли ещё на склад (ожидаемыми поставками).
Работа с другими формами основана на тех же принципах, которые были перечислены выше, отличие заключается лишь в выборке данных из таблиц с помощью запросов.
Вывод
С помощью спроектированной системы управления базой данных можно осуществлять ввод справочной информации, такой как типы единиц измерения, сведения о новых клиентах, поставщиках и материально ответственных лицах, а также непосредственно товаров, участвующих в хозяйственных операциях и их цены. Система управления базой данных также позволяет создавать документы прихода и расхода товаров, тем самым осуществлять контроль за его движением, хранить последнюю информацию о товарах, имеющихся на складе и их количестве.
База данных хранит информацию обо всех произведённых хозяйственных операциях с товарами, что позволит в будущем разработать сложную систему отчётов, которые помогут осуществлять некоторые функции бухгалтерского учёта, такие как: контрольную, информационную и аналитическую. С учётом современной ценовой динамики база данных позволяет хранить все используемые цены товаров.
На основе достигнутых результатов можно сформулировать рекомендации по улучшению программы:
- использование web-технологий для доступа к данным через Интернет;
- создание пользователей с определёнными правами доступа к данным;
- разработка дополнительных форм ввода/вывода информации о накладных.
- разработка новых таблиц базы данных для фиксирования мест расположения товарной продукции на складе или складах.
Приложение
Исходные коды
unit GlavnUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, ComCtrls, Grids, DBGrids, Menus,
ExtCtrls, FileCtrl, IdBaseComponent, IdNetworkCalculator;
type
TGlavn = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N4: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
PageControl1: TPageControl;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Label10: TLabel;
DBEdit39: TDBEdit;
Label45: TLabel;
Label44: TLabel;
Label43: TLabel;
DBEdit37: TDBEdit;
Label6: TLabel;
Label47: TLabel;
DBEdit43: TDBEdit;
DBEdit5: TDBEdit;
Button2: TButton;
Button1: TButton;
Label7: TLabel;
DBLookupComboBox8: TDBLookupComboBox;
Label11: TLabel;
Label9: TLabel;
Label41: TLabel;
Label42: TLabel;
DBEdit20: TDBEdit;
DBEdit9: TDBEdit;
Button11: TButton;
Button3: TButton;
DBGrid7: TDBGrid;
DBEdit12: TDBEdit;
DBEdit11: TDBEdit;
DBEdit10: TDBEdit;
DBEdit8: TDBEdit;
TabSheet1: TTabSheet;
DBGrid1: TDBGrid;
DBLookupComboBox1: TDBLookupComboBox;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label12: TLabel;
Label13: TLabel;
DBEdit15: TDBEdit;
Label14: TLabel;
DBEdit16: TDBEdit;
DBLookupComboBox2: TDBLookupComboBox;
DBEdit19: TDBEdit;
Label16: TLabel;
Label18: TLabel;
Label19: TLabel;
DBEdit21: TDBEdit;
Label20: TLabel;
DBEdit22: TDBEdit;
Label21: TLabel;
Button7: TButton;
DBEdit23: TDBEdit;
DBEdit24: TDBEdit;
DBEdit25: TDBEdit;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
Button8: TButton;
Button9: TButton;
DBEdit26: TDBEdit;
Label22: TLabel;
DBEdit27: TDBEdit;
Label23: TLabel;
Button13: TButton;
DBEdit4: TDBEdit;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Button15: TButton;
DateTimePicker3: TDateTimePicker;
DBText1: TDBText;
Label8: TLabel;
Label27: TLabel;
DBText2: TDBText;
DBEdit6: TDBEdit;
Label30: TLabel;
N18: TMenuItem;
DBGrid4: TDBGrid;
N19: TMenuItem;
DateTimePicker1: TDateTimePicker;
DBEdit7: TDBEdit;
Label29: TLabel;
N21: TMenuItem;
Button4: TButton;
N2: TMenuItem;
Edit1: TEdit;
Button5: TButton;
procedure N4Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure DBLookupComboBox8Click(Sender: TObject);
procedure DBEdit39Change(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure DBEdit15Change(Sender: TObject);
procedure DBEdit27Change(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Glavn: TGlavn;
implementation
uses DataModule1, TablUnit1, O_progeUnit1, PoiskUnit1, NewKlientUnit1,
NewTovarUnit1, NewPostav4ikUnit1, pe4atUnit1, DB, ADODB, TklientiUnit1,
TprixodUnit1, TrasxodUnit1, PribilUnit1, OprixodtovarovUnit1,
OrasxodTovarovUnit1, pe4atRasxodUnit1, Postav4ikUnit1, PrixodTovUnit2,
TrasxodTovUnit2;
{$R *.dfm}
//мюню выход
procedure TGlavn.N4Click(Sender: TObject);
begin
close;
end;
//Меню создать -> клиент
procedure TGlavn.N8Click(Sender: TObject);
begin
newklient.ShowModal;
end;
//Меню создать -> товар
procedure TGlavn.N9Click(Sender: TObject);
begin
NewTovar.ShowModal;
end;
//Меню создать -> поставщик
procedure TGlavn.N10Click(Sender: TObject);
begin
NewPostav4ik.ShowModal;
end;
//вставка новой строки в табл приход вкладки приход товара
procedure TGlavn.Button1Click(Sender: TObject);
begin
DataModule2.Prixod.Sort:='НомерДокумента';
DataModule2.Prixod.Insert;
DateTimePicker3.Visible:=true;label44.Visible:=true;
label10.Visible:=true;button1.Visible:=False;button2.Visible:=true;
label30.Visible:=true;dbedit6.Visible:=true;
button3.Visible:=false;button11.Visible:=false;
DBLookupComboBox8.Visible:=false;label7.Visible:=false;label11.Visible:=false;
label9.Visible:=false;label41.Visible:=false;label42.Visible:=false;
dbedit8.Visible:=false;dbedit9.Visible:=false;dbedit20.Visible:=false;
end;
//кнопка сохранить изменения вкладки расход товара
//Списывает выбранное количество товара со склада..
procedure TGlavn.Button7Click(Sender: TObject);
var a,koltov,kolras,symras,symtov,cenatov,cenaras:Currency;
begin
koltov:=strToCurr(DBEdit23.Text);
kolras:=strTocurr(DBEdit19.Text);
if koltov>=kolras then begin
if DataModule2.RasxodTov.Modified then
begin
DataModule2.Tovar.edit;
DBEdit22.Text:=DBedit15.text;
koltov:=strToCurr(DBEdit23.Text);
cenatov:=strToCurr(DBEdit25.Text);
kolras:=strTocurr(DBEdit19.Text);
cenaras:=strTocurr(DBEdit16.Text);
symras:=cenaras*kolras;
a:=koltov-kolras;
symtov:=a*cenatov;
DBEdit24.Text:=CurrToStr(symtov);
DBEdit21.Text:=CurrToStr(symras);
DBEdit23.Text:=CurrToStr(a);
DataModule2.Tovar.Post;
DataModule2.RasxodTov.post;
DataModule2.RasxodTovSQL.Active:=false;
DataModule2.RasxodTovSQL.Active:=true;
end;
button7.Visible:=false;
button13.Visible:=true;
label16.Visible:=false;
label8.Visible:=false;
label18.Visible:=false;
label27.Visible:=false;
label19.Visible:=false;
label20.Visible:=false;
DBLookupComboBox2.Visible:=false;
dbtext1.Visible:=false;
dbtext2.Visible:=false;
dbedit19.Visible:=false;
dbedit16.Visible:=false;
dbedit21.Visible:=false;
end
else
ShowMessage('Не хватает товара');
end;
//Добавление записи в таблицу Расход вкладки расход товара
procedure TGlavn.Button8Click(Sender: TObject);
begin
DataModule2.rasxod.Sort:='НомерДокумента';
DataModule2.rasxod.Insert;
button9.Visible:=true;
button8.Visible:=false;
DBLookupComboBox1.Visible:=true;
label25.Visible:=true;
label3.Visible:=true;
label4.Visible:=true;
label12.Visible:=true;
label13.Visible:=true;
dbedit2.Visible:=true;
dbedit3.Visible:=true;
dbedit13.Visible:=true;
dbedit14.Visible:=true;
label26.Visible:=true;
label29.Visible:=true;
dbedit7.Visible:=true;
DateTimePicker1.Visible:=true;
label16.Visible:=false;
label8.Visible:=false;
label27.Visible:=false;
label19.Visible:=false;
label20.Visible:=false;
DBLookupComboBox2.Visible:=false;
dbtext1.Visible:=false;
dbtext2.Visible:=false;
dbedit19.Visible:=false;
dbedit16.Visible:=false;
dbedit21.Visible:=false;
button13.Visible:=false;
button7.Visible:=false;
end;
//Сохранение записи в таблицу Расход вкладки расход товара
procedure TGlavn.Button9Click(Sender: TObject);
begin
DataModule2.Rasxod.Fields.FieldByName('ДатаОперации').Value:=DateTimePicker1.Date;
DataModule2.Rasxod.Post;
label26.Visible:=false;
label29.Visible:=false;
dbedit7.Visible:=false;
DateTimePicker1.Visible:=false;
label25.Visible:=false;
label3.Visible:=false;
label4.Visible:=false;
label12.Visible:=false;
label13.Visible:=false;
dbedit2.Visible:=false;
dbedit3.Visible:=false;
dbedit13.Visible:=false;
dbedit14.Visible:=false;
DBLookupComboBox1.Visible:=false;
button13.Visible:=true;
button9.Visible:=false;
button8.Visible:=true;
end;
//Удаление записи из таблицу Приход вкладки приход товара
procedure TGlavn.Button10Click(Sender: TObject);
begin
DataModule2.prixod.delete;
end;
//кнопка сохранить изменения вкладки приход товара
//Расчитывает при разном кол-ве и цене одного и
// того же товара, среднюю цену. Добавляет введённое кол-во
// товара на склад
procedure TGlavn.Button11Click(Sender: TObject);
var a,b,d,z,c,k,m,symma:Currency;
begin
if DataModule2.PrixodTov.Modified then
begin
button3.Visible:=true;button11.Visible:=false;
//поля для заполнения невидимы
Label7.Visible:=false;Label11.Visible:=false;Label9.Visible:=false;
Label41.Visible:=false;Label42.Visible:=false;
DBLookupComboBox8.Visible:=false;dbedit8.Visible:=false;
dbedit9.Visible:=false;dbedit20.Visible:=false;
DataModule2.Tovar.edit;
DBEdit37.Text:=DBedit39.text;
d:=strToCurr(DBEdit11.Text);
c:=strToCurr(DBEdit9.Text);
b:=strTocurr(DBEdit10.Text);
a:=strTocurr(DBEdit8.Text);
m:=c*a;
k:=a+b;
z:=(m+b*d)/k;
symma:=z*k;
DBEdit11.Text:=CurrToStr(z);
DBEdit20.Text:=CurrToStr(m);
DBEdit10.Text:=CurrToStr(k);
DBEdit12.Text:=currtostr(symma);
DataModule2.Tovar.Post;
DataModule2.PrixodTov.post;
DataModule2.prixodTovSQL.Active:=false;
DataModule2.prixodTovSQL.Active:=true;
end;
end;
//Удаления записи из таблицы Расход вкладки расход товара
procedure TGlavn.Button12Click(Sender: TObject);
begin
DataModule2.Rasxod.Delete;
end;
//Сохранение записи в таблице Приход вкладки приход товара
procedure TGlavn.Button2Click(Sender: TObject);
begin
DataModule2.prixod.Fields.FieldByName('ДатаОперации').Value:=DateTimePicker3.Date;
DataModule2.Prixod.Post;
button1.Visible:=true;button2.Visible:=False;
DateTimePicker3.Visible:=false;label44.Visible:=false;
label10.Visible:=false;label45.Visible:=false;dbedit39.Visible:=false;
button3.Visible:=true;label30.Visible:=false;dbedit6.Visible:=false;
end;
//Новая запись в таблице ПриходТов вкладки приход товара
procedure TGlavn.Button3Click(Sender: TObject);
begin
DataModule2.prixodtov.insert;
//появление полей для заполнения
button3.Visible:=false;button11.Visible:=true;DBLookupComboBox8.Visible:=true;
label7.Visible:=true;label11.Visible:=true;label9.Visible:=true;
label41.Visible:=true;label42.Visible:=false;dbedit8.Visible:=true;
dbedit9.Visible:=true;dbedit20.Visible:=false;
end;
//Печать отчета "Прайс лист" вкладки "товары"
procedure TGlavn.Button4Click(Sender: TObject);
begin
OPribil.QRLabel7.Caption:=DBEdit4.Text;
OPribil.QuickRep1.Preview;
end;
//Новая запись в таблице РасходТов вкладки расход товара
procedure TGlavn.Button13Click(Sender: TObject);
begin
DataModule2.rasxodtov.Insert;
button13.Visible:=false;
button7.Visible:=true;
label16.Visible:=true;
label8.Visible:=true;
label18.Visible:=true;
label27.Visible:=true;
label19.Visible:=true;
DBLookupComboBox2.Visible:=true;
dbtext1.Visible:=true;
dbtext2.Visible:=true;
dbedit19.Visible:=true;
dbedit16.Visible:=true;
end;
procedure TGlavn.DBLookupComboBox8Click(Sender: TObject);
begin
DBEdit43.Text:=DBedit5.text;
end;
procedure TGlavn.DBEdit39Change(Sender: TObject);
begin
DBEdit37.Text:=DBedit39.text;
DataModule2.PrixodtovSQL.Active:=False;
DataModule2.PrixodtovSQL.Parameters.ParamByName('kodPrixoda').Value:=DBedit39.text;
DataModule2.PrixodtovSQL.Active:=active;
end;
procedure TGlavn.Button6Click(Sender: TObject);
begin
DataModule2.PrixodTovSQL.Refresh;
//DataModule2.SymmaTovarovNaSklade.Refresh;
DataModule2.PrixodTov.Refresh;
DataModule2.Prixod.Refresh;
DataModule2.Tovar.Refresh;
end;
procedure TGlavn.DBEdit15Change(Sender: TObject);
begin
DataModule2.RasxodtovSQL.Active:=False;
DataModule2.RasxodtovSQL.Parameters.ParamByName('nomDok').Value:=DBedit15.text;
DataModule2.RasxodtovSQL.Active:=active;
end;
procedure TGlavn.DBEdit27Change(Sender: TObject);
begin
dbedit26.text:=dbedit27.text;
end;
//Удалить строку из табл РасходТов вкладки расход товара
procedure TGlavn.Button14Click(Sender: TObject);
begin
DataModule2.RasxodTovSQL.Delete;
end;
//Кнопка обновить вкладки "Товары", обновляет общую сумму
// находящихся на складе товаров
procedure TGlavn.Button15Click(Sender: TObject);
begin
DataModule2.SymmaTovarovNaSklade.Active:=False;
DataModule2.SymmaTovarovNaSklade.Open;
DataModule2.SymmaTovarovNaSklade.SQL.Clear;
DataModule2.SymmaTovarovNaSklade.SQL.Text:='SELECT Sum([Товары]![Сумма]) AS Сумма FROM Товары;';
DataModule2.SymmaTovarovNaSklade.Close;
DataModule2.SymmaTovarovNaSklade.Active:=True;
end;
//Просмотр табл. клиенты
procedure TGlavn.N12Click(Sender: TObject);
begin
TKlienti.ShowModal;
end;
//Просмотр табл. товары
procedure TGlavn.N11Click(Sender: TObject);
begin
TTovari.ShowModal;
end;
//Просмотр табл. приход
procedure TGlavn.N14Click(Sender: TObject);
begin
TPrixod.ShowModal;
end;
//меню -> поиск Открытие формы поиска
procedure TGlavn.N20Click(Sender: TObject);
begin
poisk.ShowModal;
end;
//меню -> отчёты -> приход товаров
procedure TGlavn.N19Click(Sender: TObject);
begin
Oprixodtovarov.ShowModal;
end;
//меню -> отчёты -> расход товаров
procedure TGlavn.N21Click(Sender: TObject);
begin
ORasxodTovarov.ShowModal;
end;
procedure TGlavn.N13Click(Sender: TObject);
begin
Form1.ShowModal;
end;
procedure TGlavn.N15Click(Sender: TObject);
begin
TPrixodTov.ShowModal;
end;
procedure TGlavn.N16Click(Sender: TObject);
begin
TRasxod.ShowModal;
end;
procedure TGlavn.N17Click(Sender: TObject);
begin
TrasxodTov.ShowModal;
end;
procedure TGlavn.N2Click(Sender: TObject);
begin
OPribil.QRLabel7.Caption:=DBEdit4.Text;
OPribil.QuickRep1.Preview;
end;
procedure TGlavn.N6Click(Sender: TObject);
begin
poisk.ShowModal;
end;
procedure TGlavn.Button5Click(Sender: TObject);
var
poiskk:string;
iii:integer;
begin
iii:=0;
DataModule2.Tovar.First;
while not DataModule2.Tovar.eof do
begin
poiskk:='';
poiskk:=edit1.text;
if DataModule2.Tovar.Fields.FieldByName('НаименТовара').AsString=poiskk
then iii:=1
else if iii=0 then DataModule2.Tovar.next;
if iii=1 then break;
end;
if iii=0 then ShowMessage('Товар не найден');
end;
end.
Формы
Размещено на Allbest.ru
Подобные документы
Анализ предметной области, этапы проектирования автоматизированных информационных систем. Инструментальные системы разработки программного обеспечения. Роль CASE-средств в проектировании информационной модели. Логическая модель проектируемой базы данных.
курсовая работа [410,6 K], добавлен 21.03.2011Разработка информационной и инфологической модели базы данных на тему "Командировка". Выбор модели данных и составление ее концептуальной схемы. Получение доступа к БД средствами Delphi, разработка пользовательского интерфейса. Реализация SQL-запросов.
реферат [1,2 M], добавлен 16.06.2009Выбор, обоснование и особенности работы СУБД. Характеристика языков программирования. Разработка структурной и функциональной модели информационной системы аптеки. Проектирование программной среды АИС и ее интерфейса. Построение модели базы данных.
курсовая работа [442,3 K], добавлен 21.04.2012Выбор среды программирования, предметной области автоматизированной информационной системы "Риелторская контора". Входные и выходные данные, создание запросов SQL. Проектирование интерфейса проекта. Использование для отчета реляционной модели данных.
отчет по практике [2,4 M], добавлен 13.01.2011Составление схемы концептуальной модели данных. Разработка структуры реляционной базы данных и интерфейса пользователя. Особенности главных этапов проектирования базы данных. Способы реализации запросов и отчетов. Специфика руководства пользователя.
курсовая работа [186,9 K], добавлен 18.12.2010Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.
курсовая работа [1,4 M], добавлен 14.01.2018Проектирование базы данных для автоматизированной системы "Склад". Разработка концептуальной модели (ER-диаграмма). Преобразование в реляционную модель и ее нормализация. Разработка запросов к базе данных на языке SQL. Скрипт для создания базы данных.
курсовая работа [161,8 K], добавлен 07.10.2013Создание базы данных "Автовокзал" как части информационной системы. Требования к базе данных и этапы ее разработки. Анализ информационных потоков, выбор модели. Входные и выходные данные. Программирование базы данных на языке Borland Delphi 7.0.
курсовая работа [105,8 K], добавлен 16.05.2011Построение информационно-логической модели базы данных. Корректировка данных средствами запросов. Проектирование алгоритмов обработки данных. Реализация пользовательского интерфейса средствами форм. Разработка запросов для корректировки и выборки данных.
курсовая работа [680,9 K], добавлен 19.10.2010Построение концептуальной модели. Проектирование реляционной модели данных на основе принципов нормализации: процесс нормализации и глоссарий. Проектирование базы данных в Microsoft Access: построение таблиц, создание запросов в том числе SQL – запросов.
курсовая работа [35,9 K], добавлен 08.11.2008