1:? Выборка из базы и формирование анкет
2. Просмотр анкет и вывод их на принтер
Для выборки и подготовки анкет ему надо просто кликнуть первый пункт. Знак вопроса, поставленный, чтобы не запускать его нечаянно, заставит оболочку запросить подтверждение. Если вы подтвердите запуск, то оболочка, обнаружив двоеточие, последовательно выполнит все подпункты, помеченные звездочками. Понятно, так пользователю будет работать удобнее. При этом возможность работать в режиме диалога всегда остается. Для диалога надо спуститься в подпункты клавишей «стрелка вправо», которая игнорирует двоеточие. Диалог используется программистом при создании и отладке макропрограммы. Обычно в поддереве присутствуют некоторые дополнительные пункты, не помеченные звездочками, предназначенные для просмотра промежуточных результатов.
Представление данных и библиотека модулей
Данные в системе ВИК представляются в виде многострочных таблиц. Строки разбиты на показатели (столбцы). Каждая таблица хранится в отдельном файле. Устройство любой таблицы полностью описывается неким текстом, который называется макетом таблицы. В макетах присутствуют: имя файла, имена, размеры и типы показателей, параметры вида таблицы на экране, информация для модулей, обрабатывающих данные. Между таблицами могут быть установлены иерархические отношения, которые описываются также в макетах таблиц. Отношения между таблицами конструируются из множества элементарных связей, указанных в макетах. Элементарная связь это связь показателя таблицы с другой таблицей, которую можно назвать подтаблицей. Покажем на примере суть элементарной связи.
В макете исходной таблицы можно указать ссылку второго показателя на макет подтаблицы. Если кликнуть фамилию, то на экране должны появиться соответствующие подтаблицы. Таблица и ее подтаблицы показаны на рис. 3, 4, 5.
Совокупность таблиц, связанных отношениями подчинения, образует иерархическую базу данных. С помощью макетов таблиц и элементарных связей между ними могут быть созданы разнообразные иерархические базы данных. Для работы с такими базами имеется библиотека стандартных программ, каждая из которых выполняет определенную типовую операцию над таблицами (файлами) базы данных. Основной и самой важной является программа, предназначенная для работы с базами данных в режиме диалога. Эту программу называют просмотром базы данных, однако кроме просмотра она предоставляет пользователям самые широкие возможности для работы с данными, включая создание новых таблиц, ввод и вывод данных, автоматическую калькуляцию и контроль, сортировку, контекстный поиск и пр. Для автоматической калькуляции в макетах таблиц на специальном языке пишутся локальные программы. Язык очень простой, он представляет собой условную вычислительную машину, очень прост для программирования. Например, запись вида <3 3 4 5> расшифровывается так. Первое число, код операции, 3 умножение, далее 3 первый сомножитель из третьей колонки, затем 4 второй сомножитель из четвертой колонки, и наконец, 5 результат в пятой колонке. Запись означает: перемножить показатели третьей и четвертой колонок и послать результат в пятую. Типичный случай регистрации покупок вводится количество и цена, а результат получается автоматически. Программа калькуляции запускается при любом нажатии клавиши и работает мгновенно, так как выполняется только для текущей строки. Набор операций для локальных программ достаточно разнообразен, чтобы сделать работу конечного пользователя весьма комфортной. Например, есть операция вывода текстового (графического, звукового) сообщения, позволяющая запрограммировать сообщение об ошибке. Кроме программы просмотра библиотека содержит программы для типовых преобразований файлов базы данных.
Рис. 3. Исходная таблица
Рис. 4. Подтаблица для Иванова
Рис. 5. Подтаблица для Сидорова
Эти программы можно назвать типовыми операциями над файлами. Любая операция берет данные из исходных файлов, а результат работы записывает в новый. Перечислим программы нашей библиотеки.
Автоматический расчет. Программа просматривает все строки базы данных и выполняет все локальные программы. Вычислительные возможности подробно описаны в [4].
Выборка данных из базы. Значения указанных в задании показателей выбираются из базы и записываются в новую таблицу. Выборка происходит с заданными правилами отбора, которые могут включать проверку контекста, наличие каких-либо пометок, исключение пустых строк и т. п.
Сортировка строк таблицы. Строки исходной таблицы переписываются в новую таблицу в порядке лексикографического возрастания ключей. Ключи составляются из символов строки, порядковые номера которых указываются в задании. При формировании ключей разбиение строк на показатели игнорируется, что позволяет устраивать самые разнообразные сортировки.
Формирование иерархической базы. Программа создает и заполняет данными новую иерархическую базу. Данные берутся из входной таблицы. В задании записываются макеты создаваемой базы и макет входной таблицы. В макете показателей входной таблицы указано их место в новой таблице.