Как использовать FastCube .NET в приложении React

01.10.2021

UPD: Актуально до версии FastCube .NET 2022.1. Теперь лицензионные пакеты доступны на нашем NuGet-сервере.

Библиотека ReactJs получила широчайшее распространение в веб разработке одностраничных приложений. Ранее мы уже рассматривали, как отображать отчеты и онлайн дизайнер отчетов в SPA приложении React. Теперь появилась возможность отображать на веб-странице кубы и срезы данных из FastCube.Core. Давайте рассмотрим, как это сделать.

Чтобы создать приложение ASP .NET Core с фронтенд частью на React вы можете воспользоваться шаблоном в .NET SDK. В командной строке выполните:

dotnet new react -o MyReactApp

Эта команда создаст демонстрационное приложение, которое мы сможем использовать для отображения куба. Конечно, у вас должен быть установлен .NET Core SDK для этого. Также, для работы приложения потребуется Node.js.

Перейдите в каталог созданного приложения:

cd MyReactApp

и установите javascript пакеты с помощью команды:

npm install

Приступаем к работе с созданным веб-приложением. Начнём с установки пакетов FastCube. Открываем менеджер пакетов Nuget. В правом верхнем углу окна вы увидите значок шестеренка - он открывает настройки источников пакетов. Нажимаем на него и добавляем новый источник пакетов - папку с нашими пакетами FastCube, которые расположены в папке C:\Program Files (x86)\FastReports\FastCube.Net Professional\Nuget.

 

Настройка локального источника пакетов

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

Установка пакетов FastCube.Core

Подключаем FastCube в файле Startup.cs в методе Configure() добавим код:

app.UseFastCube();

Наше приложение уже содержит контроллер WeatherForecastController. Давайте добавим в него свой веб-метод:

[HttpGet("[action]")]
 public IActionResult ShowCube()
 {
 Cube cube = new Cube();
 Slice slice = new Slice()
 {
 Cube = cube
 };
 FilterManager filterManager = new FilterManager()
 {
 Cube = cube
 };
 WebGrid grid;
 grid = new WebSliceGrid()
 {
 Slice = slice
 };
 
 ViewBag.WebGrid = grid;
 
 cube.SourceType = SourceType.File;
 cube.Load(Path.Combine("C:\\Users\\FR\\Downloads\\fastcube-net-master\\Demos\\Data\\", "Cubes", "calculated_measures.mdc")); return View(); }

Объекты Cube и Slice связаны, так как, по сути, срез является частью куба. Для вывода интерактивной перекрестной таблицы используется объект WebGrid. Он может отображать, как срез WebCubeGrid, так и куб WebSliceGrid. В нашем примере мы загрузили куб, который ранее создали в десктоп версии FastCube .NET.

Обратите внимание на класс, от которого наследуется контроллер. Он должен быть Controller, а не BaseController.

Теперь создадим представление для этого метода. Это можно сделать с помощью правого клика по сигнатуре метода ShowCube. Представление будет содержать единственную строку кода:

@await ViewBag.WebGrid.Render()

Теперь перейдем к SPA приложению, которое располагается в папке ClientApp. Нам нужно добавить свой компонент в папку src->components. Он будет отображать iframe с представлением, которое мы создали выше. Добавляем файл Cube.js со следующим кодом:

import React, { Component } from 'react';
export class Cube extends Component {
 static getCube() { 
 return { __html: '<iframe width="1000" height="1000" src="weatherforecast/ShowCube" />' };
 }
 render() {
 return (
 < div dangerouslySetInnerHTML={Cube.getCube()} />
 );
 } 
}

Здесь все просто. Мы отображаем iframe, который ссылается на метод в контроллере.

Теперь нужно добавить компонент в структуру приложения App.js:

import React, { Component } from 'react';
import { Route } from 'react-router';
import { Layout } from './components/Layout';
import { Home } from './components/Home';
import { FetchData } from './components/FetchData';
import { Counter } from './components/Counter';
import { Cube } from './components/Cube';
 
import './custom.css'
 
export default class App extends Component {
 static displayName = App.name;
 
 render () {
 return (
 <Layout>
 <Route exact path='/' component={Home} />
 <Route path='/counter' component={Counter} />
 <Route path='/fetch-data' component={FetchData} />
 <Route path='/cube' component={Cube} />
 </Layout>
 );
 }
}

А также нужно добавить новый пункт меню в файле NavMenu.js:

import React, { Component } from 'react';
import { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';
import { Link } from 'react-router-dom';
import './NavMenu.css';
 
export class NavMenu extends Component {
 static displayName = NavMenu.name;
 
 constructor (props) {
 super(props);
 
 this.toggleNavbar = this.toggleNavbar.bind(this);
 this.state = {
 collapsed: true
 };
 }
 
 toggleNavbar () {
 this.setState({
 collapsed: !this.state.collapsed
 });
 }
 
 render () {
 return (
 <header>
 <Navbar className="navbar-expand-sm navbar-toggleable-sm ng-white border-bottom box-shadow mb-3" light>
 <Container>
 <NavbarBrand tag={Link} to="/">FastCubeReact</NavbarBrand>
 <NavbarToggler onClick={this.toggleNavbar} className="mr-2" />
 <Collapse className="d-sm-inline-flex flex-sm-row-reverse" isOpen={!this.state.collapsed} navbar>
 <ul className="navbar-nav flex-grow">
 <NavItem>
 <NavLink tag={Link} className="text-dark" to="/">Home</NavLink>
 </NavItem>
 <NavItem>
 <NavLink tag={Link} className="text-dark" to="/counter">Counter</NavLink>
 </NavItem>
 <NavItem>
 <NavLink tag={Link} className="text-dark" to="/fetch-data">Fetch data</NavLink>
 </NavItem>
 <NavItem>
 <NavLink tag={Link} className="text-dark" to="/cube">Cube</NavLink>
 </NavItem>
 </ul>
 </Collapse>
 </Container>
 </Navbar>
 </header>
 );
 }
}
 

Приложение готово. Давайте запустим его:

Веб-приложение отображает куб

Таким образом, вы можете отображать ваш веб куб с помощью FastCube.NET в SPA приложении на React.

.NET FastCube ASP.NET Core React SPA
10 июля 2026

Как настроить Content Security Policy для отчетов FastReport .NET WEB

Узнайте, как настроить Content Security Policy для отчётов FastReport .NET WEB: обзор директив и значений CSP, изменения в архитектуре FastReport, типичные сценарии обхода и способы защиты.
22 июня 2026

Как настроить отчет с Business Objects из кода и дизайнера в FastReport .NET

В этой статье рассматривается реальный пример создания и использования шаблона отчета .frx для подключения к иерархическим бизнес-объектам в FastReport .NET.
8 апреля 2026

Новые возможности работы с бэндами в дизайнере FastReport .NET

В версии 2026.2 FastReport .NET появилась возможность изменять порядок бэндов прямо в дизайнере — простым перетаскиванием мышью.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»