Связь моделей
FRONTIER-logo

СИСТЕМА ОПЕРАТИВНОГО И УПРАВЛЕНЧЕСКОГО УЧЕТА

data-warehouse 03
  • Автоматизация торговых и
  • производственных процессов
  • Планирование материальных
  • потребностей на базе MRP II и TOC
  • Бесплатная рабочая версия для
  • оценки пригодности Системы

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

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

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

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

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

        a) В поле EditStyle колонки текущей модели выбираем ViewModel.

        b) В поле Parameters вводим следующую строку вызова окна модели-справочника:

      *.d_some_groups      (1)

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

В модели d_some_groups опишем строковый параметр:  pGroup:string
В свойстве WHERE модели напишем строку: GROUP_OF = :pGroup,

     где GROUP_OF – это символьная колонка ссылочной таблицы.

Если в модели-родителе не изменить строку (1), то открытие справочника приведет к появлению на экране пустой таблицы. Необходимо внести коррективы:

    *.d_some_reference?pGroup=’01’  (2)

В качестве передаваемого параметра  может быть указана не только константа, но и значение любой колонки текущей строки (^Column), глобальная переменная (@VarName) или результат вычисления какого-либо выражения над текущей строкой (  (Expression)  ).
3.  Вариант присвоения параметру значения по умолчанию

В модели d_some_groups опишем строковый параметр:  pGroup:string=’01’

В свойстве WHERE модели напишем строку:  GROUP_OF = :pGroup,

       где GROUP_OF – это символьная колонка ссылочной таблицы.

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