Реферат: Разработка и патентная защита программного средства Автоматизированное рабочее место инженера п - Refy.ru - Сайт рефератов, докладов, сочинений, дипломных и курсовых работ

Разработка и патентная защита программного средства Автоматизированное рабочее место инженера п

Рефераты по информатике » Разработка и патентная защита программного средства Автоматизированное рабочее место инженера п

ФЕДЕРАЛЬНОЕ АГЕНТСВО ПО ОБРАЗОВАНИЮ

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «БелГУ»

Факультет компьютерных наук и телекоммуникаций

Кафедра прикладной информатики


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОЙ РАБОТЕ


по дисциплине: «Разработка и стандартизация программных средств и информационных технологий»

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


080801. 140606. 1406084.ПЗКР


Студент: А.В. Леонов

Руководитель курсовой работы: И.И. Чижов


Оценка курсовой работы:__________________

Принял:_______________ Дата _____________


Белгород 2010

СОДЕРЖАНИЕ


ВВЕДЕНИЕ 2

1 ОБЩИЕ ВОПРОСЫ СТАНДАРТИЗАЦИИ 3

2 ПРОГРАММНО-АЛГОРИТМИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРОГРАММНОГО СРЕДСТВА «АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ИНЖЕНЕРА ПО СЕРВИСНОМУ ОБСЛУЖИВАНИЮ КОМПЬЮТЕРНОЙ ТЕХНИКИ» 4

2.1 Назначение и основные возможности программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники». 5

2.2 Создание бизнес логики 9

2.3 Реализация программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники» 19

3 ПАТЕНТОВАНИЕ ПРОГРАММНОГО СРЕДСТВА «АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ИНЖЕНЕРА ПО СЕРВИСНОМУ ОБСЛУЖИВАНИЮ КОМПЬЮТЕРНОЙ ТЕХНИКИ» 24

3.1 Общая информация о Роспатенте 24

3.2 Оформление документов на регистрацию программного средства 25

ЗАКЛЮЧЕНИЕ 31

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 32

Приложение 33


ВВЕДЕНИЕ

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

При разработке данного программного средства в курсовой работе была применена архитектура клиент-сервер со специализацией серверов. В простейшем случае типовое определение архитектуры клиент-сервер - приложение на клиенте, БД - на сервере - использует эту схему. Поэтому при создании информационных систем с клиент-серверной архитектурой необходимо использовать среду разработки, такую как Borland C++Builder 6. Возможность работы с серверами баз данных InterBase и Firebird, прозрачность подключения новых механизмов доступа к данным делает C++ Builder 6 наиболее естественным выбором для профессионалов индустрии информационных технологий.

К целям и задачам выполнения данной курсовой работы можно отнести:

создание программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»;

закрепление знаний об общих принципах патентования, а также о функциях и задачах Роспатента;

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

Курсовая работа содержит 39 страниц, 30 рисунков, 2 таблицы, и приложение.


1 ОБЩИЕ ВОПРОСЫ СТАНДАРТИЗАЦИИ

Стандарт IEEE 1074-1995 охватывает полный жизненный цикл ПС, в котором выделяются шесть крупных базовых процессов. Эти процессы детализируются 16 частными процессами. В после­дних имеется еще более мелкая детализация в совокупности на 65 процессов-работ. Содержание каждого частного процесса начи­нается с описания общих его функций и задач и перечня дей­ствий - работ при последующей детализации. Для каждого про­цесса в стандарте представлены входная и результирующая ин­формация о его выполнении и краткое описание сущности процесса. Внимание сосредоточено преимущественно на непос­редственном создании ПС и на процессах предварительного проектирования. В приложении представлены четыре варианта адап­тации максимального состава компонентов ЖЦ ПС к конкрет­ным особенностям типовых проектов.

Хотя основные процессы близки к описанным в стандарте ISO 12207, общая архитектура и детализация частных процессов и работ в данном стандарте значительно отличаются. Процессы непосредственного создания ПС и его поддержка в стандарте представлены наибольшим числом частных процессов (около 70%), начинающихся с разработки требований к ПС и завершающихся приемо-сдаточными испытаниями, проводимыми заказчиком или пользователем.


2 ПРОГРАММНО-АЛГОРИТМИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРОГРАММНОГО СРЕДСТВА «АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ИНЖЕНЕРА ПО СЕРВИСНОМУ ОБСЛУЖИВАНИЮ КОМПЬЮТЕРНОЙ ТЕХНИКИ» 2.1 Назначение и основные возможности программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники».

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

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

Она основана на клиент-серверной технологии, разработана база данных, создано клиентское приложение.

Для хранения информации в базе данных, была разработана структура БД. Определено, какие таблицы (сущности) она в себя включает, какие поля (атрибуты) включают в себя таблицы.

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

Добавление данных о клиентах, заказах, инженерах, деталях.

Изменение данных о клиентах, заказах, инженерах, деталях.

Сортировка клиентов, заказов, деталей.

Удаление заказов, инженеров, клиентов, деталей

Поиск данных о клиентах, заказах, деталях.

Фильтрация о клиентах, заказах, деталях.

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

Формирование отчета о клиентах.

Структура базы данных

БД будет состоять из пяти таблиц: Клиенты, Заказы, Детали, Инженеры, Виды расчета.

На рисунке 1 изображена инфологическая модель БД «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники».


Рисунок 1 - Инфологическая модель БД


Разработано программное средство «Автоматизированное рабочее место инженера по обслуживанию компьютерной техники» с использованием клиент-серверной технологии.

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

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

Рисунок 2 - Контекстная диаграмма работы программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»»

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

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


Для разработки программного средства используются СУБД Firebird 2.5 и утилита IBExpert. Для создания клиентского приложения будет использован Borland C++Builder 6.0.

Возможность работы с серверами баз данных InterBase и Firebird, прозрачность подключения новых механизмов доступа к данным делает C++ Builder 6 наиболее естественным выбором для профессионалов индустрии информационных технологий.

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

AMD Turion (tm) 64 Processor;

ОЗУ 1,00 ГБ;

Видеоадаптер – Intel 89245G Express Chipset Family;

Звуковой адаптер – Creative SB X-Fi Xtreme Audio.


2.2 Создание бизнес логики

База данных состоит из таблиц, хранящих информацию о следующих объектах – клиенты, заказы, инженеры, детали, виды расчета.

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

Первая таблица «Клиенты» содержит следующую информацию: номер клиента, ФИО клиента, адрес клиента, телефон клиента.

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

Третья таблица «Детали» содержит сведения о номере детали, о наименовании детали, о технических характеристиках, о производителе.

В четвертой таблице «Инженеры» хранится информация о номере инженера, ФИО инженера, содержит телефон и адрес.

Для полей таблиц нужны различные типы данных. Задаем их согласно предполагаемым записям (см. таблицу 1, таблицу 2).


Таблица №1 – Создание доменов

Имя домена Тип Длина Not Null Ограничения
D_INDEX smallint
+ >0
D_NAME varchar 50

D_STOIM varchar 10

D_DATE DATE

<TODAY
D_ADRES varchar 50

D_TELEPHONE varchar 15


Таблица 2 – Создание таблиц и определение их типов полей

Имя таблицы Поле Тип Длина Not Null PK Имя домена
client ID_CLIENT smallint
+ + D_INDEX
FIO_CL varchar 50

D_NAME
ADRES varchar 50

D_ADRES
TELEPHONE varchar 15

D_TELEPHONE






detail ID_DETAIL smallint
+ + D_INDEX
NAME_DETAIL varchar 50

D_NAME
TECH_HAR varchar 50

D_NAME
PROIZVOD varchar 50

D_NAME
ingener ID_ING smallint
+ + D_INDEX
FIO_ING varchar 50 +
D_NAME
TELEPHONE varchar 15

D_TELEPHONE
ADRES varchar 50

D_ADRES
raschet Id_rasch smallint
+ + D_INDEX
Nalich_R varchar 50

D_NAME
Beznalich_R varchar 50

D_NAME
zakaz Id_zak smallint
+ + D_INDEX
DATE_PR DATE


D_DATE
ID_CLIENT smallint
+
D_INDEX
ID_ING smallint
+
D_INDEX
ID_DET smallint
+
D_INDEX
ID_RASCH smallint
+
D_INDEX
DATE_V DATE


D_DATE
STOIMOST VARCHAR 10

D_STOIM

Создали таблицы с помощью запроса SQL. Это можно увидеть по рисунку 4, рисунку 5, рисунку 6, рисунку 7, рисунку 8.


Рисунок 4 - Создание таблицы “Клиенты”


Рисунок 5 - Создание таблицы “Детали ”


Рисунок 6 - Создание таблицы “Инженер”


Рисунок 7 - Создание таблицы “Расчеты”

Рис. 8 – Создание таблицы «Заказы»


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

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

Рис. 9. Список генераторов


В результате было создано по 5 триггеров и генераторов:

Рис. 10. Генераторы и триггеры базы данных


Представление «Список клиентов» (CLIENT_INFO)

Рисунок 11 - Создание просмотра CLIENT_INFO


Рисунок 12 - Результат просмотра CLIENT_INFO


Аналогичным образом были созданы представления остальных таблиц.


Примеры создания хранимых процедур:

Процедура «Добавить клиента» (ADD_CLIENT)

Рисунок 13 - Создание хранимой процедуры ADD_ CLIENT

Процедура «Удалить заказ» (DEL_ZAK)

Рисунок 14 - Создание хранимой процедуры DEL_ZAK


Рисунок 15 - Список созданных хранимых процедур


Было создано исключение. Исключения представляют собой именованное сообщение об ошибке.

Рисунок 16 - Список созданных исключений

Исключение KEY_EX внедряется следующим образом:

Рисунок 17 - Исключение KEY_EX в хранимой процедуре. На примере процедуры ADD_ZAK.


2.3 Реализация программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»


C++Builder предоставляет разработчикам следующие компоненты для разроботки приложений:

Компоненты управления данными Data Control, обеспечивающие отображение и редактирования записей на форме приложения.

Компоненты вкладки Standart (Button, Label, Edit, RadioButton, CheckBox, RadioGroup, Panel)

Компоненты доступа к данным Data Access - адресуют фактические данные, хранящиеся в файле базы данных.

Компоненты вкладки QReport (QuickRep, QRSubDetail, QRLabel, QRDBText, QRBand, QRSysData), создание отчетов

Компоненты Interbase (IBDatabase, IBTransaction, IBTable, IBStoredProc)

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

Рисунок 18 - Компонент DataModule2

Рисунок 19 - Результат заполнения таблицы “Клиенты ”


Рисунок 20 - Результат заполнения таблицы “Заказы”


Рисунок 21 - Результат заполнения таблицы “Детали”


Рисунок 22 - Результат заполнения таблицы “Инженеры”


Рисунок 23 - Результат заполнения таблицы “Виды расчета”


2.3 Реализация программного средства «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»

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


Рисунок 24 - Модульная структура программного обеспечения

Рисунок 25 - Просмотр содержимого таблицы “Клиенты”


Имя таблицы задается в свойствах компонента IBTable. В свойствах компонента DataSource указываем свойство DataSet->IBTable.

Чтобы данные отображались в компоненте DBGrid, в свойстве DataSource указывается DataModule2->DataSource.


Рисунок 26 – Результат работы процедуры добавления данных

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

Пользователь может заполнять данные по таблицам “Заказы”, “Клиенты”, “Детали ”, “Инженеры”.

Ввод значения поля в таблицу осуществляется, например, такой строкой как:

DataModule2->IBStoredProc1->ParamByName("FIO_CL")->AsString=Form1->Edit1->Text;

Удаление записи из таблиц происходит посредством следующего кода:

DataModule2->IBStoredProc3->ParamByName("ID_CLIENT")->AsString=DBEdit1->Text;

Осуществляется каскадное удаление – из таблицы «Клиенты».

При нажатии на кнопку “Удалить” запись удаляется.

Рисунок 27 – Результат работы процедуры удаления данных


Рисунок 28 - Редактирование данных

Изменение записей в таблицах БД осуществляется программно:

DataModule2->IBStoredProc2->ParamByName("ID_CLIENT")->AsString=DBEdit1->Text;

DataModule2->IBStoredProc2->ParamByName("FIO_CL")->AsString=Edit4->Text;

Вывод данных в отчет также осуществляется программно с помощью компонента Button:

Form3->QuickRep1->Preview();

Form3->Visible=false;


Рисунок 29 - Вывод данных в отчет

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

if (RadioButton1->Checked)

{TLocateOptions LO;

DataModule2->IBTable1->Locate("FIO_CL", Edit7->Text, LO<<loPartialKey<< loCaseInsensitive);}


Рисунок 30 - Результат работы поиска в таблице «Клиенты»


3 ПАТЕНТОВАНИЕ ПРОГРАММНОГО СРЕДСТВА «АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ИНЖЕНЕРА ПО СЕРВИСНОМУ ОБСЛУЖИВАНИЮ КОМПЬЮТЕРНОЙ ТЕХНИКИ»
3.1 Общая информация о Роспатенте

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

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

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

- осуществление контроля и надзора за проведением экспертизы заявок на объекты интеллектуальной собственности и выдача охранных документов в установленном законодательством Российской Федерации порядке;

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

- осуществление контроля и надзора за соблюдением порядка уплаты патентных пошлин и регистрационных сборов;

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


3.2 Оформление документов на регистрацию программного средства

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

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

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

- тип регистрируемой системы (собственно программа либо БД);

- имена и подписи владельца прав и исполнителей;

- название и альтернативное название ПС;

- дата заключения договора и выпуска программы;

- количество авторов ПС;

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

- адреса всех перечисленных субъектов.

Заполнение формы РП представлено ниже.


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


РЕФЕРАТ


Автор: Леонов Артем Викторович

Правообладатель: Леонов Артем Викторович

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


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


Тип ЭВМ: IBM PC

Язык: С++

ОС: Windows XP

Объём

программы: 12,01 Kб



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


В отдел регистрации программ для ЭВМ,

баз данных, топологий ИМС и передачи прав на них

Федерального государственного учреждения «Федеральный институт промышленной собственности Федеральной службы по интеллектуальной собственности, патентам и товарным знакам (ФГУ ФИПС)

Бережковская наб., 30, корп. 1, Москва,

Г-59, ГСП-5, 123995


Направляю Вам на регистрацию программу для ЭВМ «Информационная система «Музыкальная коллекция»», правообладателем исключительного права на которую (заявителем) являются Курочкин И.Н.

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

Приложение:


Заявление (форма РП) на 1 л. в 1 экз.

Распечатка исходного текста программы на 5 л. в 1 экз.

Реферат на 1 л. в 2 экз.

Платежный документ об уплате госпошлины на 1 л. в 1 экз.

Материалы аудиовизуальных отображений на 5 л. в 1 экз.

Всего на 13 листах + 1 платежный документ.


Свидетельство прошу выслать по почте


Представитель правообладателя Подпись Расшифровка подписи


«____» ___________ 2010 г.



ЗАКЛЮЧЕНИЕ

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

создали программное средство «Автоматизированное рабочее место инженера по сервисному обслуживанию компьютерной техники»;

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

закрепили знания об общих принципах патентования, а также о функциях и задачах Роспатента;

Выполнение курсовой работы также помогло:

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

получить опыт сбора и обработки материала, анализу научно-технической литературы;

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

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

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


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

«CASE-технологии. Современные методы и средства проектирования информационных систем» А.М. Вендров, webresurs.

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

Бори Х., «FIREBIRD. Руководство разработчика баз данных». –С-Пб.: «БХВ», 2006 г., 2-е издание.

Першиков В. И., Савинков В. М. Толковый словарь по информатике.: – М.: Финансы и статистика 1995г.; 2-е издание.

Тоу Д. Настройка SQL. Для профессионалов — СПб.: БХВ-Петербург 2004.

Кравец Л.Г. Патентно-информационное обеспечение конкурентной разведки; Информ-издат. центр. - М.: ИНИЦ Роспатента, 1999- 60 с.

Михелёв В.М. Базы данных и СУБД: учебное пособие – Белгород: Изд-во БелГУ, 2007 г. – 200 с.

Устинова Е.А. Патентный закон Российской Федерации и практика патентования изобретений в области информатики. - 2-е изд.. - М.: Российское агентство по патентам и товарным знакам, 2001 - 68 с.


Приложение

//---------------------------------------------------------------------------


#include <vcl.h>

#pragma hdrstop


#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)

{

DataModule2->IBStoredProc1->ParamByName("FIO_CL")->AsString=Form1->Edit1->Text;

DataModule2->IBStoredProc1->ParamByName("ADRES")->AsString=Form1->Edit2->Text;

DataModule2->IBStoredProc1->ParamByName("TELEPHONE")->AsString=Form1->Edit3->Text;

DataModule2->IBStoredProc1->Prepare();

DataModule2->IBStoredProc1->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->Active=true;

DataModule2->IBTable2->Active=true;

DataModule2->IBTable3->Active=true;

DataModule2->IBTable4->Active=true;

DataModule2->IBTable5->Active=true;


}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{DataModule2->IBStoredProc2->ParamByName("ID_CLIENT")->AsString=DBEdit1->Text;

DataModule2->IBStoredProc2->ParamByName("FIO_CL")->AsString=Edit4->Text;

DataModule2->IBStoredProc2->ParamByName("ADRES")->AsString=Edit5->Text;

DataModule2->IBStoredProc2->ParamByName("TELEPHONE")->AsString=Edit6->Text;

DataModule2->IBStoredProc2->Prepare();

DataModule2->IBStoredProc2->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->Active=true;}


//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

DataModule2->IBStoredProc3->ParamByName("ID_CLIENT")->AsString=DBEdit1->Text;

DataModule2->IBStoredProc3->Prepare();

DataModule2->IBStoredProc3->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->Active=true;

DataModule2->IBTable2->Active=true;

DataModule2->IBTable3->Active=true;

DataModule2->IBTable4->Active=true;

DataModule2->IBTable5->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Edit7Change(TObject *Sender)

{

if (RadioButton1->Checked)

{TLocateOptions LO;

DataModule2->IBTable1->Locate("FIO_CL", Edit7->Text, LO<<loPartialKey<< loCaseInsensitive);}

else if (RadioButton2->Checked)

{TLocateOptions LO;

DataModule2->IBTable1->Locate("ADRES", Edit7->Text, LO<<loPartialKey<< loCaseInsensitive);}

else if (RadioButton3->Checked)

{TLocateOptions LO;

DataModule2->IBTable1->Locate("TELEPHONE", Edit7->Text, LO<<loPartialKey<< loCaseInsensitive);}

}

//---------------------------------------------------------------------------


void __fastcall TForm1::RadioButton4Click(TObject *Sender)

{

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->IndexFieldNames="FIO_CL";

DataModule2->IBTable1->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::RadioButton5Click(TObject *Sender)

{

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->IndexFieldNames="ADRES";

DataModule2->IBTable1->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::RadioButton6Click(TObject *Sender)

{

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->IndexFieldNames="ID_CLIENT";

DataModule2->IBTable1->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button4Click(TObject *Sender)

{

DataModule2->IBStoredProc4->ParamByName("DATE_PR")->AsString=Form1->Edit9->Text;

DataModule2->IBStoredProc4->ParamByName("ID_CLIENT")->AsString=Form1->Edit10->Text;

DataModule2->IBStoredProc4->ParamByName("ID_ING")->AsString=Form1->Edit11->Text;

DataModule2->IBStoredProc4->ParamByName("ID_DET")->AsString=Form1->Edit12->Text;

DataModule2->IBStoredProc4->ParamByName("ID_RASCH")->AsString=Form1->Edit13->Text;

DataModule2->IBStoredProc4->ParamByName("DATE_V")->AsString=Form1->Edit14->Text;

DataModule2->IBStoredProc4->ParamByName("STOIMOST")->AsString=Form1->Edit15->Text;

DataModule2->IBStoredProc4->Prepare();

DataModule2->IBStoredProc4->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable2->Active=false;

DataModule2->IBTable2->Active=true;

DataModule2->IBTable1->Active=true;

DataModule2->IBTable3->Active=true;

DataModule2->IBTable4->Active=true;

DataModule2->IBTable5->Active=true;


}

//---------------------------------------------------------------------------


void __fastcall TForm1::Edit22Change(TObject *Sender)

{

if (RadioButton8->Checked)

{TLocateOptions LO;

DataModule2->IBTable2->Locate("ID_CLIENT", Edit22->Text, LO<<loPartialKey<< loCaseInsensitive);}

else if (RadioButton9->Checked)

{TLocateOptions LO;

DataModule2->IBTable2->Locate("ID_ING", Edit22->Text, LO<<loPartialKey<< loCaseInsensitive);}

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button6Click(TObject *Sender)

{

DataModule2->IBStoredProc5->ParamByName("ID_CLIENT")->AsString=Form1->Edit9->Text;

DataModule2->IBStoredProc5->ParamByName("ID_ING")->AsString=Form1->Edit10->Text;

DataModule2->IBStoredProc5->ParamByName("ID_DET")->AsString=Form1->Edit11->Text;

DataModule2->IBStoredProc5->ParamByName("STOIMOST")->AsString=Form1->Edit12->Text;

DataModule2->IBStoredProc5->ParamByName("ID_RASCH")->AsString=Form1->Edit13->Text;

DataModule2->IBStoredProc5->ParamByName("DATE_PR")->AsString=Form1->Edit14->Text;

DataModule2->IBStoredProc5->ParamByName("DATE_V")->AsString=Form1->Edit15->Text;

DataModule2->IBStoredProc5->Prepare();

DataModule2->IBStoredProc5->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->Active=true;

DataModule2->IBTable2->Active=true;

DataModule2->IBTable3->Active=true;

DataModule2->IBTable4->Active=true;

DataModule2->IBTable5->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button7Click(TObject *Sender)

{

DataModule2->IBStoredProc7->ParamByName("NAME_DETAIL")->AsString=Edit23->Text;

DataModule2->IBStoredProc7->ParamByName("TECH_HAR")->AsString=Edit24->Text;

DataModule2->IBStoredProc7->ParamByName("PROIZVOD")->AsString=Edit25->Text;

DataModule2->IBStoredProc7->Prepare();

DataModule2->IBStoredProc7->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable1->Active=true;

DataModule2->IBTable2->Active=true;

DataModule2->IBTable3->Active=true;

DataModule2->IBTable4->Active=true;

DataModule2->IBTable5->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button5Click(TObject *Sender)

{

DataModule2->IBStoredProc6->ParamByName("ID_ZAK")->AsString=DBEdit2->Text;

DataModule2->IBStoredProc6->Prepare();

DataModule2->IBStoredProc6->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable1->Active=false;

DataModule2->IBTable1->Active=true;

DataModule2->IBTable2->Active=true;

DataModule2->IBTable3->Active=true;

DataModule2->IBTable4->Active=true;

DataModule2->IBTable5->Active=true;


}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button8Click(TObject *Sender)

{

DataModule2->IBStoredProc6->ParamByName("ID_ING")->AsString=DBEdit3->Text;

DataModule2->IBStoredProc8->ParamByName("FIO_ING")->AsString=Edit27->Text;

DataModule2->IBStoredProc8->ParamByName("TELEPHONE")->AsString=Edit28->Text;

DataModule2->IBStoredProc8->ParamByName("ADRES")->AsString=Edit29->Text;

DataModule2->IBStoredProc8->Prepare();

DataModule2->IBStoredProc8->ExecProc();

DataModule2->IBTransaction1->Commit();

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button9Click(TObject *Sender)

{

DataModule2->IBStoredProc9->ParamByName("ID_ING")->AsString=DBEdit3->Text;

DataModule2->IBStoredProc9->Prepare();

DataModule2->IBStoredProc9->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable4->Active=false;

DataModule2->IBTable4->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button11Click(TObject *Sender)

{

Form3->QuickRep1->Preview();

Form3->Visible=false;

}


//---------------------------------------------------------------------------


void __fastcall TForm1::Button10Click(TObject *Sender)

{

Form4->Show();

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button12Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button13Click(TObject *Sender)

{

DataModule2->IBStoredProc10->ParamByName("ID_DETAIL")->AsString=Edit30->Text;

DataModule2->IBStoredProc10->Prepare();

DataModule2->IBStoredProc10->ExecProc();

DataModule2->IBTransaction1->Commit();

DataModule2->IBTable3->Active=false;

DataModule2->IBTable3->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::RadioButton14Click(TObject *Sender)

{

DataModule2->IBTable3->Active=false;

DataModule2->IBTable3->IndexFieldNames="NAME_DETAIL";

DataModule2->IBTable3->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::RadioButton15Click(TObject *Sender)

{

DataModule2->IBTable3->Active=false;

DataModule2->IBTable3->IndexFieldNames="ID_DETAIL";

DataModule2->IBTable3->Active=true;

}

//---------------------------------------------------------------------------


void __fastcall TForm1::RadioButton16Click(TObject *Sender)

{

DataModule2->IBTable3->Active=false;

DataModule2->IBTable3->IndexFieldNames="PROIZVOD";

DataModule2->IBTable3->Active=true;

}

//---------------------------------------------------------------------------