Я пытаюсь вставить гистограмму для моего списка Sharepoint, но по какой-то причине я не могу ее отобразить. Список называется «Коды причин GPS III» и имеет два столбца. Столбец 1 имеет имя и столбец 2 имеет значение из выпадающего меню выбора. Как изменить код ниже, чтобы он подсчитывал количество вхождений для каждого значения в столбце 2 и создавал гистограмму?Вставка диаграммы столбцов Highcharts в sharepoint 2013 страница
Пример данных:
|Column 1 | Column 2
---------------------------
| Bob | Option 1
| Dave | Option 2
| Tom | Option 1
| Dan | Option 5
| Jason | Option 1
Может кто-то дайте мне знать, где я что-то не хватает?
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/highcharts.js"></script>
<script type="text/javascript">
var splistitems;
var seriesarray = new Array();
ExecuteOrDelayUntilScriptLoaded(GetChartData, "sp.js");
function GetChartData() {
seriesarray = [];
var currentcontext = new SP.ClientContext.get_current();
var splist = currentcontext.get_web().get_lists().getByTitle('GPS III Cause Codes');
var splistquery = new SP.CamlQuery();
splistitems = splist.getItems(splistquery);
currentcontext.load(splistitems);
currentcontext.executeQueryAsync(Function.createDelegate(this, GetChartDataSuccess), Function.createDelegate(this, GetChartDataFail));
}
function GetChartDataSuccess(sender, args) {
var splistitemcount = splistitems.get_count();
if (splistitemcount != 0) {
var splistitemenumerator = splistitems.getEnumerator();
while (splistitemenumerator.moveNext()) {
var currentlistitem = splistitemenumerator.get_current();
var itemname = currentlistitem.get_item("Title");
var causecode = currentlistitem.get_item("Cause Code");
var seriesitem = {
name: itemname,
data: [ causecode ]
};
seriesarray.push(seriesitem);
}
DrawChart();
}
}
function GetChartDataFail(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
function DrawChart() {
fruitChart = new Highcharts.Chart({
chart: {
renderTo: 'chart-container',
type: 'column'
},
title: {
text: 'Cause Code Trends'
},
xAxis: {
categories: ['Discussion', 'Document/Procedure Request', 'Data Request', 'SpaceX response/clarification', 'Identification','Documentation Error', 'Missing Testing Results', 'Out of Tolerance Results']
},
yAxis: {
min: 0,
title: {
text: 'Number of Requests'
},
stackLabels: {
enabled: true,
style: {
fontWeight: 'bold',
color: 'gray'
}
}
},
legend: {
false
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: true,
color: 'white',
style: {
textShadow: '0 0 3px black, 0 0 3px black'
}
}
}
},
series: seriesarray
});
}
</script>
Спасибо так много! Входные данные на самом деле немного отличаются от исходных данных. У меня есть список имен в столбце A, а в столбце B есть один из 5 вариантов имени. Знаете ли вы, как я могу изменить этот код, чтобы подсчитать количество вхождений каждого значения в столбце B, чтобы получить гистограмму? Я пересмотрел свой первоначальный вопрос с некоторыми примерами данных из списка Sharepoint. –
Я действительно не понимаю, чего вы хотите. Что не так с вашим кодом? – Kabulan0lak
Код предполагает, что столбец B является целым числом или числом каждого элемента в столбце A. Однако данные, которые у меня есть, не отформатированы таким образом. Данные в столбце B - это просто имя опции, поэтому мне нужен код, чтобы вставить опции в столбце B в группы, а затем нарисуйте эти группы. –