Внимание! Информация частично устарела. После версии программы Jigrein для платформы Win32 были выпущены версии для платформы NET и для Web-платформы. Но принцип хранения моделей в html-документах не изменился. Вместо загрузчика K2MDIfc.js, используется JigreinLoader.js. Функция K2MDControl заменена на тег noscript. Примеров на сайте много.

Клиначёв Николай Васильевич

Создание html-файлов с моделями программы Jigrein

Программа Jigrein создана в виде программного компонента, который можно встраивать в рабочие файлы других приложений ОС Windows, поддерживающие автоматизацию (скриптование посредствам VBA или других языков). К таким приложениям относятся почти все программы фирмы Microsoft (Word, Excel, Access, Visio, Outlook Express), а так же программы других производителей. html-Документы в большей степени подходят для встраивания моделей. Во-первых, у пользователя появляется возможность документировать модели. Во-вторых, публиковать их в сети Интернет. В-третьих, подборку html-документов можно оформить в виде электронной книги (в виде chm-файла справочной системы ОС Windows).

В оглавлении распространяемого файла Jigrein.chm имеется пункт: Архив бланка HTML-страницы со встроенной моделью пользователя. Архив можно распаковать в любой директории. Файл blank.htm следует открыть программой MS Internet Explorer. Далее, пользователь может модифицировать модель и сохранить ее. Документация программы Jigrein содержит подробное руководство по теории и практике создания математических моделей. Этот этап — опустим. Для сохранения внесенных изменений следует выполнить последовательность действий.

  1. Воспользоваться контекстным меню для рабочего поля чертежа модели и выбрать команду Сервис > COM-экспорт.
  2. Скопировать в буфер экспортированные данные.
  3. Открыть html-файл в текстовом редакторе и заменить функцию с именем MDL() содержимым буфера.
  4. Обновить отображение отредактированного html-файла в окне браузера.

В среднем вся процедура сохранения файла занимает не более 20 сек. Опишем детали процедуры. На рисунке 1 представлен скриншот окна браузера MSIE. Можно видеть встроенную область с чертежом модели программы Jigrein. На скриншоте показано положение команды Сервис > COM-экспорт в контекстном меню. Уточним, что меню активируется правой кнопкой мыши.

#########

Рис. 1

Активация процедуры экспорта данных чертежа приводит к изменению внешнего вида html-документа. Страничка становится больше. В нижней её части появляется текстовая область с javascript-кодом на жёлтом фоне. Пример можно видеть на рисунке 2. Именно этот javascript-код следует выделить и скопировать в буфер. Процедуру выделения лучше активировать мышью, от последней фигурной скобки к началу. В этом случае не потребуется прокрутка.

#########

Рис. 2

Для вызова текстового редактора, с целью редактирования html-документа, следует воспользоваться командой меню браузера Вид > Просмотр HTML-кода, как показано на рисунке 3.

#########

Рис. 3

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

#########

Рис. 4

После сохранения отредактированного html-файла и закрытия редактора текста следует выполнить команду главного меню браузера Вид > Обновить (см. рисунок 5). Изменения, которые вносил пользователь, будут учтены при отображении чертежа. В нижней части страницы исчезнет javascript-код. На этом этапе процесс сохранения модели завершен. Пользователь может воспользоваться любым руководством по html-разметке и документировать свою модель, составив подробное текстовое описание.

#########

Рис. 5

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

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Эта строка фиксирует кодировку для html-страницы. utf-8 — лучший выбор. Допустимы кодировки windows-1251 или koi8-r.

    <link href="JS/inf.css" rel="stylesheet" type="text/css">

Эта строка подключает файл inf.css с каскадной таблицей стилей (с набором типовых правил оформления текста). Файл можно отключить или заменить в нем правила. К функционированию математической модели он не имеет отношения.

    <script type="text/javascript" src="JS/K2MDIfc.js">

Эта строка подключает файл K2MDIfc.js, в который вынесены функции, обслуживающие встраиваемый в html-страницу объект программы Jigrein.

    this.Nxt=null;

Это единственное поле данных функции—класса с именем MDL(), которое может менять пользователь. В случае если html-страница содержит более одного встраиваемого объекта программы Jigrein (если страница имеет более одной модели), то в это поле должно быть внесено имя следующей функции—класса с данными о модели. Функции—классы должны образовывать цепь, как показано ниже в примере. Последняя функция должна замыкать цепь значением null в этом поле.

    function MDL () {
      this.Nxt=MDL2;
      ...
    };
    function MDL2() {
      this.Nxt=MDL3;
      ...
    };
    function MDL3() {
      this.Nxt=null;
      ...
    };

Фирма Microsoft проиграла судебную тяжбу, которая касалась тега object в html-коде. Новые версии браузера MSIE не активируют встроенные объекты в html-страницах, если тег object впечатан html-код. Фирма Microsoft рекомендуют встраивать объекты средствами javascript-кода. Для решения этой задачи файл K2MDIfc.js содержит функцию K2MDControl(...). Пример вызова этой функции из html-страницы показан в следующем абзаце.

    <script type="text/javascript">
        K2MDControl("0","FromCHM","1,0,0,3", "327px", "337px", '');
    </script>

Первый аргумент функции K2MDControl — это порядковый номер модели — объекта программы Jigrein (см. код в следующем абзаце). Количество объектов программы Jigrein должно совпадать с количеством функций MDL() описанных выше. Второй аргумент — текстовая строка "FromCHM" воспринимается как элемент перечисления. В зависимости от значения этого аргумента функция K2MDControl указывает разные источники загрузки инсталляционного файла Jigrein.CAB в атрибуте codeBase тега object. Третий аргумент — это указатель на наиболее младшую версию программы Jigrein, которая необходима для нормального функционирования модели. Четвертый и пятый аргументы — это ширина и высота области, которая отводится в html-странице объекту программы Jigrein. В последнем пустом аргументе можно определить атрибут style (no comments).

    <script type="text/javascript">
        K2MDControl("0","FromCHM","1,0,0,3", "327px", "337px", '');
    </script>
    <script type="text/javascript">
        K2MDControl("1","FromCHM","1,0,0,3", "627px", "467px", '');
    </script>
    <script type="text/javascript">
        K2MDControl("2","FromCHM","1,0,0,6", "100%", "467px", '');
    </script>

Обычно у пользователя возникает потребность указать ширину и высоту объекта. Номер текущей версии можно уточнить в меню программы Jigrein (Сервис > О программе). Поскольку платежеспособного спроса на программу Jigrein нет — автор не может платить ежегодно $400 за цифровой сертификат. И файл Jigrein.CAB распространяется без подписи. Поэтому не рекомендуется использовать варианты загрузки "FromSite" и "FromSetupPage", поскольку загружаемая из сети последняя версия файла Jigrein.CAB блокируются браузером и системами безопасности.

    <p id="DataStr" class="rgth" style="clear: both">X.XX.2007</p>

Это абзац, точнее тег, который не рекомендуется удалять из html-страницы. Он имеет идентификационный атрибут с особым значением — id="DataStr". Значение идентификационного атрибута используется функциями файла K2MDIfc.js для динамической перестройки страницы и впечатывания javascript-кода в ответ на команду меню Сервис > COM-экспорт (см. рис. 2). Дату — X.XX.2007 — можно менять.

14.10.2007