Разработка информационной системы для фирмы по обслуживанию клиентов

 

Содержание


Введение

1. Предпроектная стадия

1.1 Описание предметной области

1.2 Разработка функциональной модели предметной области

1.3 Построение UML диаграмм

2. Стадия проектирования

2.1 Выбор программных средств разработки

2.2 Разработка логической модели

2.3 Разработка физической модели

3. Реализация проекта

3.1 Серверная часть

3.2 Клиентская часть

3.3 Реализация запросов

4. Эксплуатация и сопровождение проекта

Заключение

Список используемой литературы

Приложения


Введение


На современном этапе автоматизации управления производством наиболее перспективным является автоматизация планово-управленческих функций на базе персональных ЭВМ, установленных непосредственно на рабочих местах специалистов. Эти системы получили широкое распространение в организационном управлении под названием автоматизированных рабочих мест (АРМ).

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

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

менеджер программное обеспечение запрос

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

Принцип устойчивости заключается в том, что система АРМ должна выполнять основные функции независимо от воздействия на нее внутренних и внешних возможных факторов. Это значит, что неполадки в отдельных ее частях должны быть легко устранимы, а работоспособность системы - быстро восстановима.

Эффективность АРМ следует рассматривать как интегральный показатель уровня реализации приведенных выше принципов, отнесенного к затратам по созданию и эксплуатации системы.

Функционирование АРМ может дать численный эффект только при условии правильного распределения функций и нагрузки между человеком и машинными средствами обработки информации, ядром которых является ЭВМ. Лишь тогда АРМ станет средством повышения не только производительности труда и эффективности управления, но и социальной комфортности специалистов.

Тема курсового проекта - "Разработка информационной системы для фирмы по обслуживанию клиентов".

Цель курсового проекта - разработка автоматизированного рабочего места менеджера фирмы.

1. Предпроектная стадия


1.1 Описание предметной области


Фирма представляет собой торговое предприятие.

Менеджер фирмы принимает заказы, на складе формируют заказы, разносчик доставляет заказы клиентам.

Схематично бизнес-процесс представлен на рис.1.1.


Рис.1.1 Бизнес-процесс работы фирмы


1.2 Разработка функциональной модели предметной области


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

Наиболее широко используемой методологией описания бизнес-процессов является стандарт IDEF0. Подход IDEF0 был разработан на основе методологии структурного анализа и проектирования SADT. С момента разработки стандарт не претерпел существенных изменений. В настоящее время развитие методологии IDEF0 сопряжено с развитием поддерживающих ее инструментов - программных продуктов для моделирования бизнес-процессов (BPWin, ProCap, IDEF0/EM Tool и др.) Методология IDEF0 предоставляет аналитику прекрасные возможности для описания бизнеса организации на верхнем уровне с акцентом на управлении процессами. Нотация позволяет отражать в модели процесса обратные связи различного типа: по информации, по управлению, движение материальных ресурсов. Продуманные механизмы декомпозиции модели процесса в IDEF0 позволяют существенно упростить работа аналитика. Следует отметить, что модели в нотации IDEF0 предназначены для описания бизнеса на верхнем уровне. Их основное преимущество состоит в возможности описывать управление процессами организации.

Второй важнейшей методологией описания процессов является методология IDEF3. Формально эта методология называется Work Flow Modeling, что отражает ее сущность. Стандарт IDEF3 предназначен для описания рабочих процессов или, говоря другими словами, потоков работ. Методология описания IDEF3 очень близка к алгоритмическим методам построения схем процессов стандартными средствами построения блок-схем (построение блок-схемы в MS Word). Основа методологии IDEF3 состоит в построении моделей процессов, по принципу последовательно выполняемых во времени работ.

Еще одной группой методологий, активно используемых на практике, являются нотации DFD (Data FlowDiagramming). Эти нотации предназначены для описания потоков данных. Они позволяют отразить последовательность работ, выполняемых по ходу процесса, и потоки информации, циркулирующие между этими работами. Кроме того, нотация DFD позволяет описывать потоки документов (документооборот) и потоки материальных ресурсов (движение материалов от одной работы к другой). С помощью схемы процессов в DFD выявляют основные потоки данных.

Функциональная модель представлена на рис.1.2.

Рис.1.2 Функциональная модель


1.3 Построение UML диаграмм


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


Рис.1.3 Диаграмма вариантов использования


Диаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывать их внутреннюю структуру и типы отношений.

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


Рис.1.4 Диаграмма классов


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

Рис.1.5 Диаграмма последовательности


2. Стадия проектирования


2.1 Выбор программных средств разработки


Для разработки программного обеспечения была выбрана среда Borland Delphi.++Builder и Delphi стали одними из самых популярных на сегодняшний день инструментов для создания как настольных, так и корпоративных информационных систем благодаря уникальному сочетанию удобства разработки пользовательских интерфейсов, компонентной архитектуры, однотипности доступа к разнообразным базам данных, начиная от плоских таблиц формата dBase и Paradox и кончая серверными СУБД. Во многом именно наличие таких продуктов стимулировало достаточно безболезненный перенос в архитектуру клиент/сервер ряда информационных систем, модернизация которых иными средствами была бы сопряжена с большими трудовыми и материальными затратами.

Следует отметить, что современные тенденции развития инструментальных средств таковы, что актуальным становится не просто появление новых гибких и мощных средств разработки, а создание семейств таких продуктов с похожими средами и принципами создания приложений, что в целом повторяет идеологию формирования офисных пакетов (текстовый процессор + электронная таблица + настольная СУБД + презентационный пакет) вместо выпуска отдельных офисных приложений. Если рассматривать линию продуктов Inprise, то в данный момент на рынке средств разработки присутствуют Delphi и C++Builder, а также сходные по методам создания приложений и среде JBuilder, IntraBuilder, Visual dBase.

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

Однако совместимость C++Builder и Delphi этим не исчерпывается. В проектах C++Builder можно использовать не только библиотеку компонентов Delphi, но и код, написанный на Object Pascal, а также формы и модули Del-phi. Поддерживается визуальное наследование форм и модулей данных, в том числе и созданных в Delphi. Эти возможности появились благодаря включению в C++Builder обоих компиляторов C++ и Object Pascal.

Это означает, что можно создавать общие проекты, используя оба средства разработки - и C++Builder, и Delphi. Части одного приложения могут быть созданы с помощью двух средств, и теперь к работе над проектом можно привлекать разработчиков, использующих как Delphi, так и C++. Во-вторых, и это очень важно, C++Builder может использовать компоненты, созданные для Delphi, а их за последние несколько лет создано огромное количество. Это богатство, накопленное разработчиками всего мира, сегодня способно удовлетворить самые причудливые запросы.предоставляет программисту широкие возможности повторного использования кода не только за счет наличия библиотеки компонентов, но и за счет поддержки стандарта ActiveX, что позволяет встраивать в приложения ActiveX-компоненты как сторонних производителей, так и созданные собственноручно с помощью самого Delphi

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

Следует отметить, что эффективность разработки и отладки приложений достигается не только за счет использования удобных средств визуального проектирования форм (сейчас это не редкость), но и за счет, во-первых, высокой производительности самих компиляторов Borland и, во-вторых, так называемой инкрементной компиляции и компоновки исполняемого модуля (когда перекомпиляции и перекомпоновке подвергаются только те модули, в которые были внесены изменения).

Выбор системы управления баз данных (СУБД) представляет собой сложную многопараметрическую задачу и является одним из важных этапов при разработке приложений баз данных. Выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала.Access - одна из самых популярных систем управления базами данных. Ее успех можно связывать с великолепной рекламной кампанией, организованной Microsoft, или включением ее в богатое окружение продуктов семейства Microsoft Office. Но корень успеха, скорее всего, заключается в прекрасной реализации продукта, рассчитанного как на начинающего, так и квалифицированного пользователя.

СУБД Access для работы с данными использует процессор баз данных Microsoft Jet 4.0, объекты доступа к данным и средство быстрого построения интерфейса - Конструктор форм. Для получения распечаток используются Конструкторы отчетов. Автоматизация рутинных операций может быть выполнена с помощью макрокоманд. На тот случай, когда не хватает функциональности визуальных средств, пользователи Access могут обратиться к созданию процедур и функций. При этом как в макрокомандах можно использовать вызовы функций, так и из кода процедур и функций можно выполнять макрокоманды.

Несмотря на свою ориентированность на конечного пользователя, в Access присутствует язык программирования Visual Basic for Application, который позволяет создавать массивы, свои типы данных, вызывать DLL-функции, с помощью OLE Automation контролировать работу приложений, которые могут функционировать как OLE-серверы. Вы даже можете целиком создавать базы данных с помощью кодирования, когда в этом появляется необходимость. MS Access из всех рассматриваемых средств разработки имеет, пожалуй, самый богатый набор визуальных средств. Тем не менее кодировать в Access приходится исходя из собственного опыта авторы берутся утверждать, что ни одно приложение, не предназначенное для себя лично, создать хотя бы без одной строчки кода невозможно.

Для коммерческого распространения приложений, разработанных на Access, как мы уже писали, предназначен пакет Access Developer Toolkit, вместе с которым поставляются некоторые дополнения и несколько дополнительных объектов ActiveX.

Главное качество Access, которое привлекает к нему многих пользователей, - тесная интеграция с Microsoft Office. К примеру, скопировав в буфер графический образ таблицы, открыв Microsoft Word и применив вставку из буфера, мы тут же получим в документе готовую таблицу с данными из БД. Вся работа с базой данных осуществляется через окно контейнера базы данных. Отсюда осуществляется доступ ко всем объектам, а именно: таблицам, запросам, формам, отчетам, макросам, модулям.

Посредством драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, FoxPro 2. x, а посредством технологии ODBC - и к файлам многих других форматов.может выступать как в роли OLE контролера, так и ОЕЕ сервера. Это значит, что вы можете контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роли OLE контролера и наоборот. Встроенный SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.

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

2.2 Разработка логической модели


Опишем сущности и атрибуты.


Таблица 2.1 Сущность Заказчик

ПолеТип поляКод_заказчикаСчетчикФИОСтроковый [25] АдресСтроковый [25] ТелефонСтроковый [15]

Таблица 2.2 Сущность Разносчик

ПолеТип поляКод_разносчикаСчетчикФИОСтроковый [25] ТелефонСтроковый [15]

Таблица 2.3 Сущность Товар

ПолеТип поляКод_товараСчетчикНаименованиеСтроковый [25] ГруппаСтроковый [15] ЦенаЧисловой

Таблица 2.4 Сущность Журнал

ПолеТип поляКод_журналаСчетчикЗаказчикЧисловойРазносчикЧисловойСуммаЧисловойДатаДата

Таблица 2.5 Сущность Детализация

ПолеТип поляКод_детализацииСчетчикЖурналЧисловойТоварЧисловойКоличествоЧисловой

2.3 Разработка физической модели


Физическая модель, разработанная в MS Access, представлена на рис.2.1.


Рис.2.1 Физическая модель


3. Реализация проекта


3.1 Серверная часть


Серверная часть в данном курсовой проекте представлена базой данных MS Access bd. mdb.

База данных хранит все данные, необходимые для работы разрабатываемой системы.

Для связи сервера и клиента используется технология ADO.

Технология ADO является моделью доступа к базам данных и представляет собой объектно-ориентированный интерфейс для технологии доступа к данным OLE DB.поддерживает ключевые возможности для построения клиент/серверных и Web-приложений, а также обеспечивает функции Remote Data Service (RDS), посредством которого можно перемещать данные с сервера в клиентское приложение или на Web-страницу, манипулировать данными "на стороне клиента" и возвращать обновленные данные серверу.


Рис.3.1 Таблицы базы данных


3.2 Клиентская часть


Клиентская часть разработана в Delphi 7 и представляет собой интерфейс пользователя с функциями для управления базой данных.

Опишем основные алгоритмы клиентской части.

Алгоритм работы со справочниками.


Рис.3.2 Схема алгоритма добавления и редактирования данных


Исходный код:

TForm3. Button2Click (Sender: TObject);Edit1. Text='' then('Введите ФИО! ');. SetFocus;;;Edit2. Text='' then('Введите Адрес! ');. SetFocus;;;Edit3. Text='' then('Введите телефон! ');. SetFocus;;;Form3. Caption='Добавление' then. ADOQuery1. Insert. ADOQuery1. Edit;. ADOQuery1. FieldValues ['ФИО']: =Edit1. Text;. ADOQuery1. FieldValues ['Адрес']: =Edit2. Text;. ADOQuery1. FieldValues ['Телефон']: =Edit3. Text;. ADOQuery1. UpdateRecord;. ADOQuery1. Last;. ADOQuery1. First;Click (Sender);;


Рис.3.3 Схема алгоритма удаления данных


Исходный код:


procedure TForm2. Button3. Click (Sender: TObject);Application doMessageBox ('Вы хотите удалить запись? ', 'Удаление', MB_OKCANCEL) =IDOK then1. Delete;

end;

end;


3.3 Реализация запросов


В разрабатываемой системе использовались SQL-запросы для получения данных.запросы обычно выполняют следующие задачи:

·создание, модификация и удаление таблиц базы данных;

·вставка информации (записей) в таблицы базы данных;

·редактирование информации (записей) в таблицах базы данных;

·выборка (извлечение) информации из таблиц базы данных;

·удаление информации (записей) из базы данных.

Примеры использования SQL-запросов:

. SQL. Clear;: ='SELECT Журнал. Код_журнала, Заказчики. ФИО, Разносчики. ФИО, Журнал. Сумма, Журнал. Дата ';: =st+'FROM Журнал, Заказчики, Разносчики WHERE (Журнал. Заказчик=Заказчики. Код_заказчика) AND ';: =st+' (Журнал. Разносчик=Разносчики. Код_разносчика) ORDER BY Журнал. Дата';. SQL. Add (st);. Open;: ='SELECT Товары. Наименование, Детализация. Количество FROM Детализация, Товары ';: =st+'WHERE (Товары. Код_товара=Детализация. Товар) AND (Детализация. Журнал='+IntToStr (ADOQuery1. FieldValues ['Код_журнала']) +') ';. SQL. Clear;. SQL. Add (st);. Open;

4. Эксплуатация и сопровождение проекта


При запуске программы на выполнение на экран выводится главная форма программы.

Главная форма программы содержит пользовательское меню:

·Справочник (Заказчик, Разносчик, Товар) - работа со справочниками;

·Выход - завершение работы программы.

Также на форме находится таблица журнал заказов с сортировкой по дате и детализация заказа, в которой приводится список продуктов.

Главная форма представлена на рис.4.1.


Рис.4.1 Главная форма программы


Рассмотрим работу со справочниками на примере справочника "Заказчики". Форма содержит таблицу с данными и кнопки управления.

Все справочники имеют одинаковые функции:

·Добавление;

·Редактирование;

·Удаление;

·Выход.

Форма справочника Заказчиков представлена на рис.4.2.


Рис.4.2 Форма справочника Заказчиков


При нажатии кнопки Добавить на экране появится форма с полями для ввода новой записи (рис.4.3.).


Рис.4.3 Окно Добавление


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


Рис.4.4 Сообщение об ошибке


Кнопка "Отмена" не сохраняет введенные данные и закрывает форму.

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


Рис.4.5 Редактирование записи


После нажатия кнопки "Удаление" программа выдаст запрос на подтверждение удаления записи. После подтверждения запись будет удалена.


Рис.4.6 Запрос на удаление записи


Рассмотрим технологию добавления заказ в журнал.

На главной форме необходимо нажать кнопку "Добавить", появится форма добавления заказа, рис.4.7.


Рис.4.7 Форма добавления заказа


В верхней части формы находится таблица для хранения выбранных товаров, раскрывающийся список с ФИО заказчиков и с ФИО разносчиков, а также выбор даты заказа.

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


Рис.4.8 Форма указания количества товара


После нажатия кнопки "Ок" товар добавится в верхнюю таблицу и автоматически изменится сумма заказа.


Рис.4.9 Результат добавления заказа


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


Рис.4.10. Результат добавления заказа


Заключение


В ходе выполнения курсового проекта была рассмотрена предметная область фирмы по обслуживанию клиентов.

Были определены сущности и атрибуты базы данных, разработаны UML-диаграммы системы. Разработана физическая база данных и клиентское приложение.

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

Список используемой литературы


1.Аппак М.А. Автоматизированные рабочие места на основе персональных ЭВМ. - М.: Радио и связь, 2009. - 176 с.

2.Гольдштейн С. Л, Ткаченко Т.Я. Введение в системологию и системотехнику / С.Л. Гольдштейн. - ИРРО. Екатеринбург, 2010. - 198 с.

.Глушаков С.В., Ломотько Д.В. Базы данных: Учебный курс. - М.: Издательство АСТ, 2008. - 504 с.

.Дюк В.А. Обработка данных на ПК в примерах. - СПб: Питер. 1997;

.Марк Д.А. Методология структурного анализа и проектирования SADT. - М: Метатехнология, 2009. - 242 с.

.Сеннов А.С. Access 2003 Практическая разработка баз данных, Питер, 2005;

.Симонович, Евсеев Занимательное программирование: Delphi. М.: АСТ-ПРЕСС, 2001;

.Шуремов Е.Л. Компьютерный учет торговых операций: Практическое пособие/. - М.: КомпьютерПресс, 2000;

Приложения


unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, XPMan, Menus, StdCtrls, DB, ADODB, Grids, DBGrids;= class (TForm): TXPManifest;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TADOConnection;: TGroupBox;: TGroupBox;: TButton;: TDBGrid;: TDBGrid;: TADOQuery;: TDataSource;: TADOQuery;: TDataSource;: TADOQuery;N2Click (Sender: TObject);FormCreate (Sender: TObject);N3Click (Sender: TObject);N4Click (Sender: TObject);N5Click (Sender: TObject);Button1Click (Sender: TObject);DBGrid1CellClick (Column: TColumn);

{ Private declarations }

{ Public declarations };: TForm1;Unit2, Unit4, Unit6, Unit8;

{$R *. dfm}TForm1. N2Click (Sender: TObject);. Close;;TForm1. FormCreate (Sender: TObject);,st: string;. Cursor: = crSQLWait;: ='';: =sdr+'Provider=Microsoft. Jet. OLEDB.4.0; ';: =sdr+'Password=""; ';: =sdr+'User ID=Admin; ';: =sdr+'Data Source='+ ExtractFileDir (Application. ExeName) +'\bd. mdb; ';: =sdr+'Mode=ReadWrite; Extended Properties=""; ';: =sdr+'Jet OLEDB: System database=""; ';: =sdr+'Jet OLEDB: Registry Path=""; ';: =sdr+'Jet OLEDB: Database Password=""; ';: =sdr+'Jet OLEDB: Engine Type=5; ';: =sdr+'Jet OLEDB: Database Locking Mode=1; ';: =sdr+'Jet OLEDB: Global Partial Bulk Ops=2; ';: =sdr+'Jet OLEDB: Global Bulk Transactions=1; ';: =sdr+'Jet OLEDB: New Database Password=""; ';: =sdr+'Jet OLEDB: Create System Database=False; ';: =sdr+'Jet OLEDB: Encrypt Database=False; ';: =sdr+'Jet OLEDB: Compact Without Replica Repair=False; ';: =sdr+'Jet OLEDB: SFP=False';. ConnectionString: =sdr;. Connected: =true;. SQL. Clear;: ='SELECT Журнал. Код_журнала, Заказчики. ФИО,Разносчики. ФИО, Журнал. Сумма, Журнал. Дата ';: =st+'FROM Журнал, Заказчики, Разносчики WHERE (Журнал. Заказчик=Заказчики. Код_заказчика) AND ';: =st+' (Журнал. Разносчик=Разносчики. Код_разносчика) ORDER BY Журнал. Дата';. SQL. Add (st);. Open;. Columns [0]. Width: =0;: ='SELECT Товары. Наименование, Детализация. Количество FROM Детализация, Товары ';: =st+'WHERE (Товары. Код_товара=Детализация. Товар) AND (Детализация. Журнал='+IntToStr (ADOQuery1. FieldValues ['Код_журнала']) +') ';. SQL. Clear;. SQL. Add (st);. Open;('Ошибка');;. Cursor: =crdefault;;TForm1. N3Click (Sender: TObject);. ShowModal;;TForm1. N4Click (Sender: TObject);. ShowModal;;TForm1. N5Click (Sender: TObject);. ShowModal;;TForm1. Button1Click (Sender: TObject);: String;. Caption: ='Добавление';. SQL. Clear;. SQL. Add ('SELECT MAX (Код_журнала) AS num FROM Журнал');. Open;. Label5. Caption: =IntToStr (ADOQuery3. FieldValues ['num'] +1);. ADOQuery2. SQL. Clear;: ='SELECT Детализация. Код_детализации, Детализация. Журнал, Товары. Наименование,';: =st+'Детализация. Количество FROM Детализация, Товары WHERE ';: =st+' (Журнал='+Form8. Label5. Caption+') AND (Детализация. Товар=Товары. Код_товара) ';. ADOQuery2. SQL. Add (st);. ADOQuery2. Open;. DBGrid1. Columns [0]. Width: =0;

// заказчик. ADOQuery3. SQL. Clear;. ADOQuery3. SQL. Add ('SELECT * FROM Заказчики ORDER BY ФИО');. ADOQuery3. Open;. Zak. ListField: ='ФИО';. Zak. KeyField: ='Код_заказчика';

// разносчик. ADOQuery4. SQL. Clear;. ADOQuery4. SQL. Add ('SELECT * FROM Разносчики ORDER BY ФИО');. ADOQuery4. Open;. Razn. ListField: ='ФИО';. Razn. KeyField: ='Код_разносчика';. ShowModal;;TForm1. DBGrid1CellClick (Column: TColumn);: String;: ='SELECT Товары. Наименование, Детализация. Количество FROM Детализация, Товары ';: =st+'WHERE (Товары. Код_товара=Детализация. Товар) AND (Детализация. Журнал='+IntToStr (ADOQuery1. FieldValues ['Код_журнала']) +') ';. SQL. Clear;. SQL. Add (st);. Open;;.Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, Grids, DBGrids;= class (TForm): TDBGrid;: TButton;: TButton;: TButton;: TButton;: TDataSource;: TADOQuery;Button4Click (Sender: TObject);FormCreate (Sender: TObject);Button2Click (Sender: TObject);Button1Click (Sender: TObject);Button3Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm2;Unit1, Unit3;

{$R *. dfm}TForm2. Button4Click (Sender: TObject);. Close;;TForm2. FormCreate (Sender: TObject);. SQL. Clear;. SQL. Add ('SELECT * FROM Заказчики ORDER BY ФИО');. Open;. Columns [0]. Width: =0;;TForm2. Button2Click (Sender: TObject);Application doMessageBox ('Вы хотите удалить запись? ', 'Удаление', MB_OKCANCEL) =IDOK then. Delete;;;TForm2. Button1Click (Sender: TObject);. Caption: ='Добавление';. ShowModal;;TForm2. Button3Click (Sender: TObject);. Caption: ='Редактирование';. Edit1. Text: =ADOQuery1. FieldValues ['ФИО'];. Edit2. Text: =ADOQuery1. FieldValues ['Адрес'];. Edit3. Text: =ADOQuery1. FieldValues ['Телефон'];. ShowModal;;.Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class (TForm): TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TButton;: TButton;Button1Click (Sender: TObject);Button2Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;Unit2;

{$R *. dfm}TForm3. Button1Click (Sender: TObject);. Text: ='';. Text: ='';. Text: ='';. Close;;TForm3. Button2Click (Sender: TObject);Edit1. Text='' then('Введите ФИО! ');. SetFocus;;;Edit2. Text='' then('Введите Адрес! ');. SetFocus;;;Edit3. Text='' then('Введите телефон! ');. SetFocus;;;Form3. Caption='Добавление' then. ADOQuery1. Insert. ADOQuery1. Edit;. ADOQuery1. FieldValues ['ФИО']: =Edit1. Text;. ADOQuery1. FieldValues ['Адрес']: =Edit2. Text;. ADOQuery1. FieldValues ['Телефон']: =Edit3. Text;. ADOQuery1. UpdateRecord;. ADOQuery1. Last;. ADOQuery1. First;Click (Sender);;.Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, Grids, DBGrids;= class (TForm): TDBGrid;: TButton;: TButton;: TButton;: TButton;: TDataSource;: TADOQuery;FormCreate (Sender: TObject);Button4Click (Sender: TObject);Button2Click (Sender: TObject);Button1Click (Sender: TObject);Button3Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm4;Unit1, Unit5;

{$R *. dfm}TForm4. FormCreate (Sender: TObject);. SQL. Clear;. SQL. Add ('SELECT * FROM Разносчики ORDER BY ФИО');. Open;. Columns [0]. Width: =0;;TForm4. Button4Click (Sender: TObject);. Close;;TForm4. Button2Click (Sender: TObject);Application doMessageBox ('Вы хотите удалить запись? ', 'Удаление', MB_OKCANCEL) =IDOK then. Delete;;;TForm4. Button1Click (Sender: TObject);. Caption: ='Добавление';. ShowModal;;TForm4. Button3Click (Sender: TObject);. Caption: ='Редактирование';. Edit1. Text: =ADOQuery1. FieldValues ['ФИО'];. Edit3. Text: =ADOQuery1. FieldValues ['Телефон'];. ShowModal;;.Unit5;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class (TForm): TLabel;: TEdit;: TLabel;: TEdit;: TButton;: TButton;Button1Click (Sender: TObject);Button2Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm5;Unit4;

{$R *. dfm}TForm5. Button1Click (Sender: TObject);. Text: ='';. Text: ='';. Close;;TForm5. Button2Click (Sender: TObject);Edit1. Text='' then('Введите ФИО! ');. SetFocus;;;Edit3. Text='' then('Введите телефон! ');. SetFocus;;;Form5. Caption='Добавление' then. ADOQuery1. Insert. ADOQuery1. Edit;. ADOQuery1. FieldValues ['ФИО']: =Edit1. Text;. ADOQuery1. FieldValues ['Телефон']: =Edit3. Text;. ADOQuery1. UpdateRecord;. ADOQuery1. Last;. ADOQuery1. First;Click (Sender);;.Unit6;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, ADODB, StdCtrls, Grids, DBGrids;= class (TForm): TDBGrid;: TButton;: TButton;: TButton;: TButton;: TDataSource;: TADOQuery;Button4Click (Sender: TObject);Button2Click (Sender: TObject);FormCreate (Sender: TObject);Button1Click (Sender: TObject);Button3Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm6;Unit1, Unit7;

{$R *. dfm}TForm6. Button4Click (Sender: TObject);. Close;;TForm6. Button2Click (Sender: TObject);Application doMessageBox ('Вы хотите удалить запись? ', 'Удаление', MB_OKCANCEL) =IDOK then. Delete;;;TForm6. FormCreate (Sender: TObject);. SQL. Clear;. SQL. Add ('SELECT * FROM Товары ORDER BY Наименование');. Open;. Columns [0]. Width: =0;;TForm6. Button1Click (Sender: TObject);. Caption: ='Добавление';. ShowModal;;TForm6. Button3Click (Sender: TObject);. Caption: ='Редактирование';. Edit1. Text: =ADOQuery1. FieldValues ['Наименование'];. Edit2. Text: =ADOQuery1. FieldValues ['Группа'];. Edit3. Text: =ADOQuery1. FieldValues ['Цена'];. ShowModal;;.Unit7;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class (TForm): TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TButton;: TButton;Button1Click (Sender: TObject);Button2Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm7;Unit6;

{$R *. dfm}TForm7. Button1Click (Sender: TObject);. Text: ='';. Text: ='';. Text: ='';. Close;;TForm7. Button2Click (Sender: TObject);Edit1. Text='' then('Введите Наименование! ');. SetFocus;;;Edit2. Text='' then('Введите Группу! ');. SetFocus;;;Edit3. Text='' then('Введите Цену! ');. SetFocus;;;Form7. Caption='Добавление' then. ADOQuery1. Insert. ADOQuery1. Edit;. ADOQuery1. FieldValues ['Наименование']: =Edit1. Text;. ADOQuery1. FieldValues ['Группа']: =Edit2. Text;. ADOQuery1. FieldValues ['Цена']: =Edit3. Text;. ADOQuery1. UpdateRecord;. ADOQuery1. Last;. ADOQuery1. First;Click (Sender);;.Unit8;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, ComCtrls;= class (TForm): TGroupBox;: TGroupBox;: TLabel;: TDBLookupComboBox;: TLabel;: TDBLookupComboBox;: TLabel;: TLabel;: TButton;: TButton;: TDBGrid;: TDBGrid;: TADOQuery;: TDataSource;: TADOQuery;: TDataSource;: TADOQuery;: TDataSource;: TADOQuery;: TDataSource;: TADOQuery;: TDataSource;: TLabel;: TLabel;: TDateTimePicker;: TLabel;FormCreate (Sender: TObject);Button1Click (Sender: TObject);Button2Click (Sender: TObject);DBGrid2DblClick (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm8;Unit1, Unit9;

{$R *. dfm}TForm8. FormCreate (Sender: TObject);. SQL. Clear;. SQL. Add ('SELECT * FROM Товары ORDER BY Наименование');. Open;. Columns [0]. Width: =0;;TForm8. Button1Click (Sender: TObject);. KeyValue: =0;. KeyValue: =0;. Close;;TForm8. Button2Click (Sender: TObject);: String;. SQL. Clear;. SQL. Add ('SELECT * FROM Журнал');. Open;. Insert;. FieldValues ['Заказчик']: =Zak. KeyValue;. FieldValues ['Разносчик']: =Razn. KeyValue;. FieldValues ['Сумма']: =StrToInt (Label4. Caption);. FieldValues ['Дата']: =DateToStr (Dat. Date);. UpdateRecord;. Last;. First;: ='SELECT Журнал. Код_журнала, Заказчики. ФИО,Разносчики. ФИО, Журнал. Сумма, Журнал. Дата ';: =st+'FROM Журнал, Заказчики, Разносчики WHERE (Журнал. Заказчик=Заказчики. Код_заказчика) AND ';: =st+' (Журнал. Разносчик=Разносчики. Код_разносчика) ORDER BY Журнал. Дата';. ADOQuery1. SQL. Clear;. ADOQuery1. SQL. Add (st);. ADOQuery1. Open;. DBGrid1. Columns [0]. Width: =0;: ='SELECT Товары. Наименование, Детализация. Количество FROM Детализация, Товары ';: =st+'WHERE (Товары. Код_товара=Детализация. Товар) AND (Детализация. Журнал='+IntToStr (Form1. ADOQuery1. FieldValues ['Код_журнала']) +') ';. ADOQuery2. SQL. Clear;. ADOQuery2. SQL. Add (st);. ADOQuery2. Open;Click (Sender);;TForm8. DBGrid2DblClick (Sender: TObject);. ShowModal;;.Unit9;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls;= class (TForm): TEdit;: TUpDown;: TButton;: TButton;Button1Click (Sender: TObject);Button2Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm9;Unit8;

{$R *. dfm}TForm9. Button1Click (Sender: TObject);. Text: ='1';. Close;;TForm9. Button2Click (Sender: TObject);: Integer;: String;. ADOQuery2. SQL. Clear;. ADOQuery2. SQL. Add ('SELECT * FROM Детализация');. ADOQuery2. Open;. ADOQuery2. Insert;. ADOQuery2. FieldValues ['Журнал']: =StrToInt (Form8. Label5. Caption);. ADOQuery2. FieldValues ['Товар']: =Form8. ADOQuery1. FieldValues ['Код_товара'];. ADOQuery2. FieldValues ['Количество']: =StrToInt (Edit1. Text);. ADOQuery2. UpdateRecord;. ADOQuery2. Last;. ADOQuery2. First;. ADOQuery2. SQL. Clear;: ='SELECT Детализация. Код_детализации, Детализация. Журнал, Товары. Наименование,';: =st+'Детализация. Количество FROM Детализация, Товары WHERE ';: =st+' (Журнал='+Form8. Label5. Caption+') AND (Детализация. Товар=Товары. Код_товара) ';. ADOQuery2. SQL. Add (st);. ADOQuery2. Open;. DBGrid1. Columns [0]. Width: =0;: =StrToInt (Edit1. Text) *Form8. ADOQuery1. FieldValues ['Цена'];. Label4. Caption: =IntToStr (StrToInt (Form8. Label4. Caption) +sum);Click (Sender);;.


Содержание Введение 1. Предпроектная стадия 1.1 Описание предметной области 1.2 Разработка функциональной модели предметной области 1.3 Постр

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ