РефератыИнформатика, программированиеРаРазработка АИС управления взаимоотношениями с клиентами

Разработка АИС управления взаимоотношениями с клиентами

Содержание


Введение



1. Анализ
и выбор средств
разработки
информационной
системы



1.1 Краткая
характеристика
предприятия



1.2 Литературный
обзор средств
проектирование
базы данных



1.3 Анализ
сред разработки
программ ввода /
вывода



2. Разработка
структуры базы
данных и пользовательского
интерфейса



2.1 Разработка
структуры базы
данных



2.2 Реализация
базы данных
с помощью программы
«Денвер 2»



3. Разработка
подсистемы
ввода / вывода
и генерации
отчетов для
автоматизированной
информационной
системы



3.1 Программы
ввода / вывода
информации



3.2 Режим
администрирования



3.3 Генерация
отчетов



Заключение



Список
используемых
источников



Приложения


Введение


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



Данное
решение будет
являться очень
удобным и полезным
для организации
ОАО «Токаревский
«Мясокомбинат»»,
так как оно
поможет избежать
неудобности
поиска данных
о том или ином
наименовании.
Сегодня на
компьютерах
применяется
новое поколение
программного
обеспечения,
которое буквально
революционизировало
работу пользователей.
Довольно
распространено
мнение, что,
новые системы
являются более
«дружественными»
и облегчают
жизнь людей.



Цель
дипломной
работы – разработка
автоматизированной
информационной
системы управления
взаимоотношениями
с клиентами
для ОАО «Токаревский
«Мясокомбинат»».



Задачи дипломной
работы:



проанализировать
информационные
потоки;



разработать
структуру базы
данных;



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



разработать
подсистему
ввода / вывода
данных;



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



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



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



Объектом
исследования
является управления
взаимонотношениями
с клиентами
ОАО «Токаревский
«Мясокомбинат»».



Предмет
анализа –
автоматизированная
система управления
взаимоотношениями
с клиентами.



Для выполнения
поставленных
задач была
использована
документация,
предоставленная
ОАО «Токаревский
«Мясокомбинат»».


1.
Анализ и выбор
средств разработки
информационной
системы


1.1 Краткая
характеристика
предприятия


Открытое
акционерное
общество
ОАО «Токаревский
Мясокомбинат»
организован
в 1953 г. является
коммерческой
организацией,
утверждено
в соответствии
с Указом Президента
Российской
Федерации №721
от 01.07.1992 г. на основании
Распоряжения
Госкомимущества
от 11.12.1992 г. №1403, является
правопреемником
государственного
предприятия
комбината
мясоптица
«Токаревский»



Первый директор
Рогудеев Николай
Иванович. Сейчас
возглавляет
генеральный
директор Лобаков
Валериан
Александрович.



Общество
действует в
соответствии
с Федеральным
законом «Об
акционерных
обществах»
иным действующим
законодательством
РФ и настоящим
Уставом. Уставной
капитал общества
составляет
100940 рублей. Количество
акционеров
– 193 человека,
обладающие
в совокупности
акциями в количестве
10094 штуки.



Место
нахождения:
Тамбовская
область, пгт.
Токаревка,
ул. Трудовая
69. Общество имеет
гражданские
права и исполняет
обязанности,
необходимые
для осуществления
любых видов
деятельности
не запрещенных
действующим
законодательством
РФ.



Основными
видами деятельности
общества является:



закупка
скота, птиц и
другого
сельскохозяйственного
сырья в коллективных,
государственных
фермерских
и индивидуальных
хозяйствах;



Переработка
сельскохозяйственного
сырья;



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



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



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



ОАО «Токаревский
«Мясокомбинат»»
постоянно
работает над
повышением
своего уровня.
Много времени
уделяется
повышению
квалификации
своих сотрудников,
подбору хорошей
компьютерной
техники, обеспечение
удобства для
клиентов, а
также информационной
поддержке
клиентов. Для
более мобильной
работы с клиентами
установлен
выход в Интернет
и существует
своя электронная
почта. С помощью
хорошего оснащения
предприятия,
вы всегда сможете
получить достоверную
информацию
по интересующим
вопросам.


1.2 Литературный
обзор средств
проектирование
базы данных


Среди
наиболее ярких
представителей
систем управления
базами данных
можно отметить:
Lotus
Approach,
Borland
dBase,
Borland
Paradox,
Microsoft
Visual
FoxPro,
Microsoft
Visual
Basic,
а также баз
данных Microsoft
SQL
Server
и Oracle,
используемые
в приложениях,
построенных
по технологии
«клиент-сервер»1.



Компания
Oracle
проникла на
российский
рынок более
десяти лет
назад, и продукция
этой фирмы
хорошо известна.
Oracle7 это реляционная
СУБД и семейство
продуктов,
обеспечивающих
создание
автоматизированных
и информационных
систем различного
назначения.
В состав семейства
входят: СУБД
Oracle7 RDBMS, средства
проектирования
приложений
CDE CASE
(Designer/2000),
средства разработки
приложений
CDE
Tools
(Developer/2000),
средства конечного
пользователя,
средства интерфейса
с программными
продуктами
третьих фирм,
коммуникационные
средства и так
далее.



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



Функциональные
новшества в
Oracle 7.3 появилась
возможность
читать и писать
поля таблиц
типа Long по частям
(на уровне Oracle
Call Interface), что, безусловно
полезно, ибо
размер таких
полей может
доходить до
2 Гбайт. Расширился
набор типов
представлений
(views), для которых
допускается
их непосредственная
модификация.
Появился ряд
новшеств в
языке PL/SQL (процедурном
расширении
SQL), самое заметное
из которых –
поддержка
таблиц, хранимых
в памяти сервера.
Новые алгоритмы
обработки
запросов. Выполнение
SQL запроса –
особенно имеющего
сложную структуру
– обычно распадается
на несколько
взаимосвязанных
операций. Само
это разбиение,
а тем более
выбор методов
выполнения
операций, как
правило, допускают
множество
альтернативных
решений. Выбор
оптимальной
их комбинации
– задача оптимизатора,
который на
основании, как
характера
запроса, так
и имеющейся
информации
о задействованных
таблицах и
индексах, наличии
тех или иных
системных
ресурсов (в
Oracle 7.3 расширен
набор видов
предоставляемой
оптимизатору
информации:
теперь он может
учитывать
частотные
гистограммы
индексируемых
полей) строит
оценку стоимости
разных вариантов
решения.2



Oracle традиционно
славится как
поставщик СУБД
для крупных
инсталляций,
однако в связи
с этим бытует
(и активно
поддерживается
конкурентами)
также и мнение
о том, что для
небольших
систем Oracle слишком
тяжеловесен,
сложен, дорог
и пр. Oracle прикладывает
немало усилий,
чтобы по всем
параметрам
включая цены
утвердиться
в качестве
основного
поставщика
во всех сегментах
рынка СУБД,
начиная с небольших
рабочих групп.



В отличие
от Oracle 7 восьмая
версия сервера
Oracle не просто
предоставляет
расширенный
набор встроенных
типов данных,
но и позволяет
конструировать
новые типы
данных со
спецификацией
методов доступа
к ним. Это означает
фактически,
что разработчики
получают в руки
не просто систему
для хранения
и обработки,
скажем, видеоданных
(что, понятно,
нужно далеко
не в каждом
приложении),
а и инструмент,
позволяющий
строить структурированные
типы данных,
непосредственно
отображающие
сущности предметной
области. Влияние
этого фактора
на возможности
разработчиков
можно сравнить
с эффектом от
перехода на
реляционные
СУБД в начале
80 х годов. Oracle8
фактически
опирается на
новый стандарт
SQL, позволяющий
описывать
определения
новых типов
объектов, состоящих
из атрибутов
(скалярных –
т.е. других типов,
множеств объектов,
ссылок на объекты),
и обладающих
ассоциированными
с ним методами.
Любая колонка
таблицы может
быть любого
типа, поддерживаются
также вложенные
таблицы и массивы
объектов переменной
длины.3



SQL
является
инструментом,
предназначенным
для обработки
и чтения данных,
содержащихся
в компьютерной
базе данных.
SQL
– это сокращенное
название
структурированного
языка запросов
(Structured
Query
Language).
Как следует
из названия,
SQL
является языком
программирования,
который применяется
для организации
взаимодействия
пользователя
с базой данных.
На самом деле
SQL
работает только
с базами данных
одного определенного
типа, называемых
реляционными.
На
рисунке
1 изображена
схема работы
SQL.
4




Рисунок
1. Схема работы
SQL


Согласно
этой схеме, в
вычислительной
системе имеется
база данных,
в которой хранится
важная информация.
В базе данных
на персональном
компьютере
может храниться
различная
информация.
Компьютерная
программа,
которая управляет
базой данных,
называется
системой управления
базой
данных,
или СУБД.



Если
пользователю
необходимо
прочитать
данные из базы
данных, он
запрашивает
их у СУБД с помощью
SQL.
СУБД обрабатывает
запрос, находит
требуемые
данные и посылает
их пользователю.
Процесс запрашивания
данных и получения
результата
называется
запросом к базе
данных: отсюда
и название

структурированный
язык запросов.



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



организация
данных: SQL
дает пользователю
возможность
изменять структуру
представления
данных, а также
устанавливать
отношения
между элементами
базы данных.



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



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



управление
доступом: с
помощью SQL
можно ограничить
возможности
пользователя
по чтению и
изменению
данных и защитить
их от несанкционированного
доступа.



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



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



Таким
образом, SQL
является достаточно
мощным языком
для взаимодействия
с СУБД.



Во-вторых,
SQL
– это
не полноценный
компьютерный
язык типа COBOL,
FORTRAN
или С. В SQL
нет оператора
IF
для проверки
условий, нет
оператора GOTO
для организации
переходов и
нет операторов
DO
или FOR
для создания
циклов. SQL
является подъязыком
баз данных, в
который входит
около тридцати
операторов,
предназначенных
для управления
базами данных.
Операторы SQL
встраиваются
в базовый язык,
например COBOL,
FORTRAN
или С, и дают
возможность
получать доступ
к базам данных.
Кроме того, из
такого языка,
как С, операторы
SQL
можно посылать
СУБД в явном
виде, используя
интерфейс
вызовов функций.



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



SQL
– это
легкий для
понимания язык
и в то же время
универсальное
программное
средство управления
данными.



Успех
языку SQL
принесли следующие
его особенности:



независимость
от конкретных
СУБД;



переносимость
с одной вычислительной
системы на
другую;



наличие
стандартов;



одобрение
компанией IBM
(СУБД DB2);



поддержка
со стороны
компании Microsoft
(протокол ODBC);



реляционная
основа;



высокоуровневая
структура,
напоминающая
английский
язык;



возможность
выполнения
специальных
интерактивных
запросов:



обеспечение
программного
доступа к базам
данных;



возможность
различного
представления
данных;



полноценность
как языка,
предназначенного
для работы с
базами данных;



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



поддержка
архитектуры
клиент / сервер.6



Все
перечисленные
выше факторы
явились причиной
того, что SQL
стал стандартным
инструментом
для управления
данными на
персональных
компьютерах,
мини-компьютерах
и больших ЭВМ.


1.3 Анализ
сред разработки
программ ввода /
вывода


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



Такими языками,
к примеру, являются
Perl, PHP, JAVA и ASP.



Рассмотрим
некоторые черты
этих языков
в общем, сравнении
друг с другом:
РНР, PERL
и Java.



Вообще
говоря, различают
язык Java и технологию
Java. Язык Java представляет
собой С-подобный
язык, который
разрабатывался
как «улучшенный
C++». Технология
Java включает в
себя клиентскую
и серверную
часть, а также
доступ к базам
данных, поэтому
наиболее корректно
проводить
сравнение
технологии
Java со связкой
Apache/PHP/MySQL. Технология
Java разрабатывалась
как межплатформенная
технология,
позволяющая
создавать
Web приложения
корпоративного
масштаба. Основными
достоинствами
этой технологии
являются
межплатформенная
переносимость
и объектно-ориентированный
язык, что позволяет
создавать
сложные и объемные
приложения.
К числу недостатков
можно отнести
медленное
выполнение,
потребление
большого количества
памяти (плата
за межплатформенную
переносимость)
и сложность
разработки
Web приложений
по сравнению
с РНР или Perl.
Между тем РНР
и PERL
почти не уступают
Java в гибкости
и масштабируемости
созданных
приложений.
Кроме того,
использование
Java для разработки
достаточно
простых приложений
вряд ли оправдано,
а при работе
над серьезными
задачами Java
обходится
дороже.7



PERL
и
ASP.NET



ASP (Active
Server Pages) – язык
сценариев
от
Microsoft. Основное
достоинство
ASP.NET заключается
в возможности
применения
всей мощи интерфейса
Windows для разработки
Web приложений.
Это позволяет
разрабатывать
страницы со
сложным интерфейсом,
не заботясь
о сохранении,
шифровании
и передаче
переменных,
используемых
на динамических
страницах.8



Код
Web приложения
на ASP.NET компилируется
в промежуточный
язык MSIL (Microsoft Intermediate Language),
иногда просто
называемый
IL. Аппаратно-независимый
код на языке
IL помещается
в кэш Web сервера
для повышения
производительности,
по аналоги с
байт-кодом
Java. Но в отличие
от технологии
Java, обеспечивающей
платформенную
независимость,
NET обеспечивает
независимость
от языка разработки.
Выполнение
Web приложений
ASP.NET на серверах,
работающих
не под Windows, практически
невозможно.
Поэтому в смысле
переносимости
PERL,
безусловно,
отличается
от ASP.NET в лучшую
сторону. Другой
крайне немаловажный
довод в пользу
PERL
заключается
в быстром исправлении
обнаруженных
ошибок. Теоретически
исправить их
можно самостоятельно,
если обладаете
достаточной
квалификацией.
Таким образом,
при выборе
между ASP.NET и PERL
следует исходить
из стоящей
задачи. Если
в сети Интранет
крупной корпорации
большинство
серверов и
клиентских
машин работают
под управлением
Windows, применение
ASP.NET более чем
оправдано. В
то же время для
разработки
Web сайта, размещаемого
в Интернете,
целесообразнее
использовать
PERL.9



Я реализовал
модули для АИС
«Отдела сбыта»
на языке программирования
Perl (Practical Extraction and Report Language – Практический
язык извлечений
и отчетов).



Язык
программирования
Perl
был выбран мною
не случайно.



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



Первым
в цепочке достоинств
языка Perl можно
назвать его
интерпретируемость.
Если вспомнить,
для чего он
предназначен
– задач администрирования
и обработки
текстовых
файлов – небольших
по размерам
сценариев,
решающих
нетрадиционные
задачи, для
программирования
которых могло
бы потребоваться
взаимодействие
нескольких
специализированных
языков. Разработка
подобных решений
с помощью
компилируемых
языков программирования
потребовала
бы на много
больше времени,
чем использование
одного интерпретируемого:
ведь цикл разработки
программ на
таком языке
короче и проще,
чем на компилируемом.
Мы постепенно
создаем программу,
добавляя, необходимые
операторы, и
сразу же получаем
результаты,
когда она завершена:
интерпретатор
perl постепенно
компилирует
все операторы
во внутренний
байт-код и программа
готова к выполнению,
как только в
ней поставлена
последняя точка
(точнее точка
с запятой,
завершающая
последний
оператор).



Суммируя
все сказанное,
можно заключить,
что Perl позволяет
легко и быстро
получить требуемое
решение задачи,
сочетая в себе
элементы
компилируемых
и интерпретируемых
языков программирования.
Это несравненный
плюс языка
программирования
Perl
для решения
задачи написания
программы
ввода / вывода
данных и генераций
отчетов для
АИС управления
и взаимоотношения
с клиентами
так как каждый
модуль не велик
по объёму, но
требует быстрого
взаимодействия
с таблицами
БД.


2.
Разработка
структуры базы
данных и пользовательского
интерфейса


2.1 Разработка
структуры базы
данных


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



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



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



Рассмотрим
таблицу 1.


Таблица
1. Client










































id f_sob fio otv ur_adr fiz_adr tel vid_doc
3 Физ.
лицо
Аверин А.С. Леонов А.Ю. 8 Марта
38
Советская
45
2–24–09 Вод.
удост.
2 Физ.
лицо
Петров П.П. Синегубов М.С. Калинина
4
Пролеткая
24
72–80–21 Воен.
билет
5 Юр.
лицо
Ронжин Д.С. Карикова Т.Н. Пролет-кая
20
Маяков-го
150
55–12–33 паспорт


Это –
ненормализованная
версия таблицы
клиент. Как
видите, здесь
размешены такие
столбцы как
form_sob,
vid_doc, которые
надо привести
к первой нормальной
форме. Чтобы
привести схему
к первой нормальной
форме, необходимо
в столбце товар,
покупатели
и форма расчета
разместить
атомарные
значения. Это
можно сделать
различными
способами.
Первая, наверное,
самая очевидная
возможность,
показана в
таблице 2.


Таблица
2. Client










































id Id_f_sb fio otv ur_adr fiz_adr tel Id_v_dc
3 2 Аверин А.С. Леонов А.Ю. 8 Марта
38
Советская
45
2–24–09 3
2 2 Петров П.П. Синегубов М.С. Калинина
4
Пролетарская
24
72–80–21 2
5 1 Ронжин Д.С. Карикова Т.Н. Пролетарская
20
Маяковского
150
55–12–33 1


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



В этом случае
мы выделили
данные формы
собственности
в отдельную
таблицу, что
позволяет
решить проблему
избыточности.



После
приведения
схемы к нормальной
форме можно
перейти к формам
старших порядков,
которые немного
труднее для
понимания.
Говорят, что
схема находится
во второй нормальной
форме, если все
атрибуты, не
являющиеся
частью первичного
ключа, а сама
схема уже находится
в первой нормальной
форме. Что это
значит? Это
значит, что
каждый атрибут,
не является
ключом, должен
функционально
зависеть от
всех составляющих
ключа. Так, если
первичный ключ
составлен из
нескольких
столбцов, то
всякий другой
атрибут в таблице
должен зависеть
от комбинации
всех этих столбцов.




Рисунок
2 – Нормализация
Базы данных


В таблице
2 Client
имеет по одной
строке на каждый
элемент квалификации
типов. Таблица
находится в
первой нормальной
форме, но не
удовлетворяет
второй нормальной
форме. Другими
словами, мы
можем определить
наименование
vid_doc,
используя
только кодовый
номер типа
(Id_vid_doc).
Это значит, что
указанные
атрибуты
функционально
зависимы только
от части первичного
ключа, а не от
всего первичного
ключа. Таким
образом, я могу
определить
эти атрибуты
по части первичного
ключа, и для
этого совсем
не нужен весь
первичный ключ.
Следовательно,
указанная схема
не находится
во второй нормальной
форме.



Чтобы
привести эту
схему ко второй
нормальной
форме необходимо
разбить таблицу
на такие таблицы,
в которых все
не ключевые
атрибуты будут
полностью
функционально
зависеть от
ключа. Очевидно,
что в данном
случае этого
можно достичь,
разделив исходную
таблицу на две:



client
(Id_vid_doc)



Vid_doc
(vid)



Пример
показан в таблице
3.


Таблица
3. Vid_doc


















id Vid
1 Паспорт
3 Водительское
удостоверение
2 Военный
билет


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


2.2 Реализация
базы данных
с помощью программы
«Денвер 2»


В базе
данных было
решено создать
15 таблицы и назвать
её «comb»:



Таблицы
базы
данных
«comb»: client, dan_doc, dog, form_ras, form_sob, men,
pam, posher, prod, realiz, sort, upac, vid_doc, vid_posh, vid_pr.



Рассмотрим
подробнее
структуру
каждой из них.



Таблица
«client»
состоит из 8
полей. В первом
храниться
уникальный
идентификатор
записи, имя
поля «ID»
тип Smallint.
Это поле является
первичным
ключом таблицы.
Второе поле
«id_form_sob»
содержит информацию
о форме собственности
и является
индексным полем
в таблице, тип
Smallint.
Третье поле
«fio»
это поле содержит
информацию
о клиенте, тип
Varshar.
Четвёртое поле
«otv»
это поле содержит
ответсвенное
лицо клиента,
тип Varchar.
Пятое поле
«ur_adr»
содержит юридический
адрес, тип Varchar.
Шестое поле
«fiz_adr»
содержит физический
адрес, тип Varchar.
Седьмое поле
«tel»
содержит номер
телефона клиента,
тип Varchar.
Восьмое поле
«id_vid_doc»
содержит информацию
о виде документа
и является
индексным полем
в таблице, тип
Smallint.
Пример программы
приведен на
рисунке 3 и рисунке
4.




Рисунок
3 – Структура
таблицы «client»




Рисунок
4 – Таблица «client»


Таблица
«form_sob»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «client».
Второе поле
«form»
содержит форму
собственности.
Пример программы
приведен на
рисунке 5 и рисунке
6.




Рисунок
5 – Структура
таблицы «form_sob»




Рисунок
6 – Таблица
«form_sob»


Таблица
«vid_doc»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «client».
Второе поле
«vid»
содержит вид
документа.
Пример программы
приведен на
рисунке 7 и рисунке
8.




Рисунок
7 – Структура
таблицы «vid_doc»




Рисунок
8 – Таблица «vid_doc»


Таблицы
«prod»
состоит из 9
полей. Первое
поле «ID»
содержит уникальный
идентификатор
записи имя поля
«id»
тип Smallint.
Второе поле
«id_vid_pr»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «vid_pr»,
тип Smallint.
Третье поле
«naz»
содержит название
продукции, тип
Varchar.
Четвертое поле
«id_upac»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «upac»,
тип Smallint.
Пятое поле
«id_sort»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «sort»,
тип Smallint.
Шестое поле
«data»
содержит дату
продукции, тип
Varchar.
Седьмое поле
«sroc»
содержит срок
годности продукции,
тип Varchar.
Восьмое поле
«cena»
содержит цену
продукции, тип
Varchar.
Девятое поле
«kol»
содердит количество
продукции, тип
Varchar.
Пример программы
приведен на
рисунке 9 и рисунке
10.




Рисунок
9 – Структура
таблицы «prod»




Рисунок
10 – Таблица «prod»


Таблица
«vid_pr»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «prod».
Второе поле
«vid_pr»
содержит вид
продукции, тип
Varshar.
Пример программы
приведен на
рисунке 11 и рисунке
12.




Рисунок
11 – Структура
таблицы «vid_pr»




Рисунок
12 – Таблица «vid_pr»


Таблица
«upac»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «prod».
Второе поле
«upack»
содержит вид
упаковки, тип
Varshar.
Пример программы
приведен на
рисунке 13 и рисунке
14.




Рисунок
13 – Структура
таблицы «upac»




Рисунок
14 – Таблица «upac»


Таблица
«sort»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «prod».
Второе поле
«sor»
содержит сорт
продукции, тип
Varshar.
Пример программы
приведен на
рисунке 15 и рисунке
16.




Рисунок
15 – Структура
таблицы «sort»




Рисунок
16 – Таблица «sort»


Таблица
«men»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Второе поле
«fio1»
содержит Ф.И.О.
менеджера, тип
Varshar.
Пример программы
приведен на
рисунке 17 и рисунке
18.




Рисунок
17 – Структура
таблицы «men»




Рисунок
18 – Таблица «men»


Таблица
«posher»
состоит из 4
полей. Первое
поле «ID»
содержит уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Второе поле
«id_client»
содержит Ф.И.О.
клиента и является
индексным полем
в таблице, тип
Smallint.
Третье поле
«id_vid_posh»
содержит вид
поощрения и
является индексным
полем в таблице,
тип Smallint.
Четвертое поле
«data»
содержит дату,
когда поощрить,
тип Varshar.
Пример программы
приведен на
рисунке 19 и рисунке
20.




Рисунок
19 – Структура
таблицы «posher»




Рисунок
20 – Таблица «posher»



Таблица
«vid_posh»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «posher».
Второе поле
«posh»
содержит вид
поощрений, тип
Varshar.
Пример программы
приведен на
рисунке 21 и рисунке
22.




Рисунок
21 – Структура
таблицы «vid_posh»




Рисунок
22 – Таблица
«vid_posher»


Таблица
«dan_doc»
состоит из 6
полей. Первое
поле «ID»
содержит уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Второе поле
«id_vid_doc»
содержит вид
документа и
является индексным
полем в таблице,
тип Smallint.
Третье поле
«cer»
содержит серию
документа, тип
Varshar.
Четвертое поле
«data»
содержит дату
выдачи документа,
тип Varshar.
Пятое поле
«mest»
содержит место
выдачи документа,
тип Varshar.
Шестое поле
«kem»
содержит, кем
выдан документ,
тип Varshar.
Пример программы
приведен на
рисунке 23 и рисунке
24.




Рисунок
23 – Структура
таблицы «dan_doc»




Рисунок
24 – Таблица
«dan_doc»


Таблица
«dog»
состоит из 5
полей. Первое
поле «ID»
содержит уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Второе поле
«pred»
содержит предмет
договора, тип
Varshar.
Третье поле
«otv»
содержит,
ответсвенное
лицо договора,
тип Varshar.
Четвертое поле
«id_form_ras»
содержит, уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Пятое поле
«data»
содержит дату
подписания
договора, тип
Varshar.
Пример программы
приведен на
рисунке 25 и рисунке
26.




Рисунок
25 – Структура
таблицы «dog»




Рисунок
26 – Таблица «dog»


Таблица
«form_ras»
состоит из 2
полей. Первое
поле «ID»
содержит уникальный
идентификатор,
по которому
происходит
связь с индексом
«id»
таблицы «dog».
Второе поле
«form»
содержит форму
расчета, тип
Varshar.
Пример программы
приведен на
рисунке 27 и рисунке
28.




Рисунок
27 – Структура
таблицы «form_ras»




Рисунок
28 – Таблица
«form_ras»


Таблица
«pam»
состоит из 5
полей. Первое
поле «ID»
содержит уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Второе поле
«id_men»
содержит, уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Третье поле
«id_client»
содержит, уникальный
идентификатор
записи, имя
поля «id»
тип Smallint.
Четвертое поле
«data»
содержит, дату
паятных дат,
тип Varshar.
Пятое поле
«prim»
содержит, примечание,
тип Varshar.
Пример программы
приведен на
рисунке 29 и рисунке
30.




Рисунок
29 – Структура
таблицы «pam»




Рисунок
30 – Таблица «pam»


Таблица
«realiz»
состоит из 7
полей. В первом
храниться
уникальный
идентификатор
записи, имя
поля «ID»
тип Smallint.
Это поле является
первичным
ключом таблицы.
Второе поле
«id_men»
содержит информацию
о менеджере
и является
индексным полем
в таблице, тип
Smallint.
Третье поле
«id_client»
содержит информацию
о клиенте и
является индексным
полем в таблице,
тип Smallint.
Четвёртое поле
«id_vid_pr» содержит
вид продукции
и является
индексным полем
в таблице, тип
Smallint.
Пятое поле
«id_dog»
содержит информацию
о договоре и
является индексным
полем в таблице,
тип Smallint.
Шестое поле
«data»
содержит дату
когда реализовали
товар, тип Varchar.
Седьмое поле
«kol»
содержит количество
реализованной
продукции, тип
Varchar.
Пример программы
приведен на
рисунке 31 и рисунке
32.




Рисунок
31 – Структура
таблицы «realiz»




Рисунок
32 – Таблица «realiz»


3 Разработка
подсистемы
ввода / вывода
и генерации
отчетов для
автоматизированной
информационной
системы.



Вся часть
состоит из
нескольких
программных
продуктов
ввода / вывода
данных и генераций
отчетов:



«Администрирование»
– позволяет
добавлять в
базу данных
готовые проекты
и удалять их.



«Программы
вывода информации
из базы данных»
– интерфейс
позволяет
просматривать
всю информацию,
содержащуюся
в базе данных.



«Поиск»
– интерфейс
позволяет
осуществлять
поиск данных,
в таблицах
базы данных,
генерирует
отчеты на основе
запросов
пользователя
в базе данных.



3.1 Программы
ввода / вывода
информации


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



HTML
– форма содержит
10 ссылок, при
помощи которых
вы можете управлять
различными
частями базы:
клиент, продукция,
реализация,
договор, данные
о документе,
поощрения,
памятные даты,
добавление,
поиск, удаление.



Пример
приведен на
рисунке 33.




Рисунок
33. Главная web форма


Расположение
элементов
управления
в левой части
ускоряет работу
пользователя.



Теперь
подробнее
рассмотрим
файл index_1.html:



<html><head><title>База
Токаревского
мясокомбината
</title></head>



Задаем
количество
столбцов.



<frameset
cols= «280,*» border=1 frameborder=no framespacing=0>



Путь
к
левой
части
фрейма



<frame
marginheight= «15» marginwidht= «10» name=
«left» src= «1.html» scrolling= «no»
noresize>



Путь
к
правой
части
фрейма



<frame name=
«right» src= «2.html» scrolling= «no»
noresize>



</framest>



</html>



Рассмотрим
файл
1.html:



<html><head><title>Токаревский
Мясокомбинат</title>



Создаем стиль
ссылок без
подчёркивания.



<style>



a
{text-decoration:none;}



h3
{font-size:14pt;}



</style></head>



Задаётся
стиль
оформления
страницы.



<body
bgcolor=
«black» alink= «red» link= «green»
vlink= «0099CC»><center>



<img
src=»/combin/image/2.png»>



Надпись
управление
данными сделана
с помощью фильтра
Shadow.



<DIV style=
«height: 65; width: 250; filter: Shadow (Color = red,
Direction=24)»>



<font style=
«FONT-SIZE: 19pt» color=yellow>Управление
данными</font></div>



Создается
таблица для
элементов
управления.



<table><tr><td
align=
«center»><font style= «font-size:17pt»
face= «Monotype corsiva»><a href=»/cgi-bin/kl.pl»
target= «right»>**Клиент**</a></font></td></tr>
<tr><td align= «center»><font style=
«font-size:17pt» face= «Monotype corsiva»><a
href=»/cgi-bin/pr.pl» target=
«right»>**Продукция**</a></font></td></tr>



<tr><td
align= «center»><font style= «font-size:17pt»
face= «Monotype corsiva»><a href=»/cgi-bin/real.pl»
target= «right»>**Реализация**</a></font></td></tr>



<tr><td
align= «center»><font style= «font-size:17pt»
face= «Monotype corsiva»><a href=»/cgi-bin/dog.pl»
target= «right»>**Договор**</a></font></td></tr>



<tr><td
align=
«center»><font style= «font-size:17pt»
face= «Monotype corsiva»><a
href=»/cgi-bin/dan_doc.pl» target= «right»>**Данные
о
документе**
</a></font> </td> </tr>



<tr><td
align=
«center»><font style= «font-size:17pt»
face= «Monotype corsiva»><a href=»/cgi-bin/posh.pl»
target= «right»>**Поощрения**</a></font></td></tr>



Рассмотрим
подробнее
файл
2.html:



<html><head><title>Токаревский
Мясокомбинат</title>



Cоздаеться
стиль ссылок
без подчёркивания.



<style>



a
{text-decoration:none;}



h3
{font-size:9pt; color:0099CC}



</style></head>



Задаётся
стиль оформления
страницы.



<body
bgcolor=
«black»><center>



<br><img
src=»/combin/image/1.gif»>



<img
src=»/combin/image/1.jpg» width=800 height=500>



Создание
таблицы о
местонахождение
и телефона
организации.



<table><tr><td><h3>|
Телефон: +7 (47557) 21274,
|</h3></td>



<td></td><td><h3>|
Почтовый индекс:
393550 |</h3></td>



<td></td><td><h3>| Регион:
Тамбовская
область |</h3></td>



<td></td><td><h3>| Федеральный
округ: Центральный
ФО |</h3></td></tr></table>



<marquee><h3>Разработчик:
Садовников
Алексей 313 группа
</h3></marquee></body></html>



«Клиент».
Пример формы
приведен на
рисунке 34.




Рисунок
34. Форма «Клиент»


Для того
чтобы узнать
про клиента
адрес телефон
и др. нужно в
левой части
экрана нажать
на ссылку «клиент».



В правой
части экрана
появится информация
о клиенте.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
клиент



$const=«SELECT
form, fio, otv, ur_adr, fiz_adr, tel, vid



FROM form_sob,
client, vid_doc



WHERE
form_sob.id=client.id_form_sob and vid_doc.id = client.id_vid_doc»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Клиент сделана
с помощью фильтра
Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow >Клиент
</font></div>



Полный
системный код
«Клиент» приведен
в приложение
A.



«Продукция».
Пример формы
приведен на
рисунке 35.




Рисунок
35. Форма «Продукция»


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



В правой
части экрана
появится информация
о продукции.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
продукция



$const=«SELECT
vid_pr, naz, upack, sor, data, sroc, cena, kol FROM vid_pr, upac,
sort, prod



WHERE
vid_pr.id=prod.id_vid_pr and upac.id=prod.id_upac and
sort.id=prod.id_sort»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Продукция
сделана с помощью
фильтра Shadow.



<br><DIV
style=
«height: 60; width: 350; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Продукция
</font></div>



Полный
системный код
«Продукция»
приведен в
приложение
Б.



«Реализация».
Пример формы
приведен на
рисунке 36.




Рисунок
36. Форма «Реализация»


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



В правой
части экрана
появится информация
об реализации
продукции.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
реализация
продукции



$const=«SELECTmen.fio1,
client.fio, vid_pr.vid_pr, dog. pred, realiz.data, realiz.kol FROM
men, client, vid_pr, dog, realiz



WHERE
men.id=realiz.id_men and client.id=realiz.id_client and
vid_pr.id=realiz.id_vid_pr and dog.id=realiz.id_dog»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Реализация
продукции
сделана с помощью
фильтра Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Реализация
продукции</font></div>



Полный
системный код
«Реализация»
приведен в
приложение
В.



«Договор».
Пример формы
приведен на
рисунке 37.




Рисунок
37. Форма «Договор»


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



В правой
части экрана
появится информация
о договоре.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
договор



$const=«SELECT
pred, otv, form, data FROM form_ras, dog



WHERE
form_ras.id=dog.id_form_ras»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Договор сделана
с помощью фильтра
Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Договор
</font></div>



Полный системный
код «Договор»
приведен в
приложение
Г.



«Данные
о документе».
Пример формы
приведен на
рисунке 38.




Рисунок
38. Форма «Данные
о документе»


Для того
чтобы узнать
вид документа,
кем выдан нужно
в левой части
экрана нажать
на ссылку «Данные
о документе».



В правой части
экрана появится
информация
о данных документов.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
данные о документе



$const=«SELECT
vid, cer, data, mest, kem FROM vid_doc, dan_doc



WHERE
vid_doc.id=dan_doc.id_vid_doc»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Данные о документе
сделана с помощью
фильтра Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Данные
о
документе</font></div>



Полный системный
код «Данные
о документе»
приведен в
приложение
Д.



«Поощрения».
Пример формы
приведен на
рисунке 39.




Рисунок
39. Форма «Поощрения»


Для того чтобы
узнать вид
поощрения
клиента нужно
в левой части
экрана нажать
на ссылку
«Поощрения».



В правой части
экрана появится
информация
о поощрениях.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
поощрения



$const=«SELECT
fio, posh, data FROM client, vid_posh, posher



WHERE
client.id=posher.id_client and vid_posh.id= posher.id_vid_posh»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Поощрения
сделана с помощью
фильтра Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Поощрение
</font></div>



Полный системный
код «Поощрения»
приведен в
приложение
Е.



«Памятные
даты». Пример
формы приведен
на рисунке 40.




Рисунок
40. Форма «Памятные
даты»


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



В правой части
экрана появится
информация
о памятных
датах.



Рассмотрим
фрагмент кода:



#Выбор значений
из таблицы
памятные даты



$const=«SELECT
fio1, fio, data, prim FROM men, client, pam



WHERE
men.id=pam.id_men and client.id=pam.id_client»;



$sth = $dbh->prepare($const);



$sth->execute;



print
<<TBL;



Надпись
Памятные даты
с помощью фильтра
Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Памятные
даты
</font></div>



Полный
системный код
«Памятных дат»
приведен в
приложение
Ж.


3.2 Режим
администрирования


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



Пример
формы приведен
на рисунке 41.




Рисунок
41. «Администирование»


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



Рассмотрим
фрагмент кода:



print
<<EOFR;



Задаётся
стиль
оформления
страницы.



<BODY
BGCOLOR= «black» TEXT= «green»><center>



Надпись
База Токаревского
мясокомбината
сделана с помощью
фильтра Shadow.



<br><DIV
style=
«height: 140; width: 650; filter: Shadow (Color=red,
Direction=300)"><font face= «Monotype Corsiva»
size=6 color=yellow>База
Токарёвского
мясокомбината
</font></div>



Надпись
Администирование
сделана с помощью
фильтра Shadow.



<br><DIV
style=
«height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>
Администрирование</font></div>



Верхняя
полоска сделана
с помощью картинки.



<img
src=»/combin/image/3.png»>



<form
name='FORM1' action=»/cgi-bin/adm1.pl» method=
«post»><br>



Рамка
сделана с помощью
функции fieldset



<fieldset
style=
«width: 20%»><legend><font size=6 color=
«336699»>Идентификация</font></legend>



Окно
для
ввода
Логина.



<font face=
«Ravie» size=5>Login: </font><br>



<input type=
«user» size=15 maxlength=15 name= «user»><br>



Окно
для
ввода
Пароля.



<font face=
«Ravie» size=5>Password: </font><br>



<input type=
«password» size=15 maxlength=15 name= «password»><br>



</fieldset></font><br><br>



Кнопка
Вход
и
Очистка



<input type=
«submit» value= «ВХОД»
style= «color: blue»>     <input
type= «reset» value= «ОЧИСТКА»
style= «color:blue»>



</form><br></center></BODY></HTML>
EOFR exit;



Полный системный
код «Администрирование»
приведен в
приложение
З.



Данный
пункт подразумевает
в себе добавление:
клиента, продукцию,
реализацию,
договор, данные
о документе,
поощрения,
памятные даты.
Пример формы
приведен на
рисунке 42.




Рисунок
42. «Администрирование»


Рассмотрим
файл подробнее:



<html><head><title>Токаревский
Мясокомбинат</title>



Создание
ссылок без
подчеркивания.



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style></head>



Задаётся
стиль оформления
страницы.



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



Верхняя
полоска сделана
с помощью картинки.



<img
src=»/combin/image/4.png»>



Надпись
Добавление
сделана с помощью
фильтра Shadow.



<DIV style=
«height: 65; width: 250; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 19pt» color=yellow>Добавление
</font></div>



«Добавить
клиента». Пример
формы приведен
на рисунке
43.




Рисунок
43. «Добавить
клиента»


Для того
чтобы добавить
клинта нужно
в меню «Добавление»
нажать на ссылку
«Добавить
Клиента».



Появится
окно с семью
полями обязательными
для заполнения:
форма собственности
– выбирается
из списка, клиент,
ответственное
лицо, юр. адрес,
физ. Адрес, телефон,
вид документа
– выбирается
из списка. После
того как вы
ввели данные
нажмите кнопку
«Cохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.



Полный
системный код
«Добавить
клиента» приведен
в приложение
И.



«Добавить
продукцию».
Пример
формы приведен
на рисунке 44.




Рисунок
44. «Добавить
продукцию»


Для того
чтобы добавить
продукцию нужно
в меню «Добавление»
нажать на ссылку
«Добавить
продукцию».



Появится
окно с восьми
полями обязательными
для заполнения.
Первое поле:
вид продукции
– выбирается
из списка, второе
поле: название
из чего сделано,
третье поле:
упаковка –
выбираеться
из списка, четвертое
поле: сорт –
выбирается
из списка, пятое
поле: дата, шестое
поле: срок годности,
седьмое поле
цена, восьмое
поле: количество.
После того как
вы ввели данные
нажмите кнопку
«Cохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.



«Добавить
реализацию».
Пример
формы приведен
на рисунке 45.




Рисунок
45. «Добавить
реализацию»


Для того
чтобы добавить
реализацию
нужно в меню
«Добавление»
нажать на ссылку
«Добавить
реализацию».



Появится
окно с шестью
полями обязательными
для заполнения.
Первое поле:
менеджер –
выбирается
из списка, второе
поле: клиент
– выбирается
из списка, третье
поле: вид продукции
– выбирается
из списка, четвертое
поле: договор
– выбирается
из списка, пятое
поле: дата, шестое
поле: количество.
После того как
вы ввели данные
нажмите кнопку
«Сохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.



«Добавить
договор».
Пример формы
приведен на
рисунке 46.





Рисунок
46. «Добавить
договор»


Для того чтобы
добавить договор
нужно в меню
«Добавление»
нажать на ссылку
«Добавить
договор».



Появится
окно с 4 полями
обязательными
для заполнения:
первое поле:
предмет договора,
второе поле:
ответсвенное
лицо, третье
поле: форма
расчета – выбирается
из списка, четвертое
поле: дата. После
того как вы
ввели данные
нажмите кнопку
«Cохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.



«Добавить
данные документа».
Пример формы
приведен на
рисунке 47.



Для того чтобы
добавить данные
документов
нужно в меню
«Добавление»
нажать на ссылку
«Добавить
данные документа».



Появится
окно с пятью
полями обязательными
для заполнения:
первое поле:
вид документа
– выбирается
из списка, второе
поле: серия,
третье поле:
дата, четвертое
поле: место
выдачи, пятое
поле: кем выдан.
После того как
вы ввели данные
нажмите кнопку
«Cохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.




Рисунок
47. «Добавить
данные документа»


«Добавить
поощрения».
Пример формы
приведен на
рисунке 48.




Рисунок
48. «Добавить
поощрения»


Для того
чтобы добавить
поощрения нужно
в меню «Добавление»
нажать на ссылку
«Добавить
поощрения».



Появится
окно с тремя
полями обязательными
для заполнения:
первое поле:
клиент – выбирается
из списка, второе
поле: вид поощрения
– выбирается
из списка, третье
поле: дата. После
того как вы
ввели данные
нажмите кнопку
«Cохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.


«Добавить
памятные даты».
Пример формы
приведен на
рисунке 49.




Рисунок
49. «Добавить
памятные даты»


Для того чтобы
добавить памятные
даты нужно в
меню «Добавление»
нажать на ссылку
«Добавить
памятные даты».



Появится
окно с 4 полями
обязательными
для заполнения:
первое поле:
менеджер –
выбрать из
списка, второе
поле: клиент
– выбрать из
списка, третье
поле: дата, четвертое
поле: примечание.
После того как
вы ввели данные
нажмите кнопку
«Cохранить
в базу» или
если ошиблись,
нажмите кнопку
«Очистить».
В случае не
заполнения
данных в поля
появится сообщение,
что нужно ввести
не внесенные
данные. Если
все данные
внесены, верно,
то появится
сообщение о
том, что данные
сохранены в
базе.



«Удалить
клиента». Пример
формы приведен
на рисунке 50.





Рисунок
50. «Удалить клиента»


Для того
чтобы удалить
клиента нужно
в меню «Удаление»
нажать на ссылку
«Клиента».



Появится
окно с форма
собственности,
клиент, ответственное
лицо, юр. Адрес,
физ. Адрес, телефон,
вид документа
и удаление.



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



Полный
системный код
«Удаление
клиента» приведен
в приложение
К.



«Удаление
продукции».
Пример
формы приведен
на рисунке 51.




Рисунок
51. «Удаление
продукции»


Для того
чтобы удалить
продукцию нужно
в меню «Удаление»
нажать на ссылку
«Наименованию
продукции».



Появится
окно вид продукции,
название, упаковка,
сорт, дата
производства,
срок годности,
цена, количество
на складу и
удаление.



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



«Удалить
реализацию».
Пример
формы приведен
на рисунке 52.




Рисунок
52. «Удалить
реализацию»


Для того
чтобы удалить
реализацию
нужно в меню
«Удаление»
нажать на ссылку
«Реализация».



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



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



«Удалить
договор». Пример
формы приведен
на рисунке 53.



Для того чтобы
удалить договор
нужно в меню
«Удаление»
нажать на ссылку
«Договор».



Появится
окно предмет


договора,
ответственное
лицо, форма
расчета, дата
и удаление.




Рисунок
53. «Удалить договор»


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



«Удалить
данные о документе».
Пример
формы приведен
на рисунке 54.




Рисунок
54. «Удалить данные
о документе»


Для того чтобы
удалить договор
нужно в меню
«Удаление»
нажать на ссылку
«Данные о документе».



Появится
окно вид документа,
серия, дата
выдачи, место
выдачи, кем
выдан и удаление.



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



«Удалить
поощрение».
Пример
формы приведен
на рисунке 55.




Рисунок
55. «Удалить
поощрение»


Для того чтобы
удалить поощрения
нужно в меню
«Удаление»
нажать на ссылку
«Поощрения».



Появится
окно клиент,
поощрения, дата
и удаление.



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



«Удалить
памятные даты».
Пример
формы приведен
на рисунке 56.



Для того чтобы
удалить памятные
даты нужно в
меню «Удаление»
нажать на ссылку
«Памятные
даты».



Появится
окно менеджер,
клиент, дата,
примечание
и удаление.



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




Рисунок
56. «Удаление
памятные даты»


3.3 Генерация
отчетов


«Поиск»
создан для
поиска хранящейся
информации
в базе данных.
Поиск осуществляется
по различным
критериям:
(Ф.И.О.) клиента,
наименованию
продукции,
реализация,
договор, данные
о документе,
поощрения,
памятные даты.



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



Пример
формы приведен
на рисунке 57.



Для того, что
бы осуществить
поиск по клиенту
нужно в меню
«Поиск» нажать
на ссылку «(Ф.И.О.)
клиента».



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



Полный
системный код
поиск по «клиенту»
приведен в
приложение
Л.




Рисунок
57. Поиск в базе.


Поиск
по «(Ф.И.О.) клиента».
Пример
формы приведен
на рисунке 58.




Рисунок
58. «Поиск по
Ф.И.О. Клиента»


Поиск
по «продукции».
Пример
формы приведен
на рисунке 59.





Рисунок
59. Поиск по «наименованию
продукции».


Для того,
что бы осуществить
поиск по наименованию
продукции нужно
в меню «Поиск»
нажать на ссылку
«Наименованию
продукции».



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



Поиск
по «реализации».
Пример
формы приведен
на рисунке 60.



Для того, что
бы осуществить
поиск по реализации
нужно в меню
«Поиск» нажать
на ссылку
«Реализация».




Рисунок
60. «Поиск по
реализации»


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



Поиск
по «договору».
Пример
формы приведен
на рисунке 61.



Для того,
что бы осуществить
поиск по договору
нужно в меню
«Поиск» нажать
на ссылку «Договор».



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




Рисунок
61. «Поиск по
договору»


Поиск
по «данным
документа».
Пример
формы приведен
на рисунке 62.




Рисунок
62. «Поиск по данным
документа»



Для того,
что бы осуществить
поиск по документу
нужно в меню
«Поиск» нажать
на ссылку «Данные
документа».



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



Поиск
по «поощрению».
Пример
формы приведен
на рисунке 63.




Рисунок
63. «Поиск по
поощрению»


Для того,
что бы осуществить
поиск по поощрению
нужно в меню
«Поиск» нажать
на ссылку
«Поощрения».



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



Поиск
по «памятным
датам». Пример
формы приведен
на рисунке 64.




Рисунок
64. «Поиск по
памятным датам»


Для того,
что бы осуществить
поиск по памятным
датам нужно
в меню «Поиск»
нажать на ссылку
«Памятные
даты».



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


Заключение


В данной
дипломной
работе была
спроектирована
автоматизированная
информационная
система взаимоотношения
и управления
с клиентами
для ОАО «Токаревский
«Мясокомбинат»».
База данных
создавалась
на основе программы
MySQL.



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



В ходе написания
дипломной
работы было
выполнено
следующее:



1. Разработан
алгоритм для
формирования
полей к базе
данных;



2. Спроектирован
алгоритм для
анализа и обработки
информации
из базы данных;



3. Разработана
клиент-серверная
программа для
обработки
запросов на
языке Perl;



4. Разработана
гипертекстовая
форма запроса,
выполняющаяся
на клиентской
платформе,
показана ее
надежная работа;



5. Разработанные
модули переданы
в эксплуатацию.



Спроектированная
база данных
занимает минимум
пространства
памяти при
условии всех
связей между
данными. В нее
легко можно
вводить новые
данные. База
данных полностью
удовлетворяет
требованиям
клиента, так
как она удобна
в использовании
и выдает нужную
информацию.
В завершении
выполненной
работы получил
положительный
отзыв от организации
ОАО «Токаревский
«Мясокомбинат»».



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


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



Атре Ш.
«Microsoft SQL Server 6.5». М.:
Комплект
документации,
2004 г. -200 с.



Белью К.,
Браун М., Ливингстон Д.
«Perl Web профессионалам».
Киев: BHV, 2004 г. – 300 с.



Голицина
ОЛ, Максимов
НВ, Попов ИИ.
«Базы данных».
М.:
Диалектика,
2005 г. – 350 с.



Дюбуа П.
«Применение
MySQL и Perl в Web приложениях».
М.: Вильямс, 2004 г.
– 400 с.



Игнатович И.
«Семейство
реляционных
баз данных IBM
DB2». М.: СУБД 2/05,
2006 г.-250 с.



Кастро Э.
«Perl & CGI для всемирной
паутины» М.:
Наука, 2004 г. –
200 с.



Клинтон П.
«Освой самостоятельно
Perl за 24 часа». Киев:
Мир
2005 г.-150 с.



Конноли Т.К.
«Базы данных
проектирование
реализация
и сопровождение».
Берг: Диалектика,
2005 г.-180 с.



Конноли Т.К.
«Базы данных
проектирование
реализация
и сопровождение»
Берг: Диалектика,
2005 г.-300 с.



Леонтьев Б.К.
«Язык программирования
Perl для Интернет»;
«Новый издательский
дом» – 2006 г.-350 с.



Маслов В.В.
«Введение в
Perl». М.: Наука,
2005 г.-200 с.



Местерн П.
«Perl:
интеграция
с Интернет».
Берг: Диалектика,
2005 г.-200 с.



Нагао М.,
Катаяма Т.,
Уэмура С. «Реализация
языка SQL в СУБД
MySQL». М.: Мир, 2006 г.-350 с.



Паттерсон Л.
«Использование
HTML».
М.: Изд. дом Вильямс,
2004 г.-400 с.



Прохоров А.
«Microsoft SQL Server 6.5 DBA Survival Guide, by Mark Spenik &
Orryn Sledge». Хабаровск:
ISBN, 2005 г.-500 с.



Уайтхэд
П «Perl: наглядный
курс программирования»;
М.: «Диалектика»,
2005 г.-350 с.



Ульман Д.
«Теория и практика
БД». М.: Машиностроение,
2005 г.-250 с.



Фролов П.С.
«Базы данных
в Интернет»
М.: СУБД, 2005 г.-400 с.



Шуленин А.
«Microsoft SQL Server и
активный
Internet». Киев:
Материалы
Форума «Информационные
Технологии'98».-2004 г.-350 с.



Шуленин А.
«Microsoft SQL Server».М.: СУБД
1/05, 2005 г.-180 с.



Шнитман В.
«Серверы баз
данных: проблемы
оценки конфигурации
системы». М.:СУБД
5–6/05, 2004 г.-350 с.



Приложение
A


Код программы
«Клиент»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use
CGI qw (:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my
$sth;
#database statement handler



my $base = 'comb';



my $comp =
'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY
text= «0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к базе



$dbh
= DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p
class=
«norm»>Не
удалось законнектить
базу<b>$base</b>
по порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr
align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p
class= «norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернутьсяк
главной
странице</a>
</font></p></body></html>



ERRDB
exit;};



#Выбор
значений из
таблицы клиент



$const=«SELECT
form, fio, otv, ur_adr, fiz_adr, tel, vid



FROM
form_sob, client, vid_doc



WHERE
form_sob.id=client.id_form_sob and vid_doc.id=client.id_vid_doc»;



$sth =
$dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font
style= «FONT-SIZE: 20pt» color=yellow>Клиент</font></div>



<table border=1>



<tr><td
align= «center»><h3>Форма
собственности</h3></td><td
align= «center»><h3>Клиент
(Ф.И.О)</h3></td><td align=
«center»><h3>Ответственное
лицо</h3></td><td align=
«center»><h3>Юр. адрес</h3></td><td
align= «center»><h3>Физ.
адрес</h3></td><td
align= «center»><h3>Телефон</h3></td><td
align= «center»><h3>Вид
досумента</h3></td></tr>



TBL
while(($form,$fio,$otv,$ur_adr,$fiz_adr,$tel,$vid)=$sth->fetchrow_array)



{print»<tr><td><center>$form</center></td><td><center>$fio</center></td><td><center>$otv</center></td><td><center>$ur_adr</center></td><td><center>$fiz_adr</center></td><td><center>$tel</center></td><td><center>$vid</center></td></tr>n»;};



$sth->finish;



print <<EOFR;



</BODY></table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на главную</U></h3></a>



</HTML>



EOFR



exit;


Приложение
Б


Код программы
«Продукция»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use
CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my
$sth;
#database statement handler



my $base = 'comb';



my $comp =
'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML>



<HEAD>



<TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY
text= «0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh
= DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p
class= «norm»>Не удалось
законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr
align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p
class= «norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



#Выбор
значений из
таблицы продукция



$const=«SELECT
vid_pr, naz, upack, sor, data, sroc, cena, kol



FROM
vid_pr, upac, sort, prod



WHERE
vid_pr.id=prod.id_vid_pr and upac.id=prod.id_upac and
sort.id=prod.id_sort»;



$sth =
$dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 350; filter: Shadow (Color=red,
Direction=24)»>



<font
style= «FONT-SIZE: 20pt»
color=yellow>Продукция</font></div>



<table border=1>



<tr><td
align= «center»><h3>Вид
продукции</h3></td><td
align= «center»><h3>Название</h3></td><td
align= «center»><h3>Упаковка</h3></td><td
align= «center»><h3>Сорт</h3></td><td
align= «center»><h3>Дата
производства</h3></td><td
align= «center»><h3>Срок
годности</h3></td><td
align= «center»><h3>Цена</h3></td><td
align= «center»><h3>Количество
на
складе</h3></td></tr>



TBL



while(($vid_pr,$naz,$upack,$sor,$data,$sroc,$cena,$kol)=$sth->fetchrow_array)



{



print
«<tr><td><center>$vid_pr</center></td><td><center>$naz</center></td><td><center>$upack</center></td><td><center>$sor</center></td><td><center>$data</center></td><td><center>$sroc</center></td><td><center>$cena</center></td><td><center>$kol</center></td></tr>n»;



};



$sth->finish;



print <<EOFR;



</BODY>



</table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на
главную</U></h3></a>



</HTML>



EOFR



exit;


Приложение
В


Код программы
«Реализация»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод документа



print <<EOH;



<HTML>



<HEAD>



<TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



#Выбор значений
из таблицы
реализация
продукции



$const=«SELECT
men.fio1, client.fio, vid_pr.vid_pr, dog.pred, realiz.data,
realiz.kol



FROM men,
client, vid_pr, dog, realiz



WHERE
men.id=realiz.id_men and client.id=realiz.id_client and
vid_pr.id=realiz.id_vid_pr and dog.id=realiz.id_dog»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Реализация
продукции</font></div>



<table border=1>



<tr><td
align= «center»><h3>Менеджер
(Ф.И.О):</h3></td><td
align= «center»><h3>Клиент
(Ф.И.О):</h3></td><td
align= «center»><h3>Продукция</h3></td><td
align= «center»><h3>Предмет
договора</h3></td><td
align= «center»><h3>Дата
отгрузки</h3></td><td
align= «center»><h3>Количество
отгруженной
продукции</h3></td></tr>



TBL



while(($fio1,$fio,$vid_pr,$pred,$data,$kol)=$sth->fetchrow_array)



{



print
«<tr><td><center>$fio1</center></td><td><center>$fio</center></td><td><center>$vid_pr</center></td><td><center>$pred</center></td><td><center>$data</center></td><td><center>$kol</center></td></tr>n»;



};



$sth->finish;



print <<EOFR;



</BODY>



</table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на
главную</U></h3></a>



</HTML>



EOFR



exit;


Приложение
Г


Код программы
«Договор»



#!/usr/bin/perl



#подключаем
модули



use
DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p
class=
«norm»>Не
удалось законнектить
базу<b>$base</b>
по порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



#Выбор значений
из таблицы
договор



$const=«SELECT
pred, otv, form, data



FROM form_ras,
dog



WHERE
form_ras.id=dog.id_form_ras»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Договор</font></div>



<table border=1>



<tr><td
align= «center»><h3>Предмет
договора</h3></td><td
align= «center»><h3>Ответственное
лицо (Ф.И.О)</h3></td><td
align= «center»><h3>Форма
расчёта</h3></td><td
align= «center»><h3>Дата</h3></td></tr>



TBL



while(($pred,$otv,$form,$data)=$sth->fetchrow_array)



{print
«<tr><td><center>$pred</center></td><td><center>$otv</center></td><td><center>$form</center></td><td><center>$data</center></td></tr>n»;



};



$sth->finish;



print <<EOFR;



</BODY></table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на главную</U></h3></a>



</HTML>



EOFR



exit;


Приложение
Д


Код программы
«Данные о документе»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



#Выбор значений
из таблицы
данные о документе



$const=«SELECT
vid, cer, data, mest, kem



FROM vid_doc,
dan_doc



WHERE
vid_doc.id=dan_doc.id_vid_doc»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Данные
о
документе</font></div>



<table border=1>



<tr><td
align= «center»><h3>Вид
документа</h3></td><td
align= «center»><h3>Серия</h3></td><td
align= «center»><h3>Дата
выдачи</h3></td><td
align= «center»><h3>Место
выдачи</h3></td><td
align= «center»><h3>Кем
выдан</h3></td></tr>



TBL



while(($vid,$cer,$data,$mest,$kem)=$sth->fetchrow_array)



{print
«<tr><td><center>$vid</center></td><td><center>$cer</center></td><td><center>$data</center></td><td><center>$mest</center></td><td><center>$kem</center></td></tr>n»;};



$sth->finish;



print <<EOFR;



</BODY></table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на
главную</U></h3></a>



</HTML>



EOFR



exit;


Приложение
Е


Код программы
«Поощрения»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод документа



print <<EOH;



<HTML>



<HEAD>



<TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



#Выбор значений
из таблицы
поощрения



$const=«SELECT
fio, posh, data



FROM client,
vid_posh, posher



WHERE
client.id=posher.id_client and vid_posh.id=posher.id_vid_posh»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Поощрение</font></div>



<table border=1>



<tr><td
align= «center»><h3>Клиент
(Ф.И.О)</h3></td><td
align= «center»><h3>Поощрение</h3></td><td
align= «center»><h3>Дата</h3></td></tr>



TBL



while(($fio,$posh,$data)=$sth->fetchrow_array)



{print
«<tr><td><center>$fio</center></td><td><center>$posh</center></td><td><center>$data</center></td></tr>n»;};



$sth->finish;



print <<EOFR;



</BODY>



</table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на
главную</U></h3></a>



</HTML>



EOFR



exit;


Приложение
Ж


Код программы
«Памятные даты»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



#Выбор значений
из таблицы
памятные даты



$const=«SELECT
fio1, fio, data, prim



FROM men,
client, pam



WHERE
men.id=pam.id_men and client.id=pam.id_client»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Памятные
даты</font></div>



<table border=1>



<tr><td
align= «center»><h3>Менеджер
(Ф.И.О)</h3></td><td
align= «center»><h3>Клиент
(Ф.И.О)</h3></td><td
align= «center»><h3>Дата</h3></td><td
align= «center»><h3>Прим</h3></td></tr>



TBL



while(($fio1,$fio,$data,$prim)=$sth->fetchrow_array)



{print
«<tr><td><center>$fio1</center></td><td><center>$fio</center></td><td><center>$data</center></td><td><center>$prim</center></td></tr>n»;};



$sth->finish;



print <<EOFR;



</BODY></table>



<a
href=»/combin/2.html»><h3><U>Вернутся
на
главную</U></h3></a>



</HTML>



EOFR



exit;


ПРИЛОЖЕНИЕ
З


Код программы
«Администирование»



#!/usr/bin/perl



use DBI;



use CGI qw
(:standard escapeHTML);



# declarations



my $dbh;
#database handler



my $sth;
#database statement handler



$base = 'comb';



$comp = 'localhost';



$dbport = '3306';



print
«Content-type: text/htmlnn»; print <<EOH;



<HTML><HEAD><TITLE>База
Токарёвского
мясокомбината</TITLE></HEAD>



EOH print
<<EOFR;



<BODY
BGCOLOR= «black» TEXT= «green»><center>



<br><DIV
style= «height: 140; width: 650; filter: Shadow (Color=red,
Direction=300)"><font face= «Monotype Corsiva»
size=6 color=yellow>База
Токарёвского
мясокомбината</font></div>



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt»
color=yellow>Администрирование</font></div>



<img
src=»/combin/image/3.png»>



<form
name='FORM1' action=»/cgi-bin/adm1.pl» method=
«post»><br>



<fieldset
style= «width:20%»><legend><font size=6
color= «336699»>Идентификация</font></legend>



<font face=
«Ravie» size=5>Login:</font><br>



<input type=
«user» size=15 maxlength=15 name= «user»><br>



<font face=
«Ravie» size=5>Password:</font><br>



<input type=
«password» size=15 maxlength=15 name= «password»><br>



</fieldset></font><br><br>



<input type=
«submit» value= «ВХОД»
style= «color:blue»>    <input
type= «reset» value= «ОЧИСТКА»
style= «color:blue»>



</form><br></center></BODY></HTML>
EOFR exit;



#!/usr/bin/perl



use DBI;



use CGI qw
(:standard escapeHTML);



# declarations



my $dbh;
#database handler



my $sth;
#database statement handler



my ($log, $pass);



$base = 'comb';



$comp = 'localhost';



$dbport = '3306';



print
«Content-type: text/htmlnn»; print <<EOH;



<HTML><HEAD><TITLE>База
Токарeвского
мясокомбината</TITLE><style>



a
{text-decoration:none;}



h3
{font-size:18pt; color:0099CC;} </style>



EOH
$dbh = DBI->connect («DBI:mysql:database=$base; host=$comp;
port=&dbport», 'root', «);



if (not $dbh)
{print <<ERRDB;



<p>Не могу
подключиться
к базе по порту
3306 дл проверки
имени пользователя
и пароля. Причина
ошибки –
<b>$DBI:errstr</b></p>



<hr
width=90%
border=2>
ERRDB
exit;};



$user = param
(«user»);



$password =
param («password»);



my $er = 0;



$const =
«select * from adm where login = '$user' and password =
'$password'»;



$sth = $dbh->prepare($const);



$sth->execute;



while(($log,
$pass)=$sth->fetchrow_array) {



if ($log =
$user)
{



$er += 1;};



if ($pass =
$password) {



$er += 1};};



$sth->finish;



if ($er < 1)
{print <<SOF;



<BODY
BGCOLOR= «black» TEXT= «green»><center>



<br><DIV
style= «height: 140; width: 650; filter: Shadow (Color=red,
Direction=300)"><font face= «Monotype Corsiva»
size=6 color=yellow>База
Токаревского
мясокомбината</font></div>



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt»
color=yellow>Администрирование</font></div><br>



<font size=6
color=336699 face= «Monotype Corsiva»><p>Не
правильно
заданы
Логин
и
пароль</p></font>



<img
src=»/combin/image/3.png»>



<form
name='FORM1' action=»/cgi-bin/adm1.pl» method=
«post»><br>



<fieldset
style= «width:20%»><legend><font size=6
color=336699>Идентификация</font></legend>



<font face=
«Ravie» size=5>Login:</font><br>



<input type=
«user» size=15 maxlength=15 name= «user»><br>



<font face=
«Ravie» size=5>Password:</font><br>



<input type=
«password» size=15 maxlength=15 name= «password»><br>



</fieldset></font><br><br>



<input type=
«submit» value= «ВХОД»
style= «color:blue»>    <input
type= «reset» value= «ОЧИСТКА»
style= «color:blue»>



</form><br></center></BODY>
SOF exit;}; print <<EODT;



<BODY
BGCOLOR= «black» text= «0099CC» link= «red»
vlink= «0099CC» alink= «yellow»><center>



<br><DIV
style= «height: 140; width: 650; filter: Shadow (Color=red,
Direction=300)"><font face= «Monotype Corsiva»
size=6 color=yellow>База
Токаревского
мясокомбината</font></div>



<h3>Пароль
принят вы можете
войти в базу</h3><br><br>



<font style=
«FONT-SIZE: 18pt»><a
href=»/combin/index_1.html»>[Вход]</a></font>



</BODY></html>



EODT exit;


Приложение
И


Код программы
«Добавить
клиента»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



my ($ky, $val);



my @form_sob = ();



my @vid_doc = ();



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод документа



print <<EOH;



<HTML>



<HEAD>



<TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



$sth =
$dbh->prepare ('select form, id from form_sob where id > 0');



$sth->execute;



while(($ky, $val)=$sth->fetchrow_array) {



$form_sob{$ky} = $val;



};



$sth->finish;



$sth =
$dbh->prepare ('select vid, id from vid_doc where id > 0');



$sth->execute;



while(($ky, $val)=$sth->fetchrow_array) {



$vid_doc{$ky} = $val;



};



$sth->finish;



$dbh->disconnect;



print <<SOF;



<form name=
«add» action=»/cgi-bin/kl_addb.pl» method=
«post»>



<br><DIV
style= «height: 60; width: 300; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Добавить
Клиента</font></div>



<table
align=center border=0 bordercolor=#151924>



<tr><td align=center><b>Форма
собственности:
(выбрать из
списка)</td>



<td><select
name=
«form»>



SOF



foreach $ky
(sort keys % form_sob) {



$val = $form_sob{$ky};



print «<option
value=$val>$kyn»;



};



print <<MID;



</select>



</td></tr>



<tr><td
align=center><b>Клиент
(Ф.И.О):</td><td><input
type= «text» size= «30» maxlength= «100»
name= «fio»></td></tr>



<tr><td
align=center><b>Ответственное
лицо
(Ф.И.О):</td><td><input
type= «text» size= «30» maxlength= «100»
name= «otv»></td></tr>



<tr><td
align=center><b>Юр.
адрес:</td><td><input
type= «text» size= «50» maxlength= «100»
name= «ur_adr»></td></tr>



<tr><td
align=center><b>Физ.
адрес:</td><td><input
type= «text» size= «50» maxlength= «100»
name= «fiz_adr»></td></tr>



<tr><td
align=center><b>Телефон:</td><td><input
type= «text» size= «20» maxlength= «20»
name= «tel»></td></tr>



<tr><td align=center><b>Вид
документа:
(выбрать из
списка)</td>



<td><select
name=
«vid»>



MID



foreach $ky
(sort keys % vid_doc) {



$val = $vid_doc{$ky};



print «<option
value=$val>$kyn»;



};



print <<EOFR;



</select>



</td></tr>



</table><br><input
type= «submit» value= «Сохранить
в
базу»><input
type=reset value= «Очистить
поля»></form>



<a
href=»/combin/3.html»><h3><U>Вернутся
к Добавлению</U></h3></a>



</BODY>



</HTML>



EOFR



exit;



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



my ($ky, $val);



my $form= param('form');



my $fio= param('fio');



my $otv= param('otv');



my $ur_adr=
param ('ur_adr');



my $fiz_adr=
param ('fiz_adr');



my $tel= param('tel');



my $vid= param('vid');



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод документа



print <<EOH;



<HTML>



<HEAD>



<TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться



к главной
странице</a></font></p>



</body></html>



ERRDB



exit;



};



my $er = 0;



if ($fio eq «»)
{



$er += 1;



print qq
[<p><h1><font color=red><B> ERROR -</B>
</font>Не
указан
Клиент
(Ф.И.О)
</h1></p>n];



};



if ($otv eq «»)
{



$er += 1;



print qq
[<p><h1><font color=red><B> ERROR -</B>
</font>Не
указано
Ответственное
лицо
(Ф.И.О)</h1></p>n];



};



if ($ur_adr eq
«») {



$er += 1;



print qq
[<p><h1><font color=red><B>ERROR -</B>
</font>Не
указан
Юридический
адрес:</h1></p>n];



};



if ($fiz_adr eq
«») {



$er += 1;



print qq
[<p><h1><font color=red><B>ERROR -</B>
</font>Не
указан
Физический
адрес:</h1></p>n];



};



if ($tel eq «»)
{



$er += 1;



print qq
[<p><h1><font color=red><B>ERROR -</B>
</font>Не
указан
Телефон:</h1></p>n];



};



if ($er > 0) {



print <<SOF;



<hr size=0.1
color= "#5E89C5»><p><center><font
color=red size=4>Проверьте
все
поля
и
исправте
ошибки<br>



или откажитесь
от занесения
данных в базу</font></p><hr
size=0.1 color= "#5E89C5»>



<a
href=»/combin/3.html»><h3><U>Вернутся
к Добавлению</U></h3></a>



SOF



exit;



};



$qry = «INSERT
INTO client VALUES (NULL, '$form', '$fio', '$otv', '$ur_adr',
'$fiz_adr', '$tel', '$vid');»;



$rows = $dbh->do($qry);



$rows = $dbh->{'mysql_indertid'};



$dbh->do
('FLUSH TABLES, STATUS');



$dbh->disconnect;



print qq
[<p><b>Новая
запись
внесена
в
таблицу
«Клиент»</b></p>];



print <<EODT;



<center>



<hr align=
«center» noshade size= «2» width= «90%»><p><a
href=»/cgi-bin/kl_add.pl»><b><h3><U>Добавить
еще
одну
запись
в
базу</U></h3></b></a></p>



<a
href=»/combin/3.html»><h3><U>Вернутся
к Добавлению</U></h3></a>



<hr align=
«center» noshade size= «2» width= «90%»>



<BODY>



</HTML>



EODT



exit;


Приложение
К


Код программы
«Удаление
клиента»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернуться
к
главной
странице</a>
</font></p></body></html>



ERRDB exit;};



#Выбор значений
из таблицы
клиент



$const=«SELECT
form, fio, otv, ur_adr, fiz_adr, tel, vid



FROM form_sob,
client, vid_doc



WHERE
form_sob.id=client.id_form_sob and vid_doc.id=client.id_vid_doc»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Удалить
Клиента</font></div>



<table border=1>



<tr><td
align= «center»><h3>Форма
собственности</h3></td><td
align= «center»><h3>Клиент
(Ф.И.О)</h3></td><td
align= «center»><h3>Ответственное
лицо</h3></td><td
align= «center»><h3>Юр.
адрес</h3></td><td
align= «center»><h3>Физ.
адрес</h3></td><td
align= «center»><h3>Телефон</h3></td><td
align= «center»><h3>Вид
досумента</h3></td><td
align= «center»><h3>Удаление</h3></td></tr>



TBL



while(($form,$fio,$otv,$ur_adr,$fiz_adr,$tel,$vid)=$sth->fetchrow_array)



{print»<tr><td><center>$form</center></td><td><center>$fio</center></td><td><center>$otv</center></td><td><center>$ur_adr</center></td><td><center>$fiz_adr</center></td><td><center>$tel</center></td><td><center>$vid</center></td>»;



print
'<td><center><a href=»/cgi-bin/kl_del1.pl»><img
src=»/combin/image/del.bmp» border= «0»
align=»» ></a></center> </td></tr>';};



$sth->finish;



print <<EOFR;



</BODY></table>



<a
href=»/combin/5.html»><h3><U>Вернутся
к
удалению</U></h3></a>



</HTML>



EOFR exit;



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



my $del=param('del');



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



h4
{font-size:19pt; color:0099CC;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернутьсяк
главной
странице</a>
</font></p></body></html>



ERRDB
exit;};



my
$stb;



#удаляем
запись при
наличии параметра
del



if ($del>0)



{my
$qry = «DELETE FROM `client` WHERE `id` = $del LIMIT 1»;



$dbh->do($qry);



$dbh->do
('FLUSH TABLES, STATUS');



#$dbh->disconnect;}



#Выбор значений
из таблицы
клиент



$const=«SELECT
client.id, form_sob.form, client.fio, client.otv, client.ur_adr,
client.fiz_adr, client.tel, vid_doc.vid



FROM form_sob,
client, vid_doc



WHERE
form_sob.id=client.id_form_sob and vid_doc.id=client.id_vid_doc»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Удаление
клиента</font></div>



<h4>Вы действительно
хотите удалить
клиента?</h4>



<table border=1>



<tr><td align=
«center»><h3>Форма
собственности</h3></td><td
align= «center»><h3>Клиент
(Ф.И.О)</h3></td><td align=
«center»><h3>Ответственное
лицо</h3></td><td align=
«center»><h3>Юр. адрес</h3></td><td
align= «center»><h3>Физ.
адрес</h3></td><td
align= «center»><h3>Телефон</h3></td><td
align= «center»><h3>Вид
досумента</h3></td><td
align= «center»><h3>Удаление</h3></td></tr>



TBL
while(($id,$form,$fio,$otv,$ur_adr,$fiz_adr,$tel,$vid)=$sth->fetchrow_array)



{print»<tr><td><center>$form</center></td><td><center>$fio</center></td><td><center>$otv</center></td><td><center>$ur_adr</center></td><td><center>$fiz_adr</center></td><td><center>$tel</center></td><td><center>$vid</center></td>»;



print
'<td><center><a href=»/cgi-bin/kl_del1.pl?
del=',$id, ' "><img src=»/combin/image/del.bmp»
border= «0» align=»» ></a></center>
</td></tr>';};



$sth->finish;



print <<EOFR;



</BODY></table>



<a
href=»/combin/5.html»><h3><U>Вернутся
к
удалению</U></h3></a>



</HTML>



EOFR exit;



ПРИЛОЖЕНИЕ
Л



Код программы
«Поиск по клиенту»



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



print <<EOFR;



<CENTER>



<FORM
action=»/cgi-bin/kl_sear1.pl»
method= «post»>



<br><br><br><br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)"><font style= «FONT-SIZE: 20pt»
color=yellow>Поиск
в
Базе</font></div>



<fieldset
style= «width:30%»><legend><font size=4
color= «0099CC»>Поиск
по
Ф.И.О
Клиента</font></legend>



<br><font
color= «aqua»><b>Клиент:
(Ф.И.О)</font>



<input name
= «fio»
size=35></b>



<br><br>



<input type=
«submit» value= «Найти!!!»
name= «fio»> <input type= «reset»
value= «Очитить»>



</FORM></fieldset>



<a
href=»/combin/4.html»><h3><U>Вернутся
к
Поиску</U></h3></a>



</BODY></HTML>



EOFR exit;



#!/usr/bin/perl



#подключаем
модули



use DBI;



use CGI qw
(:standard escapeHTML);



#инициализируем
переменные



my
$dbh;
#database
handler



my $sth;
#database statement handler



my $base = 'comb';



my $comp = 'localhost';



my $dbport = '3306';



#вывод
заголовка



print
«Content-type: text/htmlnn»;



#вывод
документа



print <<EOH;



<HTML><HEAD><TITLE>Токарёвский
мясокомбинат</TITLE>



<style>



a
{text-decoration:none;}



h3
{font-size:12pt; color:green;}



</style>



<BODY text=
«0099CC» bgcolor= «black» alink= «red»
link= «green» vlink= «0099CC»><center>



EOH



#подключаемся
к
базе



$dbh =
DBI->connect («DBI:mysql:database=$base; host=$comp;
port=$dbport», 'root', «);



if (not $dbh) {



print <<ERRDB;



<p class= «norm»>Не
удалось законнектить
базу<b>$base</b> по
порту $dbport.<br>



Причина
неудачи –
<b>$DBI:errstr</b></p>



<hr align=
«center» noshade size= «2» width= «90%»
color= «red»>



<p class=
«norm» align= «left»><font size=
"+1»><a href=»/combin/index_1.html»>Вернутьсяк
главной
странице</a>
</font></p></body></html>



ERRDB exit;};



$fio=param
(«fio»);



#Выбор
значений
из
таблицы
клиент



$const=«SELECT
form, fio, otv, ur_adr, fiz_adr, tel, vid



FROM form_sob,
client, vid_doc



WHERE
form_sob.id=client.id_form_sob and vid_doc.id=client.id_vid_doc and
client.fio='$fio'»;



$sth = $dbh->prepare($const);



$sth->execute;



print <<TBL;



<br><DIV
style= «height: 60; width: 270; filter: Shadow (Color=red,
Direction=24)»>



<font style=
«FONT-SIZE: 20pt» color=yellow>Клиент</font></div>



<table border=1>



<tr><td
align= «center»><h3>Форма
собственности</h3></td><td
align= «center»><h3>Клиент
(Ф.И.О)</h3></td><td
align= «center»><h3>Ответственное
лицо</h3></td><td
align= «center»><h3>Юр.
адрес</h3></td><td
align= «center»><h3>Физ.
адрес</h3></td><td
align= «center»><h3>Телефон</h3></td><td
align= «center»><h3>Вид
досумента</h3></td></tr>



TBL



while(($form,$fio,$otv,$ur_adr,$fiz_adr,$tel,$vid)=$sth->fetchrow_array)



{print
«<tr><td><center>$form</center></td><td><center>$fio</center></td><td><center>$otv</center></td><td><center>$ur_adr</center></td><td><center>$fiz_adr</center></td><td><center>$tel</center></td><td><center>$vid</center></td></tr>n»;};



$sth->finish;



print <<EOFR;



</BODY></table><br><br>



<a
href=»/combin/4.html»><h3><U>Вернутся
к
поиску</U></h3></a>



</HTML>



EOFR exit;


1
Луиза Паттерсон.
Использование
HTML 4. – М.: Издательский
дом “Вильямс”,
2004 г. - 400 с.



2
Microsoft SQL Server 6.5. Комплект
документации.-2004
г.-200с.


3
Microsoft SQL Server 6.5 DBA Survival Guide, by Mark Spenik &
Orryn Sledge, ISBN 0-672-30797-9.-2005г.-500
с


4
Шуленин
А. "Microsoft SQL Server и
активный
Internet". Материалы
Форума "Информационные
Технологии'98".-2004г.-350
с.



5
Шуленин А. Microsoft
SQL Server.СУБД
1/05.-2005г.-180
с.


6
Игнатович И.
Семейство
реляционных
баз данных IBM
DB2. СУБД 2/05.-2006г.-250 с.



7
Дэн Ливингстон,
Крис Белью,
Мика Браун .
«Perl . Web-профессионалам»;
«BHV-Киев» - 2004 г.- 300
с.


8
Дэн Ливингстон,
Крис Белью,
Мика Браун .
«Perl . Web-профессионалам»;
«BHV-Киев» - 2004г.- 300с.


9
Введение в
Perl – Маслов
В.В. 2005 г.-200 с.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка АИС управления взаимоотношениями с клиентами

Слов:12845
Символов:160788
Размер:314.04 Кб.