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

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

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

 

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

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

 

На следующем рисунке представлен экранный снимок редактора объекта класса Сущность:

EntityProp

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

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

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

 

Свойства объекта Сущность

Свойство Описание
Таблица Основная используемая таблица (источник данных)
Код Краткое обозначение объекта. Ввод обязателен
Наименование Полное наименование объекта
Описание Дополнительная информация об объекте
Условие отбора Необязательное условие, по которому отбираются строки из основной таблицы.
Действия
List Модель, отображаемая при необходимости вывода строк источника в табличном виде
DropDown Модель, визуальное представление которой отображается на экране при необходимости вывода диалогового окна справочника
View Модель, вызываемая для отображения свойств текущей записи в режиме READONLY
Edit Модель, вызываемая для отображения редактируемых свойств текущей записи
Print Модель, отображаемая при вызове команды Главного меню Функции>Печатные формы. Данное действие может быть переопределено в событии showDocument класса контроллера родительской визуальной модели