В современном мире особым спросом пользуются инструменты анализа - 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. Открываем его любым редактором и смотрим:
Таким образом мы рассмотрели использование библиотеки FastCube.Core в консольном приложении. Как можно заметить библиотека прекрасно работает под NET 5.0. Теперь вы можете использовать в своих приложениях кубы данных.