2016-06-29 1 views
0

Я хочу отображать подсчеты определенных извлеченных полей в диаграмме моего пирога/пончика. Я получаю данные через REST, и результат в формате json. Источником является список повторяющихся значений:Kendo UI Chart - визуализировать количество возвращенных полей JSON

Пример: в следующем списке я хотел бы получить настоящее количество (количество) завершенных ответов; возможно, во второй диаграмме представлены разбивка ответов по местоположению.

var userResponse = [ 
     {  User: "Bob Smith", Status: "Completed", Location: "USA" }, 
     {  User: "Jim Smith", Status: "In-Progress", Location: "USA" }, 
    {  User: "Jane Smith", Status: "Completed", Location: "USA" }, 
    {  User: "Bill Smith", Status: "Completed", Location: "Japan" }, 
    {  User: "Kate Smith", Status: "In-Progress", Location: "Japan" }, 
    {  User: "Sam Smith", Status: "In-Progress", Location: "USA" }, 
] 

Мои Initialization в настоящее время выглядит следующим образом:

$('#targetChart').kendoChart({ 

    dataSource: { 

     data: data.d.results, 

     group: { 

      field: "Location", 
     }, 

    }, 

    seriesDefaults: { 

     type: "donut", 

    }, 

    series: [{ 

     field: 'Id', 

     categoryField: 'Location', 
    }], 

}); 

ответ

1

Вы можете легко преобразовать данные. Прочтите его в группу объектов DataSource по местоположению и фильтрации только для завершенных. Затем выборки данных и создать массив отсчетов для каждого места:

var pieData = []; 

var respDS = new kendo.data.DataSource({ 
    data: userResponse, 
    group: { 
    field: "Location", 
    }, 
    filter: { 
    field: "Status", 
    operator: "eq", 
    value: "Completed" }, 
}); 

respDS.fetch(function(){ 
    var view = respDS.view(); 
    for (var i=0; i<view.length; i++){ 
    var item = {}; 
    item.Location = view[i].value; 
    item.Count = view[i].items.length; 
    pieData.push(item); 
    }  
}); 

Вы в конечном итоге с:

[ 
    {Location: "Japan", Count: 1}, 
    {Location: "USA", Count: 2}, 
] 

Это может быть связано с пирогом/бублика.

DEMO