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