Данные для построения отчета могут быть подключены различными способами. Самый простой – хранить настройки подключения в самом шаблоне отчета. Так же данные можно подключить из кода, это можно сделать перед присвоением отчета вьюверу.

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorViewer Report="@Report" />

 

@code

{

//Report object to use in viewer

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

//Load new data from XML file

var data = new System.Data.DataSet();

data.ReadXml("Data/Demo.xml");

 

//Create empty report object

var report = new StiReport();

 

//Load report template

report.Load("Reports/TwoSimpleLists.mrt");

report.Dictionary.Databases.Clear();

report.RegData("Demo", data);

 

//Assing report object to viewer

Report = report;

}

}

 

Информация

 

В данный момент SQL источники данных поддерживаются поддерживаются только для Blazor Server проектов.

 

 

 

SQL источники данных

 

Параметры подключения к SQL источнику данных, как и к любому другому, можно хранить в самом шаблоне отчета. Если требуется задать параметры подключения из кода перед построением отчета (например, по причине безопасности или в зависимости от авторизованного пользователя), можно воспользоваться приведенным ниже примером.

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorViewer Report="@Report" />

 

@code

{

//Report object to use in viewer

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

OracleConnection connection = new OracleConnection("Data Source=Oracle8i;Integrated Security=yes");

connection.Open();

 

OracleDataAdapter adapter = new OracleDataAdapter();

adapter.SelectCommand = new OracleCommand("SELECT * FROM Products", connection);

 

var dataSet = new DataSet("productsDataSet");

adapter.Fill(dataSet, "Products");

 

var report = new StiReport();

report.Load("Reports/TwoSimpleLists.mrt");

report.Dictionary.Databases.Clear();

report.RegData("Products", dataSet);

 

//Assing report object to viewer

Report = report;

}

}

 

 

Также, для SQL источников данных используемых в отчете, можно указать Время ожидания запроса (Query Timeout) в секундах. Значение данного свойства сохраняется в самом шаблоне отчёта для каждого SQL подключения отдельно.

 

Ниже приведен пример кода, который предоставляет возможность изменить строку соединения для MS SQL, скорректировать запрос, установить время ожидания запроса для уже созданного соединения и источников данных в отчете.

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorViewer Report="@Report" />

 

@code

{

//Report object to use in viewer

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

var report = new StiReport();

report.Load("Reports/Report.mrt");

((StiSqlDatabase)report.Dictionary.Databases["Connection"]).ConnectionString = @"Data Source=server;Integrated Security=True;Initial Catalog=DataBase";

((StiSqlSource)report.Dictionary.DataSources["DataSourceName"]).SqlCommand = "select * from Table where Column = 100";

((StiSqlSource)report.Dictionary.DataSources["DataSourceName"]).CommandTimeout = 1000;

 

//Assing report object to viewer

Report = report;

}

}

 

Информация

 

Для SQL источников данных других типов подключение создается аналогично, при этом подключается адаптер, соответствующий типу источника данных. Например, для MS SQL источника необходимо подключать SqlDataAdapter, для Oracle необходим OracleDataAdapter. Также, при этом следует указать строку соединения, соответствующую типу подключения.

 

 

 

Вы также можете использовать данные для разработки отчетов и дашбордов полученные из OData хранилищ данных. В этом случае, авторизация может быть выполнена с использованием имени, пароля пользователя или с использованием токена. Параметры авторизации указываются в строке соединения к OData хранилищу с использованием разделителя ";".

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorViewer Report="@Report" />

 

@code

{

//Report object to use in viewer

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

var report = new StiReport();

 

//Authorization using a user account                

var oDataDatabase = new StiODataDatabase("OData", "OData", @"https://services.odata.org/V4/Northwind/Northwind.svc;AddressBearer=adress;UserName=UserName;Password=Password;Client_Id=Your Client ID", false, null);

 

//Authorization using a user token                

var oDataDatabase = new StiODataDatabase("OData", "OData", @"https://services.odata.org/V4/Northwind/Northwind.svc;Token=Enter your token", false, null);

 

report.Dictionary.Databases.Add(oDataDatabase);

oDataDatabase.Synchronize(report);

 

//Query with data filter

((StiSqlSource)report.Dictionary.DataSources["Products"]).SqlCommand = "Products?$filter=ProductID eq 2";

 

//Assing report object to viewer

Report = report;

}

}

 

 

В таблице ниже представлены шаблоны строк подключения для различных типов источников данных.

 

Источник данных

Шаблон строки соединения

MS SQL

Integrated Security=False; Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername; Password=myPassword;

MySQL

Server=myServerAddress; Database=myDataBase;UserId=myUsername; Pwd=myPassword;

ODBC

Driver={SQL Server}; Server=myServerAddress;Database=myDataBase; Uid=myUsername; Pwd=myPassword;

OLE DB

Provider=SQLOLEDB.1; Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=myDataBase;Data Source=myServerAddress

Oracle

Data Source=TORCL;User Id=myUsername;Password=myPassword;

MS Access

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Password=pass;Data Source=C:\\myAccessFile.accdb;

PostgreSQL

Server=myServerAddress; Port=5432; Database=myDataBase;User Id=myUsername; Password=myPassword;

Firebird

User=SYSDBA; Password=masterkey; Database=SampleDatabase.fdb;DataSource=myServerAddress; Port=3050; Dialect=3; Charset=NONE;Role=; Connection lifetime=15; Pooling=true; MinPoolSize=0;MaxPoolSize=50; Packet Size=8192; ServerType=0;

SQL CE

Data Source=c:\MyData.sdf; Persist Security Info=False;

SQLite

Data Source=c:\mydb.db; Version=3;

DB2

Server=myAddress:myPortNumber;Database=myDataBase;UID=myUsername;PWD=myPassword;Max Pool Size=100;Min Pool Size=10;

Infomix

Database=myDataBase;Host=192.168.10.10;Server=db_engine_tcp;Service=1492;Protocol=onsoctcp;UID=myUsername;Password=myPassword;

Sybase

Data Source=myASEserver;Port=5000;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Teradata

Data Source=myServerAddress;User ID=myUsername;Password=myPassword;

VistaDB

Data Source=D:\folder\myVistaDatabaseFile.vdb4;Open Mode=ExclusiveReadWrite;

Universal(dotConnect)

Provider=Oracle;direct=true;data source=192.168.0.1;port=1521;sid=sid;user=user;password=pass

MongoDB

mongodb://<user>:<password>@localhost/test

OData

http://services.odata.org/v3/odata/OData.svc/

 

Информация

 

В таблице представлены наиболее часто используемые шаблоны для строки соединения. Посмотреть различные варианты строк соединения вы можете на специализированном сайте.

 

 

 

Данные из XML, JSON, Excel файлов

 

Подключения к XML и JSON источникам данных можно хранить в шаблоне отчета. Если требуется указать файлы данных из кода, можно воспользоваться приведенным ниже примером.

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorViewer Report="@Report" />

 

@code

{

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

//Init base font

Stimulsoft.Base.StiFontCollection.AddFontFile("Fonts/Microsoft Sans Serif.ttf", "Segoe UI");

 

//Load new data from XML file

var dataSet = new System.Data.DataSet();

dataSet.ReadXml("Data/Demo.xml");

 

//Create empty report object

var report = new StiReport();

 

//Load report template

report.Load("Reports/TwoSimpleLists.mrt");

 

//Register data for the report

report.RegData("Demo", dataSet);

 

//Assing report object to viewer

Report = report;

}

}

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorViewer Report="@Report" />

 

@code

{

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

//Init base font

Stimulsoft.Base.StiFontCollection.AddFontFile("Fonts/Microsoft Sans Serif.ttf", "Segoe UI");

 

//Load new data from JSON file

var dataSet = StiJsonToDataSetConverterV2.GetDataSetFromFile("Data/Demo.json");

 

var report = new StiReport();

 

//Load report template

report.Load("Reports/TwoSimpleLists.mrt");

 

//Register data for the report

report.RegData(dataSet);

 

//Assing report object to viewer

Report = report;

}

}

 

Информация

 

Во вьювере присутствует возможность получения данных из Excel файла. Для этого можно воспользоваться указанным ниже методом.

 

var dataSet = StiExcelConnector.Get().GetDataSet(new StiExcelOptions(array, this.FirstRowIsHeader));