Создание нового интерактивного отчета
Создание отчета для FastReport
Создание любого отчёта состоит из двух частей: формирование набора данных и их представление в удобном виде для пользователя.
Формирование набора данных
Начнём с формирования набора данных. Для этого:
- В менеджерской r_keeper перейдите Расширения > Наборы данных ИО
- В открывшемся окне Создайте новый набор данных ИО в группе Прочие наборы для отчётов.
Для ускорения процесса создания набора данных рекомендуется скопировать наиболее подходящий предустановленный набор и отредактировать его. - Созданному набору данных задайте Название и Сист. имя
- В разделе Основное заполните SQL запрос своим вариантом выборки данных.
Параметры в запросе помечаются двоеточием и последующим слитным написанием имени параметра на латинице. Например: :RESTAURANT2Порядок полей в SQL-выборке определит и порядок полей в экранном отчёте. Если потребуется поменять порядок полей, то придётся создать новый набор данных с требуемым порядком полей. - После сохранения запроса выйдет диалоговое окно, нажмите Да
- Выйдет окно с добавляемыми полями (в SQL-запросе в начале помечаются двоеточием, например, :DATE1 ), для них можно определить тип поля.
- После корректного указания SQL-запроса в наборе данных ИО создадутся соответствующие поля. В свойствах полей можно поменять отображаемое название/альт.название, включить/отключить сортировку и группировку данных.
Свойства созданных параметров доступны на вкладке Параметры Набора данных ИО.
С версии плагина 1.17.1 можно вносить подсказки для параметров, отображаемых в фильтре отчета. Для этого в поле Описание необходимо внести описание параметра.
С версии плагина 1.23.1, для параметров с типом Дата, Дата время, Строковый используется свойство Обязательный параметр. Если при открытии отчета обязательный параметр будет не заполнен, то при выполнении отчета появится предупреждение.
Для параметра можно использовать свойство Список значений из SQL, что означает выбор значений из набора данных полученного с помощью SQL-запроса указанного в свойстве SQL запрос
Пример SQL-запрос для параметра RESTAURANT2:
Создание отчета
Для создания нового отчета:
- Откройте Расширения > Интерактивные отчеты (ИО)
- Выберите группу отчетов и Создайте новый интерактивный отчет (ИО).
Для ускорения процесса создания отчета рекомендуется скопировать наиболее подходящий предустановленный отчет и отредактировать его. - Для созданного отчёта укажите Тип отчета:
Далее откройте отчет в списке и на вкладке Наборы данных ИО добавьте набор данных.
Если вы копировали отчет с предустановленного, удалите скопированный набор данных и добавьте свой.- Выберите группу данных и в ней ранее созданный набор данных и нажмите кнопку Добавить
- Для отчета с типом Grid Report надо в макете отчета указать GUID добавленного набора данных.GUID надо посмотреть в справочнике Наборы данных ИО.
Через контекстное меню выберите Макет
В отрывшемся XML-описание макета найдите OBJECT type="IR_DS" и укажите актуальный GUID набора данных, скопированный ранее. - Далее в XML-описании укажите системные наименования полей, которые должны отобразиться в отчете.


Создание макета печатной формы отчета
Для создания макета печатной формы отчета:
- Откройте Расширения > Интерактивные отчеты (ИО)
- Выберите группу отчетов и Создайте новый интерактивный отчет (ИО) с типом Fast report (для печати).
Для ускорения процесса создания отчета рекомендуется скопировать наиболее подходящий предустановленный отчет и отредактировать его. Далее откройте отчет в списке и на вкладке Наборы данных ИО добавьте набор данных.
Если вы копировали отчет с предустановленного, удалите скопированный набор данных и добавьте свой.- Выберите группу данных и в ней ранее созданный набор данных и нажмите кнопку Добавить
- Перейдите в свойство Макет. Откроется окно с запросом значений параметров, имеющихся в отчёте.
- После ввода параметров откроется окно редактирования печатной формы отчёта. Если не понятно как работать в этом окне, то следует обратиться к инструкции по дизайнеру отчётов FastReport 4. Дизайнер | FastReport VCL
- После завершения редактирования макета, можно открыть отчёт через меню Интерактивные отчеты (ИО).
Вызов печатной формы (Fast report) отчета из экранной формы (Grid report)
- Скопируйте в Fast report отчете GUID отчета.
- В ранее созданном Grid report отчете откройте Макет
- В разделе <OBJECT type="IR_BUTTON" вставьте GUID Fast report отчета

Создание экранной формы интерактивного отчёта
Описание действий
Воспользуемся ранее созданным датасетом. Т.к. датасет есть, то остаётся красиво вывести подготовленные данные на экран. Создаём новый отчёт и, дав ему название, указываем в свойстве «RepType» значение DesktopGrids (см. рис.16).
Рис. 16 - Выбор свойства отчета
Далее, открываем макет этого отчёта и видим абсолютно пустое текстовое поле, которое предстоит заполнить.
Описание макета придётся писать в ручную. Но для облегчения задачи можно взять за основу любой из доступных макетов экранного отчёта (см. рис. 17).
рис. 17 - Пример описания макета
Вот, что примерно должно получиться в макете:
XML
А теперь важное пояснение к содержанию описания макета.
В строке
<IR_FORM borderwidth="10"> <OBJECT type="IR_SQL" guid="{CFEACC30-A18E-4071-A0AA-69290DD6789F}" order="0"> </OBJECT>
оставляем всё как есть, т.к. здесь происходит технический вызов пересчёта агрегатов для отчёта.
Строка ниже описывает кнопку, при нажатии которой откроется печатная форма отчёта.
<OBJECT type="IR_BUTTON" guid="{BEE1200A-A95D-4DDB-BD28-003A1D96A286}" order="0">
значение свойства guid берём из SQL-таблицы [PLG_IR_REPORTS] для нашего отчёта «Отчёт по приостановке работы ресторана»
Далее, в строке
<OBJECT type="IR_DS" guid="{48B8FE07-3EAE-4D48-B8A5-6D05623F6307}" order="5">
значение свойства guid берём из SQL-таблицы [PLG_IR_DATASETS] для нашего отчёта «Приостановка работы ресторана 2»
Пример создания экранной формы
Допустим необходимо сделать копию отчета "Продажи официантов" и удалить в макете поле "НСП".
Порядок действий будет следующий:
В справочнике "Расширения - ИА Наборы данных" создаем новый датасет как копию предустановленного (см. рис. 18).
Рис. 18 - Копирование Датасета
В свойстве "SQL запрос" меняем запрос, в результате чего будут пересозданы все поля и параметры.
SQL
Появится окно с подтверждением. Соглашаемся ( см. рис. 19) и сохраняем изменения. В результате поле "НСП" исчезнет из структуры Датасета.
Рис. 19 - Сохранение изменений
Создаем копию ИА отчета, переименовываем его и добавляем датасет, созданный в п.1. Старый датасет из привязок удаляем.
Рис. 20 - Привязка датасета к отчету
Создаем копию Печатной формы, переименовываем её и добавляем датасет, созданный в п.1(см. рис. выше). Старый датасет удаляем. Редактируем макет - удаляем мемо-поля с ссылкой на несуществующий параметр, иначе в предварительном просмотре увидим предупреждение (см. рис. 21).
Рис. 21 - Предупреждение
Рис. 22 - Редактирование макета
В свойствах печатной формы копируем гуид (guid)
Рис. 23 - Свойства печатной формы
В свойстве "Макет" отчета прописываем для тега <OBJECT type="IR_BUTTON" guid="{289E795E-05B4-49A8-93F3-BB8C123BA47C}" order="0"> гуид печатной формы:
Рис. 24 - Вызов контекстного меню интерактивного отчета
Рис. 25 - Свойство Макет отчета
В свойстве "Макет" отчета прописываем также аналогично для тега <OBJECT type="IR_DS" guid="{48B8FE07-3EAE-4D48-B8A5-6D05623F6307}" order="5"> значение свойства guid, которое берём (копируем) из свойств ИА набора данных для этого отчёта.
Механизм ссылок в ИА отчетах
Существует возможность вызывать экранную форму связанного отчета из уже открытого ИА отчета, с автозаполнением параметров (см. рис. 26).
Рис. 26 – Вызов экранной формы связанного ИА отчета
Для создания экранной формы необходимо:
В датасете исходного отчета выбрать поле, из которого необходимо получить связанный отчет. По нажатию правой кнопки мыши вызвать выпадающее меню. Выбрать пункт «Создать новую ИА связь» (см. рис. 27).
Рис. 27 - Создание новой ИА связи
В свойстве созданной ИА связи «ИА отчет» выбрать отчет, который необходимо вызывать (см. рис. 28).
Рис. 28 – Выбор связанного ИА отчета
Для ограничения запуска связанного отчета необходимо воспользоваться свойством «Value». Запуск вызываемого отчета будет выполняться только в том случае, если значение в вызывающем поле (не котором кликнули для запуска отчета) равно значению «Value». Этот механизм предназначен для возможности вызова разных связанных отчетов из одного и того же поля исходного отчета.
Для сложного разграничения вызова связанных отчетов следует создать столько ИА связей, сколько необходимо правил разграничения вызова связанных отчетов.
В настройках детализации ИА связи необходимо заполнить следующие свойства: «Параметр грида», «Поле источник», «Параметр источник».
«Параметр грида» - системное имя параметра фильтра, в который нужно передать значение из поля исходного отчета (см. рис. 29);
Рис. 29 – Системное имя параметра фильтра
«Поле источник» - это GUID поля в исходном отчете, значение из которого (поля) нужно передать в фильтр вызываемого отчета (см. рис. 30);
Рис. 30 - GUID поля в исходном отчете
«Параметр источник» - это системное имя параметра в исходном отчете, по аналогии с «Параметром грида» (поле, не обязательное к заполнению). Это поле, позволяющее передать значение какого-либо параметра из фильтра исходного отчета в фильтр вызываемого отчета.
Использование скриптов для изменения внешнего вида интерактивных отчетов (Desktop/FastCube)
Скрипт позволяет управлять форматированием как отдельной ячейки, так и всей строки. Для форматирования отдельной ячейки скрипт задается у ячейки. Для форматирования строки, скрипт задается у датасета. Список переменных, которые используются для форматирования:
Для обычной ячейки:
FONT_COLOR - цвет текста;
FONT_NAME - шрифт;
FONT_SIZE - размер шрифта;
FONT_STYLE - стиль текста;
FIELD_COLOR - цвет ячейки.
Для промежуточного итога:
FONT_COLOR_GR_SUM - цвет текста;
FONT_NAME_GR_SUM - шрифт;
FONT_SIZE_GR_SUM - размер шрифта;
FONT_STYLE_GR_SUM - стиль текста;
FIELD_COLOR_GR_SUM - цвет ячейки.
Для итога:
FONT_COLOR_SUM - цвет текста;
FONT_NAME_SUM - шрифт;
FONT_SIZE_SUM - размер шрифта;
FONT_STYLE_SUM - стиль текста;
FIELD_COLOR_SUM - цвет ячейки.
Для получения значения ячейки в скрипте необходимо использовать:
FIELD_VALUE - обычная ячейка;
FIELD_VALUE_GR_SUM - промежуточный итог;
FIELD_VALUE_SUM - итог.
Пример простого скрипта для ячейки (см. рис. 31):
Рис. 31 - Пример скрипта для изменения параметров ячейки
BEGIN FONT_COLOR:=0; FONT_NAME:='Verdana'; FONT_SIZE:=8; IF (FIELD_VALUE > 20) THEN BEGIN FONT_SIZE:=18; FONT_COLOR:=10485760; FONT_NAME:='Vijaya'; END; END.
где
FONT_COLOR - цвет шрифта;
FONT_SIZE - размер шрифта;
FONT_NAME - шрифт;
FIELD_VALUE - значение ячейки.
Так же в скрипте (только для простой ячейки) можно использовать значения всех полей отчета. Для этого к системному имени поля необходимо дописать "FIELD_". Аналогичным образом можно создавать скрипты для форматирования строки (обычной строки отчета).
Важно: в скрипте для строки нельзя использовать "FIELD_VALUE" (значение текущей ячейки), только обращение к полям отчета (см. рис. 32).
Рис. 32 - Использование значений другого поля отчета.
Так же есть возможность задавать форматирование в FastCube, используя внешние параметры. Для этого скрипт задается у датасета, но в скрипте указывается, какое поле необходимо форматировать.
Пример скрипта:
BEGIN
IF (FIELD_NAME = 'IBASICCURRENCY') THEN BEGIN
IF (FIELD_VALUE > FIELD_SCRPARAM) THEN BEGIN
FIELD_COLOR := 64000;
END;
END;
END.
Где SCRPARAM - имя поля, которое выступает в качестве параметра скрипта,
FIELD_NAME - имя поля на котором необходимо выполнить скрипт
Список полей, которые передаются в виде параметров в скрипт, задаются в макете отчета. Пример макета:
<IR_FORM borderwidth="5">
<OBJECT type="IR_FASTCUBE" name="IR_FASTCUBE2" guid="{642EC34D-D8E0-428D-92E2-FBBD333D280E}" order="0">
<ANCHORS>akLeft, akTop</ANCHORS>
<ALIGNMENT>alClient</ALIGNMENT>
<AUTOSIZE>0</AUTOSIZE>
<SCRIPTPARAMS>
<PARAM name = "SCRPARAM"/>
</SCRIPTPARAMS>
</OBJECT>
</IR_FORM>
Использование скриптов для функционального изменения фильтров отчета
Внимание!
Изменения доступны с версии плагина 1.22.3.
Изменения недоступны для отчетов для рассылки.
Для более удобной работы с фильтрами отчета возможны следующие изменения в зависимости от выбора параметров:
- изменение видимости параметра фильтра;
- включение свойства параметра "только для чтения";
- изменение цвета текста параметра.
Для вышеуказанных изменений необходимо в свойствах отчета в зоне "Основное" - "Скрипт фильтра" в стандартном редакторе Fast script ввести соответствующую информацию (см. рис. 33).
Рис. 33 - Свойство "Скрипт фильтра"
В скрипте доступны переменные:
[ИМЯ_ПАРАМЕТРА]_VALUE - значение параметров из фильтра:
- значения для списков представлены в виде значений выбранных пунктов, записанных через запятую;
- значения логических параметров представлены в виде значений 0 и 1, где 0 - это false, 1 - true;
- значение параметров формата дата/время представлены в виде "yyyy-mm-ddThh:nn:ss".
[ИМЯ_ПАРАМЕТРА]_VISIBLE - видимость параметра в фильтре.
[ИМЯ_ПАРАМЕТРА]_READ_ONLY - свойство параметра "только для чтения".
[ИМЯ_ПАРАМЕТРА]_FONT_COLOR - цвет текста, задается в виде числа.
[ИМЯ_ПАРАМЕТРА] - системное имя параметра в фильтре.
Пример скрипта представлен на рис. 34.
Рис. 34 - Пример скрипта для изменения фильтра отчета
BEGIN if((Pos('{FB5F2F0F-C65C-45EB-8858-22037ABC2B85}',RESTAURANT_VALUE))>0) then DATE1_VISIBLE := true else DATE1_VISIBLE := false; if not(DATE1_VISIBLE) then DATE2_FONT_COLOR := 700 else DATE2_FONT_COLOR := 0; if(DATE2_FONT_COLOR = 700) then STATION_READ_ONLY := false else STATION_READ_ONLY := true; END.
- Создание отчета для FastReport
- Создание макета печатной формы отчета
- Создание экранной формы интерактивного отчёта
- Пример создания экранной формы
- Механизм ссылок в ИА отчетах
- Использование скриптов для изменения внешнего вида интерактивных отчетов (Desktop/FastCube)
- Использование скриптов для функционального изменения фильтров отчета