1. Sobre FastCube
El generador de informes FastReport .NET cubre casi todas las necesidades de usuarios en los informes. ¡Pero este aún no es todo! Cuando se trata de las tablas cruzadas, faltan funciones. El objeto Matriz destina solamente a representar los datos cruzados pero no a tratarlos.En este caso sería más útil el sistema OLAP y FastReports lo tiene - es FastCube .NET. Permite representar los cubos de datos y los segmentos en las aplicaciones .NET. Es más interesante la posibilidad de utilizar estas bibliotecas en las aplicaciones ASP .NET Core. Vamos a examinar este caso con un ejemplo.
2. Cómo compilar una biblioteca
Al principio necesitamos compilar las bibliotecas a partir del código fuente. Para esto utilice la solución FastCube.Core.sln. El resultado de preparar esta solución serán dos paquetes nuget: FastCube.Web.2020.2.1.nupkg y FastCube.Core.2020.2.1.nupkg. Póngalos en una carpeta que podremos utilizar como la fuente local de paquetes.
3. Crear un paquete
Ahora podemos pasar a crear un proyecto ASP .Net Core MVC.
4. Añadir las bibliotecas desde Nuget
Al principio añadimos las bibliotecas FastCube Core en un proyecto creado. Para esto utilizamos el administrador de paquetes NuGet. Como los paquetes de bibliotecas están situados en un disco local, necesitamos añadir una fuente de paquetes local. Para esto haga un clic en un ícono con el símbolo de engranaje en la parte superior derecha del administrador de paquetes y añada una nueva fuente que se refiera a una carpeta local con vuestros paquetes nupkg:
Ahora es posible elegir una fuente de paquetes añadida en una lista despegable y instalar los paquetes:
5. Añadir en Startup
Hemos añadido las bibliotecas en el proyecto, ahora necesitamos conectarlas. Para esto añadimos el código en el archivo Startup.cs en el método Configure():
app.UseFastCube();
6. Añadir en el controlador y la presentación
La aplicación estándar creada según la trama ya está lista para ser iniciada y tiene el controlador y la presentación. Podemos bien utilizarlos para representar nuestro cubo de datos.
HomeController: public IActionResult Index() { Cube cube = new Cube(); Slice slice = new Slice() { Cube = cube }; WebGrid grid; grid = new WebSliceGrid() { Slice = slice }; cube.SourceType = SourceType.File; cube.Load(Path.Combine("C:\\Users\\FR\\Downloads\\fastcube-net-master\\Demos\\Data\\", "Cubes", "calculated_measures.mdc")); ViewBag.WebGrid = grid; return View(); }
Veamos este método con más detalle. Utilizamos aquí los objetos del cubo y del segmento — Cube и Slice. Para representar los datos se utilice el objeto WebGrid que puede aceptar los datos a partir del cubo o del fragmento por vía de los objetos apropiados sucesibles WebCubeGrid y WebSliceGrid. En nuestro caso representaremos el fragmento, por eso hemos elegí el segundo objeto.
El siguiente paso es cargar el cubo existente desde el archivo. Si lo desea, puede crear los cubos y fragmentos en el código de la aplicación en lugar de utilizar los archivos preparados. Nuestro ejemplo muestra la carga del archivo del cubo que contiene la conexión de datos y el fragmento necesario. Pero puede cargar el archivo del fragmento en lugar de todo el cubo. Pero en este caso necesita personalizar una fuente de datos del cubo. Un ejemplo:
cube.Active = false; cube.SourceType = SourceType.DataSource; cube.DataSource = new DataSource(); cube.DataSource.DataSet = new DBDataSet(); SqliteConnection connection = new SqliteConnection($@"Data source={Path.Combine(dataFolder, "demo.sqlite")}"); SqliteCommand cmdItems = new SqliteCommand(@" SELECT items.OrderNo, items.PartNo, items.Qty, orders.CustNo, orders.EmpNo, orders.SaleDate FROM items LEFT OUTER JOIN orders ON (items.OrderNo = orders.OrderNo)", connection); ((DBDataSet)cube.DataSource.DataSet).DbCommand = cmdItems; cube.Active = true; slice.Load(Path.Combine(dataFolder, "Cubes", fileName));
Pero volvamos a nuestra aplicación. Sólo queda organizar el reflejo de este objeto. Cambiamos el código en el archivo Index.cshtml:
@await ViewBag.WebGrid.Render()
¡Eso es todo! Puede iniciar nuestra aplicación web y ver el fragmento de datos:
Ahora puede ver los datos en una tabla cruzada y también procesarlos — añadir, quitar las dimensiones y los datos minimizar los grupos. Todo eso ayudará a usted en el análisis de datos.
Haremos el resumen. La utilización de los cubos OLAP en las aplicaciones web es bastante nueva y demandada. De momento no es necesario comprar licencias para las versiones del programa para los ordenadores лицензий, si puede permitir a los analistas trabajar con los datos a través de la aplicación web. Cómo ve, la realización de la presentación del cubo o del fragmento en una aplicación web es más simple, eso es otra ventaja.