Конструирование отчетов в VeralTest. Часть III

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

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

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

Создадим новый отчет в окне «Настройка отчетов» и заполним параметры отчета следующим образом:

Так как, отправной точкой для нашего отчета является пользователь, то в качестве раздела для отображения был выбран раздел «Пользователи».

Заполним параметры на закладке «Шаблон отчета»:

Для построения нашего отчета нам потребуются данные о тестах, выполненных пользователем и о результатах выполнения каждого теста, поэтому в поле «Данные для отчета» нужно выбрать «Результаты».

Настроим сортировку данных в отчете. В первую очередь необходимо произвести сортировку по полю «Пользователь», поскольку именно по этому полю будет осуществляться группировка в отчете. Кроме того, хотелось бы, чтобы список выполненных тестов был отсортирован в хронологическом порядке, поэтому нужно еще произвести сортировку по полю «ДатаТестирования». В результате окно настроек сортировки должно выглядеть так:

На этом подготовительные операции завершены, и можно приступать к составлению шаблона отчета.

Первым делом напишем заголовок отчета и поместим в дата-бэнд три текстовых объекта, связанные с полями «ДатаТестирования», «Тест» и «РезультатВ%»

На этом этапе наш отчет будет выводить список пройденных тестов в хронологическом порядке для всех пользователей одновременно без группировки, в чем можно убедиться, запустив отчет на выполнение:

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

Добавим в отчет бэнд заголовка группы. В качестве условия группировки выберем поле «Пользователь»:

Расположим бэнд заголовка группы над дата-бендом и поместим в него поле «Пользователь»:

Для придания большей наглядности отчету, я увеличил шрифт у текстового объекта в заголовке группы и изменил цвет его фона.

Кроме текстового объекта, выводящего имя пользователя, в бэнде заголовка группы можно разместить текстовые объекты, образующие шапку нашей таблицы выполненных тестов:

Запустив отчет на выполнение, проверим корректность работы группировки:

Займемся теперь формированием итогов отчета. Добавим в отчет бэнд подвала группы и разместим на нем объект «Текст». В окне редактора текста выберем команду «Вставить агрегатную функцию» и укажем следующие параметры:

Эта функция будет подчитывать количество строк, выведенных в дата-бэнде, что для нас будет означать количество пройденных тестов.

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

Обратите внимание, что если для агрегатной функции COUNT параметр «Поле БД» не имеет никакого значения, так как она просто подсчитывает количество строк, то для функции MIN этот параметр требуется указывать. Так как наша функция должна вычислять минимальный результат выполнения теста, мы выбираем поле «РезультатВ%»

У вас, наверное, возник вопрос: «Почему в качестве показателя результата выполнения теста я выбрал именно проценты, а не оценку или количество баллов»? Все дело в том, что в VeralTest оценка не обязательно является числом. Она может быть любой текстовой фразой, например «зачет» или «Отлично». Количество набранных баллов тоже не может быть однозначным показателем успешности выполнения теста, поскольку максимальный балл меняется от теста к тесту. Поэтому, единственным универсальным критерием успешности прохождения теста является отношение количества набранных баллов к максимально возможному количеству баллов за тест, что и отражает результат в процентах.

Нам осталось добавить в бэнд подвала группы еще два текстовых объекта, отображающих максимальное и среднее количество баллов. Для вычисления максимального количества баллов будем использовать агрегатную функцию MAX, а для среднего – AVG, остальные параметры устанавливаем такие же, как и у MIN.

В результате шаблон отчета должен выглядеть так:

Проверим, как работает отчет.

Итоги отображаются нормально, только вот в некоторых случаях для среднего результата выводится слишком много знаков после запятой. Нам такая точность ни к чему, вполне хватило бы и двух знаков.

Исправить ситуацию поможет изменение формата вывода у текстового объекта, отображающего средний результат. Для этого двойным щелчком мыши на объекте вызовем редактор текста, перейдем на закладку «Формат» и установим следующие параметры:

Результат применения форматирования:

Придадим строке итогов завершенный вид: добавим заголовки, отрегулируем ширину и установим обводку у тестовых объектов.

Отчет готов, вот так он выглядит в окончательном варианте:

Наш отчет выводит информацию сразу по всем пользователям. Но что делать, если нам требуется анализ успеваемости только по одному пользователю? Для этого нужно просто изменить значение параметра «Отбор» на закладке «Шаблон отчета» :

Выбор значения «Текущий пользователь» приведет к тому, что отчет будет выполняться только для текущей выделенной записи в разделе «Пользователи».