Office 365中制作报表的方式很多。
这里介绍下使用js获取SharePoint List实现报表的一种方法
资源
- Jquery 1.8.2 http://blog.jquery.com/2012/09/20/jquery-1-8-2-released/
- SPServices http://spservices.codeplex.com/
- Highcharts http://www.highcharts.com/
- underscore.js http://underscorejs.org/
先看效果, 要实现一个饼图
看代码
详细代码解释见原文(原文中的代码有点小问题,修复后的代码如下) http://www.sharepointdeveloperhq.com/2013/05/utilizing-spservices-for-sharepoint-2010-to-create-charts-with-high-charts/
1 <script src="/sites/target3/Theme/jquery.min.js" type="text/javascript"></script> 2 <script src="/sites/target3/Theme/highcharts.js" type="text/javascript"></script> 3 <script src="/sites/target3/Theme/jquery.SPServices-2013.01.js" type="text/javascript"></script> 4 <script src="/sites/target3/Theme/underscore.js" type="text/javascript"></script> 5 <script type="text/javascript"> 6 $(document).ready(function () 7 $().SPServices( 8 operation: "GetListItems", 9 CAMLQuery: "<Query><OrderBy><FieldRef Name=‘Location‘/></OrderBy></Query>", 10 CAMLViewFields: "<ViewFields><FieldRef Name=‘Title‘/><FieldRef Name=‘Date_x0020_of_x0020_Sighting‘/><FieldRef Name=‘Action‘/><FieldRef Name=‘Location‘/></ViewFields>", 11 listName: "owl seen", 12 completefunc: processData 13 ); 14 ); 15 16 function processData (xData, status) 17 var owlData = []; 18 $(xData.responseXML).SPFilterNode("z:row").each(function () 19 owlData.push( 20 owl: $(this).attr(‘ows_Title‘), 21 date: $(this).attr(‘ows_Date_x0020_of_x0020_Sighting‘), 22 action: $(this).attr(‘ows_Action‘), 23 location: $(this).attr(‘ows_Location‘) 24 ); 25 ); 26 27 var chartData = []; 28 var locationData = _.groupBy(owlData, ‘location‘); 29 30 $.each(locationData, function(row) 31 var locCount = row.length; 32 33 chartData.push( 34 name: row[0].location, 35 y: locCount 36 ); 37 38 ); 39 40 renderChart (chartData); 41 42 43 function renderChart (data) 44 var chart = new Highcharts.Chart( 45 chart: 46 renderTo: ‘owlchart‘, 47 plotBackgroundColor: null, 48 plotBorderWidth: null, 49 plotShadow: false 50 , 51 credits: 52 enabled: true 53 , 54 title: 55 text: ‘Owl Sightings by Location‘ 56 , 57 tooltip: 58 pointFormat: ‘series.name: <b>point.percentage%</b> point.y Times‘, 59 percentageDecimals: 1 60 , 61 plotOptions: 62 pie: 63 allowPointSelect: true, 64 cursor: ‘pointer‘, 65 dataLabels: 66 enabled: true, 67 color: ‘#000000‘, 68 connectorColor: ‘#000000‘, 69 formatter: function() 70 return ‘<b>‘+ this.point.name +‘</b>: ‘+ this.y +‘ Times‘; 71 72 , 73 74 , 75 series: [ 76 type: ‘pie‘, 77 name: ‘Location Count‘, 78 data: data 79 ] 80 ); 81 82 </script> 83 <div id="owlchart">????????</div>
Thanks,
Ivan