GrapeCity ActiveReports for .NET 16.0J
Webデザイナで定義済みデータセットの設定
ActiveReportsユーザーガイド > サンプルとチュートリアル > チュートリアル > ページレポート/RDLレポートのチュートリアル > カスタマイズ > Webデザイナで定義済みデータセットの設定

APIを使用して、DataSetTemplateオブジェクトからデータセットテンプレート(JSON文字列)を生成することにより、Webデザイナで新しいレポートのために定義済みのデータセットを構成することができます。

このトピックでは、以下のタスクを行います。

IDataSetsServiceインターフェースを実装する

  1. 以下のようにコードを追加します。
    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;
            }
        }                                
    

IDataSetsServiceインターフェースを登録する

  1. IDataSetsServiceインターフェースを登録する前に、ASP.NET Core のミドルウェアでActiveReportsのWebデザイナを構成する必要があります。詳細については、「ASP.NET Core のミドルウェア」を参照してください。
  2. IDataSetsServiceインターフェースを登録するには、次のコードを追加します。
    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();
                    }
            }
    }