中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Kendo UI Chart集成

發布時間:2021-06-22 13:58:30 來源:億速云 閱讀:166 作者:chen 欄目:編程語言

本篇內容介紹了“什么是Kendo UI Chart集成”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Kendo UI for jQuery R1 2021 SP2試用版下載

Kendo UI是帶有jQuery、Angular、React和Vue庫的JavaScript UI組件的最終集合,無論選擇哪種JavaScript框架,都可以快速構建高性能響應式Web應用程序。通過可自定義的UI組件,Kendo UI可以創建數據豐富的桌面、平板和移動Web應用程序。通過響應式的布局、強大的數據綁定、跨瀏覽器兼容性和即時使用的主題,Kendo UI將開發時間加快了50%。

下面的示例演示如何將Kendo UI PivotGrid小部件與Kendo UI圖表小部件集成。

<div id="example">
<div id="pivotgrid"></div>
<div id="chart"></div>
<script>
//function flatten the tree of tuples that datasource returns
function flattenTree(tuples) {
tuples = tuples.slice();
var result = [];
var tuple = tuples.shift();
var idx, length, spliceIndex, children, member;

while (tuple) {
//required for multiple measures
if(tuple.dataIndex !== undefined) {
result.push(tuple);
}

spliceIndex = 0;
for (idx = 0, length = tuple.members.length; idx < length; idx++) {
member = tuple.members[idx];
children = member.children;
if (member.measure) {
[].splice.apply(tuples, [0, 0].concat(expandMeasures(children, tuple)));
} else {
[].splice.apply(tuples, [spliceIndex, 0].concat(children));
}
spliceIndex += children.length;
}

tuple = tuples.shift();
}

return result;
}

function clone(tuple, dataIndex) {
var members = tuple.members.slice();

return {
dataIndex: dataIndex,
members: $.map(members, function(m) {
return $.extend({}, m, { children: [] });
})
};
}

function replaceLastMember(tuple, member) {
tuple.members[tuple.members.length - 1] = member;
return tuple;
};

function expandMeasures(measures, tuple) {
return $.map(measures, function(measure) {
return replaceLastMember(clone(tuple, measure.dataIndex), measure);
});
}

//Check whether the tuple has been collapsed
function isCollapsed(tuple, collapsed) {
var members = tuple.members;

for (var idx = 0, length = collapsed.length; idx < length; idx++) {
var collapsedPath = collapsed[idx];
if (indexOfPath(fullPath(members, collapsedPath.length -1), [collapsedPath]) !== -1) {
return true;
}
}

return false;
}

//Work with tuple names/captions
function indexOfPath(path, paths) {
var path = path.join(",");

for (var idx = 0; idx < paths.length; idx++) {
if (paths[idx].join(",") === path) {
return idx;
}
}

return -1;
}

function fullPath(members, idx) {
var path = [];
var parentName = members[idx].parentName;

idx -= 1;

while (idx > -1) {
path.push(members[idx].name);
idx -= 1;
}

path.push(parentName);

return path;
}

function memberCaption(member) { return member.caption };

function extractCaption(members) {
return $.map(members, memberCaption).join(" ");
};

function fullPathCaptionName(members, dLength, idx) {
var result = extractCaption(members.slice(0, idx + 1));
var measureName = extractCaption(members.slice(dLength, members.mLength));

if (measureName) {
result += " - " + measureName;
}

return result;
}

//the main function that convert PivotDataSource data into understandable for the Chart widget format
function convertData(dataSource, collapsed) {
var columnDimensionsLength = dataSource.columns().length;
var rowDimensionsLength = dataSource.rows().length;

var columnTuples = flattenTree(dataSource.axes().columns.tuples || [], collapsed.columns);
var rowTuples = flattenTree(dataSource.axes().rows.tuples || [], collapsed.rows);
var data = dataSource.data();
var rowTuple, columnTuple;

var idx = 0;
var result = [];
var columnsLength = columnTuples.length;

for (var i = 0; i < rowTuples.length; i++) {
rowTuple = rowTuples[i];

if (!isCollapsed(rowTuple, collapsed.rows)) {
for (var j = 0; j < columnsLength; j++) {
columnTuple = columnTuples[j];

if (!isCollapsed(columnTuple, collapsed.columns)) {
if (idx > columnsLength && idx % columnsLength !== 0) {
for (var ri = 0; ri < rowTuple.members.length; ri++) {
for (var ci = 0; ci < columnTuple.members.length; ci++) {
//do not add root tuple members, e.g. [CY 2005, All Employees]
//Add only children
if (!columnTuple.members[ci].parentName || !rowTuple.members[ri].parentName) {
continue;
}

result.push({
measure: Number(data[idx].value),
column: fullPathCaptionName(columnTuple.members, columnDimensionsLength, ci),
row: fullPathCaptionName(rowTuple.members, rowDimensionsLength, ri)
});
}
}
}
}
idx += 1;
}
}
}

return result;
}
</script>
<script>
$(document).ready(function () {
var collapsed = {
columns: [],
rows: []
};

var pivotgrid = $("#pivotgrid").kendoPivotGrid({
filterable: true,
//gather the collapsed members
collapseMember: function(e) {
var axis = collapsed[e.axis];
var path = e.path;

if (indexOfPath(path, axis) === -1) {
axis.push(path);
}
},
//gather the expanded members
expandMember: function(e) {
var axis = collapsed[e.axis];
var index = indexOfPath(e.path, axis);

if (index !== -1) {
axis.splice(index, 1);
}
},
columnWidth: 100,
height: 330,
dataSource: {
type: "xmla",
columns: [{ name: "[Date].[Calendar]", expand: true }, { name: "[Employee].[Gender]" }],
rows: [{ name: "[Product].[Category]", expand: true }],
measures: ["[Measures].[Reseller Freight Cost]", "[Measures].[Internet Order Quantity]"],
transport: {
connection: {
catalog: "Adventure Works DW 2008R2",
cube: "Adventure Works"
},
read: "https://demos.telerik.com/olap/msmdpump.dll"
},
schema: {
type: "xmla"
},
error: function (e) {
alert("error: " + kendo.stringify(e.errors[0]));
}
},
dataBound: function() {
//create/bind the chart widget
initChart(convertData(this.dataSource, collapsed));
}
}).data("kendoPivotGrid");

function initChart(data) {
var chart = $("#chart").data("kendoChart");

if (!chart) {
$("#chart").kendoChart({
dataSource: {
data: data,
group: "row"
},
series: [{
type: "column",
field: "measure",
name: "#= group.value # (category)",
categoryField: "column"
}],
legend: {
position: "bottom"
},
categoryAxis: {
labels: {
rotation: 310
}
},
valueAxis: {
labels: {
format: "${0}"
}
},
dataBound: function(e) {
var categoryAxis = e.sender.options.categoryAxis;

if (categoryAxis && categoryAxis.categories) {
categoryAxis.categories.sort();
}
}
});
} else {
chart.dataSource.data(data);
}
}
});
</script>
</div>

“什么是Kendo UI Chart集成”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝城县| 临高县| 无锡市| 金川县| 铅山县| 临海市| 永济市| 重庆市| 磐安县| 德江县| 台东市| 固镇县| 佛冈县| 昆明市| 南投县| 扎赉特旗| 祁阳县| 左贡县| 香港| 内乡县| 廉江市| 台湾省| 商洛市| 类乌齐县| 锡林郭勒盟| 辽宁省| 涞源县| 邳州市| 城步| 泽库县| 洛宁县| 平乡县| 且末县| 平邑县| 克拉玛依市| 武威市| 吉安县| 伊金霍洛旗| 内丘县| 宁海县| 沐川县|