APIを使用して、DataSetTemplateオブジェクトからデータセットテンプレート(JSON文字列)を生成することにより、Webデザイナで新しいレポートのために定義済みのデータセットを構成することができます。
このトピックでは、以下のタスクを行います。
| C #コード |
コードのコピー
|
|---|---|
public class CustomDataSetTemplates : IDataSetsService
{
static IDictionary items;
static CustomDataSetTemplates()
{
items = new Dictionary();
items.Add("Employees", new DataSetTemplate
{
DataSource = new DataSource
{
Name = "NorthwindEmployees",
ConnectionProperties = {
DataProvider = "SQLITE",
ConnectString = "Data Source=Northwind.sqlite",
}
},
DataSet = new DataSet
{
Name = "Employees",
Query = {
CommandText = "SELECT Id, FirstName, LastName from Employee",
DataSourceName = "NorthwindEmployees"
},
Fields = {
new Field {
Name = "Id",
DataField = "Id",
},
new Field {
Name = "FirstName",
DataField = "FirstName",
},
new Field {
Name = "LastName",
DataField = "LastName",
}
}
}
});
}
public DataSetTemplate GetDataSet(string id)
{
items.TryGetValue(id, out DataSetTemplate dataSet);
return dataSet;
}
public DataSetTemplateInfo[] GetDataSetsList()
{
var dataSetsList = items.Select(i => new DataSetTemplateInfo
{
Id = i.Key,
Name = i.Key
}).ToArray();
return dataSetsList;
}
}
|
|
| C#コード |
コードのコピー
|
|---|---|
using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using GrapeCity.ActiveReports.Aspnetcore.Designer;
namespace WebDesignerSample
{
public class Startup
{
// リソース(レポート、テーマ、画像)の場所
private static readonly DirectoryInfo ResourcesRootDirectory = new DirectoryInfo(".\\resources\\");
public void ConfigureServices(IServiceCollection services)
{
// Webデザイナのサービス
services.AddDesigner();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// Webデザイナのミドルウェア
app.UseDesigner(config => config.UseFileStore(ResourcesRootDirectory));
// ここに登録します。
app.AddSingleton(new CustomDataSetTemplates())
// 静的ファイルのミドルウェア
app.UseDefaultFiles();
app.UseStaticFiles();
}
}
}
|
|