Параметры подключения к SQL источнику данных, как и к любому другому, можно хранить в самом шаблоне отчета. Если требуется задать параметры подключения из кода перед построением отчета (например, по причине безопасности или в зависимости от авторизованного пользователя), можно воспользоваться приведенным ниже примером.
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();
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);
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
{
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;
Report = report;
}
}
|
Вы также можете использовать данные для разработки отчетов и дашбордов полученные из OData хранилищ данных. В этом случае, авторизация может быть выполнена с использованием имени, пароля пользователя или с использованием токена. Параметры авторизации указываются в строке соединения к OData хранилищу с использованием разделителя ";".
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();
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";
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/
|
|