Под шаблоном отчета подразумевается совокупность страниц отчета с расположенными на них графическими и текстовыми элементами оформления, а также свойствами и правилами создания отчета. Эти шаблоны служат основой для создания и печати отчетов в приложении Geostron.
Основные задачи, которые можно решать в визуальной среде создания отчетов:
-
загрузка, редактирование и сохранение шаблонов отчетов;
-
создание структуры отчета и определение его основных свойств;
-
разработка страниц отчета;
-
генерация отчета на основе созданного шаблона, его предварительный просмотр или печать.
Для запуска Редактора отчетов требуется нажать кнопку [Панель меню] – [Настройки] – [Редактор отчетов]:
Центральная часть открывшегося дизайнера отчетов отведена под макет страницы будущего отчета. Слева от страницы располагается панель свойств. Она отображает свойства активного в текущий момент элемента управления. Настраивать внешний вид и определять особенности поведения компонентов можно изменяя значения их свойств.
* По умолчанию в Редакторе отчета открывается шаблон последнего сгенерированного отчета.
1. Для создания нового шаблона отчета необходимо в Редакторе отчетов нажать [Файл] – [Новый…] или [Файл] – [Новый отчет].
2. Для загрузки данных нажмите [Отчет] – [Данные...]
3. В появившемся окне выберите тип данных и нажмите [Ok]:
4. В окне появится список переменных необходимых для отчета:
Важно! Сохранять шаблон отчета необходимо в папке UserReportTemplates_RUS, эта папка располагается по адресу установки приложения Geostron.
Виды отчетов:
-
-
-
Отчет с диаграммой: в отчете строится диаграмма по выбранным параметрам.
Объекты отчета
В Редакторе отчетов пустой отчет представлен в виде листа бумаги. На любое место листа можно положить объекты, которые могут отображать разную информацию (текст, график, изображение) и определять внешний вид отчета.
Описание назначения объектов, входящих в стандартную поставку:
Объект
|
Иконка
|
Описание
|
Выбор объектов
|
|
Выделяет объекты в области отчета для редактирования.
|
Рука
|
|
Позволяет перемещаться по области страницы отчета
|
Лупа
|
|
Увеличивает область отчета
|
Редактор текста
|
|
Позволяет редактировать текст
|
Копирование
|
|
Позволяет копировать внешний вид
|
Вставить бэнд
|
|
Позволяет задать область отчета с определенным поведением.
|
Текст
|
|
Отображает одну или несколько строк текста внутри прямоугольной области.
|
Рисунок
|
|
Отображает графический файл формата BMP, JPEG, ICO, WMF, EMF.
|
Вложенный отчет
|
|
Позволяет вставить дополнительный отчет внутрь основного.
|
Служебный текст
|
|
Отображает служебную информацию (дата, время, номер страницы), а также агрегатные значения.
|
CheckBox
|
|
Отображает значок – галочку или крестик.
|
Диаграмма
|
|
Отображает данные в виде диаграмм различных типов (круговая диаграмма, гистограмма и т.п.).
|
Cross-tab DB Cross-tab
|
|
Позволяет строить сводную таблицу.
|
OLE
|
|
Может отображать любой объект, используя технологию OLE.
|
Фигура
|
|
Объекты категории "Рисование" представляют собой различные геометрические фигуры – линии, прямоугольник, прямоугольник с круглыми углами, эллипс, треугольник, ромб.
|
Создание отчета
Рассмотрим создание простейшего отчета, который будет содержать всего одну надпись "Hello, World!". Открываем Редактор отчетов. На панели объектов дизайнера нажимаем кнопку Текст . Перемещаем указатель мыши на нужное место на листе, и нажимаем правую клавишу мыши. Объект вставлен.
Сразу же на экране появляется окно Редактор текста, если оно не появилось, сделайте двойной щелчок мышью на объекте:
Отчет готов. Для его просмотра выберите пункт [Файл] – [Просмотр], или нажмите кнопку [Предварительный просмотр] на панели инструментов (Ctrl+P). Появится окно просмотра с единственной страницей отчета, которая содержит надпись "Hello World!". Полученный отчет можно распечатать, сохранить в файл или экспортировать в один из поддерживаемых форматов.
Объект Текст обладает широкими возможностями. Он умеет отображать текст, рамку, заливку. Текст может быть отображен любым шрифтом, любого размера, цвета и стиля. Формат текста настраивается с помощью набора инструментов:
Использование бэндов
Слово "бэнд" (band) по-английски означает "полоска". Бэнды применяются для логической группировки объектов. Например, разместив объект на бэнде типа "Заголовок страницы", Редактор отчетов данный объект выведет на каждой странице готового отчета вверху. Аналогичным образом бэнд "Подвал страницы" выводится внизу каждой страницы, со всеми лежащими на нем объектами.
Пример:
Сделаем отчет, который содержит надпись "Hello!" вверху страницы, текущую дату вверху справа и номер страницы внизу справа.
Зайдите в Редактор отчетов и нажмите кнопку Новый отчет на панели инструментов. Откроется шаблон отчета, который уже содержит два бэнда: Заголовок отчета, Данные 1 уровня и Подвал страницы. Пока удалим бэнд Данные 1 уровня - щелкните мышкой на любом свободном месте внутри бэнда или на его заголовке и удалите его с помощью клавиши Delete или через контекстное меню.
Теперь добавим новый бэнд - Заголовок страницы. Для этого на панели объектов щелкните кнопку [Вставить бэнд] и из открывшегося списка выберите Заголовок страницы. На страницу добавился новый бэнд. При этом имеющиеся бэнды сместились ниже. Дизайнер Редактора отчетов автоматически размещает бэнды на странице таким образом, чтобы вверху находились бэнды-заголовки, после них – бэнды-данные, и ниже всех – бэнды- подвалы.
Теперь размещаем объекты. На бэнд Заголовок страницы помещаем объект Системный текст и в его редакторе выбираем Системная переменная, [DATE] (напомним, что дату можно вывести и с помощью обычного объекта Текст, набрав в его редакторе текст [DATE]). На бэнд Заголовок отчета помещаем объект Текст, который будет содержать текст "Hello!". А на бэнде Подвал страницы необходимо разместить объект, отображающий номер страницы.
Запустим отчет на выполнение.
В зависимости от типа бэнда объект располагается вверху или внизу страницы, на первой странице, на последней странице.
Основные бэнды:
-
бэнд Заголовок страницы выводится в самом верху на каждой странице;
-
бэнд Подвал страницы выводится в самом низу на каждой странице;
-
бэнд Заголовок отчета выводится на первой странице отчета вверху, но после бэнда Заголовок страницы (это регулируется свойством страницы TitleBeforeHeader, которое задается в инспекторе объектов);
-
бэнд Подвал отчета выводится в самом конце отчета, на свободном месте.
Бэнды-данные
Для печати информации в виде таблицы используется особый тип бэндов - бэнды-данные, или дата-бэнды. Это бэнды с названиями "Данные xxx уровня".
Чтобы напечатать всю таблицу или некоторые ее поля, необходимо:
-
добавить дата-бэнд в отчет;
-
разместить на нем объекты Текст с полями, которые мы хотим распечатать.
При построении отчета Редактор отчета повторит печать бэнда столько раз, сколько записей в нашей таблице. При этом, если закончилось свободное место на странице, будут сформированы новые страницы отчета.
Пример создания отчета "Групповой отчет"
Заголовок отчета и шапка таблицы составляется с помощью добавления объекта Текст.
1. Далее добавляется бэнд Данные 1 уровня:
2. В инспекторе свойств бэнда указать:
3. На данном бэнде размещаются объекты Текст. В объекте Текст указывается переменная, которая будет выводить требуемые данные.
4. Откроется окно Редактор выражений:
5. Переменная отобразится в окне Редактор текста:
5. В области страницы отчета устанавливается ширина и длина объекта. Так как это таблица, то длинна колонки соответствует длине "№".
Описание значений переменных:
Системные переменные
(Data Field)
|
Назначение
|
Пример
|
spanData
|
Указывается интервал дат, за который строится отчет.
|
22.01.2015 - 22.01.2015
|
spanTime
|
Указывается интервал времени, за который строится отчет.
|
15:00:00 - 23:59:59
|
dataStart
|
Дата начала интервала, за который строится отчет.
|
22.01.2015
|
dataEnd
|
Дата конца интервала, за который строится отчет.
|
22.01.2015
|
timeStart
|
Время начала интервала, за который строится отчет.
|
15:00:00
|
timeEnd
|
Время конца интервала, за который строится отчет.
|
23:59:59
|
allTime
|
Общее время интервала, за который строится отчет.
|
08:59:59
|
group
|
Группа, которой принадлежит объект.
|
Маршрут 109
|
number
|
Порядковый номер объекта в отчете.
|
1
|
object
|
Имя объекта.
|
Ford О 691 MK
|
imei
|
Imei объекта.
|
863591020206359
|
stateRoom
|
Государственный номер объекта.
|
О 691 MK
|
driver
|
ФИО водителя, закрепленного на объекте.
|
Сабиров А.Ф.
|
vehicle
|
Транспортное средство.
|
Ford
|
fuelConsumption
|
Нормативный расход топлива.
|
8.5 литров на 100 км.
|
way
|
Путь, пройденный объектом за запрашиваемый интервал времени.
|
10 км.
|
maxSpeed
|
Максимальная скорость за запрашиваемый период времени.
|
70 км/час
|
midSpeed
|
Средняя скорость за запрашиваемый период времени.
|
18.8 км/час
|
moveTime
|
Время, сколько объект двигался за запрашиваемый период времени.
|
00:30:50
|
totalTime
|
Сумма часов движения по всем объектам, по которым строится отчет.
Используется в конце таблицы в строке «Итого».
|
-
|
delayTime
|
Время, сколько объект не двигался за запрашиваемый период времени.
|
08:29:08
|
totalStop
|
Сумма часов стоянок по всем объектам, по которым строится отчет.
Используется в конце таблицы в строке «Итого».
|
-
|
timeStop
|
Время, сколько объект и двигался и стоял.
|
08:59:58
|
Total(timeStop)
|
Сумма часов движения и стоянок по всем объектам, по которым строится отчет.
Используется в конце таблицы в строке «Итого».
|
-
|
startMoveTime
|
Время начало движения объекта.
|
22.01 15:00:00
|
stopMoveTime
|
Время окончания движения объекта.
|
22.01 15:32:54
|
fOutLay
|
Количество израсходованного топлива за запрашиваемый период (литры).
|
-
|
Fuel100km
|
Расход топлива на 100 км.
|
-
|
fuelHour
|
Расход топлива в час.
|
-
|
fIn
|
Сколько литров топлива было заправлено в бак за запрашиваемый период времени.
|
-
|
fOut
|
Сколько литров топлива было слито из бака за запрашиваемый период времени.
|
-
|
fOnStart
|
Количество топлива в баке на момент начального времени запрашиваемого интервала.
|
-
|
fOnStop
|
Количество топлива в баке на момент окончания времени запрашиваемого интервала.
|
-
|
engineWork
|
Количество часов, сколько находился в рабочем состоянии двигатель транспортного средства.
|
-
|
excess
|
Количество превышений скорости.
|
-
|
Topgroup
|
Группа объектов.
|
-
|
dataDay
|
Дата для построения посуточного отчета.
|
-
|
lastDt
|
Дата последней пришедшей от спутника точки.
|
-
|
allFoutlay
|
Топливо всего.
|
-
|
Объект Рисунок
С помощью объекта Рисунок можно вставить в отчет логотип фирмы, фотографию сотрудника или любую другую графическую информацию. Объект способен отображать графику в формате BMP, JPEG, ICO, WMF, EMF.
При добавлении объекта на страницу отчета открывается окно Картинка. В редакторе объекта (если он не открылся автоматически, сделайте двойной щелчок мышью на объекте) загружается рисунок из файла или очищается имеющийся в объекте рисунок..
Агрегатные функции
В большинстве случаев в групповых отчетах надо выводить некую итоговую информацию: сумма по группе, количество элементов группы и т.п. В Редакторе отчетов для этих целей существуют агрегатные функции. С их помощью можно подсчитать функцию от определенного значения по диапазону данных. Ниже приведен список агрегатных функций:
Функция
|
Описание
|
SUM
|
Возвращает сумму заданного выражения
|
MIN
|
Возвращает минимальное значение заданного выражения
|
MAX
|
Возвращает максимальное значение заданного выражения
|
AVG
|
Возвращает среднее значение заданного выражения
|
COUNT
|
Возвращает количество строк в диапазоне данных
|
-
Вставка агрегатных функций (первый способ):
Важно! Для суммирования временных значений (часы движения, часы стоянки и т.п.) используется только этот способ, использование других способов может привести к неверному результату.
Добавить на страницу отчета объект Текст, в Редакторе текста указать одну из следующих переменных:
[totalTime] – суммируются часы движения у объектов, по которым строится отчет.
[totalStop] – суммируются часы стоянок у объектов, по которым строится отчет.
[total(timeStop)] – суммируются часы движения и стоянки у объектов, по которым строится отчет.
[allFoutlay] – суммируется расход топлива у объектов, по которым строится отчет.
-
Вставка агрегатных функций (второй способ):
Добавить на страницу отчета объект Текст.
В окне Вставить агрегатную функцию, необходимо заполнить:
Вставка агрегатных функций (третий способ):
Можно использовать для вывода значения агрегатной функции объект Служебный текст . По сути, это тот же самый объект Текст, но имеющий специальный редактор для более удобной вставки системных переменных или агрегатных функций:
Объект Служебный текст, свойства которого заполнены вышеуказанным способом:
Пример использования:
В групповой отчет требуется добавить сумму по столбцам. Предварительно добавляем на страницу отчета бэнд Подвал данных. На данном бэнде добавляются объекты Текст, в которых будут отображаться значения сумм по столбцам.