Разработка автоматизированной информационной системы учета объектов интеллектуальной собственности

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    899,88 Кб
  • Опубликовано:
    2012-05-25
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка автоматизированной информационной системы учета объектов интеллектуальной собственности

Введение


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

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

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

Пояснительная записка состоит из следующих разделов:

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

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

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

1       . Постановка задачи


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

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

·        Обеспечение целостности хранения данных.

·        Наличие простого и удобного пользовательского интерфейса.

·        Обеспечение функционала по доступу к информации необходимой для ведения основной деятельности.

·        Предоставление инструментов, позволяющих проводить анализ доступных данных и предоставлять отчетность.

·        Среда разработки АИС - Microsoft Access 2003.

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

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

·        Учет информации о научных направлениях университета.

·        Учет информации о научных и научно-педагогических школах университета.

·        Учет информации об объектах интеллектуальной собственности, принадлежащих университету.

·        Учет информации о научно-технической продукции и услугах университета.

·        Учет информации о научных подразделениях университета.

·        Учет информации о научных группах университета.

·        Предоставление инструментов для анализа информации, содержащейся в информационной системе.

·        Предоставление инструментов для составления отчетности по имеющейся информации и выводам, полученным в ходе анализа.

Для создания АИС необходимо выполнить следующее:

.        Разработать перечень и структуру хранимой информации.

.        Выделить возможные информационные подсистемы и установить связи между ними.

.        Разработать логическую структуру базы данных.

.        Разработать общие для системы принципы формирования интерфейса пользователя.

.        Реализация АИС в среде, обозначенной заказчиком.

2       . Проектирование АИС учета объектов интеллектуальной собственности и научно-технической продукции университета

 

2.1    Разработка структуры АИС


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

·        Информация о подразделениях и сотрудниках университета.

·        Информация о научных направлениях, открытых и в университете.

·        Информация о научных и научно-педагогических школах университета.

·        Информация об объектах интеллектуальной собственности, принадлежащих университету.

·        Информация о научно-технической продукции, разрабатываемой в университете.

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

·        Модуль учета информации о подразделениях и сотрудниках университета.

·        Модуль учета информации о научных направлениях университета.

·        Модуль учета информации о научных и научно-педагогических школах.

·        Модуль учета информации об объектах интеллектуальной собственности.

·        Модуль учета информации о научно-технической продукции университета.

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

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

Выделенные подсистемы связаны друг с другом, полученная структура информационной системы представлена на рисунке 2.1.

Рисунок 2.1 - Структура информационной системы учета научно-технической деятельности университета

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

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

Каждый модуль подсистемы учета имеет свою внутреннюю структуру информации:

2.1.1 Модуль учета информации о подразделениях и сотрудниках университета

Подразделения университета характеризуются полным названием или его аббревиатурой (кратким названием). Также есть кодировка для подразделения, принятая в университете. По типу деятельности они делятся на образовательные и научные. У каждого действующего подразделения есть состав руководителей. Сотрудники подразделения описываются их индивидуальными параметрами (Ф.И.О., номер телефона и др.), а также должностью и рабочим местом.

2.1.2 Модуль учета информации о научных направлениях университета

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

2.1.3 Модуль учета информации о научных и научно-педагогических школах

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

2.1.4 Модуль учета информации об объектах интеллектуальной собственности

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

2.1.5 Модуль учета информации о научно-технической продукции университета

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

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

2.2    Определение функциональных требований к модулям АИС


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

Рисунок 2.2 - Общая функциональная модель АИС

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

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

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

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

На рисунке 2.3 приведена детализация модуля учета информации о подразделениях и сотрудниках университета.

Рисунок 2.3 - Детализация модуля учета информации о подразделениях и сотрудниках университета

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

·        Полное название подразделения.

·        Аббревиатуру полного названия.

·        Кодировку подразделения, принятую в университете.

·        Вышестоящее подразделение.

·        Расположение подразделения (корпус, номера комнат (аудиторий)).

·        Тип подразделения (образовательное, научное)

·        Электронная почта - E-mail.

·        Электронный адрес в Интернет.

·        Товары и услуги, предоставляемые подразделением (Образовательные программы; Выпускники (бакалавры / магистры / специалисты); Научно-технические товары / услуги)

При добавлении подразделения в базу данных его полное название обязательно для заполнения, а так же указание типа подразделения и вышестоящего подразделения.

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

·        Фамилия, имя, отчество.

·        Ученое звание.

·        Ученая степень.

·        Дата рождения.

·        Мобильный телефон.

·        Личная электронная почта.

·        Должность в подразделении.

·        Часы приема.

·        Рабочий телефон.

·        Рабочая электронная почта.

·        Расположение рабочего места (корпус, номер комнаты (аудитории)).

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

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

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

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

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

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

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

На рисунке 2.4 приведена детализация модуля учета информации о научных направлениях университета.

Рисунок 2.4 - Детализация модуля учета информации о научных направлениях университета

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

·        Название научного направления.

·        Список подразделений, занимающихся данным научным направлением.

·        Список руководителей, ведущих данное научное направление.

·        Контактные данные руководителей, ведущих научное направление.

·        Список основных научно-образовательных направлений университета, по которым работает данное научное направление.

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

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

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

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

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

2.2.3 Функциональные требования к модулю учета информации о научных и научно-педагогических школах университета

На рисунке 2.5 приведена детализация модуля учета информации о научных и научно-педагогических школах университета.

Рисунок 2.5 - Детализация модуля учета информации о научных и научно-педагогических школах университета

Каждая научно-педагогическая школа (НПШ) должна описываться следующим набором характеристик:

·        Название НПШ.

·        Список подразделений, в рамках которых образована НПШ.

·        Список руководителей НПШ от подразделений, в рамках которых она образована.

·        Список основных научно-образовательных направлений университета, по которым работает данная НПШ.

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

НПШ может открыться только на существующих подразделениях.

Одна НПШ может относиться к нескольким основным научно-образовательным направлениям университета в том случае, если ее деятельность носит междисциплинарный характер.

2.2.4 Функциональные требования к модулю учета информации об объектах интеллектуальной собственности университета

На рисунке 2.6 приведена детализация модуля учета информации об объектах интеллектуальной собственности университета.

Рисунок 2.6 - Детализация модуля учета информации об объектах интеллектуальной собственности университета

Каждый объект интеллектуальной собственности (ОИС) должен описываться следующим набором характеристик:

·        Название ОИС.

·        Тип ОИС (изобретение, полезная модель, промышленный образец, программа для ЭВМ, база данных, ноу-хау).

·        Категория ОИС (патенты на изобретения, программы для ЭВМ, ноу-хау и др.)

·        Дата приоритета.

·        Номер охранного документа.

·        Дата выдачи документа.

·        Авторы ОИС.

·        Контактные данные авторов объекта интеллектуальной собственности.

·        Подразделения, сотрудники которых являются авторами объекта интеллектуальной собственности.

·        Основные научно-образовательные направления университета, к которым относится объект интеллектуальной собственности.

При добавлении информации в базу данных обязательно для заполнения название ОИС, тип ОИС и указание подразделений, которым принадлежит ОИС.

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

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

ОИС может принадлежать только существующим подразделениям.

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

2.2.5 Функциональные требования к модулю учета информации о научно-технической продукции университета

На рисунке 2.7 приведена детализация модуля учета информации о научно-технической продукции университета.

Рисунок 2.7 - Детализация модуля учета информации о научно-технической продукции университета

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

·        Наименование продукции.

·        Назначение продукции.

·        Вид продукции (техническое изделие, программный продукт и т.д.).

·        Комментарии к виду продукции.

·        Основные технические характеристики.

·        Текущая стадия развития продукции/ Уровень предоставляемой услуги (например, идея, предварительные исследования, подготовка к реализации и др.)

·        Комментарии к стадии развития.

·        Объекты интеллектуальной собственности, относящиеся к продукции.

·        Комментарии к ОИС.

·        Инновационные аспекты продукции.

·        Конкурентные преимущества продукции.

·        Области применения продукции (текущие и потенциальные; например, области экономики - транспорт, энергетика, медицина или направления использования - энергосбережение, экология, безопасность и др.)

·        Сведения о реализации.

·        Правовая охрана.

·        Тип требуемого сотрудничества (например, реализация предлагаемой научно-технической продукции, техническая кооперация и др.)

·        Комментарии к типу требуемого сотрудничества.

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

·        Научный руководитель разработки.

·        Контактное лицо.

·        Контактные данные (телефон, электронная почта и др.).

·        Основные научно-образовательные направления университета, к которым относится продукция.

·        Технологические ключевые слова, описывающие продукцию.

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

Несколько подразделений могут участвовать в создании продукции.

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

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

2.2.6 Функциональные требования к аналитическому модулю

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

Рисунок 2.8 - Детализация аналитического модуля

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

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

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

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

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

2.2.7 Функциональные требования к модулю отчетности

На рисунке 2.9 приведена детализация модуля отчетности.

Рисунок 2.9 - Детализация модуля отчетности

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

Необходимо предусмотреть возможность вывода различных вариантов отчетов (с краткой и полной информацией об объектах учета).

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

Необходимо предусмотреть возможность вывода отчетов в различных форматах.

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

2.3    Разработка концептуальной модели данных


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

·        Сущность «Подразделения» - содержит общую информацию о научных подразделениях университета.

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

·        Сущность «Научные направления» - содержит информацию о научных направлениях подразделений университета.

·        Сущность «Научно-педагогические школы» - содержит информацию о научно-педагогических школах университета.

·        Сущность «Объекты интеллектуальной собственности» - содержит информацию об объектах интеллектуальной собственности, принадлежащих университету.

·        Сущность «Научно-техническая продукция» - содержит информацию о научно-технической продукции университета, предоставляемой на рынке.

·        Сущность «Научно-образовательные направления» - содержит информацию об утвержденных в университете научно-образовательных направлениях.

На рисунке 2.10 представлена концептуальная модель данных разрабатываемой базы данных для учета развития научно-технических направлений и достижений университета. На рисунке показаны основные сущности концептуальной модели данных и основные связи между ними. Обозначение «*» на концах связей показывает связь «многие-ко-многим» между сущностями.

Рисунок 2.10 - Концептуальная модель данных

 

2.4    Разработка логической структуры базы данных


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

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

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

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

Помимо связей типа «многие-ко-многим» в логической структуре используется связь типа «один-ко-многим». Она реализуется с помощью размещения первичного ключа «отношения-один» на стороне «отношения-много». Такой ключ называется внешним ключом.

На рисунке 2.11 представлена логическая структура базы данных, где PK - первичные ключи таблиц, а FK - внешние ключи таблиц. Жирным шрифтом обозначены обязательные поля в таблицах, остальные поля - необязательные. На рисунке приняты сокращения:

·        НПШ - научно-педагогическая школа

·        НОН - научно-образовательное направление

·        ОИС - объект интеллектуальной собственности

·        ID - Identification number

Для всех связей принято каскадное обновление полей (U:c) и каскадное удаление записей (R:c).

3       . Реализация АИС учета объектов интеллектуальной собственности и научно-технической продукции университета

 

3.1    Разработка физической структуры базы данных

автоматизированный информационный университет интеллектуальный

Разработка физической структуры базы данных проводилась в среде разработки Microsoft Access 2003. Структура физической базы данных представлена на рисунке 3.1.

Рисунок 3.1 - Структура физической базы данных

Далее представлено описание используемых в базе данных таблиц с указанием типа полей, уникальностью их значения (У), обязательностью заполнения при добавлении новой записи (О), первичного ключа (ПК) и внешнего ключа (ВК).

Таблица 3.1 - Научные направления

Поле

Назначение

Тип данных

У

О

ПК

ВК

ID направления

Идентификатор научного направления

Числовой

+

+

+

-

Научные направления

Название научного направления

Текстовый

+

+

-

-


Таблица 3.2 - НПШ

ПолеНазначениеТип данныхУОПКВК







ID НПШ

Идентификатор НПШ

Числовой

+

+

+

-

Название НПШ

Название НПШ

Текстовый

+

+

-

-


Таблица 3.3 - НОН

ПолеНазначениеТип данныхУОПКВК







ID НОН

Идентификатор научно-образовательного направления

Числовой

+

+

+

-

Название НОН

Название научно-образовательного направления

Текстовый

+

+

-

-


Таблица 3.4 - Подразделения

ПолеНазначениеТип данныхУОПКВК







ID подразделения

Идентификатор подразделения

Числовой

+

+

+

-

Название длинное

Полное название подразделения

Текстовый

+

+

-

-

Название краткое

Аббревиатура названия подразделения

Текстовый

+

-

-

-

Кодировка

Кодировка подразделения, принятая в университете

Текстовый

+

-

-

-

Расположение

Номер аудитории (комнаты)

Текстовый

-

-

-

-

ID типа подразделения

Идентификатор типа подразделения

Числовой

-

+

-

+

E-mail

Электронная почта подразделения

Текстовый

-

-

-

-

Электронный адрес

Электронный адрес подразделения в Интернет

Текстовый

-

-

-

-

ID родителя

Идентификатор подразделения - «родителя»

Числовой

-

+

-

-



Таблица 3.5 - Тип подразделения

ПолеНазначениеТип данныхУОПКВК







ID типа

Идентификатор типа подразделения

Числовой

+

+

+

-

Название типа

Название типа подразделения

Текстовый

+

+

-

-


Таблица 3.6 - Руководитель

Поле

Назначение

Тип данных

О

ПК

ВК

ID руководителя

Идентификатор руководителя

Числовой

+

+

+

-

Фамилия

Фамилия руководителя

Текстовый

-

+

-

-

Имя

Имя руководителя

Текстовый

-

-

-

-

Отчество

Отчество руководителя

Текстовый

-

-

-

-

Звание

Ученое звание руководителя

Текстовый

-

-

-

-

Ученая степень

Ученая степень руководителя

Текстовый

-

-

-

-

Дата рождения

Дата рождения руководителя

Время / Дата

-

-

-

-

Мобильный телефон

Номер мобильного телефона руководителя

Текстовый

-

-

-

-

E-mail(личный)

Личная электронная почта руководителя

Текстовый

-

-

-

-

Примечание

Комментарии

Текстовый

-

-

-

-


Таблица 3.7 - Руководство

Поле

Назначение

Тип данных

У

О

ПК

ВК

ID руководителя

Идентификатор руководителя

Числовой

+

+

+

-

ID подразделения

Идентификатор подразделения

Числовой

+

+

+

-

ID должности

Идентификатор должности

Числовой

+

+

-

+

Часы приема

Рабочее время руководителя

Текстовый

-

-

-

-

Телефон рабочий

Номер рабочего телефона руководителя

Текстовый

-

-

-

-

E-mail(рабочий)

Адрес рабочей электронной почты руководителя

Текстовый

-

-

-

-

№ в группе

Статус руководителя в подразделении

Числовой

-

-

-

-

Комната

Номер рабочего кабинета руководителя

Текстовый

-

-

-

-


Таблица 3.8 - Должность

ПолеНазначениеТип данныхУОПКВК







ID должности

Идентификатор должности

Числовой

+

+

+

-

Название должности

Название должности

Текстовый

+

+

-

-


Таблица 3.9 - ОИС

Поле

Назначение

Тип данных

У

О

ПК

ВК

ID ОИС

Идентификатор ОИС

Числовой

+

+

+

-

Название ОИС

Полное название ОИС

Текстовый

-

+

-

-

ID типа ОИС

Идентификатор типа ОИС

Числовой

-

+

-

+

Дата приоритета

Дата оформления приоритета

Дата / Время

-

-

-

-

№ охранного документа

Номер охранного документа

Текстовый

+

-

-

-

Дата выдачи

Дата выдачи документов

Дата / Время

-

-

-

-

Автор

Авторы ОИС

Текстовый

-

-

-

-


Таблица 3.10 - Типы ОИС

Поле

Назначение

Тип данных

У

О

ПК

ВК

ID типа ОИС

Идентификатор типа ОИС

Числовой

+

+

+

-

Название типа ОИС

Название типа ОИС

Текстовый

+

+

-

-

ID категории

Идентификатор категории ОИС

Числовой

-

+

-

+


Таблица 3.11 - Категории ОИС

ПолеНазначениеТип данныхУОПКВК







ID категории

Идентификатор категории ОИС

Числовой

+

+

+

-

Название категории

Название категории ОИС

Текстовый

+

+

-

-


Таблица 3.12 - Продукция

Поле

Назначение

Тип данных

У

О

ПК

ВК

ID продукции

Идентификатор продукции

Числовой

+

+

+

-

Наименование

Полное наименование продукции

Текстовый

-

+

-

-

Назначение

Описание назначения продукции

Текстовый

-

+

-

-

Комментарии к виду

Комментарии к виду продукции

Текстовый

-

-

-

-

Технические характеристики

Технические характеристики продукции

Текстовый

-

-

-

-

Комментарии к стадии

Комментарии к стадии развития продукции

Текстовый

-

-

-

-

Комментарии к ОИС

Комментарии к ОИС продукции

Текстовый

-

-

-

-

Инновационные аспекты

Инновационные аспекты продукции

Текстовый

-

+

-

-

Конкурентные преимущества

Конкурентные преимущества продукции

Текстовый

-

+

-

-

Сведения о реализации

Сведения о реализации продукции

Текстовый

-

-

-

-

Правовая охрана

Правовые документы

Текстовый

-

-

-

-

Комментарии к типу сотрудничества

Комментарии к желаемому типу сотрудничества

Текстовый

-

-

-

-

Ключевые слова

Ключевые слова для поиска

Текстовый

-

-

-

ID типа

Идентификатор типа продукции

Числовой

-

+

-

+

ID стадии

Идентификатор стадии развития продукции

Числовой

-

+

-

+

ID вида

Идентификатор вида продукции

Числовой

-

+

-

+


Таблица 3.13 - Тип сотрудничества

Поле

Назначение

Тип данных

У

О

ПК

ВК

ID типа

Идентификатор типа сотрудничества

Числовой

+

+

+

-

Название типа

Название типа сотрудничества

Текстовый

+

+

-

-


Таблица 3.14 - Область применения

ПолеНазначениеТип данныхУОПКВК







ID области

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

Числовой

+

+

+

-

Название области

Название области применения продукции

Текстовый

+

+

-

-


Таблица 3.15 - Стадии развития

ПолеНазначениеТип данныхУОПКВК







ID стадии

Идентификатор стадии развития продукции

Числовой

+

+

+

-

Название стадии

Название стадии развития продукции

Текстовый

+

+

-

-


Таблица 3.16 - Вид продукции

ПолеНазначениеТип данныхУОПКВК







ID вида

Идентификатор вида продукции

Числовой

+

+

+

-

Название вида

Название вида продукции

Текстовый

+

+

-

-

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

3.2    Описание интерфейса пользователя


Внешний вид интерфейса создан с учетом общих принципов формирования интерфейса, рассмотренных в пункте 2.5.

3.2.1 Модуль учета информации о подразделениях и сотрудниках университета

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

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

Рисунок 3.2 - Внешний вид интерфейса основного рабочего окна. Вкладка «Общие данные»

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

Рисунок 3.3 - Форма для изменения подчинения подразделения

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

Рисунок 3.4 - Форма для добавления информации о новом подразделении

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

В нижней части правой половины рабочего окна находится информация о рабочем составе выбранного подразделения. Под информацией расположены кнопки «▲» и «▼». позволяющие менять порядок отображения руководителей и кнопки работы с информацией «Добавить», «Изменить», «Удалить». Внешний вид форм для добавления и изменения информации показан на рисунке.

Рисунок 3.5 - Форма для изменения информации о подразделении

3.2.2 Модуль учета информации об объектах интеллектуальной собственности университета

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

3.2.3 Модуль учета информации о научных направлениях университета

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

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

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

Для добавления информации по подразделениям, руководителям и научно-образовательным направлениям необходимо поместить соответствующую запись в правую половину формы с помощью кнопки «>». Удаляет эту информацию - нажатие на кнопку «<».

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

Для сохранения занесенной информации нужно нажать кнопку «Сохранить».

3.2.4 Модуль учета информации о научно-педагогических школах университета

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

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

При нажатии на кнопку «Удалить» по запросу удаляется активная запись из списка НПШ. При добавления / редактирования информации открывается форма.

3.2.5 Модуль отчетности

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

В качестве критериев отбора представлены подразделение, активное в дереве иерархий, и научно-образовательные направления. При нажатии на кнопку «Выполнить» происходит построение отчета, и он выводится в выбранной форме (в режиме предпросмотра или печатается). На рисунке показан внешний вид отчета по НПШ, критерий отбора - подразделение. В отчет по научным направлениям и научно-педагогическим школам включается название объекта учета, подразделение(-я), руководители с их личными данными (Ф.И.О., ученая степень, ученое звание, телефон и электронная почта), научно-образовательные направления.

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

Физическая база данных и интерфейс пользователя был реализован в программном продукте Microsoft Access 2003 с использованием языка Visual Basic for Application (VBA).

Элемент управления «дерево иерархий» является элементом группы объектов ActiveX. Код для работы с ним приведен в приложении.

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


Заключение


По окончанию выполнения выпускной квалификационной работы были получены следующие результаты:

.        Сформулирована концептуальная модель хранимой информации.

.        Сформирована логическая структура информации.

.        Реализована физическая структура базы данных.

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

.        Описаны функциональные возможности аналитического модуля; из них реализованы поиск подразделений и сотрудников, поиск научных направлений, научно-педагогических школ и объектов интеллектуальной собственности по критерию «Подразделение».

.        Описаны функциональные возможности модуля отчетности; Из них реализованы построение отчетов о научных направлениях и научно-педагогических школах с использованием одного из двух критериев отбора: подразделение или научно-образовательное направление университета, построение отчетов об ОИС с применением сложного критерия отбора.


Используемая литература


1. Гончаров А.Ю. Access 2003. Самоучитель с примерами.

 

 


Приложение


Главная форма - вкладка «Научные направления» и «НПШ».

Private Sub Form_Load()

Me! НН. Form. RecordSource = «SELECT [Научные направления]. [ID направления] FROM [Научные направления] WHERE 0;» 'обнуление данных в поле

Me! НПШ. Form. RecordSource = «SELECT [НПШ]. [ID НПШ] FROM [НПШ] WHERE 0;» 'обнуление данных в поле.п_под = «»  'обнуление данных в поле.п_под_НПШ = «»         'обнуление данных в поле.п_доп_НН = «»      'обнуление данных в поле.п_доп_НПШ = «»  'обнуление данных в поле! Форма! [сп_Ф.И.О.].RowSource = «SELECT [ID подразделения] as [Ф.И.О.] FROM Под-разделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_инф].RowSource = «SELECT [ID подразделения] as [Телефон], [ID под-разделения] as [E-mail] FROM Подразделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_НОН_НН].RowSource = «SELECT [ID подразделения] FRom Подразде-ления WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_рук].RowSource = «SELECT [ID подразделения] as [Ф.И.О.] FROM Под-разделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_НПШ].RowSource = «SELECT [ID подразделения] as [Телефон], [ID подразделения] as [E-mail] FROM Подразделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_НОН_НПШ].RowSource = «SELECT [ID подразделения] FRom Подраз-деления WHERE [ID подразделения] = 0;» 'обнуление данных в поле

testFlag = False(7)SubSub Tree_NodeClick (ByVal Node As Object)p As Integer= Me. НаборВкладок3. Value 'храним номер открытой вкладкиmyDb As DatabasemyRec As Recordsetstr As String i As Integer.п_доп_НН = «»   'обнуление данных в поле.п_доп_НПШ = «»         'обнуление данных в поле! Форма! [сп_Ф.И.О.].RowSource = «SELECT [ID подразделения] as [Ф.И.О.] FROM Под-разделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_инф].RowSource = «SELECT [ID подразделения] as [Телефон], [ID под-разделения] as [E-mail] FROM Подразделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_НОН_НН].RowSource = «SELECT [ID подразделения] FRom Подразде-ления WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_рук].RowSource = «SELECT [ID подразделения] as [Ф.И.О.] FROM Под-разделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_НПШ].RowSource = «SELECT [ID подразделения] as [Телефон], [ID подразделения] as [E-mail] FROM Подразделения WHERE [ID подразделения] = 0;» 'обнуление данных в поле! Форма! [сп_НОН_НПШ].RowSource = «SELECT [ID подразделения] FRom Подраз-деления WHERE [ID подразделения] = 0;» 'обнуление данных в поле

str = Left (Me. Tree. SelectedItem. Key, Len (Me. Tree. SelectedItem. Key) - 1) 'ID выделенного в дереве подразделенияmyDb = CurrentDbmyRec = myDb. OpenRecordset («SELECT * FROM Подразделения WHERE [ID подразделения]=» & str &»;»)myRec! [ID родителя] <> 0 Then. Form. RecordSource = «SELECT * FROM Подразделения WHERE [ID подразделения]=» & str &»;»= «»VarType (myRec! [Название краткое]) <> vbNull Then

st = «-» & CStr (myRec! [Название краткое])

End If. Заголовок. Caption = CStr (myRec! [Название длинное]) & stIf.п_под = CStr (myRec! [Название длинное]) 'вывод названия подразделения на вкладке научные направления.п_под_НПШ = CStr (myRec! [Название длинное])         'вывод названия подразделения на вкладке НПШpod As String= search(str)        'список детей выделенного родителя - сама функция описана в отдельном модуле

Me! НН. Form. RecordSource = «SELECT DISTINCT [Научные направления]. [ID направле-ния], [Научные направления]. [Научные направления] FROM [Научные направления] WHERE [id подразделения] IN (» & pod &»);»    'выборка научных направлений выделенно-го подразделения и его детей

Me! НПШ. Form. RecordSource = «SELECT DISTINCT [НПШ]. [ID НПШ], [НПШ]. [Название НПШ] FROM [НПШ] WHERE [id подразделения] IN (» & pod &»);» 'выборка НПШ выде-ленного подразделения и его детей

Dim rec As Recordsetrec = CurrentDb. OpenRecordset (» SELECT [Научные направления]. [ID направления] As [m] FROM [Научные направления] WHERE [ID подразделения] IN (» & pod &»);»)rec. RecordCount = 0 Then 'проверка наличия научных направлений для подразделения и его детей

Me.к_изм. Enabled = False.к_удал. Enabled = False.к_изм. Enabled = True.к_удал. Enabled = True

End IfCInt(str) > 15 Then 'проверка на добавление (нельзя добавлять к факультету)

Me.к_добав. Enabled = True.к_доб_НПШ. Enabled = True.к_добав. Enabled = False.к_доб_НПШ. Enabled = FalseIfrec = CurrentDb. OpenRecordset (» SELECT [НПШ]. [ID НПШ] As [m] FROM [НПШ] WHERE [ID подразделения] IN (» & pod &»);»)

If rec. RecordCount = 0 Then 'проверка наличия НПШ для выделенного подразделения и его детей

Me.к_изм_НПШ. Enabled = False.к_уд_НПШ. Enabled = False.к_изм_НПШ. Enabled = True.к_уд_НПШ. Enabled = TrueIf. НаборВкладок3. Pages. Item(p).SetFocus 'переход на искпользуемую вкладку

End SubSub к_доб_НПШ_Click()

Me.п_кноп = 2    'поле для идентификации действия (изменить / добавить) для НПШ - добав-ление. Minimize. OpenForm «Добав_НПШ» 'форма для добавления / изменения информации о НПШ! Добав_НПШ. Caption = «Добавление научно-педагогической школы»

End SubSub к_добав_Click()

Me.п_инд = 2      'поле для идентификации действия (изменить / добавить) для научных на-правлений - добавление. Minimize. OpenForm «Добав_НН»    'форма для добавления / изменения информации о научных направлениях! Добав_НН. Caption = «Добавление научного направления»

End SubSub к_изм_Click()

Me.п_инд = 1      'поле для идентификации действия (изменить / добавить) для научных на-правлений - изменение

DoCmd. Minimize. OpenForm «Добав_НН»

Forms! Добав_НН. Caption = «Изменение информации по научному направлению»

End SubSub к_изм_НПШ_Click()

Me.п_кноп = 1    'поле для идентификации действия (изменить / добавить) для НПШ - изме-нение

DoCmd. Minimize. OpenForm «Добав_НПШ»

Forms! Добав_НПШ. Caption = «Изменение информации по НПШ»

End SubSub к_печать_Click(). MinimizeMe. НаборВкладок3. Value = 1 Then 'проверка рабочей вкладки - научные направления

DoCmd. OpenForm «Печать»! Печать. Caption = «Просмотр и печать отчета по научным направлениям»

End IfMe. НаборВкладок3. Value = 2 Then 'проверка рабочей вкладки - НПШ

DoCmd. OpenForm «Печать»! Печать. Caption = «Просмотр и печать отчета по НПШ»

End IfSubSub к_уд_НПШ_Click()id As String= Forms! Форма! НПШ! [ID НПШ]         'получение ID удаляемой НПШ

Dim str As String= CurrentDb. OpenRecordset (» SELECT Подразделения. [ID подразделения] FROM Подразделения INNER JOIN [НПШ] ON Подразделения. [ID подразделения] = [НПШ]. [ID подразделения] WHERE [НПШ]. [ID НПШ]=» & id &»;»)! [ID подразделения] 'ID подразделения, к которому относиться удаляемая НПШ

If MsgBox («Удалить НПШ?», vbYesNo) = vbYes Then

Dim del As Recordsetdel = CurrentDb. OpenRecordset (» SELECT * FROM НПШ_руководитель WHERE [ID НПШ] =» & id &»;») 'удаляем руководителей из сводной таблицыUntil del.EOF. Delete. MoveNextdel = CurrentDb. OpenRecordset (» SELECT * FROM НОН_НПШ WHERE [ID НПШ] =» & id &»;») 'удаляем НОН из сводной таблицыUntil del.EOF. Delete. MoveNextdel = CurrentDb. OpenRecordset (» SELECT * FROM [НПШ] WHERE [ID НПШ] =» & id &»;»)     'удаляем данные о НПШ из таблицы НПШUntil del.EOF. Delete. MoveNextrec As Recordsetrec = CurrentDb. OpenRecordset (» SELECT max([ID НПШ]) as [n] FROM [НПШ]») 'находим максимальный ID среди НПШrec. RecordCount > 1 Thenmaxid As StringUntil rec.EOF= rec! [n]. MoveNextrec = CurrentDb. OpenRecordset (» SELECT * FROM [НПШ] WHERE [ID НПШ] =» & maxid &»; «) 'находим строку в таблице НПШ с максимальным ID. Edit! [ID НПШ] = CInt(id) 'заменяем ее ID на ID удаленной строки. UpdateIf. Requery! НПШ. Requery! Форма! [сп_рук].RowSource = «SELECT [ID подразделения] as [Ф.И.О.] FROM Подразделения WHERE [ID подразделения] = 0;»! Форма! [сп_НПШ].RowSource = «SELECT [ID подразделения] as [Телефон], [ID подразделения] as [E-mail] FROM Подразделения WHERE [ID подразделения] = 0;»! Форма! [сп_НОН_НПШ].RowSource = «SELECT [ID подразделения] FRom Подразделения WHERE [ID подразделения] = 0;».п_доп_НПШ = «»rec = CurrentDb. OpenRecordset (» SELECT [НПШ]. [ID НПШ] as [id] FROM [НПШ] WHERE [id подразделения] =» & str &»;»)rec. RecordCount = 0 Then.к_уд_НПШ. Enabled = False.к_изм_НПШ. Enabled = FalseIf(«Удаление прошло успешно»). Tree. SetFocus.НПШ. SetFocusIfSubSub к_удал_Click()id As String= Forms! Форма! НН! [id]str As String= CurrentDb. OpenRecordset (» SELECT Подразделения. [ID подразделения] FROM Подразделения INNER JOIN [Научные направления] ON Подразделения. [ID подразделения] = [Научные направления]. [ID подразделения] WHERE [Научные направления]. [ID направления]=» & id &»;»)! [ID подразделения]

If MsgBox («Удалить направление?», vbYesNo) = vbYes Then

Dim del As Recordset

Set del = CurrentDb. OpenRecordset (» SELECT * FROM НН_руководитель WHERE [ID направления] =» & id &»;»)Until del.EOF. Delete. MoveNextdel = CurrentDb. OpenRecordset (» SELECT * FROM НОН_Направление WHERE [ID направления] =» & id &»;»)Until del.EOF. Delete. MoveNextdel = CurrentDb. OpenRecordset (» SELECT * FROM [Научные направления] WHERE [ID направления] =» & id &»;»)Until del.EOF. Delete. MoveNextrec As Recordsetrec = CurrentDb. OpenRecordset (» SELECT max([ID направления]) as [n] FROM [Научные направления]»)rec. RecordCount > 1 Thenmaxid As StringUntil rec.EOF= rec! [n]. MoveNextrec = CurrentDb. OpenRecordset (» SELECT * FROM [Научные направления] WHERE [ID направления] =» & maxid &»; «). Edit! [ID направления] = CInt(id). UpdateIf! Форма! [сп_Ф.И.О.].RowSource = «SELECT [ID подразделения] as [Ф.И.О.] FROM Подразделения WHERE [ID подразделения] = 0;»! Форма! [сп_инф].RowSource = «SELECT [ID подразделения] as [Телефон], [ID подразделения] as [E-mail] FROM Подразделения WHERE [ID подразделения] = 0;»! Форма! [сп_НОН_НН].RowSource = «SELECT [ID подразделения] FRom Подраз-деления WHERE [ID подразделения] = 0;».п_доп_НН = «». Requery! НН. Requeryrec = CurrentDb. OpenRecordset (» SELECT [Научные направления]. [ID направления] as [id] FROM [Научные направления] WHERE [id подразделения] =» & str &»;»)

If rec. RecordCount = 0 Then.к_удал. Enabled = False.к_изм. Enabled = FalseIf(«Удаление прошло успешно»).НН. SetFocusIfSub

Главная форма - управление деревом иерархий и вкладка «ОИС».

Option Compare DatabasestrIDPodr As StringSub EnabledButton()myDb As DatabasemyDb = CurrentDbmyRec As Recordset((VarType (Me.ID_подразделения) <> vbNull) And (Me.ID_подразделения <> «»)) ThenmyRec = myDb. OpenRecordset («SELECT max([№ в группе]) As [НОМЕР] FROM [Руководство] WHERE [ID подразделения] =» & Me.ID_подразделения &»;»)VarType (myRec! [НОМЕР]) = vbNull Then. Добавить. SetFocus

Me. Удалить. Enabled = False. Изменить. Enabled = False. Вверх. Enabled = False. Вниз. Enabled = False. Удалить. Enabled = True. Изменить. Enabled = True. Вверх. Enabled = True. Вниз. Enabled = TrueIfIfSubSub bt_Изменение_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Form_Load()= False(7)_Table(Me.ID_подразделения)_In (Me.ID_подразделения)SubSub Tree_BeforeLabelEdit (Cancel As Integer)= TrueSubSub TreeViewIn (idTekP As Integer)nodX As NodemyDb As DatabasemyRec As RecordsetnodName As Stringstr As Stringst As Stringfl As BooleanmyDb = CurrentDbmyRec = myDb. OpenRecordset («SELECT [ID подразделения], [Название длинное], [Название краткое], [ID родителя], [№ в группе] FROM Подразделения ORDER BY [ID родителя], [№ в группе];»)= TruemyRec. RecordCount <> 0 ThenUntil myRec.EOF= myRec! [Название длинное]

If VarType (myRec! [Название краткое]) <> vbNull Then= nodName & «(» & myRec! [Название краткое] &»)»IfmyRec! [ID родителя] = 0 ThennodX = Tree. Nodes. Add (, CStr(myRec! [ID подразделения]) & «_», nodName)nodX = Tree. Nodes. Add (CStr(myRec! [ID родителя]) & «_», tvwChild, CStr (myRec! [ID подразделения]) & «_», nodName)fl And (myRec! [ID подразделения] = idTekP) Then. EnsureVisible. Selected = True= CStr (myRec! [ID подразделения])= False= «»VarType (myRec! [Название краткое]) <> vbNull Then= «-» & CStr (myRec! [Название краткое])If. Заголовок. Caption = CStr (myRec! [Название длинное]) & st

End IfIf. MoveNextSubIf. Form. RecordSource = «SELECT * FROM Подразделения WHERE [ID подразделения]=» & str &»;»

Me. Поиск_подразделения. RowSource = «SELECT Подразделения. [ID подразделения], Подразделения. [Название длинное] FROM Подразделения ORDER BY Подразделения. [Название длинное];»SubSub Tree_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Tree_LostFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Tree_NodeClick (ByVal Node As Object)myDb As DatabasemyRec As Recordsetstr As Stringi As Integer= Left (Me. Tree. SelectedItem. Key, Len (Me. Tree. SelectedItem. Key) - 1)myDb = CurrentDbmyRec = myDb. OpenRecordset («SELECT * FROM Подразделения WHERE [ID подразделения]=» & str &»;»)myRec! [ID родителя] <> 0 Then. Form. RecordSource = «SELECT * FROM Подразделения WHERE [ID подразделения]=» & str &»;»_Table(Me.ID_подразделения)_In (Me.ID_подразделения)= «»VarType (myRec! [Название краткое]) <> vbNull Then

st = «-» & CStr (myRec! [Название краткое])

End If. Заголовок. Caption = CStr (myRec! [Название длинное]) & stIfSubSub Кнопка67_Click()Error GoTo Err_Кнопка67_Click. PreviousControl. SetFocus. FindNext_Кнопка67_Click:Sub_Кнопка67_Click:Err. DescriptionExit_Кнопка67_ClickSubSub bt_Изменение_Click()Error GoTo Err_bt_Изменение_ClickstDocName As StringstLinkCriteria As String= ChrW(1048) & ChrW(1079) & ChrW(1084) & ChrW(1077) & ChrW(1085) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077). OpenForm stDocName, stLinkCriteria_bt_Изменение_Click:Sub_bt_Изменение_Click:Err. DescriptionExit_bt_Изменение_ClickSubSub Tree_Updated (Code As Integer)testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Вверх_Click() Forms! [Форма]! [Руководство]! [№ в группе] <> 1 Then

Dim adress As Integernum As Integer

adress = Forms! [Форма]! [Руководство]! [ID_руководителя]= Forms! [Форма]! [Руководство]! [№ в группе]

Dim myDb As DatabasemyDb = CurrentDbmyRec As RecordsetmyRec = myDb. OpenRecordset («SELECT * FROM [Руководство] WHERE [ID подразделения] =» & Forms! [Форма]! [Руководство]! [ID_подразделения] & «AND [№ в группе] =» & (num - 1) &»;»). Edit! [№ в группе] = myRec! [№ в группе] + 1

myRec. UpdatemyRec = myDb. OpenRecordset («SELECT * FROM [Руководство] WHERE [ID подразделения] =» & Forms! [Форма]! [Руководство]! [ID_подразделения] & «AND [ID руководителя] =» & adress &»;»). Edit! [№ в группе] = myRec! [№ в группе] - 1

myRec. Update! [Форма]! [Руководство].Form. RequeryIfSubSub Вверх_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Вверх_подр_Click()myDb As DatabasemyDb = CurrentDbmyRec As RecordsetIDTek As Integer= Left (Me. Tree. SelectedItem. Key, Len (Me. Tree. SelectedItem. Key) - 1)myRec = myDb. OpenRecordset («SELECT [№ в группе] FROM [Подразделения] WHERE [ID подразделения] =» & IDTek &»;»)numInGr As Integer= myRec! [№ в группе]

Set myRec = myDb. OpenRecordset («SELECT [ID родителя] FROM [Подразделения] WHERE [ID подразделения] =» & IDTek &»;»)

Dim IDRod As Integer= myRec! [ID родителя]((numInGr <> 1) And (IDRod <> 0)) ThenmyRec = myDb. OpenRecordset («SELECT [ID подразделения] FROM [Подразделения] WHERE [ID родителя] =» & IDRod & «AND [№ в группе] =» & (numInGr - 1) &»;»)IDPred As Integer= myRec! [ID подразделения]myRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID подразделения] =» & IDTek &»;»). Edit! [№ в группе] = numInGr - 1. UpdatemyRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID подразделения] =» & IDPred &»;»). Edit! [№ в группе] = numInGr. Update. Nodes. Clear(IDTek)IfSubSub Вверх_подр_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Вниз_Click()myDb As DatabasemyDb = CurrentDbmyRec As RecordsetmyRec = myDb. OpenRecordset («SELECT max([№ в группе]) As [НОМЕР] FROM [Руководство] WHERE [ID подразделения] =» & Me. [ID подразделения] &»;»)maxNum As Integer= myRec! [НОМЕР]maxNum = 0 Then= 1IfForms! [Форма]! [Руководство]! [№ в группе] <> maxNum Then

Dim adress As Integernum As Integer

adress = Forms! [Форма]! [Руководство]! [ID_руководителя]= Forms! [Форма]! [Руководство]! [№ в группе]

Set myRec = myDb. OpenRecordset («SELECT * FROM [Руководство] WHERE [ID подразделения] =» & Forms! [Форма]! [Руководство]! [ID_подразделения] & «AND [№ в группе] =» & (num + 1) &»;»). Edit! [№ в группе] = myRec! [№ в группе] - 1

myRec. UpdatemyRec = myDb. OpenRecordset («SELECT * FROM [Руководство] WHERE [ID подразделения] =» & Forms! [Форма]! [Руководство]! [ID_подразделения] & «AND [ID руководителя] =» & adress &»;»). Edit! [№ в группе] = myRec! [№ в группе] + 1

myRec. Update! [Форма]! [Руководство].Form. RequeryIfSubSub Вниз_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Вниз_подр_Click()myDb As DatabasemyDb = CurrentDbmyRec As RecordsetIDTek As Integer= Left (Me. Tree. SelectedItem. Key, Len (Me. Tree. SelectedItem. Key) - 1)myRec = myDb. OpenRecordset («SELECT [№ в группе] FROM [Подразделения] WHERE [ID подразделения] =» & IDTek &»;»)numInGr As Integer= myRec! [№ в группе]

Set myRec = myDb. OpenRecordset («SELECT [ID родителя] FROM [Подразделения] WHERE [ID подразделения] =» & IDTek &»;»)

Dim IDRod As Integer= myRec! [ID родителя]myRec = myDb. OpenRecordset («SELECT max([№ в группе]) As [MAXN] FROM [Подразделения] WHERE [ID родителя] =» & IDRod &»;»)maxNum As Integer= myRec! [maxN]((numInGr <> maxNum) And (IDRod <> 0)) ThenmyRec = myDb. OpenRecordset («SELECT [ID подразделения] FROM [Подразделения] WHERE [ID родителя] =» & IDRod & «AND [№ в группе] =» & (numInGr + 1) &»;»)IDSled As Integer= myRec! [ID подразделения]myRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID подразделения] =» & IDTek &»;»). Edit! [№ в группе] = numInGr + 1. UpdatemyRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID подразделения] =» & IDSled &»;»). Edit! [№ в группе] = numInGr. Update. Nodes. Clear(IDTek)IfSubSub Вниз_подр_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Добавить_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Добавление_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Изм_подч_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Изменить_Click()Error GoTo Err_Изменить_ClickstDocName As StringstLinkCriteria As String= ChrW(1048) & ChrW(1079) & ChrW(1084) & ChrW(1077) & ChrW(1085) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(95) & ChrW(50). OpenForm stDocName, stLinkCriteria_Изменить_Click:Sub_Изменить_Click:Err. DescriptionExit_Изменить_ClickSubSub Изменить_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Поиск_GotFocus()testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Поиск_подразделения_AfterUpdate() Me. Поиск_подразделения. Column(0) <> «» And VarType (Me. Поиск_подразделения. Column(0)) <> vbNull Then. Nodes. Clear(Me. Поиск_подразделения. Column(0))IfSubSub Поиск_подразделения_NotInList (NewData As String, Response As Integer)

MsgBox («Выбрать подразделение можно только из списка!»)

Response = acDataErrContinue. Поиск_подразделения. UndoSubSub Удаление_пдразделения_Click()MsgBox («Удалить подразделение?», vbYesNo) = vbYes ThenflOk As Boolean= Truestr As Stringrod As StringIDPodr As Integer= Left (Forms! [Форма]! Tree. SelectedItem. Key, Len (Forms! [Форма]! Tree. SelectedItem. Key) - 1)myDb As DatabasemyDb = CurrentDbmyRec As RecordsetmyRec = myDb. OpenRecordset («SELECT max([ID родителя]) As [ID] FROM [Подразделения] WHERE [ID подразделения] =» & IDPodr &»;»)= myRec! [ID]flChildren As BooleanmyRec = myDb. OpenRecordset («SELECT max([ID подразделения]) As [IDR] FROM [Подразделения] WHERE [ID родителя] =» & IDPodr &»;»)VarType (myRec! [IDR]) = vbNull Then= False= TrueIfflRuk As BooleanmyRec = myDb. OpenRecordset («SELECT max([ID руководителя]) As [R] FROM [Руководство] WHERE [ID подразделения] =» & IDPodr &»;»)VarType (myRec! [R]) = vbNull Then= False= TrueIfmyRec = myDb. OpenRecordset («SELECT max([№ в группе]) As [NUMM] FROM [Подразделения] WHERE [ID подразделения] =» & IDPodr &»;»)numInGr As Integer= myRec! [NUMM]rektorat As BooleanmyRec = myDb. OpenRecordset («SELECT [ID родителя] FROM [Подразделения] WHERE [ID подразделения] =» & IDPodr &»;»)myRec! [ID родителя] = 1 ThenmyRec = myDb. OpenRecordset («SELECT max([№ в группе]) As [NUMMM] FROM [Подразделения] WHERE [ID родителя] =» & 1 &»;»)myRec! [NUMMM] = 1 Then= TrueIfIfIDRod = 0 Then

MsgBox («Нельзя удалять вид подразделения!»)

flOk = FalseflChildren Then

MsgBox («Нельзя удалять подразделение, если у него есть подчиненные подразделения!»)

flOk = FalseflRuk Then

MsgBox («Нельзя удалять подразделение, если у него есть хоть кто-то в руководстве!»)

flOk = Falserektorat Then

MsgBox («Руководство должно иметь хотя бы одно подразделение!»)

flOk = FalsemyRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID подразделения] =» & IDPodr &»;»)myRec. RecordCount <> 0 Then. DeleteIfIfIfIfIfflOk ThenmyRec = myDb. OpenRecordset («SELECT max([ID подразделения]) as [MAXID] FROM [Подразделения] WHERE [ID подразделения];»)maxID As Integer= myRec! [maxID]myRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID подразделения] =» & maxID &»;»). Edit! [ID подразделения] = IDPodr. UpdatemyRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID родителя] =» & maxID &»;»)myRec. RecordCount <> 0 ThenUntil myRec.EOF. Edit! [ID родителя] = IDPodr. UpdateIfmyRec = myDb. OpenRecordset («SELECT max([№ в группе]) as [MAXNUMINGR] FROM [Подразделения] WHERE [ID родителя] =» & IDRod &»;»)maxNumInGroop As IntegermyRec. RecordCount <> 0 And VarType (myRec! [MAXNUMINGR]) <> vbNull Then= myRec! [MAXNUMINGR]= 1Ifi = (numInGr + 1) To maxNumInGroopmyRec = myDb. OpenRecordset («SELECT * FROM [Подразделения] WHERE [ID родителя] =» & IDRod & «AND [№ в группе] =» & i &»;»)

myRec. Edit! [№ в группе] = myRec! [№ в группе] - 1

myRec. Updateiidp As IntegermyRec = myDb. OpenRecordset («SELECT [ID подразделения] FROM [Подразделения] WHERE [ID родителя] =» & IDRod & «AND [№ в группе] =» & 1 &»;»)((VarType (myRec! [ID подразделения]) <> vbNull) And (myRec. RecordCount <> 0)) Then= myRec! [ID подразделения]myRec = myDb. OpenRecordset («SELECT [ID подразделения] FROM [Подразделения] WHERE [ID подразделения] =» & IDRod &»;»)= myRec! [ID подразделения]IfmyRec = myDb. OpenRecordset («SELECT [ID родителя] FROM [Подразделения] WHERE [ID подразделения] =» & idp &»;»)myRec! [ID родителя] = 0 ThenmyRec = myDb. OpenRecordset («SELECT [ID подразделения] FROM [Подразделения] WHERE [ID родителя] =» & 1 & «AND [№ в группе] =» & 1 &»;»)= myRec! [ID подразделения]If. Nodes. Clear(idp)IfIfSub

Private Sub Удаление_пдразделения_GotFocus()

If testFlag Then. Nodes. Clear(tekPodrSelect)= FalseIfSubSub Удалить_Click()

If MsgBox («Вы действительно хотите удалить» & Forms! [Форма]! [Руководство]! [Поле26] & «из подразделения» & Me. Название_длинное &»?», vbYesNo) = vbYes Then

Dim myDb As DatabasemyDb = CurrentDbmyRec As RecordsetmyRec = myDb. OpenRecordset («SELECT max([№ в группе]) As [НОМЕР] FROM [Руководство] WHERE [ID подразделения] =» & Me.ID_подразделения &»;»)maxNum As Integer= myRec! [НОМЕР]adress As Integernum As Integer

adress = Forms! [Форма]! [Руководство]! [ID_руководителя]= Forms! [Форма]! [Руководство]! [№ в группе]

Set myRec = myDb. OpenRecordset («SELECT * FROM [Руководство] WHERE [ID подразделения] =» & Forms! [Форма]! [Руководство]! [ID_подразделения] & «AND [ID руководителя] =» & Forms! [Форма]! [Руководство]! [ID_руководителя] &»;»)myRec. RecordCount <> 0 Then. DeleteIfForms! [Форма]! [Руководство]! [№ в группе] <> maxNum Then

For i = num + 1 To maxNummyRec = myDb. OpenRecordset («SELECT * FROM [Руководство] WHERE [ID подразделения] =» & Me.ID_подразделения & «AND [№ в группе] =» & i &»;»)

myRec. Edit! [№ в группе] = myRec! [№ в группе] - 1

myRec. UpdateiIf! [Форма]! [Руководство].Form. RequeryIfSubSub Добавить_Click()Error GoTo Err_Добавить_ClickstDocName As StringstLinkCriteria As String= ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1083) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077). OpenForm stDocName, stLinkCriteria_Добавить_Click:Sub_Добавить_Click:Err. DescriptionExit_Добавить_ClickSubSub Добавление_Click()Error GoTo Err_Добавление_ClickstDocName As StringstLinkCriteria As String= ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1083) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(32) & ChrW(1087) & ChrW(1086) & ChrW(1076) & ChrW(1088) & ChrW(1072) & ChrW(1079) & ChrW(1076) & ChrW(1077) & ChrW(1083) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1103). OpenForm stDocName, stLinkCriteria_Добавление_Click:Sub_Добавление_Click:Err. DescriptionExit_Добавление_ClickSubSub renewingTree (activPodr As Integer)nodX As NodemyDb As DatabasemyRec As RecordsetnodName As Stringstr As Stringst As Stringfl As BooleanmyDb = CurrentDbmyRec = myDb. OpenRecordset («SELECT [ID подразделения], [Название длинное], [Название краткое], [ID родителя], [№ в группе] FROM Подразделения ORDER BY [ID родителя], [№ в группе];»)= TruemyRec. RecordCount <> 0 ThenUntil myRec.EOF= myRec! [Название длинное]

If VarType (myRec! [Название краткое]) <> vbNull Then= nodName & «(» & myRec! [Название краткое] &»)»IfmyRec! [ID родителя] = 0 ThennodX = Tree. Nodes. Add (, CStr(myRec! [ID подразделения]) & «_», nodName)nodX = Tree. Nodes. Add (CStr(myRec! [ID родителя]) & «_», tvwChild, CStr (myRec! [ID подразделения]) & «_», nodName)fl And myRec! [ID подразделения] = activPodr Then. EnsureVisible. Selected = True= CStr (myRec! [ID подразделения])= False= «»VarType (myRec! [Название краткое]) <> vbNull Then= «-» & CStr (myRec! [Название краткое])If. Заголовок. Caption = CStr (myRec! [Название длинное]) & st

End IfIf. MoveNextSubIf. Form. RecordSource = «SELECT * FROM Подразделения WHERE [ID подразделения]=» & str &»;»SubSub Поиск_Click()Error GoTo Err_Поиск_ClickstDocName As StringstLinkCriteria As String. OpenForm stDocName, stLinkCriteria_Поиск_Click:Sub

End Sub

Похожие работы на - Разработка автоматизированной информационной системы учета объектов интеллектуальной собственности

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!