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