Методические указания к лабораторным работам для студентов специальности 210100 "Автоматика и информатика в технических системах"

Вид материалаМетодические указания

Содержание


Лабораторная работа № 2 РАЗРАБОТКА МНОГОУРОВНЕВЫХ СИСТЕМ МЕНЮ ДЛЯ ИСС
1.Общие сведения
Set message to
Do casecase
2. Задание на работу
Подобный материал:
1   2   3   4   5   6   7   8

Лабораторная работа № 2

РАЗРАБОТКА МНОГОУРОВНЕВЫХ СИСТЕМ МЕНЮ ДЛЯ ИСС


Цель работы: изучить команды и функции языка манипулирования данными для реализации систем меню и разработать двухуровневую систему меню информационно-справочной системы заданной предметной области.

1.ОБЩИЕ СВЕДЕНИЯ


Меню является основной формой диалога в автоматизированной информационной системе (АИС). Существуют и используются много вариантов организации меню. В самом общем случае инструментарий для организации меню можно разбить на два класса: неспециализированные средства (по существу, это команды ввода/вывода) и специализированные средства.

FoxPro обладает исключительно развитыми специализированными средствами поддержки меню. Классификация этих средств приводится на рис.2.



Рис. 2

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

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

В FoxPro реализованы две технологии построения светового меню, а именно: технология из FoxBase и технология из DBase IV. Важнейшее различие между технологиями может быть отражено терминами "меню-программа" для технологии FoxBase и "меню-объект " для DBase IV, т.е. Fox-меню является только частью программы, где оно создается, используется и "умирает", а DBase-меню после своего определения остается независимым и "живым" объектом, к которому можно обратиться из любого места программы и даже из командного окна уже после завершения программы.

Fox-меню всегда вырабатывает числовые переменные, фиксирующие сделанный пользователем выбор, который дальше анализируется в команде DO CASE. Для возврата в меню, как правило, его помещают в бесконечный цикл.

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

Fox-меню можно организовать с помощью трех пар команд:
@ ... PROMPT и MENU TO; @ ... MENU и READ MENU TO; MENU BAR и READ MENU BAR TO.

Команды организации DBase-меню делятся на четыре вида: команды определения меню, (DEFINE POPUP, DEFINE BAR); команды активизации меню (ACTIVATE POPUP); деактивизации меню (DEACTIVATE POPUP); удаления меню (CLEAR POPUP). Эти четыре вида команд определяют технологию использования меню. Меню предварительно определяется, а затем по необходимости используется, сохраняется, убирается или уничтожается в любом месте программы .

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

Для организации клавишных меню используются команды и функции: ON KEY, ON KEY LABEL, ON ERROR, ON READ ERROR, ON ESCAPE, INKEY(), LASTKEY(), READKEY(), SET FUNCTION.

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

Рассмотрим формат и возможности самой простой команды для организации светового меню по технологии Fox-меню .

Синтаксис команды @ ... PROMPT и MENU TO следующий:
@ <строка,столбец> PROMPT <симв.выраж.> [MESSAGE<симв.выраж.>]
MENU TO <перем.пам.>
SET MESSAGE TO <числ.выраж.>.

Последовательность команд @...PROMPT позволит вывести строки меню в соответствующих позициях на экране. Команда MENU TO вызывает меню со световым указателем, управляемое клавишами курсора, для заданных в текущий момент подсказок PROMPT.

По мере перемещения пользователя по строкам меню выделяется каждая подсказка PROMPT и в позиции, заданной командой SET MESSAGE TO, выводится дополнительное сообщение, связанное с этой строкой. Выбор в меню может быть произведен нажатием клавиши при расположении маркера выбора на соответствующей строке PROMPT или вводом первой буквы соответствующей строки.

В переменную памяти, указанную в строке команды MENU TO, заносится номер выбора, определяемый порядком следования строк PROMPT.

Сохранена поддержка команды SET MESSAGE. Выбор определенного варианта определяется типом выражения: числовое оно или символьное. Команда SET MESSAGE TO без дополнительных аргументов очистит оба типа заданных сообщений MESSAGE. Для анализа результата выбора используют команду DO CASE, ее формат имеет вид

DO CASE
CASE <выраж.1>
<операторы>
CASE <выраж.2>
<операторы>
..............
CASE <выраж.N>
<операторы>
[OTHERWISE
<операторы>]

ENDCASE

В этом типе команды структурного программирования операторы CASE анализируются по одному в поисках первого логически истинного оператора. Когда обнаруживается первый логически истинный оператор, выполняются соответствующие выражения <операторы>. Выполнение операторов производится до тех пор, пока не будет обнаружен следующий оператор CASE. Когда это происходит, система возобновляет выполнение с первой команды, следующей за ENDCASE.

В цикле DO CASE всегда выполняется один и только один (первый из обнаруженных) оператор CASE, независимо от того, сколько операторов CASE фактически являются истинными. Если истинный оператор CASE не обнаружен, тогда дальнейшее выполнение команды зависит от наличия в составе команды оператора OTHERWISE. Оператор OTHERWISE (представленный соответствующими выражениями) является просто описанием действий, которые должны быть выполнены, если не будет найден ни один истинный оператор CASE. Если оператор OTHERWISE имеется в составе команды, то выполняются связанные с ним выражения до тех пор, пока не будет обнаружен оператор ENDCASE. Если оператор OTHERWISE отсутствует, система продолжает работу с первой команды, следующей за оператором ENDCASE. Обратите внимание, что в этом последнем случае ни одно выражение, входящее в структуру DO CASE, выполнено не будет. Пример:

DO CASE
CASE Action = "Rental"
DO Rentfee
CASE Action = "Purchase"
DO Price
OTHERWISE
DO Mainmenu

ENDCASE

Каждое выражение CASE в составе конструкции DO CASE анализируется в поисках первого выражения, которое является логически истинным. В данном примере анализируется переменная Action. Если Action равняется "Rental", выполняется программа Rentfee. Если Action равняется "Purchase", выполняется Price. Если ни одно из выражений CASE не истинно, то выполняется Mainmenu.

2. ЗАДАНИЕ НА РАБОТУ


2.1. Используя учебные пособия [4–15], материал первого раздела данной лабораторной работы, системную документацию по СУБД или информационную подсистему по языкам СУБД в автоматизированной справочной системе NG, изучить функциональные возможности следующих команд и функций: @.PROMPT, MENU TO, DO CASE, SET KEY, SET MESSAGE, SET WRAP, ACHOICE().

2.2.Разработать двухуровневую систему меню, связанную с "визитной" экранной формой из лабораторной работы № 1.На первом уровне должны быть представлены основные функции ИСС, а именно: ввод новых данных, корректировка данных, поиск данных, формирование отчетных форм, выход из системы и др. Второй уровень раскрывает содержание первого уровня. Например, функции корректировки данных могут включать в себя уничтожение данных, исправление данных, добавление данных и т.п.

2.3.Оформить отчет.