機能

データエンジンサービス(データエンジン)

データエンジンサービス(データエンジン)

PivotEngineコンポーネントをDataEngine Web APIとDataEngineデータに連結します。

機能

設定

説明

このサンプルでは、PivotEngineコンポーネントをサービスに連結します。現在、DataEngine Web APIだけがサポートされています。
このモードでは、service-url属性を設定する必要があります。
DataEngineサービスの展開方法の詳細については、DataEngine Web APIドキュメントを参照してください。

このサンプルでは、PivotEngineコンポーネントをDataEngineデータに接続します。
PivotPanelコントロール、PivotGridコントロール、およびPivotChartコントロールはPivotEngineに連結されます。
PivotPanelコントロールでビュー定義を変更できます。
集計データは、サービスから取得されます。
その結果、PivotGridコントロールとPivotChartコントロールに集計データが表示されます。
PivotGridコントロール内のセルをダブルクリックすると、詳細な生データがグリッドに表示されます。

データ行数が10,000を超える場合は、パフォーマンスを向上させるために、DataEngine Web APIを展開し、BindService(url)モードを使用することをお勧めします。
そうでない場合は、Bind(data)またはBind(url)を使用してください。

using C1.Web.Mvc.Olap;
using Microsoft.AspNetCore.Mvc;
using OlapExplorer.Models;
using System.Collections.Generic;

namespace OlapExplorer.Controllers.Olap
{
    partial class OlapController : Controller
    {
        private static Dictionary<string, object[]> ChartSettings = new Dictionary<string, object[]>
        {
            {"ChartType", new object[] { PivotChartType.Column, PivotChartType.Area, PivotChartType.Bar, PivotChartType.Line, PivotChartType.Pie, PivotChartType.Scatter} }
        };

        // GET: PivotGrid
        public ActionResult DataEngine()
        {
            var engineModel = new ClientSettingsModel { Settings = new Dictionary<string, object[]>() };
            foreach (var item in OlapModel.Settings)
            {
                engineModel.Settings.Add(item);
            }
            foreach (var chartItem in ChartSettings)
            {
                engineModel.Settings.Add(chartItem);
            }
            engineModel.ControlId = "chart";
            ViewBag.DemoOptions = engineModel;
            return View();
        }
    }
}
@{
    ClientSettingsModel optionsModel = ViewBag.DemoOptions;
}

<c1-pivot-engine id="dataEngine" service-url="~/api/dataengine/complex10" show-row-totals="Subtotals" show-column-totals="Subtotals">
    <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>

<div class="row">
    <div class="col-sm-4 col-md-4">
        <c1-pivot-panel items-source-id="dataEngine"></c1-pivot-panel>
    </div>
    <div class="col-sm-8 col-md-8">
        <c1-pivot-grid id="indexGrid" items-source-id="dataEngine"></c1-pivot-grid>
    </div>
</div>
<c1-pivot-chart id="@(optionsModel.ControlId)" items-source-id="dataEngine"></c1-pivot-chart>

@section Settings{
    @await Html.PartialAsync("_OptionsMenu", optionsModel)
}

@section Description{
    <p>@Html.Raw(OlapRes.DataEngine_Text0)</p>

    <p>@Html.Raw(OlapRes.DataEngine_Text1)</p>

    <p>@Html.Raw(OlapRes.DataEngine_Text2)</p>

}
@section Summary{
    <p>@Html.Raw(OlapRes.DataEngine_Text3)</p>

}