3.4.3. Отчеты по диаграммам¶
Для создания отчетов с выводом TbtkAdvDiagram
или диаграммы гантта
необходимо использовать тип шаблона Diagram Report(*.dgr). Diagram
Report являются отчетами FastReport4. В редакторе шаблона Diagram Report
доступен новый элемент на панели инструментов TbtkFrxPictureView
Элемент TbtkFrxPictureView
, размещенный на отчете, является контейнером
для изображения диаграммы. Источником данных для TbtkFrxPictureView
является frxDiagramVirtSel. frxDiagramVirtSel хранит записи с
изображениями. Записи создаются автоматически при построении отчета. По
умолчанию frxDiagramVirtSel недоступен, потому необходимо открыть в Меню
Отчеты->Данные и отметить галочкой frxDiagramVirtSel. После этого, его
можно будет указать в свойстве TbtkFrxPictureView.DataSet, а в свойстве
TbtkFrxPictureView.DataField выбрать поле “blobDiagram”.
Кроме стандартных свойств компонента TFrxPictureView в TbtkFrxPictureView добавлены новые:
-
class
TbtkFrxPictureView
¶ -
CutByPages
: Boolean¶ Свойство позволяет включить режим (значение True), при котором большое изображение будет разрезано на несколько страниц. При этом изображение будет выводится в оригинальном масштабе. Такой режим позволяет распечатать изображения, например, размером A1 на восьми страницах формата A4.
New in version Global: 5.7.0_ms11
-
CuttingMode
: TbtkDiagramCuttingMode¶ Задает способ разбития изображения на несколько страниц при включенном свойстве
CutByPages
New in version Global: 5.7.0_ms11
-
FitByWidth
: Boolean¶ Подогнать итоговое изображение по ширине листа отчёта.
Note
При использовании данного свойства значения свойств AutoSize и Streched игнорируются.
Note
Свойство поддерживается только в диаграмме гантта.
New in version Global: 5.11
-
-
class
TbtkDiagramCuttingMode
¶ Перечисление задающее способ разбития изображения на несколько страниц.
-
dcmCutByOriginOutputArea
¶ Диаграмма разрезается по границам области вывода компонента. Не учитываются особенности выводимого изображения.
-
dcmCutByObjectBorder
¶ Диаграмма разрезается на страницы по границам объектов на диаграмме, стараясь по возможности сохранить их целостность. Например, колонка дерева будет перенесена на следущую страницы полностью, если влезала на предыдущую страницу только частично.
Note
Свойство поддерживается только в диаграмме гантта
New in version Global: 5.7.0_ms11
-
Объекты классов TbtkAdvDiagram
и TbtkGantt
паскаль скрипта
содержат методы, вызывающие создание отчета FR4 с выводом изображения
диаграм.
Таким образом для печати диаграммы Гантта или AdvDiagram необходимо создать шаблон отчета Diagram Report(*.dgr), задейстовать в нем frxDiagramVirtSel и задать свойство DataField у компонента контейнера изображений. В операции выборки фрейма диаграммы написать вызов метода CreateReport (либо CreateReportEX) передав в него имя шаблона и дополнительные параметры.
<PASCAL>
Sel := FindSelectionEx('SEL_BTD_DIAGRAM', ['Representation'], ['Diagram']);
Sel.Diagram.CreateReport('FR4_PrintBTDDiagram', nil, rvmShow,0, '', fcfMDI);
</PASCAL>
Обратите внимание, что обратиться к Diagram можно только из выборки лежащей на фрейме TbtkLookupAdvDiagramFrame.
<PASCAL>
Selection.Gantt.CreateReportEx('FR4_PrintBTDDiagram', nil, rvmShow, 0, '', fcfMDI, ['StartDate','StopDate'],[DateTimeToStr(Selection.Gantt.StartDate), DateTimeToStr(Selection.Gantt.StopDate)] );
</PASCAL>