Como usar o FastCube .NET com a aplicação Vue SPA

2021-04-14

O framework Vue.js é atualmente muito popular, e, está em alinhado com o Angular. Já consideramos como usar o FastReport.Core com Angular. Agora, vamos considerar como implementar a exibição de um relatório da web FastReport em um aplicativo de página única em Vue.js com back-end em ASP .NET Core.

Para isso, precisamos instalar o Node.js e, no mínimo, o NET Core SDK 2.0; no entanto, uma versão mais recente é ainda melhor. Por padrão, dotnet sdk não tem um modelo de aplicativo vue. Mas pode ser instalado! Para fazer isso, crie um catálogo, no qual seu aplicativo será colocado, e execute a linha de comando do PowerShell nele. Isso pode ser feito a partir do menu de contexto, que é invocado clicando com o botão direito no espaço vazio no diretório com o botão Shift pressionado.

Insira o comando na linha de comando:

dotnet new — install Microsoft.AspNetCore.SpaTemplates::*

Em seguida, você terá o modelo Vue disponível para gerar um aplicativo de demonstração. Use-o para criar o aplicativo com um comando:

dotnet new vue -o FRCubeVue

Depois de criar o aplicativo, você verá um aviso de que o seguinte comando deve ser executado:

npm install

Mas antes de executá-lo, você deve ir ao catálogo criado:

cd FRCubeVue

Depois que todos os pacotes necessários forem instalados, abra o arquivo de projeto .csproj.

Agora devemos adicionar bibliotecas FastCube ao projeto que criamos, mas primeiro elas devem ser montadas a partir dos códigos-fonte. Para isso, use a solução FastCube.Core.sln. Após a montagem, você obterá dois pacotes Nuget: FastCube.Web.2020.2.1.nupkg e FastCube.Core.2020.2.1.nupkg. Coloque-os em um diretório, que será usado como uma fonte local do pacote posteriormente.

Agora começamos a adicionar pacotes ao projeto com a ajuda do gerenciador de pacotes NuGet. É importante lembrar que os pacotes são armazenados localmente. Para inserir as configurações, clique no ícone de engrenagem no canto superior direito do gerenciador de pacotes e adicione uma nova fonte, que fará referência ao diretório local com seus pacotes nupkg:

Configurando fontes de pacotes

Selecione a fonte de pacotes adicionada na lista suspensa e instale os pacotes:

Instalando pacotes

Conecte o FastCube no método Configure () do arquivo Startup.cs adicionando um código:

app.UseFastCube();

O aplicativo baseado em modelo padrão está pronto para ser iniciado e contém um controlador e uma visualização. Podemos usá-lo para exibir nosso cubo de dados. Agora adicione um novo método para

 [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(model);
 }

Vamos considerar essa técnica com mais detalhes. Aqui usamos os objetos Cube e Slice. Para exibir dados, usamos o objeto WebGrid, que pode receber dados de um cubo ou uma fatia por meio dos objetos inerentes correspondentes WebCubeGrid e WebSliceGrid. Neste caso, vamos mostrar uma fatia, assim, o segundo objeto é selecionado. Em seguida, baixamos o cubo existente do arquivo.

Para o método ShowCube adicionado, temos que criar um display - ShowCube.cshtml.cs com uma única linha de código:

@await ViewBag.WebGrid.Render()

Agora passamos para o aplicativo SPA. Como criamos o projeto com um modelo, ele já contém um aplicativo de demonstração de página única. Portanto, tudo o que precisamos fazer é adicionar um novo componente e definir o menu. Dois novos arquivos devem aparecer na estrutura do aplicativo:

Estrutura do aplicativo

O arquivo cube.vue.html é a exibição html do novo componente:

<template>
 <div>
 <button v-on:click="Clicked">Show</button>
 <div v-if="show">
 <iframe :id="report" height="1000" width="1000" :src="url"></iframe>
 </div>
 </div>
</template>
<script src="./cube.ts"></script>

O display formado no aplicativo ASP .Net Core será baixado no iframe.

O arquivo cube.ts é o script do novo componente:

import Vue from 'vue';
import { Component } from 'vue-property-decorator';
 
@Component
export default class CubeComponent extends Vue {
 url: string = '';
 show: boolean = false;
 cubeData: string ='';
 
 Clicked() {
 this.show = true;
 this.url = "api/SampleData/ShowCube";
 }
}

No script, definimos o url para a origem do iframe como um clique de botão.

Nesta fase, o novo componente deve ser cadastrado no arquivo boot.ts:

const routes = [
 ...
 { path: '/cube', component: require('./components/cube/cube.vue.html') }
];

Além disso, adicionamos o novo cabeçalho do menu no arquivo navmenu.vue.html:

<template>
 <div class="main-nav">
 <div class="navbar navbar-inverse">
 <div class="navbar-header">
 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 <span class="sr-only">Toggle navigation</span>
 <span class="icon-bar"></span>
 <span class="icon-bar"></span>
 <span class="icon-bar"></span>
 <span class="icon-bar"></span>
 </button>
 <a class="navbar-brand" href="/">FRCubeVue</a>
 </div>
 <div class="clearfix"></div>
 <div class="navbar-collapse collapse">
 <ul class="nav navbar-nav">
 <li>
 <router-link to="/" :exact="true">
 <span class="glyphicon glyphicon-home"></span> Home
 </router-link>
 </li>
 <li>
 <router-link to="/counter">
 <span class="glyphicon glyphicon-education"></span> Counter
 </router-link>
 </li>
 <li>
 <router-link to="/fetchdata">
 <span class="glyphicon glyphicon-th-list"></span> FETCH data
 </router-link>
 </li>
 <li>
 <router-link to="/cube">
 <span class="glyphicon glyphicon-th-list"></span> Cube
 </router-link>
 </li>
 </ul>
 </div>
 </div>
 </div>
</template>
 
<style src="./navmenu.css" />

Agora nosso aplicativo está pronto para começar. Deixe-nos fazer:

Execute o projeto

Pressione o botão e veja seu cubo:

Execute o projeto

Como você pode ver, as partes do servidor e do cliente são bastante simples. Agora você pode usar cubos OLAP em seus aplicativos da web sem pagar mais por cada unidade de um aplicativo de desktop.

.NET .NET FastCube FastCube OLAP OLAP Core Core Vue Vue
12 de julho de 2022

Como mostrar múltiplos relatórios em uma página no Blazor

Trabalho a partir do Código do aplicativo Blazor para exibir simultaneamente vários relatórios com filtragem de dados de acordo com a condição do Usuário.
06 de julho de 2022

Como importar um relatório do StimulSoft para o FastReport.NET

O FastReport. net adicionou um plug-in de importação de relatórios do StimulSoft que converte automaticamente seus documentos em um formato .frx.
25 de maio de 2022

Geração de relatórios com PostgreSQL em um aplicativo .NET 5 com Debian 10

Exemplo de um relatório com código baseado na biblioteca FastReport.Núcleo usando bancos de dados SQL no sistema operacional Debian 10.
Fast Reports
  • 800-985-8986 (English, US)
  • +31 97 01025-8466 (English, EU)
  • +49 30 56837-3928 (German, DE)
  • +55 19 98147-8148 (Portuguese, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.