СТАТЬЯ
30.04.02

Предыдущая часть

Исследование возможностей CASE-технологии
при создании интеллектуальных систем управления

(c) 2000 Семизельникова О.А.

Эта статья была размещена на сайте www.inftech.webservis.ru/

3. Разработка структуры данных “Обобщенный Документ”

3.1. Основные сведения
3.2.Принципы проектирования базы данных в Обобщенном документе
3.3. Этапы создания базы данных в Обобщенном документе
3.4. Функция sd09 “Формирование броузера объектов”

3. Разработка структуры данных “Обобщенный Документ”

3.1. Основные сведения

Как правило реальные данные в проблемной области имеют иерархическую структуру, поэтому целесообразно использовать объекты БД имеющие идентичную структуру. В связи с этим на основе общих возможностей и компонент CASE – средства qWORD5 разработана новая структура данных, названная “Обобщенный документ” (ОД).

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

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

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

Рис. 3.1. Структура Обобщенного документа

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

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

Ключ=Папка#ключ1#ключ2#ключ3#...

В таком случае естественно говорить об уровнях:

  1. уровень папки(полный ключ определяется только кодом папки),
  2. уровень документов (Папка#ключ1) ,
  3. уровень документострок (Папка#ключ1#ключ2),
  4. уровень подстрок (Папка#ключ1#ключ2#ключ3)

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

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

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

Словарь[Имя_понятия][Значение_понятия]=ключ

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

3.2. Принципы проектирования базы данных в Обобщенном документе

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

Для отображения имеющихся задач и работы с ними имеется “Основное окно проектирования задач”, представленное на рис.3.2. Здесь отображаются следующие системные понятия: код документа (папки), наименование документа, код задачи, наименование задачи, код фрейма-описателя данного вида документа, наименование фрейма-описателя данного вида документа, номер основного экрана для ввода и просмотра документов, номер экрана для вывода документа в виде печатной формы.

Рис. 3.2. Основное окно проектирования задач

Задача имеет имя и код (идентификатор задачи). В дальнейшем имя можно изменять, код же остается неизменным. По развертке можно посмотреть наличие каких-либо других задач и выбрать необходимую. Код папки задается произвольно, либо присваивается автоматически. Код задачи - это заглавная латинская буква (как правило, буква, с которой начинается имя задачи, например: C Справочники) и затем две цифры порядкового номера 01, 02, 03 и т.д. По развертке можно посмотреть наличие каких-либо других папок этой задачи;

Наименование и код фрейма-описателя - здесь указывается имя и номер фрейма, отвечающего за эту папку, т.е. в этом фрейме хранится описание экранов данной папки, функции, отвечающие за работу и т.п. Номер фрейма (0,1,2,...,88,89) выбирается самостоятельно или присваивается автоматически (по порядку).

Все свойства для заданного вида документов содержатся в специальном понятии Yfeat (пример приведен в приложении 1). Каждое свойство имеет код, название и значение. Кроме того, у свойства могут быть подсвойства и система атрибутов, структура атрибутов для данного свойства одинакова. Свойства документов могут быть базовыми, которые присущи всем документам и специальными, которые описываются для определенного вида документа. Базовые свойства формируются при описании структуры папки. Первоначально, вновь созданная папка имеет структуру представленную на рис.3.3, где по умолчанию представлен первый (системный) уровень. На нем хранятся базовые свойства, содержащие информацию о папке (структура, название, ..) Свойства на уровне qqw.level* при необходимости можно удалить.

Основное окно проектирования свойств представлено на рис. 3.3.

Рис. 3.3. Основное окно проектирования свойств

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

Описание и структура базовых свойств приведена в табл. 3.1:

Таблица 3.1

Код
Свойства
Наименование свойства
Значение свойства
Код подсвойства
Атрибуты
Qqw


Понятие
Список терминальных понятий в формате функции flt0
Код понятия БД
1
Код понятия
2
Уровень
3
Наименование
4
Размер
5
Синоним
6
Признак
7
Список зависимых понятий
8
Список влияющих понятий
9
Уровень определения правил вывода
10
Имя функции правила вывода
11
Признак ключевого понятия
12
Признак обязательного понятия
Level




Уровни
Номер уровня
1
Номер уровня
2
Список терминальных понятий
3
Список ключевых понятий
4
Список обязательных понятий
5
Список понятий для броузера
6
Список названий граф для броузера
7
Список размеров граф
8
Список сообщений
Qqnump
Экраны
Список экранных форм
Номер экрана
1
Номер экрана
2
Вид экрана
3
Наименование экрана

Пояснения атрибутов свойства Qqw приведены в табл. 3.2.

Таблица 3.2.

Название графы
Пояснение
1
Код понятия Код понятия
2
Уровень Уровень, на котором находится понятие (2,3,4,*) (* - на любом уровне)
3
Наименование Наименование понятия
4
Размер Размер для браузера
5
Синоним Краткое обозначение понятия, которое, в случае формирования динамических таблиц, будет являться названием какого-либо элемента экрана
6
Признак Признак понятия (порождаемое)
7
Список зависимых понятий Указывается от чего зависит понятие (список понятий через ",")
8
Список влияющих понятий Указывается на что влияет понятие (список понятий через ",") (формируется автоматически)
9
Уровень определения правил вывода Экран определения для порождаемого понятия (где указано def0 для текущего понятия)
10
Имя функции правила вывода Правило вывода порождаемого понятия (формируется автоматически)
11
Признак ключевого понятия Ключевое
12
Признак обязательного понятия Обязательное

3.3. Этапы создания базы данных в Обобщенном документе

При разработке нового проекта сначала создается задача – задается ее имя, код, код и имя папки, привязывается исполняющий фрейм (экранная форма, которая с помощью qW была спроектирована, если необходимо, пользователем).

Далее необходимо произвести описание создаваемых структур БД, используя основное окно проектирования свойств. Добавление специальных свойств на любом уровне производится следующим образом: выбираем нужный уровень и нажимаем клавишу “Insert”. Появляется вшитое в qW окно “Описание Понятий” (рис. 3.4), где можно создать новое понятие или выбрать существующее.

Рис. 3.4. Окно “Описания понятий”

По нажатию кнопки “Выбор” выбранные свойства переносятся на нужный уровень (рис. 3.5).

Рис. 3.5.Основное окно проектирования свойств. Понятия второго уровня иерархии

Таким же образом заполняются остальные уровни (рис. 3.6, рис. 3.7). При необходимости можно добавить новые уровни.

Рис. 3.6. Основное окно проектирования свойств. Понятия трьетьего уровня

Рис. 3.7. Основное окно проектирования свойств. Понятия четвертого уровня

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

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

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

Рис. 3.8. Интерфейсное окно ввода информации в базу данных

Для динамического формирования таблиц используется функция sd09

3.4. Функция sd09 “Формирование броузера объектов”

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

М-код функции sd09 приведен в приложении 2.

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

Некоторая_Переменная_Пользователя = $$F(“sd09”, qqpar 1,…, qqpar 4)

или D D(“sd09”, qqpar 1,…, qqpar 4).

Параметры:

qqpar1 - описатель таблицы, состоящий из следующих списков:

разделитель в списке ",", списки разделены ";".

qqpar2 - код записи (по умолчанию qqc) начала вывода данных.

qqpar3 - параметр просмотра данных состоящий из следующих полей, разделенных через "," :

qqpar4 - список переносимых понятий.

Параметр qqpar4 - список переносимых понятий, состоит из двух списков понятий, разделенных через ",". Первый список понятий содержит понятия (необязательно терминальные), переносимые из выбранной записи в массив W. Если требуется переприсваивание выбранных понятий используется второй список.

Функция возвращает выбранный код записи: "0" - запрашиваемых данных нет, "" - при отказе от выбора.

Пример использования вызова функции sd09 (на языке М):

new par

set par(1)="Группы_Факультета; C, studGR, studK; 22,9,15; Ключ, N_группы, ФИО_куратора"

set par(2)="A01"

set par(3)="3,4"

set par(4)="C"

set %1=$$F("sd09",par(1),par(2),par(3),par(4))

Здесь:

Группы_Факультета – название таблицы,
C – код записи (структурированный ключ),
studGR, studK – понятия, которые будут отображаться в столбце,
22,9,15; – размеры граф таблицы,
Ключ, N_группы, ФИО_куратора – заголовки граф таблицы.
В результате выполнения кода будет выведено окно, представленное на рисунке

Рис. 3.9. Универсальный броузер объектов

Броузер устроен таким образом, что выделив некоторую запись (например с кодом А01.000000.000000.000) и нажав на кнопку “Выбор”, переходим на следующий уровень.

Полученные записи следующего уровня представлены на рис. 3.10.

Рис. 3.10. Универсальный броузер объектов

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

Продолжение

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 30.04.02