2016-06-29 20 views
0

Ich möchte die Anzahl bestimmter abgerufener Felder in meinem Torten-/Donut-Diagramm anzeigen. Ich erhalte Daten über REST und das Ergebnis ist im JSON-Format. Die Quelle ist eine Liste, die Werte wiederholt:Kendo UI-Diagramm - Grafische Darstellung der zurückgegebenen JSON-Felder

Beispiel: In der folgenden Liste möchte ich die Anzahl (Anzahl) abgeschlossener Antworten erhalten; vielleicht in einer zweiten Tabelle die Aufschlüsselung der Antworten nach Ort.

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" }, 
] 

Meine Initialisierung sieht derzeit wie folgt aus:

$('#targetChart').kendoChart({ 

    dataSource: { 

     data: data.d.results, 

     group: { 

      field: "Location", 
     }, 

    }, 

    seriesDefaults: { 

     type: "donut", 

    }, 

    series: [{ 

     field: 'Id', 

     categoryField: 'Location', 
    }], 

}); 

Antwort

1

Sie einfach die Daten umwandeln kann. Lies es in eine DataSource-Objektgruppierung nach Ort und Filterung nur für abgeschlossen. Dann werden die Daten holen und eine Reihe der Zählungen für jeden Standort erstellen:

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); 
    }  
}); 

Sie am Ende mit:

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

Dies kann dann zu einem Kuchen/Krapfen gebunden werden.

DEMO

Verwandte Themen