Методические указания по заданию. 1. Создайте кнопку с анимационной связью Action
1. Создайте кнопку с анимационной связью Action. В Action для запуска (активизации) заданной книги MS Excel используйте функции: InfoAppActive, ActivateApp (эти функции можно использовать в сочетании с функцией InfoAppTitle), StartApp. Для StartApp следует указать не только путь к файлу EXCEL.EXE, но также и путь к рабочей книге. Для организации записи служебной информации в специальный файл используйте функции: InfoFile, StringFromTime, FileWriteMessage, Text (или StringFromIntg).
Анимационная связь Action для кнопки MS Excel |
{активизация (запуск) рабочей книги - Study.xls} IF InfoAppActive( InfoAppTitle( "Excel" )) == 1 THEN ActivateApp InfoAppTitle( "Excel"); ELSE StartApp "c:\progra~1\micros~2\office\excel d:\user\intouch\study.xls"; ENDIF; {запись служебной информации a infostudy.txt} DIM Str AS MESSAGE; Str = StringFromTime(InfoFile("d:\user\intouch \study.xls", 3, $Year ), 3); FileWriteMessage("d:\user\intouch\infostudy.txt ", -1, Str +", ",0 ); Str = Text(InfoFile("d:\user\intouch\study.xls ", 2, $Year), "#" ); FileWriteMessage("d:\user\intouch\infostudy.txt ", -1, Str,1 ); |
2. Откройте рабочую книгу MS Excel. В любых выбранных вами ячейках введите формулы для связи с заданными тэгами учебного приложения InTouch. Например: «=View|Tagname!'Level_1'». Проверьте соответствие полученных результатов значениям тэгов в InTouch.
Для организации записи данных в таблицу MS Excel по запросу используйте функцию WWPoke. При этом, после ввода строки адрес ввода следующей строки должен увеличиваться на единицу.
3. Отведите в рабочей книге MS Excel ячейку под плановый объем выпускаемой продукции (например, R7C2) и запишите в нее какое-либо число. В учебном приложении InTouch для указанного показателя введите аналоговый тэг типа I/O. Адреса ввода для данного тэга в InTouch: Application Name - Excel, Topic Name - [Study.xls]Sheet1, Item - R7C2 (здесь предполагается, что данные находятся на листе Sheet1 в книге Study).
Задание 8. Мастера группы Windows Controls.
Цель работы:
Изучение объектов типа RadioButtomGroup, ListBox, ComboBox группы Windows Controls. Работа с библиотекой функций InTouch. Использование циклов FOR-NEXT в сценариях InTouch.
Теоретические положения
Сложные мастера группы Windows Controls.
Управляющие элементы группы Windows Controls применяются в приложениях InTouch для отображения текста, сбора вводимой пользователем информации или вывода вариантов выбора для оператора при выполнении приложения. Представленные в InTouch объекты типа ListBox, ComboBox являются сложными мастерами. В отличие от обычных мастеров, для указанных объектов разработаны специальные системные функции, которые могут использоваться в Quick-сценариях InTouch. Мастер управляющего элемента окна должен иметь имя (можно использовать имя, задаваемое по умолчанию) для идентификации данного объекта Windows Controls. InTouch использует имя элемента для выполнения какого-либо действия с данным объектом в соответствующих функциях сценария. Имя элемента не увеличивает число используемых приложением тэгов и должно быть уникальным для каждого управляющего элемента. Использование тэгов, хотя и не обязательно, является ключевым для эффективной работы управляющего элемента. Например, выбор пункта из списка не имеет никакого смысла, если этот пункт не привязан к определенному тэгу и поэтому не передается автоматически в InTouch.
Организация циклов в Quick-сценариях InTouch.
Цикл FOR-NEXT используется для выполнения определенных операторов сценария многократно за один прогон сценария. Формат цикла FOR-NEXT следующий:
FOR АналоговыйТэг = НачалъноеВыражение ТО КонечноеВыражение
[STEP ВыражениеИзменения}
... операторы ...
[IF (ЛогическоеВыражение} THEN ЕХIT FOR; ENDIF;]
... операторы ...
NEXT;
Следует обратить внимание на оператор EXIT FOR. Этот оператор используется для принудительного выхода из цикла. Применять оператор EXIT FOR имеет смысл только в логической конструкции типа:
IF (ЛогическоеВыражение) THEN (Операторы) ENDIF;».
При этом «ЛогическоеВыражение» принимает значение «истина» в том случае, когда выполнение операторов внутри цикла больше не требуется. Циклы FOR-NEXT прерывают все другие операции InTouch. При выполнении приложения не происходит никакого перемещения данных в программу Window Viewer или из нее, не обновляются никакие связи анимации и не выполняются никакие другие сценарии, включая асинхронные Quick-функции. Однако, если циклы FOR-NEXT используются внутри асинхронных Quick-функций, они не останавливают выполнение других операций. По умолчанию циклы FOR-NEXT должны завершить работу в течение 5 секунд. Это ограничение встроено в подсистему циклов FOR-NEXT ради безопасности. Однако данное ограничение можно изменить, добавив, например, следующий ключ в файл INTOUCH.INI, находящийся в каталоге приложения: LoopTimeout = 20, где: 20 - число секунд до преждевременного завершения цикла.
Содержание задания
1. Для архивных алармов организуем сортировку по группам и приоритетам, для этого необходимо воспользоваться объектом типа RadioButtomGroup, объекты расположить, так как показано на рис.74.
Рис.74. Расположение объектов в окне исторических алармов.
2. Создать объект типа ListBox или ComboBox в окне регистрации ползователя. Используя любой стандартный текстовый редактор, создать файл SPS1.TXT и занести в него несколько каких-либо фамилий.
С помощью кнопочного или оконного (On Show) сценария загрузить данный список в созданный объект (рис.75). Обеспечить вывод информации из списка в символьный тэг.
Рис.75. Окно регистрации пользователя
3. С помощью кнопки «Добавить новое имя» и поля ввода символьной информации дать возможность пользователю заносить в список новые имена (после каждого добавления список должен сохраняться в файле на диске).
4. Кнопка «Удалить из списка» должна обеспечить удаление выделенного имени из списка, а также из соответствующего файла.