×
Меню

Редактор отчетов

Под шаблоном отчета подразумевается совокупность страниц отчета с расположенными на них графическими и текстовыми элементами оформления, а также свойствами и правилами создания отчета. Эти шаблоны служат основой для создания и печати отчетов в приложении 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!". А на бэнде Подвал страницы необходимо разместить объект, отображающий номер страницы.
Запустим отчет на выполнение.
В зависимости от типа бэнда объект располагается вверху или внизу страницы, на первой странице, на последней странице.
Основные бэнды:
 
Бэнды-данные
Для печати информации  в виде таблицы используется особый тип бэндов - бэнды-данные, или дата-бэнды. Это бэнды с названиями "Данные 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] – суммируется расход топлива у объектов, по которым строится отчет.
 
Добавить на страницу отчета объект Текст.
 
В окне Вставить агрегатную функцию, необходимо заполнить:
 
Вставка агрегатных функций (третий способ):
Можно использовать для вывода значения агрегатной функции объект Служебный текст . По сути, это тот же самый объект Текст, но имеющий специальный редактор для более удобной вставки системных переменных или агрегатных функций:
Объект Служебный текст, свойства которого заполнены вышеуказанным способом:
 
Пример использования:
В групповой отчет требуется добавить сумму по столбцам. Предварительно добавляем на страницу отчета бэнд Подвал данных. На данном бэнде добавляются объекты Текст, в которых будут отображаться значения сумм по столбцам.
 
Результат генерации (см. раздел Генерация отчетов):