Сводные таблицы
Сводные таблицы позволяют отобразить данные в более удобном для восприятия виде. В DataExpress есть возможность создавать сводные таблицы. Компонент «Сводная таблица» расположен на палитре компонентов. Это довольно сложный компонент с множеством настроек, поэтому некоторые разработчики испытывают трудности с его освоением. Надеюсь, что эта статья поможет им разобраться с этим полезным инструментом. Предполагается, что вы уже умеется создавать формы и компоненты и разобрались с запросами.
Сводную таблицу будем разбирать на простом примере. Есть какие-то платежи каких-то фирм. Нам надо наглядно посмотреть платежи в разрезе фирм и дат. В базе данных будет 3 формы.
Фирмы: Платежи: Сводка: Настроим запрос: Запрос читает данные из формы «Платежи». Нас интересуют поля: Название фирмы, дата и сумма. Для каждой фирмы вычисляется итоговая сумма платежей (для поля «Сумма» выбрана функция «Сумма»). Причем итог рассчитывается за каждый месяц (выбрана группировка по месяцам). Запрос может читать данные за указанный период. Для этого мы настроили фильтр источника (строка «Фильтр»). Посмотрим, что у нас получилось. Как видите получилось не очень наглядно. Теперь давайте посмотрим, что может сводная таблица. Спрячем запрос под сводной таблицей. Свяжем запрос со сводной таблицей. Для удобства сводная таблица отображает некоторые свойства запроса. Нам они пока не нужны. Давайте приступим непосредственно к настройке сводной таблицы. Для того, чтобы сводная таблица что-то отображала нужно как минимум три поля. По одному на каждое измерение. Наш запрос как раз имеет три поля. Добавим поля в соответствующие измерения. В строках - фирмы, в столбцах - даты, в данных - сумма. Вот что у нас получилось. На образце справа можно примерно представить как это будет выглядеть. Значения полей, которые отображаются в строках и столбцах сортируются по возрастанию. Сортировка зависит от типа данных этих полей. Когда мы добавляем поля в измерение, программа пытается автоматически определить тип данных поля. В некоторых случаях программа неверно определяет тип данных. В данном случае тип данных поля «Дата» определен неверно. Это может вызвать удивление. Как так не дата! Но обратите внимание как отображает дату запрос. Формат вывода «год.месяц», вместо привычного «день.месяц.год». А это уже не дата, а текст. Так что нам нужно поменять тип данных на «Текст». Если этого не сделать, то скорее всего вы увидите следующую ошибку при попытке открыть форму «Сводка». Закончим настройку и посмотрим, что получилось. Это самая простая сводная таблица, без группировок и итогов. Давайте усовершенствуем нашу таблицу. Добавим общие итоги и группировку по годам. Добавить общие итоги проще некуда. Чтобы добавить группировку по годам, нам нужно еще одно поле. Для этого создадим вычисляемое поле «Год». Добавим поле в измерение «Столбцы». Поле «Год» должно предшествовать полю «Дата». Сразу настроим свойства поля. Тип вычисляемого поля всегда определяется как строка. Нужно выбрать реальный тип данных. Год - это число. Также будем показывать промежуточные итоги за год. Посмотрим, что получилось. Постойте! Столбцы итогов есть. А где сами итоги? Дело в том, что мы не выбрали функцию вычисления итога для поля «Сумма». Теперь то, что надо. Вот, собственно, и все. Осталось только придать таблице желаемый внешний вид. Но это уже сделайте самостоятельно. Сводная таблица способна «перевернуть» любой запрос. Не бойтесь экспериментировать и результат может вас приятно удивить. Если есть вопросы, добро пожаловать на форум. Пример базы