logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • О нас
  • Клиентская панель Поддержка
  • Главная
  • /
  • Поддержка
  • /
  • FAQ
  • /
  • FastReport .NET

FastReport .NET

Версия: 2023.2.1 Дата: 13 марта 2023 г. Изменения...
  • Документация
  • Деинсталляция
  • Лицензия
  • FAQ

Могу ли я добавить генератор отчетов к моему продукту, чтобы мои клиенты имели возможность изменять отчеты? Или каждый клиент должен купить свою лицензию?

Вы можете добавить дизайнер FastReport.NET для конечных пользователей без дополнительного лицензирования. Это означает, что вы можете добавить генератор отчетов к продукту только без исходного кода и вне среды разработки.

Только Enterprise версия содержит функцию: "Компоненты для веб-приложений". Пожалуйста, объясните, что это такое?

Смотрите о компонентах Enterprise версии здесь.

Пожалуйста, объясните подробно, в чём разница основных типов лицензирования?

В основном наши продукты имеют три типа лицензирования: Single License – лицензия на одно рабочее место. На одного разработчика. Team License – 4 рабочих места. Дополнительно включает лицензию для Build сервера. Site License – неограниченное количество рабочих мест, зарегистрированных по одному географическому адресу. Дополнительно включает лицензию для Build сервера.

Сколько стоит продление лицензирования FastReport .NET? И что я от этого получу?

Вы можете продлить лицензирование в вашей контрольной панели. Продление включает в себя техническую поддержку и обновления продуктов. Она доступна по 1/3 от полной стоимости в год. Когда ваша лицензия истекла, у Вас есть два варианта: - Продлить лицензию. Это позволит Вам получать техническую поддержку и обновления продуктов. - Продолжать использовать FastReport .NET. В этом случае, у Вас не будет возможности использовать последние обновления продукта и получать техническую поддержку. 

Не добавляются элементы управления на форму в Visual Studio

Убедитесь, что FastReport.Editor.dll, FastReport.VSDesign.dll, FastReport.Web и FastReport.dll зарегистрированы в GAC (см. директории из п.3). В противном случае зарегистрируйте их.
Для этого откройте Visual studio tools folder(C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts), откройте Developer Command Prompt for..., и напишите в командной строке gacutil -i "reference path+ name.dll"(gacutil -i "Program Files\FastReports\FastReport.Net\Framework 4.0\FastReport.dll"). Подробнее о регистрации в GAC - 
https://msdn.microsoft.com/en-us/library/dkkx7f79(v=vs.110).aspx

После этого добавьте элементы управления FastReport в Visual Studio Toolbox: щелкните правой кнопкой мыши на панели инструментов -> Выбрать элементы -> Выберите FastReport.dll из GAC и нажмите ОК.

Как подсчитать размер объекта, у которого установлены свойства динамического изменения(AutoWidth, CanGrow, CanShrink)?

Если вызвать свойство объекта .Height(Text1.Height), то результатом будет являться высота объекта в шаблоне отчёта. При построении отчёта высота изменяется и чтобы определить высоту объекта в подготовленном отчёте следует использовать метод CalcHeight(Text1.CalcHeight()). Для вычисления длины также используется метод CalcWidth.

При компиляции проекта выводится сообщение об ошибке: Не удалось найти имя типа или пространства имен 'FastReport'(пропущена директива usung или ссылка на сборку?)/The type or namespace name 'FastReport' could not be found (are you missing a using directive or an assembly reference?).

Убедитесь, что в проекте установлены ссылки на требуемые библиотеки(FastReport.dll, FastReport.Web.dll). Проверьте версию .NET Framework, используемую вашим проектом и подключённой библиотекой.

После установки полной версии FastReport .NET отчёты продолжают генерироваться с ограничениями.

Удалите пробную версию FastReport.NET Trial. Убедитесь, что в директориях C:\Windows\assembly и C:\Windows\Microsoft.NET\assembly\GAC_MSIL отсутствуют библиотеки FastReport .NET. Если были найдены библиотеки - удалите их. Установите полную версию программы.

Как отправить отчёт по почте с помощью кода в формате PDF?

Используйте этот фрагмент кода:
Report report = new Report();
report.Load(...);
report.RegisterData(...);
report.Prepare();

PDFExport pdfExport = new PDFExport();
EmailExport export = new EmailExport();

// set up Account properties...
export.Account.Host = "...";
export.Account.Address = "...";

// set up email properties...
export.Address = "...";
export.Subject = "...";
export.MessageBody = "...";

// send email
export.Export = pdfExport;
export.SendEmail(report);

Как удалить вкладку Данные(Data) в дизайнере(для предоставления пользователям)?

Добавьте элемент управления "EnvironmentSettings" на вашу форму(Form). 
Перед вызовом report.Design() добавьте следующие строки:

1
2
EnvironmentSettings1.DesignerSettings.Restrictions.DontCreateData = True;
EnvironmentSettings1.DesignerSettings.Restrictions.DontEditData = True; 

Если вы используете DesignerControl, то эти строки:

1
2
designerControl1.Restrictions.DontCreateData = true;
designerControl1.Restrictions.DontEditData = true;
Как наследовать отчёт из кода?

1. Создайте новый отчёт:

Report report = new Report();

 2. Добавьте событие CustomLoadEventHandler для загрузки базового отчёта:

report.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport); 

 3.Загрузите наследуемый отчёт:

report.Load("InheritReport.frx"); 

 4. Удалите CustomLoadEventHandler:

report.LoadBaseReport -= new CustomLoadEventHandler(FReport_LoadBaseReport); 

 5. Теперь Вы можете показать отчёт или открыть его в дизайнере. Он будет содержать как тот, что наследуется, так и тот, который наследует базовый отчёт:

report.Show(); 

Также нужно создать событие для загрузки базового отчёта:

1
2
3
4
5
6
private void FReport_LoadBaseReport(object sender, CustomLoadEventArgs e) 
{ 
// e.FileName contains the name of base report. It may be the file name, or an ID in the database, 
// it depends on how you load the main report 
e.Report.Load("C:\\Users\\InheritReport\\bin\\Debug\\Title2.frx"); 
} 

 И полный код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 
 private void Form1_Load(object sender, EventArgs e)
 {
 Report report = new Report();
 report.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport);
 report.Load("InheritReport.frx");
 report.LoadBaseReport -= new CustomLoadEventHandler(FReport_LoadBaseReport);
 
 report.Show();
 }
 
 private void FReport_LoadBaseReport(object sender, CustomLoadEventArgs e)
 {
 // e.FileName contains the name of base report. It may be the file name, or an ID in the database,
 // it depends on how you load the main report
 e.Report.Load("C:\\Users\\InheritReport\\bin\\Debug\\Title2.frx");
 }
 }

 Если Вы хотите загрузить отчёт из базы данных, замените метод Load() на LoadFromString().

 


Как вызвать Java Script функцию по нажатию на ссылку внутри отчёта в ASP .NET?

1. Можно написать js код в объекте TextObject.Huperlink(javascript:alert('Вы нажали!')). 

2. Или написать функцию в *.aspx(*.cshtml) файле: 

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
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestInheritReports._Default" %> 
<%@ Register assembly="FastReport.Web" namespace="FastReport.Web" tagprefix="cc2" %> 
 
<script type="text/javascript"> 
function count_rabbits() { 
for(var i=1; i<=3; i++) { 
 
alert("Из шляпы достали "+i+" кролика!") 
} 
} 
</script> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml">; 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
 
</div> 
<cc2:WebReport ID="WebReport1" runat="server" /> 
</form> 
</body> 
</html> 

 и вызвать функцию: 
TextObject1.Hyperlink = "javascript:count_rabbits()";


Как удалить вкладку Код(Code) в дизайнере(для предоставления пользователям)?

Добавьте элемент управления "EnvironmentSettings" на вашу форму(Form). 
Перед вызовом report.Design() добавьте следующую строку:

environmentSettings1.DesignerSettings.Restrictions.DontEditCode = true;

Как использовать элементы управления FastReport .NET в WPF приложениях?

Для этого следует использовать WindowsFormsHost :

0) Добавьте ссылку на FastReport.dll;

1) Добавьте аттрибут в тэг Window(Page): xmlns:fr="clr-namespace:FastReport.Preview;assembly=FastReport" если вы хотите использовать PreviewControl, xmlns:fr1="clr-namespace:FastReport.Design;assembly=FastReport" - если DesignerControl;

2) Добавьте тэг WindowsFormsHost в вашу XAML-разметку:

1
2
3
<WindowsFormsHost HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="3">
 
</WindowsFormsHost>

3) Добавьте дочерний тэг в WindowsFormsHost: <fr:PreviewControl></fr:PreviewControl> или <fr1:Designer></fr1:Designer>.

Полная разметка должна выглядеть следующим образом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Window
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 x:Class="WpfApplication1.MainWindow"
 Title="MainWindow" Height="375.977" Width="939.258"
 xmlns:fr="clr-namespace:FastReport.Preview;assembly=FastReport">
 <Grid>
 <Grid.ColumnDefinitions>
 <ColumnDefinition Width="*"/>
 <ColumnDefinition Width="*"/>
 <ColumnDefinition Width="*"/>
 </Grid.ColumnDefinitions>
 <WindowsFormsHost HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="3">
 <fr:PreviewControl></fr:PreviewControl>
 </WindowsFormsHost>
 </Grid>
</Window>
 

 

 

Как установить форматирование объектов из кода

Вы можете сделать это в скрипте отчёта или в коде вашего проекта используя следующие строки:

1
2
3
4
5
FastReport.Format.NumberFormat format = new FastReport.Format.NumberFormat();
format.UseLocale = false;
format.DecimalDigits = 2;
format.DecimalSeparator = ".";
format.GroupSeparator = ",";

И установить созданное форматирование для текстового объекта (TextObject):

1
2
textObject.Formats.Clear();
textObject.Formats.Add(format);
Как создать линию с разрывами в MSChartObject?

Для начала нужно создать объект System.Windows.Forms.DataVisualization.Charting.Series, являющийся базовым для Series в MSChartObject и построить линию в нем. Затем нужно назначить созданную серию объекту, базовуму для MSChartObject  (MSChart1.Chart.Series.Add(series);) Не забудте подключить библиотеку System.Windows.Forms.DataVisualization.dll (в меню  Отчёт -> Скрипт) и пространство имён System.Windows.Forms.DataVisualization.Charting.

Пример линии с разрывами:

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
.
.
using System.Windows.Forms.DataVisualization.Charting;
 
namespace FastReport
{
 public class ReportScript
 {
 private void MSChart1_BeforePrint(object sender, EventArgs e)
 { 
 Series series = new Series("sample");
 series.ChartType = SeriesChartType.Line;
 series.BorderWidth = 2;
 series.MarkerSize = 5;
 
 series.Points.Add(new DataPoint(0, 1));
 series.Points.Add(new DataPoint(1, 2));
 DataPoint dp = new DataPoint(2, double.NaN);
 dp.IsEmpty = true;
 series.Points.Add(dp);
 series.Points.Add(new DataPoint(3, 5));
 series.Points.Add(new DataPoint(4, 8)); 
 
 MSChart1.Chart.Series.Add(series);
 
 }
 }
}

 

В результате получим представленный ниже график:

Line with gaps

Как создать диаграмму MSChartObject из кода?

1. Создайте новый объект MSChart, установите высоту, ширину,и легенду:

1
2
3
4
MSChartObject MSChart1 = new MSChartObject();
 MSChart1.Width = 300;
 MSChart1.Height = 300;
 MSChart1.Chart.Legends.Add(new Legend() { Name = "Legend1", Title="Legend title"});

 2. Создайте объект ChartArea, установите  имя, названия осей и назначьте созданный объект MSChart:

1
2
3
4
5
ChartArea chartArea1 = new ChartArea();
 chartArea1.Name = "ChartArea1";
 chartArea1.Axes[0].Title = "X name";
 chartArea1.Axes[1].Title = "Y name";
 MSChart1.Chart.ChartAreas.Add(chartArea1);

3. Создайте объект Series, установите тип диаграммы, толщину границы, добавьте точки и назначьте серии диаграмме:

1
2
3
4
5
6
7
8
9
 Series series = new Series("sample");
 series.ChartType = SeriesChartType.Line;
 series.BorderWidth = 2;
 series.Points.Add(new DataPoint(0, 1));
 series.Points.Add(new DataPoint(1, 2));
 series.Points.Add(new DataPoint(3, 5));
 series.Points.Add(new DataPoint(4, 8));
 
 MSChart1.Chart.Series.Add(series);

 4. Присвойте созданный MSChart объекту отчёта DataBand:

1
2
3
4
5
Report report = new Report();
report.Load("ok.frx");
DataBand db = report.FindObject("Data1") as DataBand;
 
MSChart1.Parent = db;

 И полный фрагмент кода:

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
 MSChartObject MSChart1 = new MSChartObject();
 MSChart1.Width = 300;
 MSChart1.Height = 300;
 MSChart1.Chart.Legends.Add(new Legend() { Name = "Legend1", Title="Legend title"});
 
 ChartArea chartArea1 = new ChartArea();
 chartArea1.Name = "ChartArea1";
 chartArea1.Axes[0].Title = "X name";
 chartArea1.Axes[1].Title = "Y name";
 MSChart1.Chart.ChartAreas.Add(chartArea1); 
 
 Series series = new Series("sample");
 series.ChartType = SeriesChartType.Line;
 series.BorderWidth = 2;
 series.Points.Add(new DataPoint(0, 1));
 series.Points.Add(new DataPoint(1, 2));
 series.Points.Add(new DataPoint(3, 5));
 series.Points.Add(new DataPoint(4, 8));
 
 MSChart1.Chart.Series.Add(series);
 
 Report report = new Report();
 report.Load("ok.frx");
 DataBand db = report.FindObject("Data1") as DataBand;
 MSChart1.Parent = db;

 Результат:
MSChart 

 

 

Моя подписка истекла. Где я могу скачать последнюю доступную версию?

Сообщите нам об этом на support.fast-report.com и мы вышлем ближающую к доступной вам версию.

Как отключить показ ProgressForm при построении и отображении отчёта?

Вы можете отключить показ окна в EnvironmentSettings:
Report report = new Report();
report.LoadPrepared("1.fpx");
EnvironmentSettings s = new EnvironmentSettings();
s.ReportSettings.ShowProgress = false;
report.Show();

Как вернуть настройки по умолчанию для дизайнера?

Удалите файл FastReport.config из папки C:\Users\"Your user's name"\AppData\Local\FastReport.

Меня не устраивает перевод в одной из локализаций. Как мне его улучшить?

Файлы локализации располагаются в папке FastReports\FastReport.Net\Localization. Вы можете изменять перевод на требуемый. Если в нужной локализации отсутвтвует перевод некоторых полей, вы можете запросить на support.fast-report.com английскую локализацию и дополнить перевод в соответствии с ней. Передайте нам файл с улучшенным переводом и получите вознаграждение!

Как добавить локализацию для нужного мне языка?

Сообщите об этом на tz@fast-report.com или support.fast-report.com и мы вышлем необходимый файл английской локализации для создания требуемой вам локализации. После создания локализационного файла пришлите его нам. Мы добавим его в новую сборку, а вы получите награду!

Как получить значение параметра запроса из кода?

Используйте для этого следующий код:
Report.Dictionary.Connections[0].Tables[0].Parameters[0].Value.ToString();

Как встроить отчёт в формате HTML в сообщение и отправить по электронной почте используя код?

Используйте этот фрагмент кода:

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
Report report = new Report();
 report.LoadPrepared("preparedreport.fpx");
 
 HTMLExport htmlExport = new HTMLExport()
 {
 SubFolder = false,
 Navigator = false,
 Pictures = true,
 EmbedPictures = true,
 SinglePage = true,
 Layers = true,
 HasMultipleFiles = false
 };
 EmailExport email = new EmailExport();
 
 //email mailer settings
 email.Account.Address = "Email@gmail.com";
 email.Account.Name = "Usename";
 email.Account.Host = "smtp.yandex.ru";
 email.Account.Port = 25;
 email.Account.UserName = "Email";
 email.Account.Password = "password";
 email.Account.MessageTemplate = "Test";
 email.Account.EnableSSL = true;
 
 //email addressee settings
 email.Address = "Destinationaddress@gmail.com";
 email.Subject = "Embedding of html";
 
 email.Export = htmlExport; //Set export type
 email.SendEmail(report); //Send email

 


Не работают web-демо

Если не запускаются демо из папки Demos\C#\Web, то чтобы это исправить, нужно:

1. Восстановить пакеты NuGet;

2. Добавить ссылки на все необходимые библиотеки из "packages";

3. Изменить версии сборок на текущие в файлах Web.Config из корневой директории и из Views.

Как объединить несколько отчётов в один (групповая печать)?

Используйте для этого код, представленный ниже.

Для настольной версии:

1
2
3
4
5
6
7
8
Report report = new Report(); 
report.Load(Path.GetFullPath(@"..\..\Report1.frx")); 
report.Prepare(true); 
report.Load(Path.GetFullPath(@"..\..\Report2.frx")); 
report.Prepare(true); 
report.Load(Path.GetFullPath(@"..\..\Report3.frx")); 
report.Prepare(true); 
report.ShowPrepared();

Для веб версии:

1
2
3
4
5
6
7
8
webReport.Report.Load(Path.GetFullPath(@"..\..\Report1.frx")); 
webReport.Report.Prepare(true); 
webReport.Report.Load(Path.GetFullPath(@"..\..\Report2.frx")); 
webReport.Report.Prepare(true); 
webReport.Report.Load(Path.GetFullPath(@"..\..\Report3.frx")); 
webReport.Report.Prepare(true); 
webReport.ShowRefreshButton = false; 
webReport.ReportDone = true;

 

 

Как загружать и вызывать отчёт из ресурсов приложения?

Установка отчёта в ресурсы:

1) Переходим в Visual Studio во вкладку ресурсы (Проект -> Свойства -> Ресурсы);

2) Задаём имя (report) и устанавливаем содержимое ресурса(содержимое файла myreport.frx);

Вызов отчёта из ресурсов:

1
2
3
Report report = new Report();
report.ReportResourceString = Resources.report;
report.Show();

 

Как добавить сборку (dll) в отчёт из кода?

Используйте данный фрагмент кода:

1
2
3
Report report = new Report;
List<string> assmbly = new List<string>(report.ReferencedAssemblies);
assmbly.Add("Newtonsoft.Json.dll"); //replace to your dll's name
report.ReferencedAssemblies = assmbly.ToArray();

 Убедитесь, что добавленная dll находится в одной папке с FastReport.dll.

Теперь вы можете использовать методы из подключённой dll. Например, вы можете добавить следующее выражение в TextObject - [Newtonsoft.Json.ConstructorHandling.Default.ToString()].

How to set all tables and relations from DataSet enabled in report?

Используйте данный фрагмент кода для того, чтобы сделать доступными в отчёте все таблицы из вашего источника данных (DataSet):

1
2
3
4
foreach (FastReport.Data.DataSourceBase tbl in report.Dictionary.DataSources)
 {
 tbl.Enabled = true;
 } 

 Затем добавьте все связи из DataSet:

1
2
3
4
for (int i = 0; i < ds.Relations.Count; i++)
 {
 report.RegisterData(ds.Relations[i], "relation" + i);
 }

И включите все связи:

1
2
3
4
 foreach (FastReport.Data.Relation rl in report.Dictionary.Relations)
 {
 rl.Enabled = true;
 }

 Полный код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 Report report = new Report();
 DataSet ds = new DataSet();
 ds.ReadXml("EstimateFile.xml");
 report.RegisterData(ds, "ds");
 
 foreach (FastReport.Data.DataSourceBase tbl in report.Dictionary.DataSources)
 {
 tbl.Enabled = true;
 }
 
 for (int i = 0; i < ds.Relations.Count; i++)
 {
 report.RegisterData(ds.Relations[i], "relation" + i);
 }

 foreach (FastReport.Data.Relation rl in report.Dictionary.Relations)
 {
 rl.Enabled = true;
 } 

 

Из каких компонентов состоит продукт FastReport .NET Enterprise?

Поставляемый продукт FastReport.NET Enterprise является пакетом в который входят:
FastReport.NET Professional и продукт FastReport Online Designer.

Панель элементов Visual Studio не содержит компоненты FastReport .NET

Добавьте компоненты в панель элементов вручную:
Нажмите "Выбрать элементы" в меню правой кнопки мыши, наведённой на панель элементов Visual Studio и выберите FastReport.dll из папки GAC (C:\Windows\Microsoft.NET\assembly\GAC_MSIL\FastReport).

Почему в инсталле начиная с версии 2020.3 нет библиотек для .NET Framework 2.0?

Мы решили прекратить поддерживать старый фреймворк и Visual Studio 2005. У нас есть некоторые трудности с поддержкой различных фрагментов кода для устаревших фреймворков. Если вы продолжаете использовать .NET Framework 2.0 в своих приложениях, напишите нам или используйте версию FastReport .NET 2020.2 или более раннюю.

Как нам установить ваши лицензионные пакеты в наш продукт, используя Linux, MacOS либо Windows?

Как нам установить ваши лицензионные пакеты в наш продукт, используя Linux, MacOS либо Windows. При этом нам бы не приходилось устанавливать последнюю версию продуктов FastReport вручную с помощью инсталлера, скачанного на сайте, который работает только на Windows?

На этот вопрос мы подготовили универсальное решение в виде нашего приватного NuGet-сервера Fast Reports. Подробнее о нём читайте в следующей статье.

В случае окончания действия подписки вы можете продолжать пользоваться источником пакетов Fast Reports, однако доступа к последним версиям пакетов не будет. Следовательно, последняя доступная версия пакета будет определяться по условию:

Дата выхода выбранной версии < Дата истечения подходящей подписки

Важно! При попытке загрузки пакета с датой выхода позже, чем дата окончания подходящей подписки, Fast Reports NuGet сервер отдаст самую последнюю доступную версию пакета согласно вашей подписке. Но мы не рекомендуем ссылку на недоступную версию пакета, т.к. это приводит к Warning при восстановлении проекта и к задержке загрузки пакета.

logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • FAQ
  • Видео уроки
  • Форум
  • Условия оказания поддержки
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2023 ООО «Быстрые отчеты»

  • Согласие с обработкой персональных данных
  • Политика в отношении обработки персональных данных
  • Не является публичной офертой