Визуализация данных
В случае, когда данных очень много,
необходимо предоставить пользователю удобные
инструменты для манипулирования ими. Здесь
предлагается способ визуализации отчетов,
достаточно сложный, чтобы быть реализованным и
даже формализованным отдельным программистом,
но тем не менее достаточно наглядный, чтобы
заинтересовать коммерческие фирмы в разработке
соответствующего софта.
Оценить визуальное представление отчета вы
можете в файле report.xls
Определения
Пусть есть некоторые ПЕРЕМЕННЫЕ,
описывающие некую предметную область.
Например в торговой системе для отчета по
движению товара это:
љљљ Фирма - фирма, от лица которой
осуществлялось движение
љљљ Склад - склад, с которого
осуществлялось движение
љљљ Товар - товар, по которому
осуществлялось движение
љљљ Дата - дата движения
љљљ Вид - конкретный вид движения (приход,
возврат, списание, оприходование)
љљљ Направление - приход или расход
љљљ Контрагент - контрагент, во
взаимодействии с которым осуществлялось
движение
Также есть некоторые ГРУППЫ - множества,
в которые входят значения переменных, причем
одно значение переменной может входить в
несколько групп, например:
љљљ Происхождение(Товар) - отечественный,
импортный
љљљ Группа(Товар) - бакалея (хлеб, масло),
алкоголь (водка, пиво), ... - вложенные группы
љљљ Расположение(Склад) - Калининград,
Нестеров, Черняховск
љљљ Категория(Товар) - водка РВ, водка
СПИРВВК, пиво Очаковское, пиво Классическое
Также существуют некие ФУНКЦИИ от этих
переменных (одной или нескольких), например:
љљљ Остаток(Фирма, Склад, Товар)
љљљ Цена (Склад, Товар)
љљљ ИНН (Контрагент)
љљљ Код (Товар)
љљљ Штрих-Код (Товар)
љљљ Количество (Фирма, Склад, Товар,
Направление, Вид) - количество движения
љљљ Количество (Товар, Направление, Вид) -
количество движения в другом разрезе
Для каждой пары (Группа, Функция) должно быть
указано, какая ГРУППИРОВКА
используется для вычисления значения функции
для группы, способы обычно следующие:
љљљљ Сумма - исползуется по умолчанию,
если не задан вид группировки
љљљљ Min, Max
љљљљ Среднее
љљљљ Произведение
Базовое представление
Наиболее простым представлением информации
является СГРУППИРОВАННЫЙ отчет:
љљљљљљљљљљљљљљљљљљљ
Функии: |
Цена | Остаток | Кол-во | Сумма |
Переменные: | љ | љ | љ | љ |
Фирма љљљ Склад љљљљљљљ Товар љљљљљљљљљљљ Направление љљљљљљљљљљљљљљљ Вид |
љ | љ | љ | љ |
С отступом повторяются значения переменных. Для каждой переменной также должно выводиться итоговое значение. Очевидно, итог по самой верхней переменной и есть итог всего отчета.
Более сложной формой, но по-сути тем же самым, является ПЕРЕКРЕСТНЫЙ отчет:
љ | љ | љ | Приход | љ | љ | љ | љ | љ | Расход | љ | љ | љ |
љ | љ | љ | љ | љ | Закуп | љ | Возврат | љ | љ | љ | Продажа | љ |
Функии: |
Цена | Остаток | Кол-во | Сумма | Кол-во | Сумма | Кол-во | Сумма | Кол-во | Сумма | Кол-во | Сумма |
Переменные: | љ | љ | љ | љ | љ | љ | љ | љ | љ | љ | љ | љ |
Фирма љљљ Склад љљљљљљљ Товар |
љ | љ | љ | љ | љ | љ | љ | љ | љ | љ | љ | љ |
Это тот же самы отчет, только значения
группировок Направление и Вид вынесены в
колонки. Как видим, для группировок Направление и
Вид вычисляются только переменные Кол-во и Сумма,
т.к. остальные переменные безразличны к этим
группировкам.
Иерархическое представление
Более сложным представлением является
ИЕРАРХИЧЕСКИЙ СГРУППИРОВАННЫЙ отчет:
Функии: |
Цена | Остаток | Кол-во | Сумма |
Переменные: | љ | љ | љ | љ |
Фирма љљљ Склад љљљљ Группа(Товар) љљљљљљљљљ Группа(Товар) љљљљљљљљљљљљљљљљљ Товар љљљљљљљљљљљљљљљљљљљљљљ Направление љљљљљљљљљљљљљљљљљљљљљљљљљљљљ Вид |
љ | љ | љ | љ |
Как видно, товар представлен не просто списком значений, а значения входят в группы. Для формирования групп существуют следующие способы:
нет группировки - просто все значения (простой сгруппированный отчет)
только одна группировка, те товары, которые в нее не входят, относятся к прочим.
несколько группировок, если товар не найден в одной группировке, группой для него является следующая группировка и т.д.
Удобно для просмотра значений группировок и переменных разного уровня использовать интерактивные формы с раскрывающимися группами, например в Excel есть понятие групп, обЪединяющих строки и колонки которые можно разворачивать и сворачивать.
Пример сложного иерархического сгруппированного отчета в файле (скоро будет....).
Формат входящих данных
Переменные передаются в таблицах следующего
формата:
Код_значения_переменной Значение_переменной
Каждая переменная имеет свой код Код_переменной.
Группы передаются в таблицах вида (в них
содержится и группировка групп):
Код_значения_группы Значение_группы
Код_значения_группы (для родителя)
Каждая группа имеет свой код Код_группы.
Принадлежность элементов группам
передаются в таблицах вида:
Код_переменной Код_группы
Код_значения_переменной Код_значения_группы
Очевидно, любой отчет можно
формализировать.... Но это в будующем.
Очевидно, данные могут передаваться через DBF, XML,
TXT, XLS и т.п. форматы.
Интерактивное составление
отчетов.
Исходные данные для отчета загружаются только
один раз. Затем пользователь имеет полную
свободу в составление отчетности в различных
разрезах.
Очевидно, для составления любого отчета
пользователю нужно указать:
какие переменные и в каком порядке использовать
какие группы и какими способами использовать для переменных
какие функции показать в отчете
на какой переменной перейти к перекрестному отчету и какие колонки использовать в каждой переменной, учавствующей в перекресте...
Например отчетљ report.xls, м.б. описан следующим образом:
Переменные - есть ли перекрест
и указаны в порядке:
Фирма
Товар
Склад
Направление - перекрест
Вид - перекрест
Функции - для каких переменных:
Цена - для всех
Остаток - для всех
Количество - для Направление, Вид
Сумма - для Направление, Вид
Группы - для каких переменных:
Комментарии
13