Сборка FastCube.Core под .NET 5.0

10.05.2021

В современном мире особым спросом пользуются инструменты анализа - OLAP кубы. В Fast Report такая система есть и позволяет выводить кубы данных со срезами в .NET приложениях, например, в том же NET 5.0. Сейчас мы разберем как это использовать в своих отчётах.

Чтобы использовать библиотеки FastCube.Core нужно предварительно их собрать из исходных кодов. Для сборки FastCube.Core под .NET 5.0 используйте решение FastCube.Core.sln.

После запуска этого решения вам нужно поменять целевую рабочую среду на .NET 5.0. Затем собираем проект и в нашей рабочей директории появится FastCube.Core.2020.2.1.nupkg. Поместите данный пакет в папку, которую вы будете использовать в качестве локального источника пакетов.

Теперь мы можем перейти к созданию проекта .NET Core.

В начале добавим библиотеку FastCube.Core в созданный проект. Для этого воспользуемся менеджером пакетов NuGet. Так как пакеты библиотек расположены на локальном диске, то нам потребуется добавить локальный источник пакетов. Нажмите на значок с шестеренкой в правом верхнем углу диспетчера пакетов и добавьте новый источник, который будет ссылаться на локальную папку с вашими пакетами nupkg:

Добавляем новый источник

На данном этапе можно выбрать добавленный источник пакетов в выпадающем списке и установить пакеты:

Устанавливаем пакеты

Мы добавили библиотеку в проект, теперь нужно её подключить, написав в файле .cs:

using FastReport.Olap

Для проверки работы используем данный код:

class Program
 {
 private static string FindDataFolder()
 {
 string dataFolder = "";
 string thisFolder = Config.ApplicationFolder;
 
 for (int i = 0; i < 6; i++)
 {
 string dir = Path.Combine(thisFolder, "Data");
 if (Directory.Exists(dir))
 {
 string data_dir = Path.GetFullPath(dir);
 if (File.Exists(Path.Combine(data_dir, "config.xml")))
 {
 dataFolder = data_dir;
 break;
 }
 }
 thisFolder += ".." + Path.DirectorySeparatorChar;
 }
 
 if (dataFolder == "")
 {
 thisFolder = Config.ApplicationFolder;
 for (int i = 0; i < 6; i++)
 {
 string dir = Path.Combine(thisFolder, "Demos", "Data");
 if (Directory.Exists(dir))
 {
 string data_dir = Path.GetFullPath(dir);
 if (File.Exists(Path.Combine(data_dir, "config.xml")))
 {
 dataFolder = data_dir;
 break;
 }
 }
 thisFolder += ".." + Path.DirectorySeparatorChar;
 }
 }
 
 if (dataFolder == "")
 throw new Exception("Could not locate the Data folder.");
 return dataFolder;
 }
 
 static void Main(string[] args)
 {
 string dataFolder = FindDataFolder();
 // create cube and slice
 Cube cube = new Cube();
 Slice cubeSlice = new Slice();
 cubeSlice.Cube = cube;
 // load cube
 cube.Load(Path.Combine(dataFolder, "Cubes", "2_0_sample_en1.mdc"));
 // open cube
 cube.Active = true;
 // export slice
 HTMLExport export = new HTMLExport();
 export.Slice = cubeSlice;
 export.Export(Path.Combine(Config.ApplicationFolder, "export.html"));
 }
 }
}

После этого в директории нашего приложения появится файл формата .html. Открываем его любым редактором и смотрим:

Экспорт в .html

Таким образом мы рассмотрели использование библиотеки FastCube.Core в консольном приложении. Как можно заметить библиотека прекрасно работает под NET 5.0. Теперь вы можете использовать в своих приложениях кубы данных.

28 октября 2024

Как настроить WSL 2 для работы с FastReport и FastCube

В этой статье попробуем вместе разобраться, как настроить WSL 2 для работы с компонентами FastReport и FastCube в Lazarus для Linux.
4 октября 2023

Как из приложения ASP.NET Core сформировать отчет с использованием FastReport.Core.Skia

Рассказываем как сформировать отчет на Windows и Linux с использованием FastReport.Core.Skia и приватного NuGet сервера.
26 сентября 2023

Установка компонентов FastReport и FastCube в Lazarus

Инструкция по установке FastReport в Lazarus для различных операционных систем со сравнением редакций Academic, Trial, Professional.