Разработка информационной системы для автоматизации, повышения эффективности работы бетонно-растворного узла

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 04.10.2014
Размер файла 4,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Содержание

Введение

1. Разработка технического задания к программе

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

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

1.2.1 Требования к функциональным характеристикам и надежности

1.2.2 Условия эксплуатации

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

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

1.3 Требования к маркировке и упаковке

1.4 Требования к транспортированию и хранению

1.5 Требования к программной документации

1.6 Технико-экономические показатели

1.7 Стадии и этапы разработки

1.8 Порядок контроля и приемки

2. Разработка функциональных моделей автоматизированной системы «Деятельности бетонно-растворного узла»

3.Разработка информационной модели автоматизированной системы «Деятельности БРУ»

4.Разработка пользовательского приложения

5.Разработка пользовательского интерфейса

5.1 Интерфейс клиентского Web-приложения

5.2 Руководство пользователя

Заключение

Список использованных источников

Приложение 1. Листинг БД

Приложение 2. Листинг клиентского Web-приложения

Введение

информационная автоматизация приложение

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

Бетонно-растворный узел предназначен для приготовления высококачественных бетонных и pаствоpных смесей на производственных базах строительных подразделений или на крупных строительных объектах пpи отсутствии централизованного обеспечения товарным бетоном и pаствоpом. 

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

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

Программа должна обеспечивать:

работу с входными данными (информация на получение заказа, информация о поставщиках, информация об услугах);

получение выходных данных (информация о выполненном заказе);

формирование отчетов (получение данных в электронном виде или на бумажных носителях).

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

В ходе курсовой работы необходимо решить следующие задачи:

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

разработать функциональные модели АС деятельности БРУ;

разработать информационную модель АС деятельности БРУ;

разработать программное обеспечение для АИС бетонно-растворного узла;

Курсовой проект состоит из 52 листа и 30 рисунков.

1. Разработка технического задания к программе

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

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

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

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

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

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

1.2.1 Требования к функциональным характеристикам и надежности

Программная разработка должна обеспечивать возможность следующих действий:

Ввод, вывод, редактирование, хранение, экспорт в другие форматы информации о товароведах:

Код товароведа;

Фамилия;

Имя;

Отчество;

Стаж работы.

Ввод, вывод, редактирование, хранение, экспорт в другие форматы информации о поставщиках:

Код поставщика;

Название фирмы;

Представитель.

Ввод, вывод, редактирование, хранение, экспорт в другие форматы информации о клиентах:

Код клиента;

Фамилия;

Имя;

Телефон.

Входной информацией системы является:

Информация об оплате услуги;

Договор на получение заказа;

Материалы;

Информация о поставщиках.

Выходной информацией системы является:

Готовый заказ;

Документы о выполненном заказе;

Заказ поставщику на поставку товаров.

1.2.2 Условия эксплуатации

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

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

Для работы программы должен быть выделен ответственный оператор.

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

мощный процессор;

оперативную память объемом не менее 2 Гб;

не менее 10Гб свободного пространства на жестком диске;

операционную систему Windows;

Видеокарта от 512Мb;

Клавиатура и мышь.

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

Система должна работать под управлением ОС семейства Windows. Для работы приложения клиенту необходимы: IBExpert под управлением. Firebird .

1.3 Требования к маркировке и упаковке

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

1.4 Требования к транспортированию и хранению

Требования к транспортированию и хранению программного продукта совпадают с аналогичными требованиями, предъявляемыми к компакт-дискам.

1.5 Требования к программной документации

Программная документация должна содержать следующие документы:

1.Программные документы:

Спецификация (ГОСТ 19.202-78);

Текст программы (ГОСТ 19.401-78);

Описание программы (ГОСТ 19.402-78);

Пояснительная записка (ГОСТ 19.404-79);

2.Эксплуатационные документы:

Ведомость эксплуатационных документов (ГОСТ 19.507-79);

Описание применения (ГОСТ 19.502-78);

Руководство программиста (ГОСТ 19.504-79);

Требования к перечисленным документам не отличаются от требований, определенных в ЕСПД.

1.6 Технико-экономические показатели

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

1.7 Стадии и этапы разработки

Общая продолжительность разработки и внедрения системы составляет 6 месяцев. График реализации проекта представлен в таблице 1.

Таблица 1 - График реализации проекта

Сентябрь

Октябрь

Ноябрь

Декабрь

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

1.1 Разработка технического задания

1.2 Функциональное моделирование IDEF0, IDEF3

1.3 Моделирование потоков данных

1.4Информационное моделирование

1.5 Разработка объектной модели

1.6 Проектирование базы данных

1.7 Разработать бизнес-логику

2. Разработать программное обеспечение

2.1 Эскизный проект

2.2 Технический проект

2.3 Рабочий проект

2.4 Внедрение

1.8 Порядок контроля и приемки

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

2. Разработка функциональных моделей автоматизированной системы «Деятельности бетонно-растворного узла»

В данной курсовой работе на основе нотации IDEF0 была разработана контекстная диаграмма, которая показывает входные и выходные ресурсы, правила управления и механизм управления (Рисунок 1).

Рисунок 1. Контекстная диаграмма системы (IDEF0)

Декомпозируем контекстную диаграмму на 5 функциональных блока

(Рисунок 2):

Выбор поставщика;

Оформление договора;

Исполнение заказа;

Оплата;

Доставка заказа.

Рисунок 2. Диаграмма декомпозиции контекстной диаграммы (IDEF0)

Декомпозируем функциональный блок «Выбор поставщика» еще на 4 действия (Рисунок 3):

Выбор поставщика товаров;

Оценка готовности поставщика к закупке;

Проведение закупки у поставщиков;

Приёмка товаров от поставщиков.

Рисунок 3 - Декомпозиция функционального блока «Выбор поставщика» (IDEF0)

Декомпозируем функциональный блок «Оформление договора» еще на 3 действия (Рисунок 4):

Формирование требований;

Срок действия договора;

Заключение договора.

Рисунок 4 - Декомпозиция функционального блока «Оформление договора» (IDEF0)

Декомпозируем функциональный блок «Исполнение заказа» еще на 4 действия (Рисунок 5):

Подготовка оборудования;

Подготовка материалов;

Замес раствора;

Тестирование.

Рисунок 5 - Декомпозиция функционального блока «Исполнение заказа» (IDEF0)

Декомпозируем функциональный блок «Оплата» еще на 3 действия (Рисунок 6):

Произвести финансовые расчёты;

Выдать накладную;

Выдать чек.

Рисунок 6 - Декомпозиция функционального блока «Оплата» (IDEF0)

Декомпозируем функциональный блок «Доставка заказа» еще на 3 действия (Рисунок 7):

Подготовка транспорта;

Перевозка заказа;

Отгрузка готового заказа.

Рисунок 7 - Декомпозиция функционального блока «Доставка заказа» (IDEF0)

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

Декомпозируем функциональный блок «Формирование требований» на 5 действий (Рисунок 8):

Предмет договора;

Условия и сроки поставки;

Цена товара и порядок оплаты;

Порядок приёмки товаров;

Ответственности сторон.

Рисунок 8 - Декомпозиция функционального блока «Формирование требований» (DFD)

Декомпозируем функциональный блок «Тестирование» на 4 действия (Рисунок 9):

Проверить объём полученного раствора;

Проверить прочность;

Определение морозостойкости раствора;

Определение водонепроницаемости раствора.

Рисунок 9 - Декомпозиция функционального блока «Тестирование (DFD)

Декомпозируем функциональный блок «Формирование требований» на действия (Рисунок 10):

Отправка с места погрузки;

Соблюдение заданного маршрута;

Необходимая заправка;

Прибытие к месту отгрузки.

Рисунок 10 - Декомпозиция функционального блока «Перевозка заказа» (DFD)

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

Декомпозируем функциональный блок «Подготовка материалов» на 5 действий (Рисунок 11):

Определить объём замеса;

Подготовка воды для замешивания;

Подготовка щебня;

Подготовка сухой смеси;

Выдержка технологической паузы.

Рисунок 11 - Декомпозиция блока «Подготовка материалов» (IDEF3)

Далее декомпозируем функциональный блок «Выдача заказа» на 6 действий (Рисунок 12):

Определение пропорций;

Добавление воды;

Добавление песка;

Добавление цемента;

Добавление щебня;

Перемешивание.

Рисунок 12 - Декомпозиция блока «Замес раствора» (IDEF3)

Далее декомпозируем функциональный блок «Подготовка транспорта» на 4 действия (Рисунок 13):

Задание маршрута;

Подготовка водителя;

Выбор транспорта;

Загрузка товара.

Рисунок 13 - Декомпозиция блока «Подготовка транспорта» (IDEF3)

3.Разработка информационной модели автоматизированной системы «Деятельности БРУ»

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

Наиболее распространенным средством моделирования данных являются диаграммы ERD (диаграммы «сущность-связь»).

Диаграмма уровня сущностей и атрибутов, в нотации IDEF1X логического уровня модели ERwin: (Рисунок 14)

Рисунок 14- ERD-диаграмма в нотации IDEF1X логический уровень.

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

ERD-диаграмма физического уровня модели ERwin: (Рисунок 15)

Рисунок 15 - ERD- диаграмма в нотации IDEF1X физический уровень

Физический уровень модели ERWin составляют целевая СУБД, имена объектов, типы данных и индексы.

4. Разработка пользовательского приложения

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

В итоге было создано мобильное приложение, которое имеет следующий вид (Рисунок 16):

Рисунок 16 - Интерфейс приложения

Вкладка «Информация» содержит в себе следующее: (Рисунок 17)

Рисунок 17 - Вкладка «Информация»

Вкладка «Предоставляемые услуги» содержит в себе следующее: (Рисунок 18)

Рисунок 18 - Вкладка «Предоставляемые услуги»

Вкладка «Прайс-лист» содержит в себе следующее: (Рисунок 19)

Рисунок 19 - Вкладка «Прайс-лист»

5.Разработка пользовательского интерфейса

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

5.1 Интерфейс клиентского Web-приложения

Web приложение в технологии «Клиент-Сервер» представляет собой некий интерфейс между пользователем и базой данных, расположенной на сервере и состоящей под управлением какой-либо СУБД. Такие приложения отличаются от приложений Windows тем, что пользователю не требуется наличие никаких установленных дополнительно на компьютере программ, кроме Web-браузера. Все действия, которые требует выполнить такое приложение, выполняются непосредственно на сервере. Кроме того, Web-приложение интерпретируются сервером в момент обращения пользователя к данному приложению.

В результате приложение будет иметь следующий вид: (Рисунок 20).

Рисунок 20 - Стартовая страница сайта

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

добавления,

модификации,

удаления

сортировки,

поиска и фильтрации

Поиск и фильтрация информации (Рисунок 21).

Рисунок 21 - Поиск и фильтрация информации

Сортировка данных производится как по-возрастанию, так и по-убыванию. Сортировка производится по выбранному полю (Рисунок 22).

Рисунок 22 - Сортировка по возрастанию по полю «Фамилия»

Теперь осуществим добавление данных в таблицу(Рисунок 23).

Рисунок 23 - Добавление записи

Выводится сообщение о результате добавления записи (Рисунок 24).

Рисунок 24 - Сообщение о добавлении записи

Проверим результат добавления (Рисунок 25).

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

Изменим ранее добавленную запись (Рисунок 26)

Рисунок 26 - Вводим новые данные

Проверим правильность работы изменения данных (Рисунок 27).

Рисунок 27 - Результат изменения записи

Удаление данных. (Рисунок 28)

Рисунок 28 - Удаление данных

Проверим удалились ли данные из таблицы (Рисунок 29).

Рисунок 29 - Результат удаления

5.1 Руководство пользователя

Для того, чтобы открыть программу «АС деятельности БРУ» нужно выбрать и открыть файл index.php (Рисунок 30).

Рисунок 30 - Открытие программы

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

Заключение

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

Крупные компании стремятся моментально реализовать технические новшества в аппаратных средствах, однако для успешной реализации крупных систем управления требуется применить нестандартный подход, творческое решение. Использование основ эргономики при проектировании, реализации и внедрении системы управления позволит решить многие «психологические» и «технологические» проблемы предприятий.

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

Список использованных источников

Архангельский, А.Я. Программирование в C++ Builder 6 -- М.:БИНОМ, 2003 - 1184c.

Хомоненко, А. Д. Базы данных: учебник для высших учебных заведений, 4-е издание дополненное и переработанное. - СПб.: Корона, 2004 - 736 с.

Маклаков С.В. Моделирование бизнес-процессов с BРwin 4.1. - М.: Диалог-МИФИ, 2004 - 209 с.

Бори, Х. FIREBIRD. Руководство разработчика баз данных. - СПб.: БХВ, 2006 - 1104c.

Калянов Г.Н. CASE-технологии. Консалтинг при автоматизации бизнес-процессов / Калянов Г.Н.. - 2-е изд., перераб. и доп.. - М.: Горячая линия-Телеком, 2000 - 318 с

Приложение 1. Листинг БД

/******************************************************************************/

/*** Domains ***/

/******************************************************************************/

CREATE DOMAIN D_D AS

DATE;

CREATE DOMAIN D_I AS

INTEGER

NOT NULL;

CREATE DOMAIN D_V AS

VARCHAR(50);

/******************************************************************************/

/*** Generators ***/

/******************************************************************************/

CREATE GENERATOR GEN_DOLJN;

SET GENERATOR GEN_DOLJN TO 3;

CREATE GENERATOR GEN_KLIENT;

SET GENERATOR GEN_KLIENT TO 12;

CREATE GENERATOR GEN_MATERIAL;

SET GENERATOR GEN_MATERIAL TO 5;

CREATE GENERATOR GEN_POST;

SET GENERATOR GEN_POST TO 5;

CREATE GENERATOR GEN_SDELKI;

SET GENERATOR GEN_SDELKI TO 9;

CREATE GENERATOR GEN_SOTR;

SET GENERATOR GEN_SOTR TO 9;

CREATE GENERATOR GEN_TOVAR;

SET GENERATOR GEN_TOVAR TO 3;

CREATE GENERATOR GEN_TOVAR_MATERIAL;

SET GENERATOR GEN_TOVAR_MATERIAL TO 10;

CREATE GENERATOR GEN_TRANSPORT;

SET GENERATOR GEN_TRANSPORT TO 5;

CREATE GENERATOR GEN_USLUGI;

SET GENERATOR GEN_USLUGI TO 5;

CREATE GENERATOR GEN_ZAKAZ;

SET GENERATOR GEN_ZAKAZ TO 9;

CREATE GENERATOR GEN_ZAKAZ_USLUGI;

SET GENERATOR GEN_ZAKAZ_USLUGI TO 6;

/******************************************************************************/

/*** Tables ***/

/******************************************************************************/

CREATE TABLE DOLJN (

ID_DOLJN D_I NOT NULL,

NAME_D D_V

);

CREATE TABLE KLIENT (

ID_KLIENT D_I NOT NULL,

SURNAME D_V,

NAME D_V,

PHONE D_V

);

CREATE TABLE MATERIAL (

ID_MATERIAL D_I NOT NULL,

ID_POST D_I,

NAME_M D_V

);

CREATE TABLE POST (

ID_POST D_I NOT NULL,

NAME_F D_V,

PREDST D_V

);

CREATE TABLE SDELKI (

ID_SDELKI D_I NOT NULL,

ID_ZAKAZ D_I,

ID_KLIENT D_I

);

CREATE TABLE SOTR (

ID_SOTR D_I NOT NULL,

ID_DOLJN D_I,

SURNAME_S D_V,

NAME_S D_V

);

CREATE TABLE TOVAR (

ID_TOVAR D_I NOT NULL,

NAME_T D_V

);

CREATE TABLE TOVAR_MATERIAL (

ID_TOVAR_MATERIAL D_I NOT NULL,

ID_TOVAR D_I,

ID_MATERIAL D_I

);

CREATE TABLE TRANSPORT (

ID_TRANSPORT D_I NOT NULL,

MODEL D_V,

OPISANIE D_V

);

CREATE TABLE USLUGI (

ID_USLUGI D_I NOT NULL,

NAME_U D_V,

PRICE D_V

);

CREATE TABLE ZAKAZ (

ID_ZAKAZ D_I NOT NULL,

ID_TRANSPORT D_I,

ID_SOTR D_I,

DATA D_D,

SUMMA D_V

);

CREATE TABLE ZAKAZ_USLUGI (

ID_ZAKAZ_USLUGI D_I NOT NULL,

ID_TOVAR D_I,

ID_USLUGI D_I,

ID_ZAKAZ D_I

);

/******************************************************************************/

/*** Primary Keys ***/

/******************************************************************************/

ALTER TABLE DOLJN ADD CONSTRAINT PK_DOLJN PRIMARY KEY (ID_DOLJN);

ALTER TABLE KLIENT ADD CONSTRAINT PK_KLIENT PRIMARY KEY (ID_KLIENT);

ALTER TABLE MATERIAL ADD CONSTRAINT PK_MATERIAL PRIMARY KEY (ID_MATERIAL);

ALTER TABLE POST ADD CONSTRAINT PK_POST PRIMARY KEY (ID_POST);

ALTER TABLE SDELKI ADD CONSTRAINT PK_SDELKI PRIMARY KEY (ID_SDELKI);

ALTER TABLE SOTR ADD CONSTRAINT PK_SOTR PRIMARY KEY (ID_SOTR);

ALTER TABLE TOVAR ADD CONSTRAINT PK_TOVAR PRIMARY KEY (ID_TOVAR);

ALTER TABLE TOVAR_MATERIAL ADD CONSTRAINT PK_TOVAR_MATERIAL PRIMARY KEY (ID_TOVAR_MATERIAL);

ALTER TABLE TRANSPORT ADD CONSTRAINT PK_TRANSPORT PRIMARY KEY (ID_TRANSPORT);

ALTER TABLE USLUGI ADD CONSTRAINT PK_USLUGI PRIMARY KEY (ID_USLUGI);

ALTER TABLE ZAKAZ ADD CONSTRAINT PK_ZAKAZ PRIMARY KEY (ID_ZAKAZ);

ALTER TABLE ZAKAZ_USLUGI ADD CONSTRAINT PK_ZAKAZ_USLUGI PRIMARY KEY (ID_ZAKAZ_USLUGI);

/******************************************************************************/

/*** Foreign Keys ***/

/******************************************************************************/

ALTER TABLE MATERIAL ADD CONSTRAINT FK_MATERIAL FOREIGN KEY (ID_POST) REFERENCES POST (ID_POST) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE SDELKI ADD CONSTRAINT FK_SDELKI FOREIGN KEY (ID_ZAKAZ) REFERENCES ZAKAZ (ID_ZAKAZ) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE SDELKI ADD CONSTRAINT FK_SDELKI1 FOREIGN KEY (ID_KLIENT) REFERENCES KLIENT (ID_KLIENT) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE SOTR ADD CONSTRAINT FK_SOTR FOREIGN KEY (ID_DOLJN) REFERENCES DOLJN (ID_DOLJN) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE TOVAR_MATERIAL ADD CONSTRAINT FK_TOVAR_MATERIAL FOREIGN KEY (ID_TOVAR) REFERENCES TOVAR (ID_TOVAR) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE TOVAR_MATERIAL ADD CONSTRAINT FK_TOVAR_MATERIAL1 FOREIGN KEY (ID_MATERIAL) REFERENCES MATERIAL (ID_MATERIAL) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ZAKAZ ADD CONSTRAINT FK_ZAKAZ FOREIGN KEY (ID_TRANSPORT) REFERENCES TRANSPORT (ID_TRANSPORT) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ZAKAZ ADD CONSTRAINT FK_ZAKAZ1 FOREIGN KEY (ID_SOTR) REFERENCES SOTR (ID_SOTR) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ZAKAZ_USLUGI ADD CONSTRAINT FK_ZAKAZ_USLUGI FOREIGN KEY (ID_TOVAR) REFERENCES TOVAR (ID_TOVAR) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ZAKAZ_USLUGI ADD CONSTRAINT FK_ZAKAZ_USLUGI1 FOREIGN KEY (ID_USLUGI) REFERENCES USLUGI (ID_USLUGI) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE ZAKAZ_USLUGI ADD CONSTRAINT FK_ZAKAZ_USLUGI2 FOREIGN KEY (ID_ZAKAZ) REFERENCES ZAKAZ (ID_ZAKAZ) ON DELETE CASCADE ON UPDATE CASCADE;

/******************************************************************************/

/*** Triggers ***/

/******************************************************************************/

SET TERM ^ ;

/* Trigger: DOLJN_BI0 */

CREATE TRIGGER DOLJN_BI0 FOR DOLJN

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_doljn IS NULL) THEN

NEW.id_doljn = GEN_ID(gen_doljn, 1) ;

end

^

/* Trigger: KLIENT_BI0 */

CREATE TRIGGER KLIENT_BI0 FOR KLIENT

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_klient IS NULL) THEN

NEW.id_klient = GEN_ID(gen_klient, 1) ;

end

^

/* Trigger: MATERIAL_BI0 */

CREATE TRIGGER MATERIAL_BI0 FOR MATERIAL

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_material IS NULL) THEN

NEW.id_material= GEN_ID(gen_material, 1) ;

end

^

/* Trigger: POST_BI0 */

CREATE TRIGGER POST_BI0 FOR POST

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_post IS NULL) THEN

NEW.id_post = GEN_ID(gen_post, 1) ;

end

^

/* Trigger: SDELKI_BI0 */

CREATE TRIGGER SDELKI_BI0 FOR SDELKI

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_sdelki IS NULL) THEN

NEW.id_sdelki = GEN_ID(gen_sdelki, 1) ;

end

^

/* Trigger: SOTR_BI0 */

CREATE TRIGGER SOTR_BI0 FOR SOTR

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_sotr IS NULL) THEN

NEW.id_sotr = GEN_ID(gen_sotr, 1) ;

end

^

/* Trigger: TOVAR_BI0 */

CREATE TRIGGER TOVAR_BI0 FOR TOVAR

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_tovar IS NULL) THEN

NEW.id_tovar = GEN_ID(gen_tovar, 1) ;

end

^

/* Trigger: TOVAR_MATERIAL_BI0 */

CREATE TRIGGER TOVAR_MATERIAL_BI0 FOR TOVAR_MATERIAL

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_tovar_material IS NULL) THEN

NEW.id_tovar_material = GEN_ID(gen_tovar_material, 1) ;

end

^

/* Trigger: TRANSPORT_BI0 */

CREATE TRIGGER TRANSPORT_BI0 FOR TRANSPORT

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_transport IS NULL) THEN

NEW.id_transport = GEN_ID(gen_transport, 1) ;

end

^

/* Trigger: USLUGI_BI0 */

CREATE TRIGGER USLUGI_BI0 FOR USLUGI

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_uslugi IS NULL) THEN

NEW.id_uslugi = GEN_ID(gen_uslugi, 1) ;

end

^

/* Trigger: ZAKAZ_BI0 */

CREATE TRIGGER ZAKAZ_BI0 FOR ZAKAZ

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_zakaz IS NULL) THEN

NEW.id_zakaz = GEN_ID(gen_zakaz, 1) ;

end

^

/* Trigger: ZAKAZ_USLUGI_BI0 */

CREATE TRIGGER ZAKAZ_USLUGI_BI0 FOR ZAKAZ_USLUGI

ACTIVE BEFORE INSERT POSITION 0

AS

begin

IF (NEW.id_zakaz_uslugi IS NULL) THEN

NEW.id_zakaz_uslugi = GEN_ID(gen_zakaz_uslugi, 1) ;

end

^

SET TERM ; ^

Приложение 2. Листинг клиентского Web-приложения

Index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HTML>

<HEAD>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=UTF8">

<TITLE>Сайт бетонно-растворного узла</TITLE>

<link rel="stylesheet" type="text/css" href="images/style.css">

<br />

</HEAD>

<BODY BACKGROUND="images/tile.gif" BGCOLOR="#FFFFFF">

<div style="position: absolute; top: 10; left: 10; z-index:10">

<font color="green"><h4 align="left">Вы вошли на сайт:

<script type="text/JavaScript">

monName=new Array("Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");

dayName=new Array("Воскресенье","Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота");

now=new Date;

document.write(now.getDate()+' '+monName[now.getMonth()]+', '+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds()+', '+dayName[now.getDay()]);

</script>

</h4></font>

</div>

<?php

require "titles.php";

?>

<BR>

<SPACER TYPE="HORIZONTAL" SIZE="52"> <FONT SIZE="6"><a href="<?php echo $_SERVER['PHP_SELF'];?>"><IMG SRC="images/smallglobe.jpg" WIDTH="39" HEIGHT="39" ALIGN="BOTTOM" BORDER="0"></a>&nbsp;Сайт Бетонно-Растворного узла</FONT><BR>

<IMG SRC="images/largebanner.gif" WIDTH="100%" HEIGHT="7" ALIGN="BOTTOM" BORDER="0"><BR>

<BR>

<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="550">

<TR>

<TD WIDTH="150"></TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[0]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[0];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[1]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[1];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[2]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[2];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[3]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[3];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[4]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[4];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[5]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[5];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[6]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[6];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[7]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[7];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[8]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[8];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[9]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[9];?></B>

</TD>

<TD VALIGN="TOP" WIDTH="100">

<P><a href="<?php echo $_SERVER['PHP_SELF']."?table=".$table_name[10]."&action=showall";?>"><IMG SRC="images/bigglobe.jpg" WIDTH="54" HEIGHT="54" ALIGN="BOTTOM" BORDER="0"></a><BR>

<B><?php echo $table_title[10];?></B>

</TD>

</TR>

</TABLE>

<TD WIDTH="18%"><IMG SRC="images/hline.gif" WIDTH="100%" HEIGHT="4" ALIGN="BOTTOM" BORDER="0">

<TABLE BORDER="0" CELLPADDING="5" CELLSPACING="0" WIDTH="100%" HEIGHT="30%">

<TR>

<TD WIDTH="15%" HEIGHT="236" VALIGN="TOP">

<P><FONT COLOR="#000000">

<B>Просмотр</B><BR>

<a href="<?php if (@ $_GET['table']) { echo $_SERVER['PHP_SELF']."?table=".@ $_GET['table']."&action=showall"; };?>"><IMG SRC="images/smallglobe.jpg" WIDTH="39" HEIGHT="39" ALIGN="BOTTOM" BORDER="0"></a><BR>

<BR>

<BR>

<B>Добавление</B><BR>

<a href="<?php if (@ $_GET['table']) { echo $_SERVER['PHP_SELF']."?table=".@ $_GET['table']."&action=addform"; };?>"><IMG SRC="images/smallglobe.jpg" WIDTH="39" HEIGHT="39" ALIGN="BOTTOM" BORDER="0"></a><BR>

<BR>

<BR>

<B>Удаление<BR>

<a href="<?php if (@ $_GET['table']) { echo $_SERVER['PHP_SELF']."?table=".@ $_GET['table']."&action=deleteform"; };?>"><IMG SRC="images/smallglobe.jpg" WIDTH="39" HEIGHT="39" ALIGN="BOTTOM" BORDER="0"></a></B>

</FONT></P>

</TD>

<TD WIDTH="5%" HEIGHT="236">&nbsp;</TD>

<TD WIDTH="80%" HEIGHT="236" VALIGN="TOP">

<?php

require "function.php";

?>

</TR>

</TABLE>

<BR>

<BR>

<SPACER TYPE="HORIZONTAL" SIZE="154"><IMG SRC="images/smallbanner.gif" WIDTH="100%" HEIGHT="4" ALIGN="TOP" BORDER="0"><FONT SIZE="6"><BR></FONT>

<h3>Создатель сайта: Лукин Александр </h3>

</BODY>

</HTML>

Config.php

<?php

$dbhost = "D:/1410051.FDB";

$dbuser = "SYSDBA";

$dbpass = "masterkey";

function dbconnect($dbhost,$dbuser,$dbpass) {

$db=ibase_connect("$dbhost","$dbuser","$dbpass","utf-8");

if (! $db) {

echo "Не возможно соедениться с БД";

exit;

}

return $db;

};

?>

Titles.php

<?php

$table_name = array ("klient","sdelki","sotr","doljn","zakaz","transport","zakaz_uslugi","uslugi","tovar","tovar_material","material","post");

$table_title = array ("Клиенты","Сделки","Сотрудники","Должности","Заказ","Транспорт","Заказ-услуги","Услуги","Товар-материал","Материалы","Поставщики");

$table_cols_count = array (4,3,4,2,5,3,4,3,2,3,3,3);

$table0_columns = array ("id_klient","surname","name","phone");

$table0_titles = array ("Артикул клиента","Фамилия","Имя","Телефон");

$table1_columns = array ("id_sdelki","id_zakaz","id_klient");

$table1_titles = array ("Артикул сделки","Артикул заказа","Артикул клиента");

$table2_columns = array ("id_sotr","id_doljn","surname_s","name_s",);

$table2_titles = array ("Артикул сотрудника","Артикул должности","Фамилия","Имя");

$table3_columns = array ("id_doljn","name_d");

$table3_titles = array ("Артикул должности","Название");

$table4_columns = array ("id_zakaz","id_transport","id_sotr","data","summa");

$table4_titles = array ("Артикул заказа","Артикул транспорта","Артикул сотрудника","Дата","Общая сумма");

$table5_columns = array ("id_transport","model","opisanie");

$table5_titles = array ("Артикул транспорта","Модель","Описание");

$table6_columns = array ("id_zakaz_uslugi","id_tovar","id_uslugi","id_zakaz");

$table6_titles = array ("Артикул заказа-услуги","Артикул товара","Артикул услуги","Артикул заказа");

$table7_columns = array ("id_uslugi","name_u","price");

$table7_titles = array ("Артикул услуги","Название","Стоимость");

$table8_columns = array ("id_tovar","name_t");

$table8_titles = array ("Артикул товара","Название");

$table9_columns = array ("id_tovar_material","id_tovar","id_material");

$table9_titles = array ("Артикул товара-материала","Артикул товара","Артикул материала");

$table10_columns = array ("id_material","id_post","name_m");

$table10_titles = array ("Артикул материала","Артикул поставщика","Название");

$table11_columns = array ("id_post","name_f","predst");

$table11_titles = array ("Артикул поставщика","Название фирмы","Представитель");

$tables_columns = array ($table0_columns, $table1_columns, $table2_columns, $table3_columns, $table4_columns, $table5_columns, $table6_columns, $table7_columns, $table8_columns, $table9_columns, $table10_columns, $table11_columns);

$tables_titles = array ($table0_titles, $table1_titles, $table2_titles, $table3_titles, $table4_titles, $table5_titles, $table6_titles, $table7_titles, $table8_titles, $table9_titles, $table10_titles, $table11_titles);

?>

Module.php

<?phpif (@ $_GET['action']=='showall') {$connect = dbconnect($dbhost,$dbuser,$dbpass);echo '<table width="100%" border="2" bordercolor="#FFFAFA"><tr height="32"><td colspan="'.($table_cols_count[$T]+3).'" align="center"><b>'.$table_title[$T].'</b></td></tr><tr height="32"><td colspan="'.($table_cols_count[$T]+3).'" align="center"><form action="index.php" method="GET">Поиск по:<select name="filter_column"><option disabled>Выберите поле</option>';for($i=0;$i<$table_cols_count[$T];$i++) {if (@ $_GET['filter_column']==$tables_columns[$T][$i]) {$selected="selected ";} else {$selected="";}echo '<option '.$selected.'value="'.$tables_columns[$T][$i].'">'.$tables_titles[$T][$i].'</option>';}echo '</select>значение:<input width="10" name="filter_value" value="'.@ $_GET['filter_value'].'"><input type="hidden" name="table" value="'.$table_name[$T].'"><input type="hidden" name="action" value="showall"><input type="hidden" name="orderby_column" value="'.(@ $_GET['orderby_column']!=""?@ $_GET['orderby_column']:$tables_columns[$T][0]).'"><input type="hidden" name="orderby_value" value="'.(@ $_GET['orderby_value']!=""?@ $_GET['orderby_value']:"asc").'"><input type="submit" value="Поиск"><a href="index.php?table='.$table_name[$T].'&action=showall"><input type="button" value="Сброс"></a></td></tr><tr height="32">';if ((@ $_GET['filter_column']!="") && (@ $_GET['filter_value']!="")) {$filter="WHERE ".@ $_GET['filter_column']." LIKE '%".@ $_GET['filter_value']."%'";} else {$filter="";}if ((@ $_GET['orderby_column']!="") && (@ $_GET['orderby_value']!="")) {$orderby=@ $_GET['orderby_column']." ".@ $_GET['orderby_value'];} else {$orderby=$tables_columns[$T][0]." asc";}$query = 'SELECT * FROM '.$table_name[$T].' '.$filter.' ORDER BY '.$orderby.';';$result = ibase_query($query);for($i=0;$i<$table_cols_count[$T];$i++) {if ((@ $_GET['filter_column']!="") && (@ $_GET['filter_value']!="")) {$f_state="&filter_column=".@ $_GET['filter_column']."&filter_value=".@ $_GET['filter_value']."";} else {$f_state="";}$img1='<a href="index.php?table='.$table_name[$T].'&action=showall&orderby_column='.$tables_columns[$T][$i].'&orderby_value=asc'.$f_state.'"><img src="images/arrowup.gif" border="0"></img></a>';$img2='<a href="index.php?table='.$table_name[$T].'&action=showall&orderby_column='.$tables_columns[$T][$i].'&orderby_value=desc'.$f_state.'"><img src="images/arrowdown.gif" border="0"></img></a>';if (@ $_GET['orderby_column']==$tables_titles[$T][$i]) {if (@ $_GET['orderby_column']=="asc") {$img1="";} else {$img2="";}}echo '<td align="center">'; echo $tables_titles[$T][$i]; echo $img1.$img2.'</td>';}echo '<td colspan=3>&nbsp;</td></tr>';while ($row = ibase_fetch_row($result)) {echo '<tr height="32">';for ($i=0;$i<$table_cols_count[$T];$i++) {echo '<td align="left">'; echo $row[$i]; echo'</td>';}echo '<td><a href="index.php?table='.$table_name[$T].'&action=showone&'.$tables_columns[$T][0].'='.$row[0].'"><img src="images/b_browse.png" alt="Просмотр" border="0"></img></a></td><td><a href="index.php?table='.$table_name[$T].'&action=editform&'.$tables_columns[$T][0].'='.$row[0].'"><img src="images/b_edit.png" alt="Изменить" border="0"></img></a></td><td><a href="index.php?table='.$table_name[$T].'&action=delete&'.$tables_columns[$T][0].'='.$row[0].'"><img src="images/b_drop.png" alt="Удалить" border="0"></img></a></td>';echo '</tr>';}echo '</table>';ibase_free_result($result);}f (@ $_GET['action']=='showone') {$connect = dbconnect($dbhost,$dbuser,$dbpass);$internal_id = @ $_GET[$tables_columns[$T][0]];$query = 'SELECT * FROM '.$table_name[$T].' WHERE '.$tables_columns[$T][0].'=\''.$internal_id.'\';';$result = ibase_query($query);echo '<table width="70%" border="2" align="center">';while ($row = ibase_fetch_row($result)) {for ($i=0;$i<$table_cols_count[$T];$i++) {echo '<tr height="32"><td align="left">'; echo $tables_titles[$T][$i]; echo'</td><td align="left">'; echo $row[$i]; echo'</td></tr>';}}echo '</table><p align="center"><a href="index.php?table='.$table_name[$T].'&action=editform&'.$tables_columns[$T][0].'='.$internal_id.'"><img src="images/b_edit.png" border="0"></img>Изменить</a></p><p align="center"><a href="index.php?table='.$table_name[$T].'&action=delete&'.$tables_columns[$T][0].'='.$internal_id.'"><img src="images/b_drop.png" border="0"></img>Удалить</a></p>';@ ibase_free_result($result);} (@ $_GET['action']=='addform') {echo '<form action="index.php" method="GET"><table width="70%" border="2" align="center">';echo '<input type="hidden" name="table" value="'.$table_name[$T].'"><input type="hidden" name="action" value="add">';for ($i=1;$i<$table_cols_count[$T];$i++) {echo '<tr height="32"><td align="left">'; echo $tables_titles[$T][$i]; echo'</td><td align="left"><input type="text" name="'.$tables_columns[$T][$i].'" value=""</td></tr>';}echo '<tr height="32"><td align="center"><a href="index.php?table='.$table_name[$T].'&action=showall"><input type="button" value="Отменить"/></a></td><td align="center"><input type="submit" value="Сохранить"/></td></tr></table>';@ibase_free_result($result);}if (@ $_GET['action']=='add') {$connect = dbconnect($dbhost,$dbuser,$dbpass);$query_columns = $tables_columns[$T][1];$query_values = '\''.@ $_GET[$tables_columns[$T][1]].'\'';for ($i=2;$i<$table_cols_count[$T];$i++) {$query_columns .= ','.$tables_columns[$T][$i];$query_values .= ',\''.@ $_GET[$tables_columns[$T][$i]].'\'';}$query = 'INSERT INTO '.$table_name[$T].' ('.$query_columns.') VALUES ('.$query_values.');';$result = ibase_query($query);if ($result)$result = "Запись успешно добавлена.";else$result = "Запись НЕ добавлена.";echo '<table width="100%" border="2"><tr height="32"><td align="center"><b>'.$table_title[$T].'</b></td></tr><tr height="32"><td align="center">'.$result.'</td></tr></table>';@ ibase_free_result($result);}f (@ $_GET['action']=='editform') {$connect = dbconnect($dbhost,$dbuser,$dbpass);$internal_id = @ $_GET[$tables_columns[$T][0]];$query = 'SELECT * FROM '.$table_name[$T].' WHERE '.$tables_columns[$T][0].'=\''.$internal_id.'\';';$result = ibase_query($query);echo '<form action="index.php" method="GET"><table width="70%" border="2" align="center">';$row = ibase_fetch_row($result);echo '<tr height="32"><td align="left">'; echo $tables_titles[$T][0]; echo'</td><td align="left">'.$row[0].'<input type="hidden" name="'.$tables_columns[$T][0].'" value="'.$row[0].'"></td><input type="hidden" name="table" value="'.$table_name[$T].'"><input type="hidden" name="action" value="edit"></tr>';for ($i=1;$i<$table_cols_count[$T];$i++) {echo '<tr height="32"><td align="left">'; echo $tables_titles[$T][$i]; echo'</td><td align="left"><input type="text" name="'.$tables_columns[$T][$i].'" value="'.$row[$i].'"</td></tr>';}echo '<tr height="32"><td align="center"><a href="index.php?table='.$table_name[$T].'&action=showall"><input type="button" value="Отменить"/></a></td><td align="center"><input type="submit" value="Сохранить"/></td></tr></table>';@ ibase_free_result($result);}if (@ $_GET['action']=='edit') {$connect = dbconnect($dbhost,$dbuser,$dbpass);$query = 'UPDATE '.$table_name[$T].' SET '; $query.= ' '.$tables_columns[$T][1].'=\''.@ $_GET[$tables_columns[$T][1]].'\' ';for ($i=2;$i<$table_cols_count[$T];$i++) {$query.=', '.$tables_columns[$T][$i].'=\''.@ $_GET[$tables_columns[$T][$i]].'\' ';}$query.='WHERE '.$tables_columns[$T][0].'='.@ $_GET[$tables_columns[$T][0]].';';$result = ibase_query($query);if ($result)$result = "Запись успешно изменена.";else$result = "Запись НЕ изменена.";echo '<table width="100%" border="2"><tr height="32"><td align="center"><b>'.$table_title[$T].'</b></td></tr><tr height="32"><td align="center">'.$result.'</td></tr></table>';@ ibase_free_result($result);}if (@ $_GET['action']=='deleteform') {echo '<form action="index.php" method="GET"><table width="70%" border="2" align="center"><tr height="32"><td align="left">'; echo $tables_titles[$T][0]; echo'</td><td align="left"><input type="input" name="'.$tables_columns[$T][0].'" value=""></td><input type="hidden" name="table" value="'.$table_name[$T].'"><input type="hidden" name="action" value="delete"></tr><tr height="32"><td align="center"><a href="index.php?table='.$table_name[$T].'&action=showall"><input type="button" value="Отменить"/></a></td><td align="center"><input type="submit" value="Удалить"/></td></tr></table>';@ ibase_free_result($result);}if (@ $_GET['action']=='delete') {$connect = dbconnect($dbhost,$dbuser,$dbpass);$query = 'DELETE FROM '.$table_name[$T].' WHERE '.$tables_columns[$T][0].'='.@ $_GET[$tables_columns[$T][0]].';';//$query = 'EXECUTE PROCEDURE DEL_'.$table_name[$T].' ('.@ $_GET[$tables_columns[$T][0]].');';//echo $query;$result = ibase_query($query);if ($result) $result = "Запись успешно удалена.";else$result = "Запись НЕ удалена.";echo '<table width="100%" border="2"><tr height="32"><td align="center"><b>'.$table_title[$T].'</b></td></tr><tr height="32"><td align="center">'.$result.'</td></tr></table>';@ ibase_free_result($result);}?>

Function.php

<?php

require "config.php";

if (@ $_GET['table']==$table_name[0]) {

$T=0;

require "modules/universal_module.php";

} else if (@ $_GET['table']==$table_name[1]) {

$T=1;

require "modules/universal_module.php";

} else if (@ $_GET['table']==$table_name[2]) {

$T=2;

require "modules/universal_module.php";

} else if (@ $_GET['table']==$table_name[3]) {

$T=3;

require "modules/universal_module.php";

} else if (@ $_GET['table']==$table_name[4]) {

$T=4;

require "modules/universal_module.php";

} else if (@ $_GET['table']==$table_name[5]) {

$T=5;

require "modules/universal_module.php";

}else if (@ $_GET['table']==$table_name[6]) {

$T=6;

require "modules/universal_module.php";

}else if (@ $_GET['table']==$table_name[7]) {

$T=7;

require "modules/universal_module.php";

}else if (@ $_GET['table']==$table_name[8]) {

$T=8;

require "modules/universal_module.php";

}else if (@ $_GET['table']==$table_name[9]) {

$T=9;

require "modules/universal_module.php";

}else if (@ $_GET['table']==$table_name[10]) {

$T=10;

require "modules/universal_module.php";

}else if (@ $_GET['table']==$table_name[11]) {

$T=11;

require "modules/universal_module.php";

}

else {

echo '<div align="center" valign="center" width="300"><FONT SIZE="6">Сайт Бетонно-растворного узла.</FONT></div><br>

<img src="images/7.gif" id="l1" style="top:300">';

}

?>

Размещено на Allbest.ru


Подобные документы

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