製品版のみの機能
ピボット グリッド - リモート プロバイダー
このサンプルは、igOlapXmlaDataSource のネットワーク トラフィックのより少ないリモート プロバイダー機能を使用する主な利点を紹介します。
このサンプルは CTP 機能を使用しています。製品版では、API や動作が変更される場合があります。
ダイレクト XMLA アクセス
アップロード完了: 0KB, ダウンロード完了: 0 KB
リモート XMLA アクセス
アップロード完了: 0KB, ダウンロード完了: 0 KB
このサンプルは、より大きい画面サイズのためにデザインされました。
モバイル デバイスで画面を回転、フル サイズ表示、またはその他のデバイスにメールで送信します。
すべての要求は、クロス ドメインの問題を防止するためにサーバー アプリケーションを介してプロキシーされます。また、応答サイズを小さくするために、データが JSON に変換されます。注: このサンプルは、 OLAP データをアクセスするために、インターネット接続が必要です。
コード ビュー
クリップボードへコピー
@using Infragistics.Web.Mvc
@using IgniteUI.SamplesBrowser.Models
<!DOCTYPE html>
<html>
<head>
<title></title>
<!-- Ignite UI for jQuery Required Combined CSS Files -->
<link href="http://cdn-na.infragistics.com/igniteui/2024.2/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
<link href="http://cdn-na.infragistics.com/igniteui/2024.2/latest/css/structure/infragistics.css" rel="stylesheet" />
<script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>
<!-- Ignite UI for jQuery Required Combined JavaScript Files -->
<script src="http://cdn-na.infragistics.com/igniteui/2024.2/latest/js/infragistics.core.js"></script>
<script src="http://cdn-na.infragistics.com/igniteui/2024.2/latest/js/infragistics.lob.js"></script>
</head>
<body>
<script type="text/javascript">
$.support.cors = true;
$(function () {
var dataSource,
remoteDataSource,
remoteSize = { u: 0, d: 0 },
directSize = { u: 0, d: 0 },
$directGrid = $("#directPivotGrid"),
$remoteGrid = $("#remotePivotGrid"),
toggleTupleMember = function (expand, pivotGrid, axisName, tupleIndex, memberIndex) {
var friendlyAxisName = axisName == "Axis0" ? "columnAxis" : "rowAxis";
if (expand) {
pivotGrid.igPivotGrid("expandTupleMember", friendlyAxisName, tupleIndex, memberIndex, true);
}
else {
pivotGrid.igPivotGrid("collapseTupleMember", friendlyAxisName, tupleIndex, memberIndex, true);
}
};
$(document).ajaxComplete(function (event, request, settings) {
if (settings.url.match("(.*/)?remote-xmla-provider-endpoint(.*)")) {
remoteSize.u += settings.data.length;
remoteSize.d += request.responseText.length;
$("#remoteSize").text("アップロード完了: " + (remoteSize.u / 1024).toFixed(2) + " KB, ダウンロード完了: " + (remoteSize.d / 1024).toFixed(2) + " KB").show();
} else if (settings.url === "https://sampledata.infragistics.com/olap/msmdpump.dll") {
directSize.u += settings.data.length;
directSize.d += request.responseText.length;
$("#directSize").text("アップロード完了: " + (directSize.u / 1024).toFixed(2) + " KB, ダウンロード完了: " + (directSize.d / 1024).toFixed(2) + " KB").show();
}
});
dataSource = new $.ig.OlapXmlaDataSource({
serverUrl: 'https://sampledata.infragistics.com/olap/msmdpump.dll',
catalog: 'Adventure Works DW Standard Edition',
cube: 'Adventure Works',
rows: '[Date].[Calendar]',
columns: '[Product].[Product Categories]',
measures: '[Measures].[Internet Order Count]'
});
remoteDataSource = new $.ig.OlapXmlaDataSource({
isRemote: true,
serverUrl: '@Url.Action("remote-xmla-provider-endpoint")',
catalog: 'Adventure Works DW Standard Edition',
cube: 'Adventure Works',
rows: '[Date].[Calendar]',
columns: '[Product].[Product Categories]',
measures: '[Measures].[Internet Order Count]'
});
$directGrid.igPivotGrid({
dataSource: dataSource,
width: "915px",
height: "450px",
hideFiltersDropArea: true,
disableColumnsDropArea: true,
disableRowsDropArea: true,
disableMeasuresDropArea: true,
tupleMemberExpanding: function (evt, ui) {
toggleTupleMember(true, $remoteGrid, ui.axisName, ui.tupleIndex, ui.memberIndex);
},
tupleMemberCollapsing: function (evt, ui) {
toggleTupleMember(false, $remoteGrid, ui.axisName, ui.tupleIndex, ui.memberIndex);
}
});
$remoteGrid.igPivotGrid({
dataSource: remoteDataSource,
width: "915px",
height: "450px",
hideFiltersDropArea: true,
disableColumnsDropArea: true,
disableRowsDropArea: true,
disableMeasuresDropArea: true,
tupleMemberExpanding: function (evt, ui) {
toggleTupleMember(true, $directGrid, ui.axisName, ui.tupleIndex, ui.memberIndex);
},
tupleMemberCollapsing: function (evt, ui) {
toggleTupleMember(false, $directGrid, ui.axisName, ui.tupleIndex, ui.memberIndex);
}
});
});
</script>
<h5>ダイレクト XMLA アクセス</h5>
<h5 id="directSize">アップロード完了: 0KB, ダウンロード完了: 0 KB</h5>
<div id="directPivotGrid"></div>
<h5>リモート XMLA アクセス</h5>
<h5 id="remoteSize">アップロード完了: 0KB, ダウンロード完了: 0 KB</h5>
<div id="remotePivotGrid"></div>
</body>
</html>
using System.Web.Mvc;
using Infragistics.Web.Mvc;
using IgniteUI.SamplesBrowser.Application.Data;
using System.Data;
using System.Data.SqlClient;
using IgniteUI.SamplesBrowser.Models.Repositories;
using Newtonsoft.Json.Converters;
using System.Linq;
using System;
namespace IgniteUI.SamplesBrowser.Controllers
{
public class PivotGridController : Controller
{
[AdomdDataSourceAction]
[ActionName("adomd-provider-endpoint")]
public ActionResult RemoteAdomdProviderEndpoint()
{
return View(new AdomdDataSourceModel()
{
ConnectionString = "Provider=MSOLAP.4;Persist Security Info=True;Data Source=http://sampledata.infragistics.com/olap/msmdpump.dll;Initial Catalog=Adventure Works DW Standard Edition;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error"
});
}
[ActionName("remote-adomd-provider")]
public ActionResult AdomdProvider()
{
return View("remote-adomd-provider");
}
[XmlaDataSourceAction]
[ActionName("remote-xmla-provider-endpoint")]
public ActionResult RemoteXmlaProviderEndpoint()
{
return View(new XmlaDataSourceModel { ServerUrl = "http://sampledata.infragistics.com/olap/msmdpump.dll" });
}
[ActionName("remote-xmla-provider")]
public ActionResult RemoteXmlaProvider()
{
return View("remote-xmla-provider");
}
[ActionName("using-the-asp-net-mvc-helper-with-flat-data-source")]
public ActionResult UsingAspNetMvcHelperWithFlatDataSource()
{
var invoices = RepositoryFactory.GetInvoiceRepository().Get().Take(200).Select(invoice => new
{
Address = invoice.Address,
City = invoice.City,
CustomerName = invoice.CustomerName,
Discount = invoice.Discount,
Freight = invoice.Freight,
OrderDate = invoice.OrderDate == null ? null : invoice.OrderDate.Value.AddYears(16).ToShortDateString(),
ProductName = invoice.ProductName,
Quantity = invoice.Quantity,
RequiredDate = invoice.RequiredDate == null ? null : invoice.RequiredDate.Value.AddYears(16).ToShortDateString(),
Salesperson = invoice.Salesperson,
ShipCountry = invoice.ShipCountry,
ShippedDate = invoice.ShippedDate == null ? null : invoice.ShippedDate.Value.AddYears(16).ToShortDateString(),
ShipperName = invoice.ShipperName
});
return View("using-the-asp-net-mvc-helper-with-flat-data-source", invoices);
}
[ActionName("using-the-asp-net-mvc-helper-with-xmla-data-source")]
public ActionResult UsingAspNetMvcHelperWithXmlaDataSource()
{
return View("using-the-asp-net-mvc-helper-with-xmla-data-source");
}
}
}