Функциональные преобразования табличных данных в АИОС "ДЕЛЬТА"

Бабий А.А., Качаев А.В., Олейников Б.В.

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

Для решения поставленных задач в рамках создаваемой в Красноярском государственном университете автоматизированно-обрабатывающей системы "Дельта" разработана подсистема ТАБЛ, позволяющая создавать произвольные (в смысле структуры, форматов и содержания) выходные табличные формы /1/.

Создание выходных табличных форм в подсистеме ТАБЛ базируется на следующих положениях.

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

2.Допускается, что подтаблицы или элементы, вложенные в них, могут быть пустыми, как с точки зрения содержания, так и с точки зрения структуры. Это позволяет получать таблицы не только прямоугольного вида, но и любые "ущербные" таблицы, внешняя граница которых представляет собой любые выпуклые или вогнутые многоугольники, полученные с помощью горизонтальных и вертикальных последовательностей любых символов, реализуемых на АЦПУ или дисплее. Указанное допущение позволяет также получать таблицы любой степени связанности, т.е. таблицы, допускающие любое количество разрывов (или разнесений), а также любое количество "дыр" во внутренней структуре таблицы.

3.Допускается, что выходная табличная форма может содержать данные:

При описании таблицы в исходном языке предусматривается следующая вложенность объектов.

К АПТ ПТ Т

где: К - клетка, определяет форматы в описании структур и с содержательной точки зрения содержит элемент атомарной подтаблицы;

АПТ - атомарная подтаблица, определяет содержательную часть требуемых структур;

ПТ - подтаблица, некоторая содержательная структура, полученная из атомарных подтаблиц, являющаяся элементом сборки таблицы;

Т - таблица, требуемая заданием.

Таким образом содержательная часть таблицы формируется в атомарных подтаблицах.

В системе "Дельта" предусмотрено, что атомарными могут быть следующие таблицы.

1.Таблица, содержащая данные, отобранные по условию из базы данных, т.е. таблица типа поисковой, сформированная на естественном уровне.

2.Таблица условного или безусловного частотного распределения любой размерности. При помещении данных в такую таблицу возможен их отбор по условию. Предусматривается также усечение таблицы, автоматическое и ручное интервалирование данных.

3.Таблица, содержащая список наименований предложений документа (реквизитов), взятых из базы данных.

4.Таблица, содержащая список наименований подпредложений документа, взятых из базы данных.

5.Таблица, содержащая список наименований альтернатив (значений реквизита), конкретных предложений (в случае если их тип дискретный) , взятых из базы данных.

6.Таблица, содержащая список границ интервалов для альтернатив предложения непрерывного типа (как при автоматическом, так и при ручном интервалировании).

7.Таблица, содержащая условие на отбор данных из базы данных.

8.Таблица, содержащая любые отдельно взятые данные пользователя

9.Таблица, cодержащая любой текст пользователя.

10.Пустая таблица.

11.Некоторая функция от одной или нескольких таблиц вида 1.-10.

Все эти таблицы довольно просто описываются в рамках единого структурированного языка, позволяющего создавать сложные комплексные таблицы использующие разнотипные документы. В /1/ было описано получение сложных табличных форм в рамках этого языка, на основе атомарных подтаблиц типа 1.-10., а также различные сервисные средства, облегчающие работу пользователя. Предварительный анализ показывает, что с помощью этого языка можно описывать получение практически любых те только находящихся в обращении, но и перспективных табличных форм.

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

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

Для реализации указанных преобразований необходим язык программирования, объектами которого являются АПТ или его любые подмножества, вплоть до отдельного поля клетки. Результат операции над одной или более АПТ есть основа АПТ.

Таким образом, реализация любых функциональных преобразований табличных данных представляет собой в сущности оперирование с АПТ. Очевидно, что понятие АПТ можно распространить на многие объекты информационных систем, но тогда средства функционального преобразования этих объектов можно рассматривать как подмножество языка функциональных преобразований таблиц.

Разработанный в рамках подсистемы ТАБЛ язык функциональных преобразований таблиц (ЯФПТ) позволяет вычислить новое содержимое АПТ используя АПТ 1.-10. ЯФПТ предполагает наличие двух частей.

- описание собственно функциональных преобразований;

- описание обработки исходных АПТ с помощью этих преобразований.

Описание функциональных преобразований заключается в описании входных и выходных объектов языка на котором реализуется преобразование. Основными объектами при этом являются: АПТ, строка клеток столбец клеток, клетка. Каждый объект специальным образом идентифицируется.

Функциональное преобразование может быть представлено:

Описание обработки исходных АПТ с помощью функциональных преобразований представляет собой совокупность определенных операторов. Приняты следующие операторы:

<<имя АПТ>> = <<имя функции>>(<<список параметров>>);

<<идентификатор !строки клеток!столбца клеток!клетки>> = <<имя функции>>(<<Список параметров>>);

<<идентификатор поля клетки>> = <<арифметическое выражение над полями клетки>>.

Характеристики новых АПТ, полученных в результате функциональных преобразований исходных АПТ должны быть описаны ранее стандартным в рамках подсистемы ТАБЛ образом.

В настоящее время Подсистема ТАБЛ, оперирующая с АПТ типа 1.-10, Передана в пробную эксплуатацию. Оперирование с АПТ типа 2 находится в стадии программной реализации.


Опубликовано: Автоматизированные системы управления и вычислительная техника. Тезисы докладов к краевой конференции 8 июня 1984 г. Красноярск
© Алексей Бабий 1984