Разработка базы данных ”Коллективный договор” и приложения для работы с ней, страница 3

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

Кроме того, имеется зависимость между характеристиками. Например, при значении Признака = АН (аналоги), могут быть использованы акты; КЗОТ, ОБР, ОТС.

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

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

В список актов из таблицы Акты выбираются те значения, у которых в поле Акты, Признак записано соответствующее значение признака.

В  список  разделов/типов  в  зависимости  от  значения  поля  Признак  выбираются соответствующие значения из таблицы разделов.

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

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

При задании названия учреждения, его адреса и названия договора, необходимо обеспечить, чтобы введённые названия не повторялись. Это можно обеспечить средствами VBA, а также предоставив пользователю возможность ввода значений из списков, сформированных на основе данных уже хранящихся в базе. При вводе из списков необходимо обеспечить соответствие по цепочке “Учереждение – Город – Область - Регион”.

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

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

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

Так как договора, как правило, находятся в формате документов Microsoft Word (*.doc), rich text format (*.rtf) и т.п. удобно использование интеграции с MS Word посредством OLE (objects link and emedding). Это обеспечивает возможность работы со всеми форматами файлов, поддерживаемых Microsoft Word.

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

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

Для работы с данными, содержащимися в БД, было решено создать одну форму, которая интегрировала бы в себе все возможности по обработке, просмотру, получению статистических данных. Для этого создана форма ленточного типа, отображающая содержимое пункта и его характеристики. Так как пункты не удобно просматривать в одной строке, для текущего пункта есть специально текстовое поле, куда помещается его содержимое автоматически при выборе пункта. Для выделения необходимых данных на форме имеются средства для показа только пунктов с характеристиками, удовлетворяющими определенным условиям. То есть можно показывать только пункты с определенным значением полей признака, акта, раздела (типа), вопроса. Или можно учитывать произвольную комбинацию значений этих полей для отбора данных. То есть можно выбрать, например, все пункты с признаком «улучшение положений» актов «КЗОТ» взятых из раздела «Трудовой договор». Либо просто все пункты, касающиеся актов «КЗОТ» из раздела «Трудовой договор», все пункты, с признаком «улучшение положений» с вопросом =1 и т.д. (возможны любые подобные комбинации).

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

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

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

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