Объекты системы Miracle (часть II)
Специализированные объекты

часть первая

Генератор уникальной строки

  Компонент создающий уникальную строку на основании заданных параметров:

  • Маска - строка для ввода маски генерации уникальной строки. Маска может состоять из необходимого количества элементов определяющих длину получаемой строки. Строка может состоять из набора символов или чисел. Для задания маски строки состоящей из чисел используйте знак «#». Данный знак будет заменен числом от 0 до 9. Для задания маски строки состоящей из символов, используйте знак «?». Данный знак будет заменен символом, указанным в параметре - Набор. Для задания маски строки состоящей из числа и символов используйте знаки «#» и «??» в маске одновременно.
  • Набор - набор символов используемых для генерации уникальной строки.

Программирование компонента
События

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

Реакции

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

Связь по данным
Источники

  • Уникальная строка - последняя сгенерированная строка.

Приемники

  • Маска - приемник строки маски генерации строки.
  • Набор - приемник строки набора символов для генерации строки.

Информационное окно

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

  • Простое
  • Предостережение
  • Информационное
  • Ошибка

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

  • ОК
  • Да Нет Отменить
  • Да Нет
  • ОК Отменить
  • Повторить Отменить
  • Прервать Повторить Игнорировать

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

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

Программирование компонента
События

  В качестве возможных событий компонента выступают названия возможных кнопок, вне зависимости от выбранного набора:

  • Да
  • Игнорировать
  • Нет
  • ОК
  • Отменить
  • Повторить
  • Прервать

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

Реакции

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

Связь по данным
Источники

  • Заголовок - строка, отображаемая в области - заголовка информационного окна.
  • Сообщение - строка, отображаемая в области - тела информационного окна.

Приемники

  • Заголовок - приемник строки для отображения в области - заголовка информационного окна.
  • Сообщение - приемник строки для отображения в области - тела информационного окна.

Календарь

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

По умолчанию календарь устанавливается на текущую дату в системе.

Программирование компонента
События

  • Выбрана новая дата - событие, сигнализирующее о том, что пользователь произвел смену даты в диалоговом окне “Календарь”, и вышел из него нажатием кнопки - “ОК”.
  • Отказ от выбора даты - событие сигнализирующее о том, что пользователь произвел смену даты в диалоговом окне “Календарь”, и вышел из него нажатием кнопки - “Отмена”.
  • Ошибка загрузки даты - событие, сигнализирующее о том, что компонент не смог получить информацию с новой датой по установленной связи по данным.
  • Установлена новая дата - событие, сигнализирующее о том, что компонент успешно загрузил информацию с новой датой по установленному информационному каналу.

Реакции

  • Выбрать дату - команда активизирует предоставление диалогового окна “Календарь”.
  • Загрузить год - команда активизирует загрузку - Года, т.е. установка нового года в компоненте - Календарь.
  • Загрузить дату - команда активизирует загрузку - Даты, т.е. установка новой текущей даты в компоненте - Календарь.
  • Загрузить день - команда активизирует загрузку - Дня, т.е. установка нового дня в компоненте - Календарь.
  • Загрузить месяц - команда активизирует загрузку - Месяца, т.е. установка нового месяца в компоненте - Календарь.

Связь по данным
Источники

  • Дата - текущая (установленная) дата в компоненте - Календарь.
  • День - текущий (установленный) день в компоненте - Календарь.
  • Месяц - текущий (установленный) месяц в компоненте - Календарь.
  • Год - текущий (установленный) год в компоненте - Календарь.
  • Номер дня недели - число номера дня недели в установленной дате компонента - Календарь.
  • Название дня недели - строка с названием дня недели в установленной дате компонента - Календарь.
  • Название месяца - строка с названием месяца в установленной дате компонента - Календарь.
  • Номер дня в году - номер дня в году (от 01 января) от установленной даты компонента - Календарь.
  • Дней до конца года - число дней до конца года (31 декабря) от установленной даты компонента - Календарь.

Приемники

  • Дата - приемник устанавливаемой даты.
  • День - приемник устанавливаемого дня.
  • Месяц - приемник устанавливаемого месяца.
  • Год - приемник устанавливаемого года.

Логический аккумулятор

  Компонент логический аккумулятор может иметь переменное состояние: включен, выключен. Что позволяет строить логические схемы, производящие действия в зависимости от состояния логического аккумулятора. Состояние - включен (“истина”), отражается числом - 1. Состояние - выключен (“ложь”), отражается числом - 0.

Программирование компонента
События

  • Ошибка загрузки данных - сигнализирует о том, что компонент не смог загрузить значение.
  • Текущее значение “истина” - сигнализирует о том, что компонент находится в состоянии “истина” (1), включен.
  • Текущее значение “ложь” - сигнализирует о том, что компонент находится в состоянии “ложь” (0), выключен.
  • Установлено значение “истина” - сигнализирует о том, что компонент переключен в состояние “истина” (1), включен.
  • Установлено значение “ложь” - сигнализирует о том, что компонент переключен в состояние “ложь” (0), выключен.

Реакции

  • Загрузить данные - команда, активизирующая загрузку состояния логического аккумулятора.
  • Проверить текущее состояние - команда активизирует анализ состояния компонента. Что в свою очередь приводит к посылке сообщений: текущее значение “истина” или “ложь” в зависимости от состояния элемента.
  • Установить значение “истина” - команда, переключающая логический аккумулятор в состояние “истина” (1), включен.
  • Установить значение “ложь” - команда, переключающая логический аккумулятор в состояние “ложь” (0), выключен.

Связь по данным
Источники

  • Значение - текущее состояние компонента : 1 - включен (“истина”); 0 - выключен (“ложь”).
  • Строка - ...

Приемники

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

Логический анализатор

  Компонент - логический анализатор предоставляет механизм по проектированию собственных специализированных объектов. Встроенный набор “Операторов” позволяет моделировать необходимое поведение создаваемого компонента. Метод программирования основан на последовательном выполнении операторов в каждой строке скрипта компонента. Выполнение начинается со строки “00” и заканчивается последней строкой, или оператором “Стоп”.
  Проектирование компонента осуществляется с использованием 5 областей окна “логического анализатора”, определяющие скрипт создаваемого компонента.
  Диалоговое окно разбито на:

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

  Спроектированный компонент может быть сохранен в виде файла *.lnl, с возможностью его загрузки в вновь создаваемые логические анализаторы.
  Таким образом, возможно, создавать библиотечки собственных элементов и включать их в различные проекты. Внешнее использование скрипта компонента будет выглядеть точно так же как и использование любого другого компонента системы. Т.е. основываясь на списке “реакций” и “событий” элемента.

Программирование компонента

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

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

Операторы

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

  • Меньше
  • Больше
  • Равно
  • Не равно
  • Больше или равно
  • Меньше или равно
  • Установлен флаг
  • Сброшен флаг

      Для нормальной работы оператора - условие, необходимо, два операнда. Первый операнд должен быть выбран в области данных. (Из подготовленного “списка данных”.) Второй операнд задается в дополнительном диалоговом окне “Выбор операнда”. Тип второго операнда может быть:

  • Данные (Список данных)
  • Константы (Список констант)

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

  • Число
  • Дата
  • Время
  • Строка

  Последний шаг описывает переход при получении результата “Истина” в результате сравнения указанных операндов. Переход задается выбором строки в области “Номер строки передачи управления” в диалоговом окне “Выбор операнда”. Таким образом, проектирование оператора условие осуществляется в следующей последовательности:

  1. Выбор первого операнда (в “списке данных” )
  2. Выбор критерия сравнения
  3. Выбор второго операнда (в диалоговом окне “Выбор оператора”)
  4. Определение типа сравниваемых данных (область “тип данных” в диалоговом окне “Выбор операнда”)
  5. Определение строки перехода при получении “истина” (в области “Указание строки перехода” в диалоговом окне “Выбор операнда”)
До начала проектирования оператора - условие, необходимо подготовить список данных (констант), а так же подготовить строку для перехода при получении результата “истина”.

  Выполнение оператора строится по следующей схеме:

Первый операнд   Второй операнд
НЕТ Критерий сравнения ДА
Выполнение следующей строки после оператора “условие”
 
Переход на указанную строку

  Переход - оператор позволяющий организовывать переход на указанную строку в скрипте моделируемого компонента. Определение строки перехода осуществляется в диалоговом окне “Выбор операнда” указанием необходимого номера строки передачи управления.
  Послать сообщение - оператор активизирующий посылку указанного сообщения в систему Miracle. Определение необходимого сообщения осуществляется в дополнительном диалоговом окне выбором необходимого события (из подготовленного списка).
  Установить флаг - оператор установки флага позволяет использовать в логике работы проектируемого компонента механизм флагов. Флаг может быть в двух состояниях:

  • Установлен
  • Сброшен

  Начальное состояние флагов - “сброшен”.
  Оператор “установить флаг” позволяет переключить выбранный флаг в активное состояние. Логический анализатор поддерживает 24 флага с именами от A до Z.

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

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

  • Данные (Список данных)
  • Константы (Список констант)

  Дополнительный параметр инициализации - указание типа инициализируемых данных, область - тип данных.
  Увеличить на 1 - оператор, производящий увеличение указанного операнда, из списка - данных, на единицу (1).
  Уменьшить на 1 - оператор, производящий уменьшение указанного операнда, из списка - данных, на единицу (1).
  Сложить - оператор, производящий сложение двух операндов. Результат операции хранится в первом операнде. Проектирование оператора - сложить, осуществляется в дополнительном диалоговом окне “Выберите операнд”. В области “Прибавить к” указывается первый операнд (из списка - данных), второй операнд указывается в области “Данные”, он может быть выбран из списка - данных, либо из списка - констант. В области “Тип данных” указывается тип слагаемых операндов.
  Вычесть - оператор, производящий вычитание. Результат операции хранится в первом операнде. Проектирование оператора - вычесть, осуществляется в дополнительном диалоговом окне “Выберите операнд”. В области “Прибавить к ” указывается первый операнд (из списка - данных), от которого будет вычитаться второй операнд. Второй операнд указывается в области “Данные” и может быть выбран из списка - данных, либо из списка имеющихся констант. В области “Тип данных”, указывающих необходимый тип вычитаемых операндов.
  Стоп - оператор, указывающий точку прекращения обработки операторов в скрипте. Данный ператор может быть использован в различных точках скрипта компонента. Это позволяет организовывать необходимую модель объекта, содержащую разветвленную топологию обработки операторов в едином скрипте.

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

Добавление в список нового элемента
  Список - данных представлен в виде строки редактирования и области отражающей имеющегося имени элемента. Для включения в список нового элемента необходимо внести имя в строку редактирования и нажать клавишу “+”. После этого, в списке - данных появится новый элемент с ведущим идентификационным номером 00, 01, 02 и т.д. В дальнейшем при проектировании компонента, данные с идентификационной меткой элемента будут использоваться в качестве описания параметров операторов.

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

Список событий
  Список событий - отражает имена событий необходимых в проектируемом компоненте. Редактирование ”списка - событий” осуществляется точно также как и в “списке - данных”.

Список констант
  Список констант - отражает необходимые константы проектируемого компонента. В качестве константы может выступать число или строка для инициализации элементов данных. Редактирование “списка - констант” осуществляется точно также как и в “списке - данных”.


Список - событий и список - констант располагаются в одной области окна проектирования логического анализатора. Переключение отображения необходимой области осуществляется нажатием клавиши “←Событие” на “←Константы”.
Редактирование имен элементов в списке не возможно

Дополнительные возможности
  Клавиша “Импорт” - позволяет загрузить модель компонента из ранее сохраненного файла. Т.е. включать в проект приложения компонент созданный ранее и сохраненного в виде транзитного файла *.lnl. Доступ к файлу осуществляется через стандартно окно “Открытие файла”.
  Клавиша “Экспорт” - позволяет сохранить проект компонента созданного в логическом анализаторе в виде файла (*.lnl). Сохранение файла осуществляется через стандартное окно “Сохранение”.
  Клавиша “ОК” позволяет закончить проектирование компонента с сохранением всех внесенных изменений. Компонент встраивается в проект приложения и может в последствии быть отредактирован.
  Клавиша “Отмена” позволяет закончить проектирование компонента без сохранения внесенных изменений.
  Опция ”Отладка” - служит для получения дополнительной отладочной информации в процессе работы компонента. Выбранное состояние опции указывает на необходимость предоставления отладочной информации.
  Отладочная информация предоставляется в окне “Логический анализатор”, создаваемое в момент запуска приложения. Заполнение окна отладочной информацией осуществляется в момент работы “логического анализатора”. Завершение работы приложения приводит к закрытию окна отладочной информации “логического анализатора”.

Описание идентификационных меток
  Данные - D <номер элемента в списке>
  Реакции - команда <номер элемента в списке>
  Константы - C <номер элемента в списке>
  Событие - сообщение (событие) <номер сообщения в списке>

Пример проектирования нового компонента в спецобъекте “логический анализатор”

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

  1. В строке редактирования имен элементов данных введите слово: “Число №1”
  2. Нажмите клавишу “+” в области “списка данных”

      В списке данных появится строчка - “00 - Число №1”. Таким образом подготовлен элемент для получения данных, в разрабатываемый компонент, из вне.

  3. Добавим еще один элемент в список данных - “Число №2”
  4. Добавим третий элемент в список данных - “Результат”, из которого мы будем получать итоги работы проектируемого компонента.

      Таким образом, в “списке данных” должно быть три элемента:

    00- Число №1
    01- Число №2
    02- Число №3

  5. Создадим реакцию, по которой разрабатываем компонент, начнет обработку. Добавьте в список реакций элемент с именем - “Начало работы”. Таким образом, в “списке реакций” будет только один элемент:
    00- Начало работы

  6. Создадим событие, по которому компонент будет сигнализировать окончание работы. Добавьте в список событий элемент с именем - “Готово!” и с именем - “Равны”. Таким образом, в “списке событий (команд)” будет два элемента.
    00- Начало работы
    01- Равны

  7. Подготовим 9 “пустых” строк под операторы в списке операторов (от 00 до 08). Нажмите клавишу “+” расположенную в данной области.
  8. Выбираем в списке данных элемент “Число №1”.
  9. Выбираем в списке операторов строку “00”.
  10. Нажмите кнопку “Оператор” в списке операторов и выбираем оператор “Условие” с расширением “Больше”.
  11. В диалоге “Выбор оператора” устанавливаем тип операнда -”Данные”.
  12. В области “Если больше ...” окна “Выбор операнда” выбираем - “Число №2”.
  13. В области “Номер строки, куда передается управление” того же окна выбираем строку “04”.
  14. В области “Тип данных” выбираем - “Число”.
  15. Нажмите клавишу “ОК”.

      Таким образом, получаем первую строку скрипта разрабатываемого компонента:

    00 Если D00 больше D01 перейти на 04 строку

  16. Установите курсор на 04 строку (в списке операторов).
  17. Нажмите клавишу “Оператор”.
  18. Выберите оператор “Проинициализировать данные”.
  19. В диалоговом окне “Выберите операнд” выберите элемент “02 - Результат” в области “Что будем инициализировать”.
  20. В области “Тип операнда” раздела “Что будем инициализировать” выберите “Данные”.
  21. В списке “Чем будем инициализировать” выберите “00 - Число №1”.
  22. Установите тип данных - “Число”.
  23. Нажмите клавишу “ОК”.

      Таким образом, получаем 04 строку проектируемого скрипта:

    04 Проинициализировать D 02 значением D00

  24. Установите курсор на строке 05.
  25. Нажмите на клавишу “Оператор”.
  26. Выберите оператор “Послать сообщение”.
  27. В диалоговом окне “Выберите операнд” выберите сообщение “00 - Готово!”.
  28. Нажмите клавишу “ОК”.

      Таким образом, получаем 05 строку проектируемого скрипта:

    05 Послать сообщение (событие) 00

  29. Выберите строку 06.
  30. Нажмите клавишу “Оператор”.
  31. Выберите оператор “Стоп”.

      Таким образом, получаем 06 строку проектируемого скрипта:

    06 Закончить обработку

  32. Выберите 01 строку.
  33. Нажмите клавишу “Оператор”.
  34. Выберите оператор “Проинициализировать операнд” выберите элемент “02 - Результат” в области “Что будем инициализировать”.
  35. Установите “Тип операнда” - “Данные” область “Чем будем инициализировать”.
  36. Выберите элемент “01 - Число №2”, в области “Чем будем инициализировать”.
  37. Установите “Тип данных” - “Число”.
  38. Нажмите клавишу “ОК” в диалоговом окне “Выбор операнда”.

      Таким образом, получаем 01 строку проектируемого скрипта:

    01 Проинициализировать D 02 значением D01

  39. Выберите 02 строку.
  40. Выберите элемент - “Число №2” в “списке данных”.
  41. Нажмите клавишу “Оператор”.
  42. Выберите оператор “Условие” с расширение “Равно”.
  43. Установите “Тип операнда” - “Данные”.
  44. Выберите элемент “Число №2” в области “Если равно ...”.
  45. В области “Номер строки куда передать управление” выберите строку 07.
  46. Установите “Тип данных” - “Число”.
  47. Нажмите клавишу “ОК” в диалоговом окне “Выбор операнда”.

      Таким образом, получаем 02 строку проектируемого скрипта:

    02 Если D 00 равно D 01 перейти на 07 строку

  48. Выберите строку 03.
  49. Нажмите клавишу “Оператор”, в области “список операторов”.
  50. Выберите оператор “Переход”.
  51. В дополнительном диалоговом окне выберите строку 05.
  52. Нажмите клавишу “ОК”, в диалоговом окне “Выбор операнда”.

      Таким образом, получаем 03 строку проектируемого скрипта:

    03 Перейти на 05 строку

  53. Выберите строку 07.
  54. Нажмите клавишу “Оператор” в области “список операторов”.
  55. Выберите оператор “Послать сообщение”.
  56. В дополнительном диалоговом окне выберите элемент “01 - Равны” из списка предоставленных событий.

      Таким образом, получаем 07 строку проектируемого скрипта:

    07 Послать сообщение (событие) 01

  57. Выберите строку 08.
  58. Нажмите клавишу “Оператор” в области “список операторов”.
  59. Выберите оператор “Стоп”.

      Таким образом, получаем 08 строку проектируемого скрипта:

    08 Закончить обработку

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

00Если D00 больше D01 перейти на 04 строку
01Проинициализировать D 02 значением D01
02Если D00 равны перейти на 02 строку
03Перейти на 05 строку
04Проинициализировать D 02 значением D00
05Послать сообщение (событие) 00
06Закончить обработку
07Послать сообщение (событие) 01
08Закончить обработку

  Комментарии по работе представленного скрипта.
  В строчке 00 осуществляется анализ чисел. Если “Число 1” больше “Числа 2”, то осуществляется переход на строку 04. В строке 04 производится инициализация элемента “02 - Результат”, значением из элемента “00 - Число 1”. Следующий оператор в строке 05 производит посылку сообщения “00 - Готово!”. Выполнение оператора в строке 06 приводит к окончанию обработки.
  Если в строке 00 “Число 1” оказалось меньше или равно “Число 2”, то следующей выполняющейся строкой будет 01. Где производится инициализация элемента “02 - Результат” значением из элемента “01 - Число 2”. Следующий оператор в строке 02 активизирует сравнение чисел на предмет их равенства. Если анализируемые значения равны, то произойдет переход на строку 07. В рамках, которой будет произведена посылка события “01 - Равны”. Следующий оператор в строку 08 закончит обработку скрипта.
  Если в строке 04 числа окажутся, не равны, то в следующей строке 05 произойдет переход на строку 05, в которой будет осуществлена посылка сообщения “00 - Готово!”.
  В следующей строке 06 оператор закончит обработку скрипта.
  Окончив проектирование компонента для сравнения двух чисел нажатием клавиши “ОК” в диалоговом окне “Логический анализатор” вы получите задуманный компонент.
  На уровне проекта приложения созданный компонент будет иметь:

События

  • Готово! - событие, сигнализирующее об окончании анализа данных.
  • Равны - событие, сигнализирующее об окончании анализа данных, где анализируемые числа были равны.

Реакции

  • Начало работы - команда активизирующая работу компонента.

Связь по данным
Источники

  • Число 1
  • Число 2
  • Результат - источник, содержащий максимальное число.

Приемники

  • Число 1
  • Число 2
  • Результат

  Таким образом, на уровне проекта приложения спроектированный компонент представлен точно также как и любой другой специализированный объект системы Miracle.


Маршрутизатор

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

Приемник 1 
Приемник 2 
... Текущий маршрут
... 
... n 

  При включении компонента “маршрутизатор” в проект приложения, появляется диалоговое окно позволяющее производить описание необходимого количества входов под “источники” данных.
  Окно содержит список источников данных, строку ввода имен маршрутов. По умолчанию список “источников данных” содержит два источника - “Маршрут 0”, “Маршрут 1”. При необходимости каждому из Маршрутов может быть задано собственное имя, помогающее в последствии идентифицировать по имени принадлежность элемента в списке источников данных. Для модификации имени “источника” необходимо:

  • Ввести необходимое имя в строку редактирования.
  • Выбрать модифицируемый элемент в списке “источников данных”.
  • Нажать кнопку “Заменить”.

  Для внесения нового маршрута необходимо:

  • Ввести имя нового маршрута.
  • Нажать клавишу “Добавить”.
  • Для удаления маршрута из списка “источников данных” необходимо:
  • Выбрать маршрут в списке “источников данных”.
  • Нажать клавишу “Удалить”.

  Выход с сохранением внесенных изменений - клавиша “ОК”.
  Выход с отменой сохранения внесенных изменений - клавиша “Отменить”.

Дополнительные правила программирования спецобъекта - “маршрутизатор”

  По умолчанию первый элемент, в списке диалогового окна имеющихся источников данных, является активным по умолчанию. Активизация (переключение) других источников должно быть спроектировано.
  При удалении первого элемента “источник” по умолчанию становится тот элемент, который стал в списке первым.
  Список “источников данных” в диалоговом окне предоставляется в не сортированном виде. Список источников в области “события” и в области “реакции”, предоставлен в отсортированном виде по возрастанию.

Применение компонента - “маршрутизатор”

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


  Активизация необходимого маршрута с последующей активизацией команды “Загрузить данные” в визуальном объекте “Текст”, позволит отображать информацию в различных объектах приложения.
  Спецобъект “маршрутизатор” позволяет использовать его и для решения более специфичных задач.
  Например, в проекте приложения используются два объекта БД, с активной связью между ними.

  Также используется копия таблицы “Города” - 1:”Города”.

  Устанавливая курсор, на какой либо записи в таблице “Города”, в таблице “Люди” отображаются записи имеющихся ссылок на эту запись. Перемещение в таблице 1:”Города” не влияет на что-либо. Необходимо спроектировать приложение позволяющее изменять ссылку записи в таблице “Люди”. Для этих целей, возможно, использовать спецобъект “маршрутизатор”, который будет маршрутизировать номер таблицы для “линк - поля” в таблице “Люди”. Тем самым подменять “мастер таблицу” на момент модификации ссылки хранимой в “линк - поле”.

  Маршрут по умолчанию предоставляет “N: таблицы” от объекта БД “Города”. Тем самым достигается активизация проектных отношений “Люди→Города”.
  В момент модификации связи по записи в таблице “Люди”, необходимо переключить маршрут, с тем чтобы предоставлялись данные “N: таблицы” от объекта БД “1: Города”. Таким образом, решаем задачу модификации ссылки.

Программирование компонента
События

  • Набор событий в компоненте “маршрутизатор” содержит только одно сообщение “Установлено положение ...”, на каждый заданный маршрут.

Реакции

  • Восстановить состояние маршрута - восстанавливает последний маршрут. По умолчанию маршрут первого элемента в списке “источников - данных”.
  • Запомнить состояние маршрута - сохранение (на время работы приложения), маршрута по умолчанию.
  • Переключиться в положение <имя> - переключение компонента на необходимый маршрут <имя>. Количество команд зависит от количества элементов в объекте.

Связь по данным
Источники

  • Текущий маршрут (только чтение) - получение информации по текущему маршруту.
  • Сохраненный маршрут (только чтение) - получение информации по сохраненному состоянию маршрутизатора. Маршрут по умолчанию.
  • Маршрут <имя> - получение информации по выбранному маршруту. Количество данного источника зависит от количества элементов в объекте.

Приемники

  • Маршрут <имя> - количество маршрутов зависит от количества элементов в объекте.

Массив

  Компонент - “массив” позволяет использовать в проекте приложения контейнер для хранения различной информации. Количество элементов в объекте может быть установлено от 1 до 20. Тип хранимых значений:

  • Строка
  • Число
  • Дата
  • Время

Программирование компонента

  При включении компонента “массив” в проекте приложения появляется диалоговое окно настройки объекта, различные режимы которого позволяют:

  • Задать необходимое количество элементов (от 1 до 20).
  • Осуществлять выбор элемента в заданном диапазоне.
  • Установить необходимое значение элемента.
  • Задать режим работы с элементом. Выбор значения “Только чтение”, не позволит программно изменять содержание элемента.
  • Выбрать необходимый тип значения элемента в массиве.

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

Программирование компонента

События

      Набор событий в компоненте “массив” представлен двумя сообщениями на каждый элемент объекта:

  • Изменились данные в элементе <номер> - сообщение сигнализирует о изменении содержимого в элементе компонента - <номер>.
  • Ошибка загрузки данных в элемент <номер> - сообщение сигнализирует о не возможности загрузки информации в элемент компонента -<номер>.

Реакции

  • Загрузить данные в <номер> элемент - позволяет загрузить информацию в выбранный элемент “массива” по имеющимся информационным каналам.
  • Проинициализировать <номер> элемент - позволяет установить начальное (проектное) cостояние выбранного элемента.

Связь по данным
Источники

  • Количество источников соответствует количеству элементов в объекте, они представлены в виде “Элемент <номер> строка”.

Приемники

  • Количество приемников соответствует количеству элементов в объекте, они представлены в виде “Элемент <номер> строка”.
При уменьшении общего количества элементов в массиве, происходит автоматическое удаление строк массива. От больших номеров к меьшим. Т.е. при начальном размере массива в 10 элеметов, сокращение до 7 элементов, приведет к удалению 10,9 и 8 элемента.


Меню

  Использование спецобъекта - “меню” позволяет организовывать “строку - меню” в главном окне проекта приложения. Каждый компонент является одним элементом в “строке - меню”. Т.е. использование двух объектов создает два элемента в “строке - меню” окна. Каждый элемент меню может содержать необходимое количество подпунктов.
  Последовательность расположения элементов “меню” в проекте приложения задает очередь отображения заголовком в “строке - меню”. В качестве заголовков используются системные имена элементов, заданные в процессе проектирования приложения. В качестве одного из подпунктов “меню”, может быть использован - “разделитель”.

Программирование компонента

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

  • Добавить - режим добавления нового подпункта в список “меню”. Новый элемент добавляется в список последним, с заданными опциями.
  • Разделитель - режим добавления “разделителя” в список “меню”.
  • Удалить - режим удаления выбранного элемента из списка “меню”.
  • Изменить - режим модификации имени выбранного подпункта или опций.
  • Сохранить - режим окончания проектирования компонента “меню” с сохранением внесенных изменений.
  • Отменить - режим окончания проектирования компонента - “меню” без сохранения внесенных изменений.

Опции подпункта

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

События

  • В качестве списка событий компонента - “меню” выступают названия подпунктов объекта. Возникновение которых, сигнализирует о выборе пользователя одноименного подпункта.

Реакции

  В качестве реакций по каждому подпункту “меню” представлено четыре команды:

  • Выбрать <имя подпункта> - команда устанавливающая знак √, говорящий о выбранном состоянии подпункта.
  • Запретить <имя подпункта> - команда устанавливающая запрещенный режим подпункта, что в свою очередь не позволяет пользователю осуществлять выбор данного элемента меню.
  • Разрешить <имя подпункта> - команда отменяющая режим “Запретить”.
  • Сбросить <имя подпункта> - команда отменяющая режим “выбрать”.

Связь по данным

  Спецобъект “меню” не имеет источников и приемников данных, что не позволяет устанавливать информационные связи с данным компонентом.

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


Очистка очереди сообщений

   Компонент - “очистка очереди сообщений” является уникальным объектом позволяющим продолжать обработку потока сообщений по окончанию полной обработки предыдущих событий в системе.

Программирование компонента

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

События

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

Реакции

  • Очистить очередь сообщений - команда активизирующая работу компонента.

Связь по данным

  • Компонент - “очистка очереди сообщений” не имеет информационных источников, приемников.

Персональная настройка

  Компонент - “персональная настройка” позволяет организовывать механизм хранения и считывания информации из файла ...\<MIRACLE>\mir.ini по заданному ключу. Использование данного объекта возможно для решения задачи по предоставлению “уникальных” настроек работы приложения для каждого пользователя.
  Все приложения использующие компонент - “персональная настройка” хранят свои значения в файле MIR.INI располагающегося в директории где установлена система Miracle. Распознавание значений производится согласно имени секции [<имя пользователя>] и названия ключа. Использование одинаковых имен ключей в различных приложениях позволяет осуществлять использование одних значений для различных программ.

Программирование компонента

  При включении в проект приложения компонента “персональная настройка” возникает диалоговое окно позволяющее описать имя “ключа” и “значение по умолчанию”.

События

  • Ошибка записи нового значения - данное сообщение сигнализирует о возникновении ошибки в момент записи нового значения.
  • Успешная запись - данное сообщение сигнализирует об успешном сохранении нового значения.

Реакции

  • Записать значение - команда, активизирующая запись значения по установленному в объекте ключу. Запись производится в файл MIR.INI в секции [<имя пользователя>].

Связь по данным
Источники

  В качестве “источника” компонент “персональная настройка” предоставляет “значение”. Значение берется из файла MIR.INI из секции [<имя пользователя>]. Либо из спецобъекта (значение по умолчанию).

Приемники

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


Разделитель

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

Программирование компонента
Реакции

  Компонент “разделитель” содержит одну команду - “Ничего!:)”.
  Наличие данной команды позволяет перенаправлять нежелательные сообщения, логическая обработка которых не нужна, а обработка системы не желательна. Активизация команды “Ничего!:)” не приводить к чему либо, а лишь “заглушает” не желательные сообщения от компонентов.


Системная информация

  Компонент “системная информация” не является активным компонентом. Основное его предназначение - предоставление различной информации о системе.

Программирование компонента

  Компонент “системная информация” не предоставляет каких либо форм настройки.

Связь по данным
Источники

  • Структура - имя структуры, к которой имеется авторизация.
  • Подразделение - имя подразделения, к которому имеется авторизация.
  • Пользователь - имя пользователя, который имеет авторизацию.
  • Дата - системная дата.
  • Время - системное время.
  • NULL - информация в виде NULL строки. Для инициализации переменных.
  • Ширина экрана - текущее разрешение на мониторе.
  • Высота экрана - текущее разрешение на мониторе.
  • Имя владельца лицензии на WINDOWS - информация о лицензионных параметрах ОС Windows
  • Название организации владельца лицензии на WINDOWS - информация о лицензионных параметрах ОС Windows
  • Номер лицензии WINDOWS - информация о лицензионных параметрах ОС Windows
  • Идентификатор задачи - текущий, уникальный номер задачи в ОС
  • Кодовая страница
  • Число секунд с момента запуска WINDOWS
  • Разделитель в списке - параметр Региональной установки Windows™
  • Десятичный разделитель - параметр Региональной установки Windows™
  • Пустая строка - информация в виде "пустой строки". Для инициализации переменных.
  • Состояние клавиши SHIFT
  • Состояние клавиши ALT
  • Состояние клавиши CTRL
  • Screen-saver - число 1 -означает наличие в системе Windows режима screen-saver, 0-отсутсвие.
  • Screen-saver time-out - время срабатывания в секундах. Т.е. паметр настройки работы screen-saver.
  • Координаты 'мышки' по X
  • Координаты 'мышки' по Y

Таймер

  Компонент “Таймер” представляет собой объект выполняющий отсчет по заданному временному периоду. Разрешенный диапазон от 1с до 60 с. Следует заметить, что система Windows не является “системой реального времени”. Т.е. какие либо процессы в системе могут приостановить ход выполнения приложения, и сообщение об окончании отсчета будет получено позже установленного периода.

Программирование компонента

  В момент “включения” компонента в проект приложения возникает дополнительное диалоговое окно, в рамках которого необходимо задать размер значения задержки определяющего период отсчета. Значение задается в секундах и может быть установлено в пределах от 1 до 60 секунд.

События

  • Отсчет закончен - сигнализирует об окончании отсчета заданного периода.
  • Отсчет прерван - сигнализирует об прерывании отсчета.
  • Ошибка загрузки данных - сигнализирует об ошибке загрузки значения задержки.

Реакции

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

Связь по данным
Источники

  В качестве “источника” компонент “таймер” предоставляет установленное значение задержки.

Приемники

  В качестве “приемника” в компоненте “таймер” может быть подано новое значение задержки.


Условие

  Компонент “условие” является одним из ключевых объектов системы Miracle. Именно наличие данного объекта позволяет организовывать необходимую “логику” работы приложения. Объект “условие” производит сравнение двух значений и выдает сообщение о результате работы. Используя различные сообщения, возможно, строить необходимое ветвление выполнения потока команд.
  Значения, подаваемые для сравнения должны быть одного типа. Компонент ”условие” позволяет сравнивать значения следующих типов:

  • строка - символьная информация.
  • целое - число целое.
  • число - число с плавающей точкой.
  • дата - информация в формате “дата”.
  • время - информация в формате “время”.
  • датавр - информация в формате “дата/время”.

Программирование компонента

  При включении компонента “условие” в проект приложения возникает диалоговое окно настройки, позволяющее:

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

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

События

  • Больше - сигнализирует о том, что Значение 1 больше Значения 2.
  • Больше или равно - сигнализирует о том, что Значение 1 больше или равно Значению 2.
  • Вторая строка входит в первую - сигнализирует о том, что строка из Значения 2 полностью входит в структуру строки в Значении 1.
  • Вторая строка не входит в первую - сигнализирует о том, что строка из Значения 2 не входит в структуру строки в Значении 1.
  • Меньше - сигнализирует о том, что Значение 1 меньше Значения 2.
  • Меньше или равно - сигнализирует о том, что Значение 1 меньше или равно Значению 2.
  • Не равно - сигнализирует о том, что Значение 1 и Значение 2 не равны.
  • Не установлена связь по данным - сигнализирует о том, что в момент активизации компонента “условие”, одно из Значений или оба не имеют источников, либо могут получать информацию от установленного “источника”.
  • Оба не нулевые - сигнализирует о том, что оба Значения не являются нулевыми.
  • Оба нулевые - сигнализирует о том, что одно из Значений является нулевым.
  • Ошибка получения данных - сигнализирует о том, что одно из Значений, либо оба, не могут получить информацию от установленного “источника”.
  • Равно - сигнализирует о том, что оба Значения полностью равны.

Реакции

  • Компонент “условие” имеет только одну команду “сравнить” активизирующая сравнение значений.

Связь по данным
Источники

  В зависимости от использования значений, количество источников и приемников может быть в пределах от 0 до 2.
  В качестве “источников” и “приемников” используются “первое” и (или) “второе” значение спецобъекта “условие”.

Дополнение

  Тип данных и возможные сообщения, посылаемые специальным объектом “Условие”

сообщения / тип данныхЧисло ЦелоеСтрока ДатаВремя ДатаВремя
Равно
Не равно  
Больше
Больше или равно  
Меньше
Меньше или равно  
Одно не нулевое  √*
Оба не нулевые  √*
Одно нулевое  √*
Оба нулевые  √*
Вторая строка входит в первую       
Вторая строка не входит в первую       

  * - Посылка данных сообщений осуществляется по анализу длины строк, а не по их содержимому


Фильтр - дата

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

Программирование компонента

  При включении объекта в проект приложения необходимо осуществить настройку метода преобразования. Настройка производится в рамках диалогового окна и позволяет выбрать между “числовым” и “текстовым” типом преобразования. Расширенная настройка производится нажатием кнопки “Настроить...”. В зависимости от выбранного типа преобразования возможно:

  • Для “числового” преобразования - установить последовательность формирования даты:
    • День/Месяц/Год
    • Месяц/День/Год
    • Год/Месяц/День
  • Выбор опции “Ведущие нули” задает режим вывода чисел и месяца имеющих значение от 1 до 9 с ведущим нулем.
  • Выбор опции “Год полностью” задает режим вывода чисел “столетия” перед двумя последними числами года.
  • Задать тип разделителя в специализированной области “Разделитель”.

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

  • Для “текстового” преобразования - установка последовательности формирования даты осуществляется через описание последовательности в форматной строке. Описание строится через ввод необходимых символов и специализированных символов.
      Специализированные символы:
    • D - заменяется на число;
    • M - заменяется на месяц;
    • Y - заменяется на год.

    День и год выводятся числами. Месяц прописью в родительном падеже.

      Режим работы опции “Ведущие нули” и “Год полностью” соответствуют режиму работы данных опций в режиме настройки преобразования в “числовом” виде.

События

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

Реакции

  Компонент “фильтр - дата” не имеет команд. Его активизация происходит в момент выборки у него преобразованной информации, каким либо объектом. Т.е. работа компонента “фильтр - дата” происходит в “транзитном” режиме и не требует дополнительных команд.

Связь по данным
Источники

  • Дата - предоставление преобразованной информации в установленном режиме.
  • Число дней от 1752 года - предоставление числа дней от 1752 года до преобразуемой даты. (Unix-Time)
  • День - день (число) из преобразуемой даты.
  • Месяц - месяц (число) из преобразуемой даты.
  • Год - год (число) из преобразуемой даты. Год представляется полностью.
  • Номер дня недели - номер дня недели (число от 1 до 7) от преобразуемой даты.
  • Название дня недели - название дня недели в преобразуемой дате. Название выводится полностью, на русском языке. Первая буква в верхнем регистре.
  • Название месяца - название месяца в преобразуемой дате. Название выводится полностью, на русском языке. Первая буква в верхнем регистре.
  • Номер дня в году - номер дня в году (число) от преобразуемой даты. Номер исчисляется от 01 января года, являющимся первым днем.
  • Дней до конца года - номер до конца года (число) от преобразуемой даты. Номер исчисляется от даты до 31 декабря года.

Приемники

  • Дата - приемник информации (в формате “Дата”).

Фильтр - преобразователь

  Компонент “фильтр - преобразователь” является транзитным объектом, осуществляющим сравнение подаваемой информации с “эталоном”. При успешном сравнении выдается информация по цепочке “Истина”, в ином случае по цепочке “Ложь”.

Программирование компонента

  В момент включения компонента в проект приложения возникает диалоговое окно настройки работы объекта содержащего следующие опции:

  • установка типа сравниваемой информации:
    • строка
    • число
    • дата
    • время
  • область ввода “эталона”
  • выбор условия сравнения данных с “эталоном”:
    • больше
    • меньше
    • больше лил равно
    • меньше или равно
    • равно
    • не равно
  • “Истина” - область ввода информации подаваемой в случае удачного сравнения данных с “эталоном”.
  • “Ложь” - область ввода информации подаваемой в случае не удачного сравнения данных с “эталоном”.
Если область “Истина” и (или) “Ложь” не будут иметь данных, либо не будут заполнены из других источников, то в качестве предоставляемой информации они будут предоставлять сравниваемые данные.

События

  • Ошибка загрузки параметра - сигнализирует об ошибке в момент загрузки параметров.
  • Ошибка преобразования - сигнализирует об ошибке в момент сравнения данных. Это может быть вызвано подачей в качестве параметров информации не установленного типа.
  • Успешная загрузка параметров - сигнализирует об успешной загрузке параметров.
  • Успешное преобразование - сигнализирует об успешном выполнении сравнения данных с установленным “эталоном”.

Реакции

  • Загрузить параметр ИСТИНА - команда активизирующая загрузку информации в “приемник” компонента “Истина”.
  • Загрузить параметр ЛОЖЬ - команда активизирующая загрузку информации в “приемник” компонента “Ложь”.
  • Загрузить эталон - команда, активизирующая загрузку информации в “приемник” компонента “Эталон”.

Связь по данным
Источники

  • Данные - информация, предоставляемая в зависимости от результата сравнения информации с “Эталоном”.
  • Эталон - данные установленные в качестве “Эталона”.
  • Истина - данные установленные в качестве информации предоставляемой при успешном сравнении данных с “Эталоном”.
  • Ложь - данные установленные в качестве информации предоставляемой при не успешном сравнении данных с “Эталоном”.

Приемники

  • Данные - приемник информации участвующий в сравнении с “Эталоном”.
  • Эталон - приемник информации устанавливаемой в качестве “Эталона”.
  • Истина - приемник информации, устанавливаемый в качестве данных предоставляемых при успешном результате сравнения.
  • Ложь - приемник информации, устанавливаемый в качестве данных предоставляемых при не успешном результате сравнения.

Переключатель

  Компонент “переключатель” предоставляет механизм по организации двух режимов управления группой сообщений по схеме 1вход/N выходов или N выходов/1 вход.

Программирование компонента

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

  • Удалить - удалить выбранное сообщение из списка.
  • Заменить - заменить наименование выбранного сообщения.
  • Добавить - добавить новое сообщение в список, имя которого набрано в элементе редактирования под списком сообщений.

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

  • 1 вход/N выходов;
  • N выходов/1 вход.

Печать отчета

  Компонент - “печать отчета” предоставляет использовать зарегистрированные на Сервере управления отчетные формы для получения твердой копии документа.

Программирование компонента

  В момент включения компонента “печать отчета” в проект приложения возникает диалоговое окно выбора необходимого отчета из списка. Кнопка - “Да” заканчивает формирование структуры компонента “печать отчета”, кнопка - “Отмена” отменяет встраивание объекта в проект приложения.

События

  Набор событий отличается, в зависимости от типа отчета, “Бланк” или “Список”:

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

Реакции

  Набор реакций отличается, в зависимости от типа отчета, “Бланк” или ”Список”:

  • Активизировать печать - команда, которая для отчетов типа “Бланк” приводит к началу печати отчета с предоставлением диалога печати. Для отчета типа “Список” - приводит к указанию необходимости предоставления диалога печати, активизация которого будет только в момент начала печати любой из переменных частей - команда “Начать/Продолжить печать <N>”.
  • Активизировать печать без диалога - команда активизирующая режим печати без предоставления диалога печати. Отчет выводится на принтер, использованный по умолчанию. Для отчета типа “Бланк” данная команда приводит к организации задания на печать. Для отчета типа “Список” данная команда приводит к указанию печати без предоставления диалога печати.
  • Закончить печать - команда, заканчивающая подготовку задания печати для “Списочного” типа отчета. Без данной команды корректно окончить формирование задания невозможно.
  • Закончить страницу - команда принудительного окончания формирования страницы. Без применения данной команды система печати отчета типа “Список” будет самостоятельно формировать страницу отчета в зависимости от ее заполнения информацией в переменных частях.
  • Настроить принтер - команда активизации диалога настройки принтера по умолчанию и иных настроек.
  • Начать/Продолжить печать <N> - команда печати переменной части <N>, в зависимости от ситуации данная команда либо начинает режим печати, что в свою очередь может приводить к появлению диалогового окна выбора принтера, либо к продолжению формирования задания печати. По сути “переменная” часть отчета является “бланком”, последовательностью вывода которого вы управляете.

Связь по данным
Источники

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

Приемники

  • Список “приемников” определяется структурой отчета.

  Форматированный файл

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

Программирование компонента

  В момент включения в проект приложения объекта “форматированный файл” предоставляет диалог настройки структуры объекта. Форматирование информации, возможно, осуществить, начиная с указанной строчки, область “Начать с <n> строки”. Включенная опция “Перекодировка” позволяет производить автоматическую перекодировку информации из DOS в Windows формат. Включенная опция “Удаление ведущих пробелов”, “Удаление завершающих пробелов” приводит к удалению пробелов в наборе информации попадаемой в указанные позиции.
  Область “Имя файла” позволяет задать путь и имя файла используемого в объекте “по умолчанию”.
  Область формирования необходимого количества колонок для обработки получаемой из файла информации. Структура колонки описывается:

  • Название колонки
  • Позиция в строке, с которой выделяется информация
  • Позиция в строке, до которой организуется выделение в колонку

  Нажатие кнопки “Удалить” - приводит к удалению выбранного описания.
  Нажатие кнопки “Заменить” - приводит к смене выбранного описания.
  Нажатие кнопки “Добавить” - приводит к добавлению нового описания в структуру компонента.

События

  • Загруженное новое имя файла - событие сигнализирующее о том, что компоненту передано имя обрабатываемого файла.
  • Отказ от выбора файла - событие сигнализирующее о том, что пользователь отказался от выбора в диалоге “Открытие файла”.
  • Ошибка загрузки имени файла - событие, сигнализирующее об ошибке загрузки передаваемого имени обрабатываемого файла.
  • Ошибка открытия файла - событие, сигнализирующее об ошибке открытия указанного файла.
  • Ошибка перехода на одну запись вверх - событие сигнализирующее об ошибке перехода в файле на строчку вверх.
  • Ошибка перехода на одну запись вниз - событие сигнализирующее об ошибке перехода в файле на одну строчку вниз.
  • Ошибка перехода на первую запись - событие сигнализирующее об ошибке перехода в файле на первую строчку.
  • Ошибка перехода на последнюю запись - событие сигнализирующее об ошибке перехода в файле на последнюю строчку.
  • Успешный переход на одну запись вверх - событие сигнализирующее об успешном переходе в файле на одну строчку вверх.
  • Успешный переход на одну запись вниз - событие сигнализирующее об успешном переходе в файле на одну строчку вниз.
  • Успешный переход на первую запись - событие сигнализирующее об успешном переходе в файле на первую строчку.
  • Успешный переход на последнюю запись - событие сигнализирующее об успешном переходе в файле на последнюю строчку.
  • Файл закрыт - событие сигнализирующее об успешном закрытие файла.

Реакции

  • Диалоговый выбор файла - команда предоставляющая диалог “Открытия файла”. Если в структуре объекта указано имя файла, то оно будет использовано как “маска” в диалоге выбора.
  • Загрузить имя файла - команда активизирующая загрузку нового имени файла.
  • Закрыть файл - команда, закрывающая файл.
  • Перейти на одну запись вверх - команда активизирующая переход в файле на одну строчку вверх.
  • Перейти на одну запись вниз - команда активизирующая переход в файле на одну строчку вниз.
  • Перейти на первую запись - команда, активизирующая переход в файле на первую строчку.
  • Перейти на последнюю запись - команда, активизирующая переход в файле на последнюю строчку.

Связь по данным
Источники

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

Приемники

  • Имя файла - имя обрабатываемого файла.

Фильтр - число

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

Программирование компонента

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

  • Числовой (1234567.12)
  • Текстовой (Сто десять)

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

  • 123 456 798.76
  • 123’456’798.76
  • 123 456 798
  • 123’456’798
  • 123456798.76
  • 123456798

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

События

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

Связь по данным
Источники

  • В качестве источников и приемников компонент фильтр - число предоставляет один элемент - число.

Эхо

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

 
Нажатие кнопкиэхоИное событие в системе
  
 реакции 
 
  • Установить фокус в элементе ввода.
  • Загрузить данные в элемент ввода.
 

  Схема отношений объектов в приложении.
  Если в компоненте несколько маршрутов, то по каждому из них могут быть организованы собственные группы команд.
  В единицу времени, только один маршрут может быть - активным. Т.е. при активизации объекта именно он будет исполнен.

Программирование компонента

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

  • Удалить - производит удаление выбранного в списке маршрута.

    Удаление маршрута может приводить не только к исключению команд установленных на исключаемый маршрут, но и к смещению команд с этого маршрута на ниже стоящий в списке маршрут.

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

События

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

Реакции

  • Активизировать ответное событие (текущий маршрут) - команда, приводящая к появлению события - принята команда по маршруту <имя маршрута>, где <имя маршрута> указывает на активный маршрут в объекте.
  • Запретить обработку событий - команда приводящая к запрещению обработки событий по команде - активизировать ответное событие (текущий маршрут), т.е. блокирующая спецобъект - эхо.
  • Переключится в положение <имя маршрута> - команда, устанавливающая выбранный маршрут < имя маршрута> - активным. Количество команд зависит от количества маршрутов в объекте.
  • Разрешить обработку событий - команда производящая “разблокировку” объекта эхо.

Выборка и поиск

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

Программирование компонента

  В момент включения в проект приложения компонента “выборка и поиск” возникает информационное окно напоминающее о необходимости организации связи между объектом БД и компонентом перед редактированием структуры объекта. Это необходимо потому, что каждый экземпляр объекта - выборка и поиск, предназначен для управления (построения SQL-предложения) для конкретного объекта БД. Информация об объекте базы данных, с которым взаимодействует компонент - "выборка и поиск" организовывается через установление связи по данным.

События

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

Реакции

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

Связь по данным
Источники

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

Приемники

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

Запуск задачи или модуля

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

Программирование компонента

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

События

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

Реакции

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

Связь по данным

  • Компонент - "запуск задачи или модуля" не имеет ни источников, ни информационных приемников.

Обмен сообщениями по сети

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

Программирование компонента

  В момент включения компонента в проект приложения возникает диалоговое окно “Настройки спецобъекта обмена сообщениями” содержащее две области:

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

Общая длина сообщения-идентификатора и информационного сообщения не должна превышать 512 байт.

События

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

Реакции

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

Связь по данным
Источники/Приемники

  • Идентификатор - сообщение-идентификатор установленное в компоненте.
  • Сообщение - информационное сообщение установленное в компоненте.

Объект взаимодействия

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

Программирование компонента

  В момент включения в проект приложения "объекта взаимодействия" возникает специализированное диалоговое окно, предоставляющее два режима работы компонента - “Серверный” и “Клиентский”.
  Каждый из этих режимов содержит разный набор свойств настройки работы компонента. ”Серверный” режим работы предоставляет возможность проектирования необходимой структуры объекта. Именно, описанные в “серверном” режиме “команды”, “события” и “данные” будут использовать в клиентских режимах. Осуществление переноса структуры объекта в другие приложения организовано через транзитный файл *.itr. Каждый формируемый “Сервер” существует с уникальным идентификатором - ID, формируемый системой каждый раз при создании нового объекта.
  Диалоговое окно настройки структуры объекта содержит следующие области:

  • Область определения режима работы компонента
    1. “Серверная”
    2. “Клиентская”
  • Область отображения ID-Сервера
  • Область описания связей объекта по типам:
    1. Команды
    2. События
    3. Данные
  • Область отображения организованных связей. Эта часть отражает список созданных связей в зависимости от выбранного типа.
  • Область ввода наименования новой связи.
  • Кнопка “Добавить” - добавляет в список новую связь.
  • Кнопка “ОК” - выход из диалогового редактирования структуры компонента.

      Если в структуре были изменения, то будет представлено дополнительное диалоговое окно с предложением записи “скрипта” объекта. “Скрипт” объекта сохраняется в виде *.itr -Транзитного файла.
      При выборе в списке связей, какой либо строки кнопка “Добавить”, заменяется на кнопку “Удалить”, активизация которой приводит к удалению выбранной связи.

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

  • Кнопка “Отмена” - завершение работы в диалоге проектирования структуры объекта взаимодействия без сохранения внесенных изменений.

Пояснение работы механизма объекта

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

Рисунок 1 Схема возможных связей компонента

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

Рисунок 2 Схема расположения проектных "событий" и "реакций" в зависимости от режима объекта.

События

  • Набор событий зависит от структуры объекта.

  События в режиме “Сервер”

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

  События в режиме “Клиент”

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

Реакции

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

  Реакции в режиме “Сервер”

  • Активизировать задачу клиента - команда устанавливающая “фокус” на приложении имеющего “клиентскую” часть объекта взаимодействия. Успешное выполнение этой команды зависит от того подключен ”клиент” к “серверу” или нет.

  Реакции в режиме “Клиент”

  • Активизировать задачу сервера - команда устанавливающая “фокус” на приложении имеющего “серверную” часть объекта взаимодействия. Успешное выполнение этой команды зависит от того, установлена ли связь с “сервером”.
  • Найти свободный сервер и подключится - команда, активизирующая поиск активного приложения содержащего “серверную” часть объекта взаимодействия. При успешном поиске производится установка связи между “клиентским” и “серверным” приложениями.
  • Отключится от сервера - команда, активизирующая штатное отключение “клиента” от “сервера”, т.е. происходит разрыв связи между приложениями.

Связь по данным

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

Пример использования объекта взаимодействия

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


Фонограф

  Компонент - "фонограф" представляет механизм проигрывания *.wav файлов. Сервер управления содержит специализированную директорию для хранения звуковых файлов. На клиентские места эти файлы в виде файла-ресурса поступают во время синхронизации. Если компьютер не имеет средств для воспроизведения звуковых файлов, то режим проигрывания не будет задействован. Пользователь может отменить проигрывание всех звуков, управляя опцией системного меню Miracle-приложения - “Звук”.

Программирование компонента

  В момент включения в проект приложения спецобъекта “Фонограф” возникает диалоговое окно позволяющее выбрать звуковой файл, провести его тестирование - кнопка “Тест”.

События

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

Реакции

  • Прервать воспроизведение - команда позволяющая прервать воспроизведение звукового файла.
  • Проиграть модуль - команда, активизирующая воспроизведение звукового файла.


Предыдущий раздел На начал документауции На оглавление Следующий раздел

©1995,1997,2000 НПФ ”И.В.А.”. Все права сохранены.
Название фирм и торговых марок используются только в качестве пояснения.