How to draw a chart based on custom variables

2020-01-08

An important part of the report is a graphical component, namely graphs and charts. They allow you to quickly analyse the data to assess the trend of growth or fall, or just quickly read information. That is how human perception works, that the graphic information is received more quickly. Therefore, on the road signs, you can see the images that are immediately understood and interpreted by the brain immediately.

Charts and graphs are based on statistical data. As a rule, they are taken from the database. But there are situations when it is necessary to build schedules based on the converted data. For example, using the initial data calculations performed. Some report generators allow only ready source of data. It is not convenient, because the conversion of the data necessary to carry out the report.

Let's look at the problem that the List & Label report generator user raised in his question:

Hi, I have a report where I have declared a bunch of user variables with various calculations. I am trying to display these variables in a Pie Chart, is this possible? I can’t seem to figure out how to do this?

To implement this in List & Label, you will have to create an intermediate table and write data from variables into it. The thing is that a pie type chart only works with a tabular data source. Chart segments are calculated by aggregating data.

Generator FastReport.Net reports can be used in the charts the data from the source, and the data manually added in the editor. However, the FastReport reports have built-in script that "unties our hands" and provides the ability to customize graphics in the code. This means that we can "slip" any data in the graph. For example, you perform calculations in a report, and save the results in the report variables, and then want to build on them graph. It is quite easy to implement.

 

You can also add MSChart object on the report page and create event handler BeforePrint:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void MSChart1_BeforePrint(object sender, EventArgs e)
 {
 MSChart1.DeleteSeries(0); //Delete default series
 MSChart1.AddSeries(SeriesChartType.Pie); //Add new series with pie-chart
 MSChart1.Series[0].SeriesSettings.Points.Clear(); //Wipe series data
 //Look through all parameters in the report
 foreach (Parameter param in Report.Parameters)
 {
 //Add to a series a point on Y axis. For the pie-chart Y axis are enough
 MSChart1.Series[0].SeriesSettings.Points.AddY(param.Value);
 }
 //Enable the legend
 MSChart1.Chart.Legends[0].Enabled = false;
 //Set series labels of the pie-chart
 MSChart1.Series[0].SeriesSettings.Label = "#VALY";
 //Set height of the MSChart object
 MSChart1.Height = 500;
 //Set width of the MSChart object
 MSChart1.Width = 500;
 }

 As a result, we will have such pie-chart:

 

In this example, we used the parameters of the report as a data source, but you can also use variables in the script of the report, arrays, collections.

Unfortunately, in the official documentation to FastReport.Net there is no description of the properties and methods of MSChart object. This component is very complex with a lot of settings, so you'll have to spend some time finding the right properties experimentally. In this example I have shown the simplest way of quickly creating graphics with the minimum settings.

.NET .NET FastReport FastReport
10 de julho de 2026

Como configurar a Política de Segurança de Conteúdo para os relatórios FastReport .NET WEB

Aprenda como configurar a Política de Segurança de Conteúdo para relatórios do FastReport .NET WEB: uma visão geral das diretivas e valores da CSP, mudanças na arquitetura do FastReport, cenários típicos de contorno e formas de se proteger contra eles.
22 de junho de 2026

Como configurar um relatório com Business Objects no código e no designer do FastReport .NET

Este artigo demonstra um exemplo prático de criação e uso de um modelo de relatório .frx que se conecta a Business Objects hierárquicos no FastReport .NET.
20 de maio de 2026

Visão geral detalhada das capacidades da biblioteca FastGrid

Uma visão geral da biblioteca FastGrid para VCL e Lazarus: visualização, edição e estruturação de dados. Classificação, filtragem, agrupamento, editores de dados práticos — tudo em um único artigo!

© 1998-2026 Fast Reports Inc.