Open SharePoint site

Create a simple custom list named Products.

Create some custom columns in it.

Column NameType
Title (By default)Single line of text
ProductSingle line of text
YearNumber
Sale PercentageNumber

Now, the created list looks, as shown below.


Download Chart.min.js.

Upload it into the Site Assets library.


Now, open Sharepoint Designer. Create a simple HTML file and add some JSOM work to get the results and display HTML files, using CEWP(Content Editor Web Part).


Code

  1. <script src="…/…../SiteAssets/chart.min.js" type="text/javascript"></script>
  2. <script type="text/javascript">
  3. SP.SOD.executeOrDelayUntilScriptLoaded(pie, 'sp.js');
  4. /*Pie*/
  5. var collListItem; //ListItems
  6. var chartX = []; //X-Axis Labels
  7. var chartY = []; //Y-Axis Values
  8. /*Pie*/
  9. function pie() {
  10. var clientContext = new SP.ClientContext('/sites/dev/');
  11. var oList = clientContext.get_web().get_lists().getByTitle('Product');
  12. var camlQuery = new SP.CamlQuery();
  13. camlQuery.set_viewXml('<View></View>');
  14. this.collListItem = oList.getItems(camlQuery);
  15. clientContext.load(collListItem);
  16. clientContext.executeQueryAsync(
  17. Function.createDelegate(this, this.onQuerySucceeded),
  18. Function.createDelegate(this, this.onQueryFailed)
  19. );
  20. }
  21. function onQuerySucceeded()
  22. {
  23. console.log("pie success");
  24. var listItemEnumerator = collListItem.getEnumerator();
  25. //Create Points from ListData
  26. while (listItemEnumerator.moveNext()) {
  27. var oListItem = listItemEnumerator.get_current();
  28. chartX.push(oListItem.get_item('Year'));
  29. chartY.push(oListItem.get_item('Sales'));
  30. }
  31. //Load Chart JS
  32. //Generate Data
  33. var Piedata = {
  34. labels: this.chartX,
  35. datasets: [
  36. {
  37. percentageInnerCutout : 100,
  38. data: this.chartY,
  39. backgroundColor: [
  40. "#BAA378",
  41. "#C0A172",
  42. "#BAA378",
  43. "#382E1C",
  44. "#453823",
  45. "#2C2416",
  46. "#CC9900",
  47. "#663300",
  48. "#B67721",
  49. "#7F5417"
  50. ],
  51. borderWidth: 0,
  52. hoverBackgroundColor: [
  53. "#DAD9D5",
  54. "#E0E0E0",
  55. "#C8C0B5",
  56. "#998763"
  57. ]
  58. }
  59. ]
  60. };
  61. //Display Chart
  62. var ctxpie = document.getElementById('pie');
  63. var myNewpie = new Chart(ctxpie, { type: 'pie', data: Piedata, options: { legend: { display: false }} });
  64. }
  65. function onQueryFailed()
  66. {
  67. console.log("error");
  68. alert('Request failed. ' + args.get_message() +
  69. '\n' + args.get_stackTrace());
  70. }
  71. </script>
  72. <b></b>
  73. <h3>Sharepoint server 2013 Sales report by year basis</h3>
  74. </b>
  75. <canvas id="pie" width="100" height="30"></canvas>

Note

You can also create Doughnut and Bar charts by changing the type: Pie.

Here, the final result is given below.