Некоторые объекты в FR VCL 6 допускают редактирование в просмотрщике отчетов, то есть в формате .fp3. Изменив объект вы можете сохранить измененный отчет в формате предварительного просмотра или экспортировать его в любой другой формат. Когда это может быть полезно? Например, у вас нет шаблона отчета, а есть только файл предварительного просмотра отчета .fp3. Вы изменяете заголовок отчета, или выбираете нужную серию в диаграмме и отправляете отчет на печать. Частным случаем такого использования может быть заполнение анкеты.
Какие объекты можно редактировать? Конечно, чаще всего нам приходится редактировать текст, поэтому объект «Text» первый в списке.
Как уже упоминалось выше, объект «Chart». Если в объекте предусмотрено более одной серии, вы можете выбрать какую серию отображать в данный момент.
Объект «CheckBox». Если ваш отчет представляет собой анкету, вы можете отметить нужные пункты «галочками», заполнить текстовые поля и отправить документ по email.
Объекты «Gauge» и «Interval Gauge» позволяют задавать значения, которые могут быть использованы в отчете.
Редактирование объекта Text
Есть два способа редактирования текстовых объектов в режиме предварительного просмотра:
1) Зажать клавишу Alt и кликнуть по объекту Text. При этом текст внутри объекта будет выделен. Изменив текст кликаем по области вне объекта. Изменения применены;
Используя этот способ помните, что как только вы уберете указатель мыши с этого текстового объекта, редактирование будет завершено.
2) На панели инструментов просмотрщика отчетов появился новый значок - редактировать текст. Нажимаем его и все текстовые объекты на странице, которые можно редактировать подсвечиваются голубым:
Кликнув по нужному изменяем текст. Для завершения редактирования также уводим мышь с редактируемого объекта.
Предусмотрена возможность запрета редактирования текста. Для этого у объекта «Text» в свойстве Restrictions выставляем флаг DontEditInPreview. При включенном режиме редактирования текста можно увидеть какие из текстовых объектов доступны для редактирования.
Редактирование объекта Chart
Диаграмму можно вращать, переключать серии, переключать режим 2D/3D, вернуть трансформацию к начальному виду.
Самое интересное, как мне показалось - возможность переключать серии. Нужно просто навести на нее указатель мыши. При этом будет отображена панель выбора серии:
На данном примере мы видим, что доступно 5 серий. По умолчанию все серии отображаются. Однако это не всегда удобно. Поэтому, чтобы включить переключатели в режим Radio Button, нужно на этапе создания отчета отключить все переключатели, оставив активным только один:
Это можно сделать мышью в том же окошке выбора серии вверху-справа.
Обратите внимание на значок . В режиме предварительного просмотра, если вы не вращали диаграмму, кликнув по нему можно перевести диаграмму в двумерный режим:
Вращение диаграммы осуществляется с помощью зажатой левой кнопкой мыши:
Вот так у меня получилось зеркально развернуть диаграмму:
Если сейчас нажать на значок , то диаграмма вернется к первоначальному значению (правда в режиме 2D). Повторное нажатие опять покажет вашу трансформацию.
Редактирование объектов Gauge и Interval Gauge
Это два новых объекта в Fast Report VCL. Они представляют собой шкалы с индикаторами, имитирующие аналоговые электронные приборы. Разница между объектами понятна из названия: Gauge отображает одиночное значение, а Interval Gauge – значение от и до, то есть интервал.
Для обоих объектов есть три вида: горизонтальный, вертикальный и круговой. Вот как это выглядит:
Как видите указатели на шкалах могут иметь разную форму, размер и цвет. Сами шкалы также имеют множество настроек.
Но вернемся к теме статьи. Объекты Gauge тоже можно редактировать в режиме Preview. Само по себе перемещение индикаторов было бы не очень интересно без возможности использовать новые значения объекта в отчете. Сделать это можно с помощью скрипта отчета. Например, мы хотим отображать текущее значение индикатора в текстовом поле. Для индикатора добавляем событие OnContentChanged:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
procedure Gauge1OnContentChanged(Sender: TfrxComponent; ModifyObjects: TList; var Refresh: Boolean); var List: TList; View: TfrxMemoView; i: Integer; begin View := nil; List := PreviewPages.Page[PreviewPages.CurPage].AllObjects; for i := 0 to List.Count - 1 do if (List[i] is TfrxView) then begin if (TfrxView(List[i]).TagStr = 'Gauge1') then View := TfrxMemoView(List[i]); if (View <> nil) then Break; end; if View <> nil then begin TfrxMemoView(View).Text := FloatToStr(Round(TfrxGaugeView(Sender).Gauge.CurrentValue)); ModifyObjects.Add(View); end; // refresh preview Refresh := True; end; |
В этом скрипте мы ищем среди всех объектов отчета нужный нам, который содержит в свойстве TagStr значение Gauge1. Затем, у найденного объекта задаем значение свойства Text - текущее значение индикатора. Обновляем превью.
Запускаем отчет в режиме предварительного просмотра. Перемещая ползунок, мы получаем текущее значение индикатора в текстовом поле внизу.
Таким образом, полученное значение можно задействовать в расчетах, фильтрации и запросе данных. А это превращает отчет в нечто гораздо большее чем просто интерактивный документ.
Подведем итоги. Возможность редактировать отчет в режиме предварительного просмотра, позволяет нам создавать отчеты, которые можно настраивать без перестроения. Редактирование в preview отличается простотой, а значит доступно широкому кругу пользователей. От них не требуется опыт работы в дизайнере отчетов.