Создание круговой диаграммы в Генераторе отчетов

Avatar
  • обновлен
  • Отвечен

Есть 4 канала: А1, А2, А3, A. A = A1 + A2 + A3.


Хочу вставить в отчет круговую диаграмму. 

На этой диаграмме должны отображаться доли этих каналов в общей сумме:

А1 / А, А2 / А, А3 / А.


В руководстве на FastReport приводится пример с таблицей из БД.

Но у нас нет БД, мы работаем с каналами.

Как тогда формировать исходные данные для сегментов диаграммы?

Avatar
Константин Лаптев

  Добрый день. Соотношение текущих значений каналов вы можете вывести на круговую диаграмму с помощью компонентов ИсточникКаналов(Вкладка Данные, TChannelSet) и Объект "Диаграмма" (Вкладка Page*, TfrxChartView). На данный момент не получится получить коэффициенты на уровне FastReport. Однако Вы можете использовать отдельные виртуальные каналы для хранения коэффициентов, которые могут быть установлены из скрипта.

Avatar
Станислав С

Я не понял ваш ответ. Какие должны быть виртуальные каналы?

Avatar
Константин Лаптев
Цитата от Станислав С

Я не понял ваш ответ. Какие должны быть виртуальные каналы?

Добрый день. Виртуальные каналы могут быть добавлены в активные каналы в модуле Редактор каналов из источников. Это каналы, используемые только внутри системы. Их значения могут быть установлены из скрипта.
https://simplight.ru/manual_next/rabota-s-kanalami/redaktor-virtualnykh-kanalov#:~:text=%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF)%20%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D0%B5%D1%82%D1%81%D1%8F.-,%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%20%D1%81%20%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B0%D0%BC%D0%B8,-%D0%94%D0%BB%D1%8F%20...
https://simplight.ru/manual_next/nastroyki-virtualnykh-kanalov/dobavlenie-skriptov-virtualnym-kanalam

Пример исходного кода скрипта:

https://pastebin.com/ZKrgErCD

Avatar
Станислав С

Это все понятно. Что писать в полях Значения: Pie, Color?

Avatar
Константин Лаптев
Цитата от Станислав С

Это все понятно. Что писать в полях Значения: Pie, Color?

Вам необходимо выбрать поле источника данных со значением канала для поля Pie. Поле Color может быть оставлено пустым.

Avatar
Станислав С

Т. е.  Pie1 - А1, Pie2 - А2, Pie3 - А3

Avatar
Константин Лаптев

Для вывода текущих значений каналов вам требуется компонент TChannelSet. Пример заполнения полей ряда диаграммы:

Avatar
Константин Лаптев

Также укажите для бенда MasterData1 ваш источник данных. Открыть окно можно сделав двойной клик.

Avatar
Станислав С

Что вы мне загадками отвечаете?! Я конкретный вопрос задал про каналы!

Avatar
Станислав С

Что такое бенд?