{"id":122,"date":"2009-10-01T19:51:47","date_gmt":"2009-10-01T19:51:47","guid":{"rendered":"http:\/\/www.myfatblog.co.uk\/?p=122"},"modified":"2009-10-01T20:40:48","modified_gmt":"2009-10-01T20:40:48","slug":"creating-a-sales-dashboard-using-the-dataviewwebpart-xsl","status":"publish","type":"post","link":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/","title":{"rendered":"Creating a Sales Dashboard using the DataViewWebpart &#038; XSL"},"content":{"rendered":"<p>So not too long ago, a client of mine decided that they wanted some nice charts on their WSS based intranet. You see the problem straight away.. No Moss, so no access to the KPI webparts, so it was time to drop to the old faithful, the Data View Web part to solve this problem&#8230;<\/p>\n<hr>\n<p><em><strong>Scenario:-<\/strong><\/em> The Sales Director wants to have a screen in SharePoint where he can monitor all Sales Managers performance against target for the current month.<\/p>\n<p><em><strong>Use case:-<\/strong><\/em><br \/>\n\u00e2\u20ac\u00a2\tData should be displayed as a single bar for each sales manager.<br \/>\n\u00e2\u20ac\u00a2\tData should also be broken down against the targets for Consultancy and Managed services.<br \/>\n\u00e2\u20ac\u00a2\tSales Data will be entered as Sales order numbers are generated on receipt of a firm order.<br \/>\n\u00e2\u20ac\u00a2\tSales target will be 1\/12 of the yearly target. No adjustment will be made for time of year.<br \/>\n\u00e2\u20ac\u00a2\tBar colour should change depending on % of target achieved. <50,50-99,100 will be the bands used.\n\nFirst we create a custom list called Sales that will be used to track every sale, this is created with the following fields.\n\n\n\n<blockquote><strong>Title<\/strong> &#8212;&#8212;&#8212;&#8211; String &#8211; Sale comment<br \/>\n<strong>Value<\/strong> &#8212;&#8212;&#8212;&#8211; Currency \u00e2\u20ac\u201c Value of the sale<br \/>\n<strong>Account Manager<\/strong> &#8211; Lookup \u00e2\u20ac\u201c A lookup to the list of Sales Managers<br \/>\n<strong>Sales Type<\/strong> &#8212;&#8212; Lookup \u00e2\u20ac\u201c A lookup to the list of Sales Types<br \/>\n<strong>Client<\/strong> &#8212;&#8212;&#8212;- BDC Lookup to SalesForce (Use a string for now as it makes no difference to this example)<br \/>\n<strong>Date of Sale<\/strong> &#8212;- DateTime (Date only)<br \/>\n<strong>StartofMonth<\/strong> &#8212;- Calculated (DateTime-Date only) \u00e2\u20ac\u201c This field is calculated using the following formulae to give the first day of the month this order was dated in. (See below for an explanation of why we use a calculated column)<\/p>\n<p>\t\t\t=DATE(YEAR([Date of Sale]),MONTH([Date of Sale]),1)<\/p>\n<p><strong>EndofMonth<\/strong> &#8212;&#8212; Calculated (DateTime-Date only)\u00e2\u20ac\u201c This field is calculated using the following formulae to give the first day of the month this order was dated in. (See below for an explanation of why we use a calculated column)<\/p>\n<p>\t\t\t=DATE(YEAR([Date of Sale]),MONTH([Date of Sale])+1,1)-1<\/p><\/blockquote>\n<p>Be careful with the creation of the column Date Of Sale as this will be used in a CAML query later on. I didn\u00e2\u20ac\u2122t create this column and therefore the spaces get encoded in the CAML string (<strong>Date_x0020_of_x0020_Sale<\/strong>).<\/p>\n<blockquote><p>Best practice when creating columns is to create them with a concatenated name first, then edit and expand the name later. <em><strong>E.g. DateOfSale is created, then renamed Date Of Sale. The internal name remains DateOfSale, rather than Date_x0020_of_x0020_Sale!<\/strong><\/em><\/p><\/blockquote>\n<p>The following data has been populated for testing (Note: I\u00e2\u20ac\u2122m using this test in September, so adjust the date of sale to match the calendar month that you\u00e2\u20ac\u2122re testing in.)<\/p>\n<div id=\"attachment_135\" style=\"width: 1011px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-135\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg\" alt=\"The test data for our chart.\" title=\"TestData\" width=\"1011\" height=\"210\" class=\"size-full wp-image-135\" srcset=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg 1011w, http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1-300x62.jpg 300w\" sizes=\"(max-width: 1011px) 100vw, 1011px\" \/><\/a><p id=\"caption-attachment-135\" class=\"wp-caption-text\">The test data for our chart.<\/p><\/div>\n<p>Once you&#8217;ve got that small amount of data, we&#8217;ll also need to upload the three colour images used by the CSS in the creation of the colour coded bars for the chart.<\/p>\n<p>These small files can be taken from here using right click and save as. (Don&#8217;t worry about the size as they are actually only 1 pixel wide.)<\/p>\n<div id=\"attachment_141\" style=\"width: 120px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-141\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/RedBar.gif\" alt=\"RedBar\" title=\"RedBar\" width=\"30\" height=\"24\" class=\"size-full wp-image-141\" \/><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-141\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/YellowBar.gif\" alt=\"YellowBar\" title=\"YellowBar\" width=\"30\" height=\"24\" class=\"size-full wp-image-140\" \/><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-141\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/GreenBar.gif\" alt=\"GreenBar\" title=\"GreenBar\" width=\"30\" height=\"24\" class=\"size-full wp-image-139\" \/><p id=\"caption-attachment-141\" class=\"wp-caption-text\">Red Yellow and Green bars for the chart.<\/p><\/div>\n<p>Once you&#8217;ve downloaded these images, save them into the \/12\/TEMPLATES\/IMAGES\/ directory on your server (All WFE&#8217;s if installing this in a farm.)<\/p>\n<p>The next step is to fire up SharePoint Designer and open up your website (Sandbox environment please if this is the first time!). In order to keep the look and feel nice and similar, I decided to copy the default.aspx in the root of the site, and repasted it as monthlyreports.aspx (all in SPD). Open this page in the browser and delete (not close) any webparts that are on the page. This should leave us with a nice clean page with the left nav and top chrome all visible.<\/p>\n<p>Back to SPD and it&#8217;s time to add the DataViewWebPart. Click on the &#8216;left&#8217; webpart zone in the design canvas to select it, then click on Insert\/SharePoint Controls\/DataView to place a new data view on the page.<\/p>\n<p>SPD should look something like this now:-<\/p>\n<div id=\"attachment_150\" style=\"width: 652px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/DVWP.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-150\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/DVWP.jpg\" alt=\"DataViewWebPart\" title=\"DVWP\" width=\"652\" height=\"169\" class=\"size-full wp-image-150\" srcset=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/DVWP.jpg 652w, http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/DVWP-300x77.jpg 300w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><\/a><p id=\"caption-attachment-150\" class=\"wp-caption-text\">DataViewWebPart<\/p><\/div>\n<p>Now we have the DVWP inserted, you should now see the Data Source pane on the right hand side. Look in the library for the list we created earlier. Right click on it and choose show data. this will display the list of available fields. For our Query we&#8217;re going to need the first five columns, Title, Value, Date of Sale, Account Manager and Sales Type.<\/p>\n<div id=\"attachment_154\" style=\"width: 222px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/fields1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-154\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/fields1.jpg\" alt=\"Fields\" title=\"fields\" width=\"222\" height=\"268\" class=\"size-full wp-image-154\" \/><\/a><p id=\"caption-attachment-154\" class=\"wp-caption-text\">Fields<\/p><\/div>\n<p>Once these are highlighted, click &#8216;Insert selected fields as &#8211; Multiple Item View.&#8217;<\/p>\n<p>Once done, you should see our test data displayed in tabular form in the design view. The only problem here is that it&#8217;s all of our data, unfiltered and unsorted. At this point, you could use a filter in the data view itself, but what I want to achieve is to restrict the amount of data actually being returned by the data query in the background. To this end, we&#8217;re going to change the select command used by the DVWP to only return data for the current month.<\/p>\n<p>Switch to the code view in SPD and find the top of the DVWP declaration in code. It should look something like this:-<\/p>\n<blockquote><p><SharePoint:SPDataSource runat=\"server\" DataSourceMode=\"List\" UseInternalName=\"true\" selectcommand=\"&lt;View&gt;&lt;\/View&gt;\" id=\"dataformwebpart2\"><\/p><\/blockquote>\n<p>We\u00e2\u20ac\u2122re going to replace this with our own bit of CAML query language to return just the data that we want.<\/p>\n<p>(Note: When I originally designed this solution, I came up with the calculated columns idea that results in the query below. When I delved further into CAML date filtering, it was suggested that I look at using a <DateRangesOverlap> construction instead but I found that items for the last day of previous months were sometimes creeping in.)<\/p>\n<p>So, using the StartofMonth and EndofMonth columns, we have a query that looks like this:-<\/p>\n<pre lang=\"xml\"><Query>\r\n   <Where>\r\n      <And>\r\n         <Leq>\r\n            <FieldRef Name='StartofMonth' \/>\r\n            <Value Type='DateTime'><Today\/><\/Value>\r\n         <\/Leq>\r\n         <Geq>\r\n            <FieldRef Name='EndofMonth' \/>\r\n            <Value Type='DateTime'><Today\/><\/Value>\r\n         <\/Geq>\r\n      <\/And>\r\n   <\/Where>\r\n<\/Query>\r\n<\/pre>\n<p>And returns only those entries that exist within the month we\u00e2\u20ac\u2122re currently in (That\u00e2\u20ac\u2122s using the <Today\/> entry. You could specify a date if you wanted results for that particular month.)<\/p>\n<p>So, paste that query into the select command, save the file (don\u00e2\u20ac\u2122t worry about the ghosting message, we\u00e2\u20ac\u2122ll sort that out later if performance is a concern for you.), and you should now see a view similar to the following. (notice that I haven\u00e2\u20ac\u2122t bothered encoding the <> as SPD will do that for you when the file is saved.<\/p>\n<div id=\"attachment_161\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/query.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-161\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/query-300x216.jpg\" alt=\"Query in Code &amp; Results in Design View\" title=\"query\" width=\"300\" height=\"216\" class=\"size-medium wp-image-161\" srcset=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/query-300x216.jpg 300w, http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/query.jpg 786w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-161\" class=\"wp-caption-text\">Query in Code & Results in Design View<\/p><\/div>\n<p>So if we now browse to our web\/monthlyperformance.aspx page, you should see a nice data form with 4 items for the current month visible. If you can see any items that shouldn\u00e2\u20ac\u2122t be there, then you may need to test your query is working using U2U\u00e2\u20ac\u2122s CAML builder.<\/p>\n<p>At this point we now have the data that we want to represent in Bar chart format, but represented in list form. This is the point where it starts looking like code as we delve into the wonders of XSL  to transform the raw list data into a nicely styled view for our director.<\/p>\n<p>To make this easier to manage, we\u00e2\u20ac\u2122ll use an external XSL file to transform the data and point the DVWP at it. Here\u00e2\u20ac\u2122s the XSLT that we\u00e2\u20ac\u2122re going to use. Cut and paste it into notepad, save it as something useful like \u00e2\u20ac\u02dcSalesGraphsByAccountManagerForMonth.xsl\u00e2\u20ac\u009d and then drag and drop it into the root of your site in SPD.<\/p>\n<p>The xsl file is commented heavily so should explain whats happening to enough of a degree that you can change this to sort your own ends.<\/p>\n<p><a href='http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/SalesGraphsByAccountManagerForMonth.xsl'>SalesGraphsByAccountManagerForMonth<\/a><\/p>\n<p>Once the xsl file has been edited to meet your needs (More importantly to match the Account Manager names etc in your data), the DVWP can be pointed at it.<\/p>\n<p>Open the MonthlyPerformance.aspx page in your browser and select edit page. Select modify shared webpart on the drop down option on the DVWP and then click on Miscellaneous.<\/p>\n<p>Click on XSL link and enter the URL of the XSL file that you dropped into the root of your web.<\/p>\n<p>Click on OK and your page should magically transform into the view below.. (Note: I over achieved against my targets as you can see, having achieved 915% of my target. The bar chart however stops at 100%! This is quite deliberate!)<\/p>\n<div id=\"attachment_165\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/Results.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-165\" src=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/Results-300x106.jpg\" alt=\"Results if all went well\" title=\"Results\" width=\"300\" height=\"106\" class=\"size-medium wp-image-165\" srcset=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/Results-300x106.jpg 300w, http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/Results-1024x363.jpg 1024w, http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/Results.jpg 1180w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-165\" class=\"wp-caption-text\">Results if all went well<\/p><\/div>\n<p><em><strong>Troubleshooting<\/strong><\/em><\/p>\n<p>If you see the bars but no values, then your field names are most likely the culprits. Make double sure that you are using the internal name as SharePoint knows your fields. To double check this, browse to the list settings for your chosen list, Click on the column name and check the URL in IE. You should see a querystring in the form &#038;Field=Sales_x0020_Type or similar. This is your internal name.<\/p>\n<p><em><strong>Ghosted\/Unghosted Pages<\/strong><\/em><\/p>\n<p>If you\u00e2\u20ac\u2122re worried about having an unghosted page in your web, simply export the webpart that you\u00e2\u20ac\u2122ve created. Delete the page and re-create it, then import the webpart once more.<\/p>\n<p>Hopefully this little guide has helped you out.<\/p>\n<p>Regards<\/p>\n<p>Paul.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So not too long ago, a client of mine decided that they wanted some nice charts on their WSS based intranet. You see the problem straight away.. No Moss, so no access to the KPI webparts, so it was time to drop to the old faithful, the Data View Web part to solve this problem&#8230; &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/\">Continue reading<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[16,4,24],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating a Sales Dashboard using the DataViewWebpart &amp; XSL - Blog of an overweight SharePoint addict<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating a Sales Dashboard using the DataViewWebpart &amp; XSL - Blog of an overweight SharePoint addict\" \/>\n<meta property=\"og:description\" content=\"So not too long ago, a client of mine decided that they wanted some nice charts on their WSS based intranet. You see the problem straight away.. No Moss, so no access to the KPI webparts, so it was time to drop to the old faithful, the Data View Web part to solve this problem&#8230; &hellip; Continue reading\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog of an overweight SharePoint addict\" \/>\n<meta property=\"article:published_time\" content=\"2009-10-01T19:51:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2009-10-01T20:40:48+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg\" \/>\n<meta name=\"author\" content=\"Cimares\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cimares\" \/>\n<meta name=\"twitter:site\" content=\"@cimares\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cimares\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/\",\"url\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/\",\"name\":\"Creating a Sales Dashboard using the DataViewWebpart & XSL - Blog of an overweight SharePoint addict\",\"isPartOf\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg\",\"datePublished\":\"2009-10-01T19:51:47+00:00\",\"dateModified\":\"2009-10-01T20:40:48+00:00\",\"author\":{\"@id\":\"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/#primaryimage\",\"url\":\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg\",\"contentUrl\":\"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg\",\"width\":\"1011\",\"height\":\"210\",\"caption\":\"The test data for our chart.\"},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/#website\",\"url\":\"http:\/\/www.myfatblog.co.uk\/\",\"name\":\"Blog of an overweight SharePoint addict\",\"description\":\"The rantings of a (not so) food obsessed IT consultant!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.myfatblog.co.uk\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6\",\"name\":\"Cimares\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg\",\"contentUrl\":\"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg\",\"caption\":\"Cimares\"},\"sameAs\":[\"http:\/\/www.myfatblog.co.uk\"],\"url\":\"http:\/\/www.myfatblog.co.uk\/index.php\/author\/reginald\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating a Sales Dashboard using the DataViewWebpart & XSL - Blog of an overweight SharePoint addict","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/","og_locale":"en_US","og_type":"article","og_title":"Creating a Sales Dashboard using the DataViewWebpart & XSL - Blog of an overweight SharePoint addict","og_description":"So not too long ago, a client of mine decided that they wanted some nice charts on their WSS based intranet. You see the problem straight away.. No Moss, so no access to the KPI webparts, so it was time to drop to the old faithful, the Data View Web part to solve this problem&#8230; &hellip; Continue reading","og_url":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/","og_site_name":"Blog of an overweight SharePoint addict","article_published_time":"2009-10-01T19:51:47+00:00","article_modified_time":"2009-10-01T20:40:48+00:00","og_image":[{"url":"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg"}],"author":"Cimares","twitter_card":"summary_large_image","twitter_creator":"@cimares","twitter_site":"@cimares","twitter_misc":{"Written by":"Cimares","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/","url":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/","name":"Creating a Sales Dashboard using the DataViewWebpart & XSL - Blog of an overweight SharePoint addict","isPartOf":{"@id":"http:\/\/www.myfatblog.co.uk\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/#primaryimage"},"image":{"@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/#primaryimage"},"thumbnailUrl":"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg","datePublished":"2009-10-01T19:51:47+00:00","dateModified":"2009-10-01T20:40:48+00:00","author":{"@id":"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.myfatblog.co.uk\/index.php\/2009\/10\/creating-a-sales-dashboard-using-the-dataviewwebpart-xsl\/#primaryimage","url":"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg","contentUrl":"http:\/\/www.myfatblog.co.uk\/wp-content\/uploads\/2009\/10\/TestData1.jpg","width":"1011","height":"210","caption":"The test data for our chart."},{"@type":"WebSite","@id":"http:\/\/www.myfatblog.co.uk\/#website","url":"http:\/\/www.myfatblog.co.uk\/","name":"Blog of an overweight SharePoint addict","description":"The rantings of a (not so) food obsessed IT consultant!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.myfatblog.co.uk\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/55ae8f6885bb5b8390dad001f3da83c6","name":"Cimares","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.myfatblog.co.uk\/#\/schema\/person\/image\/","url":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg","contentUrl":"http:\/\/www.myfatblog.co.uk\/images\/BlogImages\/About_D057\/TopOfTheWorld.jpg","caption":"Cimares"},"sameAs":["http:\/\/www.myfatblog.co.uk"],"url":"http:\/\/www.myfatblog.co.uk\/index.php\/author\/reginald\/"}]}},"_links":{"self":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/122"}],"collection":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":37,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"predecessor-version":[{"id":515,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/122\/revisions\/515"}],"wp:attachment":[{"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.myfatblog.co.uk\/index.php\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}