このセクションでは、OLAPのデータ集約にデータエンジンサービスを使用するために必要な手順を説明します。以下の例では、PivotEngine コンポーネントがデータエンジンサービスを使用してデータエンジンのデータに接続されています。PivotPanelコントロールとPivotGrid コントロールは、PivotEngine にバインドされています。PivotPanel コントロールでビューの定義を変更できます。集計されたデータはサービスから取得できます。以下の例では、PivotGrid コントロールは集計されたデータを表示します。PivotGrid コントロールのセルをダブルクリックすると、グリッドに表示された詳細生データを見つけることができます。
OLAPでリモートデータ連結とモデル連結を実行することもできます。データ連結の詳細については、「データ連結」を参照してください。
OLAPコントロールでデータエンジンサービスを使用するデータ連結を実装するには、次の手順を完了します。
ライセンス、リソースの登録、およびアセンブリの参照の詳細については、「Visual Studio テンプレートの使用」を参照してください。
NuGetサーバーからDataEngine Web APIおよびC1.WebApi.jaのパッケージをインストールします。
DataEngine Web API は、プロジェクトに次の参照を追加します。
C1.WebApi.dll
C1.WebApi.DataEngine.dll
C1.DataEngine.4.dll
System.Net.Http.Formatting.dll
System.Web.Http.dll
System.Web.Http.Owin.dll
System.Web.Http.WebHost.dll
OLAPコントロールのデータソースを作成するために、[モデル]フォルダに新しいクラスを作成します。
ProductData.cs
)。新しいモデルの追加方法については、「コントロールの追加」を参照してください。C# |
コードのコピー
|
---|---|
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OlapQuickStart.Models { public class ProductData { private static Random r = new Random(); public int ID { get; set; } public string Product { get; set; } public string Country { get; set; } public DateTime Date { get; set; } public int Sales { get; set; } public int Downloads { get; set; } public bool Active { get; set; } public double Discount { get; set; } private static int randomInt(int max) { return (int)Math.Floor(r.NextDouble() * (max + 1)); } public static DataTable GetDataTable(int cnt, string tableName) { var sufix = cnt / 10000; string[] countries = "中国,インド,ロシア,米国,ドイツ,英国,日本,イタリア,ギリシャ,スペイン,ポルトガル" .Split(','); string[] products = "Wijmo,Aoba,Xuni,Olap".Split(','); DataTable data = new DataTable(tableName); data.Columns.Add("ID", typeof(int)); data.Columns.Add("Product", typeof(string)); data.Columns.Add("Country", typeof(string)); data.Columns.Add("Date", typeof(DateTime)); data.Columns.Add("Sales", typeof(int)); data.Columns.Add("Downloads", typeof(int)); data.Columns.Add("Active", typeof(bool)); data.Columns.Add("Discount", typeof(double)); for (var i = 0; i < cnt; i++) { object[] values = new object[] { i, products[randomInt(products.Length - 1)], countries[randomInt(countries.Length - 1)], new DateTime(2015, randomInt(11) + 1, randomInt(27) + 1), randomInt(10000), randomInt(10000), randomInt(1) == 1 ? true : false, r.NextDouble() }; data.Rows.Add(values); } return data; } public static IEnumerable<ProductData> GetData(int cnt) { string[] countries = "中国,インド,ロシア,米国,ドイツ,英国,日本,イタリア,ギリシャ,スペイン,ポルトガル" .Split(','); string[] products = "Wijmo,Aoba,Xuni,Olap".Split(','); List<ProductData> result = new List<ProductData>(); for (var i = 0; i < cnt; i++) { result.Add(new ProductData { ID = i, Product = products[randomInt(products.Length - 1)], Country = countries[randomInt(countries.Length - 1)], Date = new DateTime(2015, randomInt(5) + 1, randomInt(27) + 1), Sales = randomInt(10000), Downloads = randomInt(10000), Active = randomInt(1) == 1 ? true : false, Discount = r.NextDouble() }); } return result; } } } |
必要な参照を追加した後、データエンジンサービスから集約されているデータを取得するためにStartup.csを構成する必要があります。
C# |
コードのコピー
|
---|---|
using C1.DataEngine; using Microsoft.Owin; using Owin; using System.IO; using System.Linq; using System.Web.Http; using OlapSSAS.Models; [assembly: OwinStartupAttribute(typeof(OlapSSAS.Startup))] namespace OlapSSAS { public partial class Startup { private readonly HttpConfiguration config = GlobalConfiguration.Configuration; private static string DATAPATH = Path.Combine(System.Web.HttpRuntime.AppDomainAppPath, "Data"); public void Configuration(IAppBuilder app) { app.UseDataEngineProviders() .AddDataEngine("complex10", () => { return ProductData.GetData(100000); }) } } } |
OLAP コントロールを初期化するには、次の手順を実行します。
新しいコントローラーの追加
OLAPController
)。OLAPController
をダブルクリックして開きます。Index()
内にカーソルを置きます。Razor |
コードのコピー
|
---|---|
@using C1.Web.Mvc.Grid <c1-pivot-engine id="dataSourceEngine" service-url="~/api/dataengine/complex10"> <c1-view-field-collection c1-property="RowFields" items="Country"></c1-view-field-collection> <c1-view-field-collection c1-property="ColumnFields" items="Product"></c1-view-field-collection> <c1-view-field-collection c1-property="ValueFields" items="Sales"></c1-view-field-collection> </c1-pivot-engine> <c1-pivot-panel items-source-id="dataSourceEngine"></c1-pivot-panel> <c1-pivot-chart items-source-id="dataSourceEngine"></c1-pivot-chart> <c1-pivot-grid items-source-id="dataSourceEngine"></c1-pivot-grid> |
次の図は、上記の手順を実行した後の OLAP を示しています。