このサンプルでは、PviotPanel のフィールドリスト、PivotGrid に表示された集計データ、一部のセルの詳細な生データなどのすべてのデータが DataEngine サーバー API から取得されます。 必要であればクライアント側のオプションもあります。

このサンプルの PivotPanel コントロールは、DataEngine API を使用して連結されています。 また、PivotGrid コントロールを使用して集計データを表示します。PivotGrid コントロールでセルをダブルクリックすると、新しいグリッドがポップアップして、そのセルの詳細な生データが表示されます。

使用できるフィールドの一覧が PivotPanel に表示されます。 サマリー領域間でフィールドをドラッグして、データサマリー(「ビュー」とも呼ばれる)を 生成できます。 フィールドのヘッダー、集計関数、フィルタ、書式などを 設定することもできます。

PivotPanel コントロールには、ビューをカスタマイズするためのプロパティが 用意されています。次のコントロールを使用して、これらのプロパティの値を変更し、その 効果を確認してください。

データセット
行の合計
列の合計
ゼロを表示する
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApiExplorer.Models;

namespace WebApiExplorer.Controllers.MVCOlap
{
    public partial class MVCOlapController : Controller
    {
        //
        // GET: /Index/

        public ActionResult Index()
        {
            ViewBag.DataSets = OlapData.GetDataSets();
            ViewBag.ShowTotals = OlapData.GetShowTotals();
            return View();
        }

    }
}
@using WebApiExplorer.Models
@using System.Collections
@{
    ViewBag.Title = "DataEngine";
    ViewBag.HideFeatures = true;
    ViewBag.DemoDescription = false;
    var webAPIService = System.Configuration.ConfigurationManager.AppSettings["WebAPIService"] + "api/dataengine";
    var dataSets = (IEnumerable<OlapData>)(ViewBag.DataSets);
    var showTotals = (IEnumerable<string>)(ViewBag.ShowTotals);
}

@section Head{
    <script type="text/javascript">
        window['webAPIService'] = '@webAPIService';
    </script>
    <script src="~/Scripts/DataEngine/common.js" type="text/javascript"></script>
}

<div class="title-container">
    <p>@Html.Raw(Resources.MVCOlap.Index_Text0)</p>
    <p>@Html.Raw(Resources.MVCOlap.Index_Text1)</p>
    <p>@Html.Raw(Resources.MVCOlap.Index_Text2)</p>
</div>
<div class="container-fluid">
    <div class="row">
        <div class="col-sm-4 col-md-4">
            @(Html.C1().PivotPanel().Id("pivotPanel")
            .BindEngine(eb => eb.BindService(webAPIService + "/complex10")
                        .ShowRowTotals(ShowTotals.None).ShowColumnTotals(ShowTotals.None).ShowZeros(false)
                        .RowFields(rfcb => rfcb.Items("Product", "Country"))
                        .ValueFields(vfcb => vfcb.Items("Sales", "Downloads"))))
        </div>
        <div class="col-sm-8 col-md-8">
            @Html.C1().PivotGrid().Id("pivotGrid").ItemsSourceId("pivotPanel").ShowSelectedHeaders(C1.Web.Mvc.Grid.HeadersVisibility.All)
        </div>
    </div>
</div>
<div class="col-lg-12 ui-helper-clearfix content-panel" style="margin-top:20px">
    <p>@Html.Raw(Resources.MVCOlap.Index_Text3)</p>
    <dl class="dl-horizontal">
        <dt>@Html.Raw(Resources.MVCOlap.Index_Dataset)</dt>
        <dd>
            @(Html.C1().ComboBox().Id("cmbDataSets").Bind(dataSets)
        .DisplayMemberPath("Name").SelectedValuePath("Value")
        .OnClientSelectedIndexChanged("cmbDataSets_SelectIndexChanged"))
        </dd>
        <dt>@Html.Raw(Resources.MVCOlap.Index_RowTotals)</dt>
        <dd>
            @(Html.C1().ComboBox().Id("cmbRowTotals").Bind(showTotals)
        .OnClientSelectedIndexChanged("cmbRowTotals_SelectIndexChanged"))
        </dd>
        <dt>@Html.Raw(Resources.MVCOlap.Index_ColumnTotals)</dt>
        <dd>
            @(Html.C1().ComboBox().Id("cmbColTotals").Bind(showTotals)
        .OnClientSelectedIndexChanged("cmbColTotals_SelectIndexChanged"))
        </dd>
        <dt>@Html.Raw(Resources.MVCOlap.Index_ShowZeros)</dt>
        <dd><input id="chkShowZeros" type="checkbox" onclick="chkShowZeros_CheckedChanged()" /></dd>
    </dl>
</div>