Office 365中制作报表的方式很多。

这里介绍下使用js获取SharePoint List实现报表的一种方法 

资源

先看效果, 要实现一个饼图

看代码

详细代码解释见原文(原文中的代码有点小问题,修复后的代码如下)  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

 posted on 2013-10-25 19:09  兰猫-兰兰  阅读(432)  评论(0编辑  收藏  举报