<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog of an overweight SharePoint addict</title>
	<atom:link href="http://www.myfatblog.co.uk/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.myfatblog.co.uk</link>
	<description>The rantings of a food obsessed IT worker!</description>
	<lastBuildDate>Sun, 01 Aug 2010 20:50:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Task alerts not firing in new site from Content Migration.</title>
		<link>http://www.myfatblog.co.uk/?p=212</link>
		<comments>http://www.myfatblog.co.uk/?p=212#comments</comments>
		<pubDate>Sun, 01 Aug 2010 20:49:04 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL2K8]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Task Alerts]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=212</guid>
		<description><![CDATA[Whilst working with a client recently we decided to use the Content Migration system within SharePoint to allow us to create a template site that could then be used as the source for the 88 sites that needed to be created for each of the areas of interest.
Each site had identical set-up with regards to [...]]]></description>
			<content:encoded><![CDATA[<p>Whilst working with a client recently we decided to use the Content Migration system within SharePoint to allow us to create a template site that could then be used as the source for the 88 sites that needed to be created for each of the areas of interest.</p>
<p>Each site had identical set-up with regards to security and the groups involved, the data merely changed by geographical location, with each site representing a postal district. As the custom webparts all triggered from data such as the site title for their geo-location data, this provided us with the best mechanism for creating the structure.</p>
<p>During the UAT period however we did experience one problem that I didn’t expect, This related to task creation and the automatic notifications sent to users. In our template site, we created a standard out of the box task list and turned on the ‘Notify on Task Assignment’ option.</p>
<p><a href="http://www.myfatblog.co.uk/images/BlogImages/TaskalertsnotfiringinnewsitefromContent_131C2/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.myfatblog.co.uk/images/BlogImages/TaskalertsnotfiringinnewsitefromContent_131C2/image_thumb.png" width="244" height="73" /></a> </p>
<p>This worked as expected in test, but during the migration something happened to the alerts and none of the 88 sites sent alerts when tasks were created.</p>
<p>The first thing I do when task alerts aren’t working is to set-up an ‘Alert me’ on a list or document library. When this is done you immediately receive notification that this has been done, so this shows that the SMTP is configured correctly. Then creating a new item triggers the second alert (Be aware of the timer delay though, alerts may take up to 5 minutes to be triggered as this runs on a default 5 minute timer. (Which can be changed..))</p>
<p>In this instance, these tests worked ok. So, now knowing that the infrastructure was ok, I started thinking about how SharePoint handles this kind of alert. In alert parlance, these Task alerts are called immediate scheduled alerts, as opposed to the daily round up or journal alerts. When an alert such as this is created, an entry is made in the dbo.ImmedSubscriptions table.</p>
<blockquote><p><em><strong>WARNING: Doing any kind of querying into the SQL databases of SharePoint is NOT supported and this was done for investigative purposes only. I would recommend only doing this when all else fails OR, Microsoft tell you to do it!</strong></em></p>
</blockquote>
<p><a href="http://www.myfatblog.co.uk/images/BlogImages/TaskalertsnotfiringinnewsitefromContent_131C2/image_3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.myfatblog.co.uk/images/BlogImages/TaskalertsnotfiringinnewsitefromContent_131C2/image_thumb_3.png" width="190" height="35" /></a> </p>
<p>In my test system, I created a new site collection and then a new tasks list. Initially for this site, task alerts were off so the ImmedSubscriptions table was empty. However after editing the properties of the tasks list and turning on E-mail notifications, the following data appeared in the content-db.</p>
<p><a href="http://www.myfatblog.co.uk/images/BlogImages/TaskalertsnotfiringinnewsitefromContent_131C2/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.myfatblog.co.uk/images/BlogImages/TaskalertsnotfiringinnewsitefromContent_131C2/image_thumb_4.png" width="724" height="148" /></a> </p>
<p>The key areas of information that we’re interested in are shown above, Primarily the Site and Web urls, the list name and most importantly the AlertTemplateName (SPAlertTemplateType.AssignedToNotification) and the filter that applies the alert.</p>
<p>In the case of the sites for my client, this data did not appear for any of the sites created from the Content Migration Package and we can therefore assume that when creating these sites, alerts do NOT get processed in the normal way.</p>
<p>The fix is simple, turn off the alerts and turn them on again, this creates the entry and alerts start working as expected. moving forward, we’ve now created a quick powershell script than turns Alerts off and back on again after the site is created using the SPList object and the EnableAssignToEmail property.</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=212</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weird CQWP behaviour with custom user columns</title>
		<link>http://www.myfatblog.co.uk/?p=206</link>
		<comments>http://www.myfatblog.co.uk/?p=206#comments</comments>
		<pubDate>Thu, 29 Jul 2010 13:42:08 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[CQWP]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=206</guid>
		<description><![CDATA[So one of my colleagues approached me today with a problem he was having setting up a new content query web part for a client. it’s a fairly simple affair that just needs to pull together project statuses across a site collection. No cross site query issues, no custom field types to worry about.. Just [...]]]></description>
			<content:encoded><![CDATA[<p>So one of my colleagues approached me today with a problem he was having setting up a new content query web part for a client. it’s a fairly simple affair that just needs to pull together project statuses across a site collection. No cross site query issues, no custom field types to worry about.. Just a simple list.</p>
<p>Or so we thought, Try as we might we could not get two of the fields to return a value, BusinessOwner and ProjectManager. In the Content Type, these site columns are simple People or Group field types, set to display the name without presence. </p>
<p>Without any further ado I fired up my trusty development VM and started playing around to re-create the issue.</p>
<ol>
<li>Create a new content type based on the List Content Types/Item parent. published to Custom Content Types group. </li>
<li>Added a new site column called GreenBanana to the new content type. This is set to be a People or Group column, with the additional settings of Not required, No multiselect,People Only, All users and show field as name (Subsequently tested with Name and Presence and no difference.) </li>
<li>To simulate the nested nature of the query in the client environment, I create a new sub-site in my site collection, added a new list and configured this list to use the new content type. </li>
<li>Create 2-3 new items in the list, ensuring that the GreenBanana field has a value of my test user configured. </li>
<li>Back to the root site of the Site Collection, create a new content query web part on the page and set it up to retrieve the new content type frm all sites in the site collection. As expected, the 3 new items duly appear. </li>
<li>Now we export the CQWP to point it at the custom XSL that I have prepared. In addition I’m adding &#8220;GreenBanana,Text; to the CommonViewFields property to make it available in the returned XML. (Note: I’m using Text not User as the field type.) </li>
<li>Delete the original CQWP and upload my newly updated one. </li>
</ol>
<p>The newly uploaded one shows me the 3 items that I expect, so modify shared webpart and point the item style at my showXML style. (Just a simple XSL that outputs all of the available fields and their values.)<br />
The heading GreenBanana shows, but not value.<br />
So, we’re at the stage that my colleague got to, No value in the custom site column based on the people type.  Just an heading and an empty value. </p>
<blockquote><p>P:GreenBanana<br />
V:</p></blockquote>
<p>So, thinking that I might be pulling an item frm somewhere else (despite this being a new content type) I decided to filter only on items that included me in the GreenBanana column.</p>
<blockquote><p>P:GreenBanana<br />
V:1;#Paul</p></blockquote>
<p>Whoa.. Ok, why did that happen? It is definitely the same item that I had previously, but now I have a value. Setting the filter to be Show me everything where the GreenBanana column is not equal to Administrator shows me all three items AND their values.</p>
<p>Weird.. and at the moment I don’t have an explanation.</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=206</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>So, why haven&#8217;t I posted in a while?</title>
		<link>http://www.myfatblog.co.uk/?p=203</link>
		<comments>http://www.myfatblog.co.uk/?p=203#comments</comments>
		<pubDate>Thu, 29 Jul 2010 08:20:21 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=203</guid>
		<description><![CDATA[Well the main answer I guess is I’ve just been too busy. You’d think that with SharePoint 2010 now out in the wild that no-one would want to work with 2007 anymore? Well you’d be wrong, the vast majority of my recent work has been on firmly ensconced 2007 farms, but surprisingly a number of [...]]]></description>
			<content:encoded><![CDATA[<p>Well the main answer I guess is I’ve just been too busy. You’d think that with SharePoint 2010 now out in the wild that no-one would want to work with 2007 anymore? Well you’d be wrong, the vast majority of my recent work has been on firmly ensconced 2007 farms, but surprisingly a number of new 2007 installs too.</p>
<p>So, why build on 2007 when at the time, 2010 was just around the corner. The answer is experience. Clients know that SP2007 has bedded in now, It’s had two major service packs and lets face it, there are blog posts and support forums by the thousand out there for most major problems that you may come across. SP2010 on the other hand is the new kid on the block, It’s fresh faced, lively and you just known there’s going to be a dose of acne bubbling under the surface waiting to erupt. So I know a lot of clients are going to play a waiting game for SP2010 and let it settle in a bit to it’s new role.</p>
<p>And let’s face it, the upgrade support between 2007 and 2010 is far far better than the previous upgrade processes. Clients love the staged upgrade that can be carried out on their sites to minimise the impact to the look and feel for their users, who as we all know fear change immensely.</p>
<p>And on the subject of change, which has got me back onto my blog for the first time in ages, I’ve finally switched to a better blogging software, staying here on Wordpress, but using an off-line editor so that I can write these posts on the move. Hopefully this will make code snippets a lot easier to bring in-line and overall, encourage me to be a bit more forthcoming..</p>
<p>See you all soon.</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=203</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Year, New Start?? Balony!</title>
		<link>http://www.myfatblog.co.uk/?p=201</link>
		<comments>http://www.myfatblog.co.uk/?p=201#comments</comments>
		<pubDate>Wed, 03 Feb 2010 16:14:15 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=201</guid>
		<description><![CDATA[Judging by the date, things haven&#8217;t changed much for me at the moment. Since getting back from SPC09, work has been Manic! I&#8217;m generally leaving on a Sunday night to head to the West Country, then coming home and heading to the Midlands the next day, before heading back to the West Country towards the [...]]]></description>
			<content:encoded><![CDATA[<p>Judging by the date, things haven&#8217;t changed much for me at the moment. Since getting back from SPC09, work has been Manic! I&#8217;m generally leaving on a Sunday night to head to the West Country, then coming home and heading to the Midlands the next day, before heading back to the West Country towards the end of the week. The end result, no downtime or train time to actually get some things written up.</p>
<p>For instance I attended the Nottingham region SUGUK evening a couple of weeks ago, with Sam Dolan and Penny Coventry presenting on branding with SharePoint. pointing out the pain points and some of the gotchas. One of the things that Sam pointed out is don&#8217;t let a dev do your design, Get a designer in.</p>
<p>Being a Dev who brands quite a lot, I actually do agree with this philosophy. if you want your ready designed marketting brand applied to your SharePoint site, then I can do that without any problems. If you want a site that&#8217;s been designed like the Ferrari site, then you need to bring a Designer in.</p>
<p>Overall a worthy evening with a good attendance regardless of some of the weather that mother Nature has thrown at us recently.</p>
<p>Workwise I&#8217;ve had some very interesting projects on recently, several of which are very blog worthy as I found it very difficult to actually find information on the net that covered exactly what i was trying to do. If I get some time over the next week or so, I&#8217;ll try to get these written up, but looking at past performance, these may wait a while.. let&#8217;s see.</p>
<p>Some of the techniques that I&#8217;ve touched on recently though have been fun to research, Cascading Drop Down lists without a post back to the server, Sourcing the data for these from a data table and using LINQ to select what&#8217;s required, Custom Search query and results webpart using the Keyword model. I think I need to create one big custom project and put all of these into it as a learning experience that I can draw on in 6 months time when I&#8217;ve forgotten it.</p>
<p>Watch this space, I won&#8217;t leave it so long this time..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=201</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Should I change the name?</title>
		<link>http://www.myfatblog.co.uk/?p=199</link>
		<comments>http://www.myfatblog.co.uk/?p=199#comments</comments>
		<pubDate>Tue, 24 Nov 2009 22:59:51 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[SPC09]]></category>
		<category><![CDATA[SUGUK]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Visual Studio 2005]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=199</guid>
		<description><![CDATA[To once a month updates?
I haven&#8217;t stopped since I got back from SPC and have been dashing around between clients working on SharePoint 2007 issues. Doesn&#8217;t anyone understand I want to play with SharePoint 2010 now? Or more to the point, I need to upskill in some areas very quickly to get the most of [...]]]></description>
			<content:encoded><![CDATA[<p>To once a month updates?</p>
<p>I haven&#8217;t stopped since I got back from SPC and have been dashing around between clients working on SharePoint 2007 issues. Doesn&#8217;t anyone understand I want to play with SharePoint 2010 now? Or more to the point, I need to upskill in some areas very quickly to get the most of SP2010 and all the goodness it brings.</p>
<p>Looking at whats coming in SP2010, I honestly think the IT Pro&#8217;s have got it easy.. You guys just have to learn one new application, Us Devs have to learn at least 2, SP2010 and Visual Studio 2010!</p>
<p>Then on top of that, we have an updated object model to contend with, along with a brand new object model in the form of the SharePoint Client OM!</p>
<p>Add to this the requirements to use XSLT for almost every list view in SP2010, SPLinq (Call it SPlinq, MS hate that!!), Silverlight and a lot more Javascript than before, all adds up to a lot of skill-up time!</p>
<p>So here&#8217;s to spending many evenings and train journeys in front of Visual Studio, playing with Silverlight 101 and all the new Sharepoint tools that now come out of the box with VS!</p>
<p>I&#8217;m booked up in December as solidly as November was, so i wouldn&#8217;t expect too many posts on here just yet, although I am planning to extend the piece I wrote on KPI&#8217;s to give more ideas and hopefully present on this at a SUG do in the early new year.</p>
<p>Regards</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=199</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And, that&#8217;s a rap!</title>
		<link>http://www.myfatblog.co.uk/?p=195</link>
		<comments>http://www.myfatblog.co.uk/?p=195#comments</comments>
		<pubDate>Tue, 27 Oct 2009 19:02:34 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SPC09]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=195</guid>
		<description><![CDATA[Well the MS SharePoint 2009 conference is over and life is slowly returning to normal. A couple of days away from SharePoint to restore my equilibrium and I&#8217;m now back to SharePoint 2007 and the real world.
But what of SharePoint 2010? When can we see it in all it&#8217;s glory. Well Steve Ballmer announced that [...]]]></description>
			<content:encoded><![CDATA[<p>Well the MS SharePoint 2009 conference is over and life is slowly returning to normal. A couple of days away from SharePoint to restore my equilibrium and I&#8217;m now back to SharePoint 2007 and the real world.</p>
<p>But what of SharePoint 2010? When can we see it in all it&#8217;s glory. Well Steve Ballmer announced that the Beta 2 release would be sometime in November as they were doing last minute testing internally in Microsoft. During the conference, all of the SharePoint web pages were switched over to the new version and reports coming out suggest no major problems. So fingers crossed for an early Beta 2 in November.</p>
<p>The conference for me was all about soaking up the changes to development in SP2010. I didn&#8217;t really focus on any of the admin sessions at all as I&#8217;m planning to download and watch them on my long journeys to work over the next few weeks. So what does SP2010 bring to us Devs?</p>
<p>Well the big story is the much improved integration with Visual Studio 2010. (Beta 2 available now) which ships with an absolute ton of SharePoint 2010 project templates from Web Parts to Event Receivers, List Definitions, Content Types etc.</p>
<p>And the biggest win for me.. ONE TOUCH DEPLOYMENT!! Yes.. hit F5 and your project deploys to your test server with nary a hiccup and just a minor bit of configuration during the project set-up. Gone are the days of configuring your DDF files and your WSPs (Well once we convince all of our clients to switch to 2010 that is!!)</p>
<p>So my top 5 improvements (i reserve the right to get more excited about others as time unfolds):-</p>
<ol>
<li>One touch deployment for testing</li>
<li>Automatic creation of the WSP (This should encourage more solution deployments)</li>
<li>Visual Webpart designers (Think using a User Control without needing Son of Smart Part)</li>
<li>Content Types that can be deployed and updated</li>
<li>Vastly improved Tableless design</li>
</ol>
<p>Over the next few weeks I&#8217;ll be playing with Beta 1 with Visual Studio 2010 Beta 2 (If they play nicely together) and hopefully will be rearranging this list and probably expanding it. Beta 1 is still under NDA, so nothing that hasn&#8217;t been mentioned at SPC09 will be raised, but hopefully Beta 2 won&#8217;t be far around the corner.</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=195</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tentative Schedule for SharePoint Conference 2009 &#8211; Las Vegas</title>
		<link>http://www.myfatblog.co.uk/?p=183</link>
		<comments>http://www.myfatblog.co.uk/?p=183#comments</comments>
		<pubDate>Tue, 13 Oct 2009 14:53:41 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[SPC09]]></category>
		<category><![CDATA[SUGUK]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=183</guid>
		<description><![CDATA[Ok, so Microsoft finally released the full session schedule during the last 24 hours and I&#8217;ve tentatively booked the sessions that I want to go see.. And this has to be subject to change because there are so many great sessions that i want to get into. Thank god Microsoft are going to provide an [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_190" class="wp-caption alignright" style="width: 256px"><a href="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/JoinMeAtSPC.png"><img src="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/JoinMeAtSPC.png" alt="Join me at SPC09" title="JoinMeAtSPC" width="246" height="138" class="size-full wp-image-190" /></a><p class="wp-caption-text">Twitter @Cimares</p></div>
<p>Ok, so Microsoft finally released the full session schedule during the last 24 hours and I&#8217;ve tentatively booked the sessions that I want to go see.. And this has to be subject to change because there are so many great sessions that i want to get into. Thank god Microsoft are going to provide an AV feed of all sessions within 48 hours of them finishing. Hopefully I can download these and watch them on the train into work during the following week.</p>
<p>So, here&#8217;s my current schedule..(Subject to Change.. Hastags for Twitter Search)</p>
<p>Saturday 17th
<ul>
<li>Arriving about 2:30pm PST</li>
<li>Gambling and trying to avoid jetlag! Probably joining @jthake somwhere in Vegas</li>
</ul>
<p>Sunday 18th
<ul>
<li>Getting to see Vegas, </li>
<li>Catch the Formula 1 somewhere (#ShareF1)</li>
<li>18:00 ish.. register then #SharePint</li>
</ul>
<p>Monday 19th
<ul>
<li>9:00AM &#8211; Keynote Speech &#8211; Steve Ballmer</li>
<li>10:30AM &#8211; Keynote 2 &#8211; Jeff Teper</li>
<li>1:15PM &#8211; Overview of the SP2010 Developer platform</li>
<li>2:45PM &#8211; Visual Studio 2010 SP Development Tools Overview</li>
<li>4:30PM &#8211; Developing with SP2010 Sandboxed Solutions</li>
<li>Evening &#8211; no idea yet..going with the flow.</li>
</ul>
<p>Tuesday 20th
<ul>
<li>9:00AM &#8211; Advanced Webpart development in VS2010</li>
<li>10:30AM SP2010 based document assembley and manipulation using Word</li>
<li><strong>1:15PM &#8211; Authentication &#038; Authorisation in SP2010</strong></li>
<li><strong>1:15PM &#8211; Deep Dive Open XML and Open XML SDK</strong></li>
<li>2:45PM &#8211; SP2010 Upgrade part 1 &#8211; Fundamentals</li>
<li>4:30PM &#8211; SP2010 Development Best practices</li>
<li>Evening &#8211; 80&#8217;s Beach party!!!!! and then #TweetupSPC09 if it&#8217;s still going on</li>
</ul>
<p>Wednesday 21st
<ul>
<li>9:00AM &#8211; Workflow development in SP2010 with VS2010</li>
<li>10:30AM &#8211; Developing with the new User Interface features in SP2010</li>
<li>1:15PM &#8211; Developing with REST and LINQ in SP2010</li>
<li>2:45PM &#8211; Extending the VS2010 SP tools with new Designers</li>
<li>4:30PM &#8211; Customizing the VS2010 Sharepoint deployment process</li>
<li>Evening &#8211; Jury&#8217;s out on this one.. might go watch #ShareHoldem</li>
</ul>
<p>Thursday 22nd
<ul>
<li>9:00AM &#8211; Load testing SP2010 with VSTS</li>
<li>10:30AM &#8211; Deep Dive into SP2010 Profile Store and profile Data</li>
<li>1:15PM &#8211; Application Lifecycle Management for Developers in SP2010</li>
<li>2:45PM &#8211; Building rich dynamic websites with SP2010</li>
<li>Evening &#8211; #ShareHofBrau &#8211; Last chance to catchup with SP stragglers..</li>
</ul>
<p>Friday 23rd
<ul>
<li>16:40 Takeoff for London Gatwick!! (arrives 10:30AM!)</ul>
<p>So all told a pretty rammed week.. But I&#8217;m REALLY looking forward to it..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=183</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whats the record for the longest Calculated SharePoint column?</title>
		<link>http://www.myfatblog.co.uk/?p=179</link>
		<comments>http://www.myfatblog.co.uk/?p=179#comments</comments>
		<pubDate>Tue, 06 Oct 2009 15:28:40 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[Calculated Fields]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=179</guid>
		<description><![CDATA[Well my longest to date is 304 characters.. I&#8217;m not quite sure what the SharePoint limit is, but here&#8217;s mine&#8230;
=IF(LEN(MONTH(Dated)/3)=1,TEXT(Dated,&#8221;mmm-yy&#8221;),IF(LEN((MONTH(DATE(YEAR(Dated),MONTH(Dated)+1,DAY(Dated))))/3)=1,TEXT(DATE(YEAR(Dated),MONTH(Dated)+1,DAY(Dated)),&#8221;mmm-yy&#8221;),IF(LEN((MONTH(DATE(YEAR(Dated),MONTH(Dated)+2,DAY(Dated))))/3)=1,TEXT(DATE(YEAR(Dated),MONTH(Dated)+2,DAY(Dated)),&#8221;mmm-yy&#8221;),&#8221;ERR&#8221;)))
&#8220;And what pray, does that monstrosity do&#8221;, I hear you ask&#8230;
The answer is, it simply works out which quarter of the companies financial year the item appears in. The list item has a column called Dated [...]]]></description>
			<content:encoded><![CDATA[<p>Well my longest to date is 304 characters.. I&#8217;m not quite sure what the SharePoint limit is, but here&#8217;s mine&#8230;</p>
<blockquote><p>=IF(LEN(MONTH(Dated)/3)=1,TEXT(Dated,&#8221;mmm-yy&#8221;),IF(LEN((MONTH(DATE(YEAR(Dated),MONTH(Dated)+1,DAY(Dated))))/3)=1,TEXT(DATE(YEAR(Dated),MONTH(Dated)+1,DAY(Dated)),&#8221;mmm-yy&#8221;),IF(LEN((MONTH(DATE(YEAR(Dated),MONTH(Dated)+2,DAY(Dated))))/3)=1,TEXT(DATE(YEAR(Dated),MONTH(Dated)+2,DAY(Dated)),&#8221;mmm-yy&#8221;),&#8221;ERR&#8221;)))</p></blockquote>
<p>&#8220;And what pray, does that monstrosity do&#8221;, I hear you ask&#8230;</p>
<p>The answer is, it simply works out which quarter of the companies financial year the item appears in. The list item has a column called Dated which is a date only field.</p>
<p>Our financial year runs 1st Oct to 30th Sept with each quarter ending Dec,Mar,Jun,Sep.</p>
<p>In order to work out which quarter the item is in, I&#8217;ve nested 3 IF&#8217;s together.. If you&#8217;re not familiar with how the =IF function works in a calculated column, then it breaks down like this..</p>
<p>=IF(jonnysapples > janesapples,&#8221;Jonny has more apples&#8221;,&#8221;Jane has more apples&#8221;)<br />
=IF(SOMETHING TO TEST)        , DO THIS FOR TRUE      , DO THIS FOR FALSE)</p>
<p>So in this instance if the column named Jonnysapples does indeed have more apples in it, then the phrase &#8220;Jonny has more apples&#8221; will be displayed in the resulting column. If it doesn&#8217;t, then &#8220;Jane has more apples&#8221; will be displayed.</p>
<p>Excellent.. So now what we want to do, is replace the output statement for FALSE (&#8221;<strong>Jane has more apples</strong>&#8220;) with the next test to see if Jonny is unhappy.</p>
<p>e.g.</p>
<p>=IF(jonnysapples > janesapples,&#8221;Jonny has more apples&#8221;,IF(jonnysmoney>0,&#8221;Jonny doesn&#8217;t care as he can buy some more&#8221;,&#8221;Jonny is upset because Jane has more apples&#8221;))</p>
<p>So, working the logic through,if Jonny has more Apples, we&#8217;ll see &#8220;<strong>Jonny has more apples</strong>&#8220;, if he has less, but some money (After checking the money column), then we&#8217;ll see &#8220;<strong>Jonny doesn&#8217;t care as he can buy some more</strong>&#8221; and then finally, if Jonny has less apples and no money, We&#8217;ll see the final state of &#8220;<strong>Jonny is upset because Jane has more apples</strong>&#8221;</p>
<p>So now we&#8217;ve implemented a 3 state result. By nesting a further if statement we&#8217;re able to twist this solution to our means.</p>
<p>So now we need to look at what logic we&#8217;re actually implementing in each of the IF statements.If you extract the &#8220;Something to test&#8221; part out of the first statement you&#8217;ll see:-</p>
<p><strong>LEN(MONTH(Dated)/3)=1</strong></p>
<p>Now if you bear in mind that the months that represent our year quarter period ends are all a factor of 3, then it starts to make sense. (Sept &#8211; 9th Month, June, 6th Month etc) Take the numeric value for the month. if you divide it by 3 and get a whole number e.g. a result with a length of 1, then we&#8217;re in a month divisible by 3. if we get any form of decimal, then we&#8217;re not.</p>
<p><strong>=IF(LEN(MONTH(Dated)/3)=1,TEXT(Dated,&#8221;mmm-yy&#8221;),&#8221;DO THIS FOR FALSE&#8221;)</strong></p>
<p>So if the month can be divided by 3 without any decimals, we&#8217;ll output the Dated column, formatted to look like mmm-yy. If it can&#8217;t then we&#8217;ll step into the next if statement in place of &#8220;DO THIS FOR FALSE&#8221;.</p>
<p>Again, very similar logic, however this time, we&#8217;re going to add 1 month to the date in Created and test that..</p>
<p><strong>IF(LEN((MONTH(DATE(YEAR(Dated),MONTH(Dated)+1,DAY(Dated))))/3)=1,</strong></p>
<p>If that results in a whole number, then we&#8217;ll output the Created+1 month using <strong>TEXT(DATE(YEAR(Dated),MONTH(Dated)+1,DAY(Dated)),&#8221;mmm-yy&#8221;),</strong></p>
<p>And if it doesn&#8217;t? Yep you guessed it, we step into the third and final IF statement which we know is going to be true because the 4 month will divide by 3 once again. However to keep the parser happy, we&#8217;ve got to have an option of something to output for False, so that&#8217;s where you&#8217;ll see &#8220;ERR&#8221; in the formulae.</p>
<p>If this has worked, all you&#8217;ll see in your calculated column is Sep-09,Dec-09,Mar-10,Jun-10 etc&#8230;.</p>
<p>This solution might not work for your if you use a different financial year and quarters, but the principal is sound..</p>
<p>Regards</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=179</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekly Access problems to a SharePoint site</title>
		<link>http://www.myfatblog.co.uk/?p=174</link>
		<comments>http://www.myfatblog.co.uk/?p=174#comments</comments>
		<pubDate>Mon, 05 Oct 2009 21:11:13 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=174</guid>
		<description><![CDATA[Just recently a client of mine raised an issue regarding an access issue that seemed to raise it&#8217;s head about every 8 days or so. What struck me was the distinct lack of errors issues by the system.
Approximately every 8 days, users will go to use the site and get a failed to connect to [...]]]></description>
			<content:encoded><![CDATA[<p>Just recently a client of mine raised an issue regarding an access issue that seemed to raise it&#8217;s head about every 8 days or so. What struck me was the distinct lack of errors issues by the system.</p>
<p>Approximately every 8 days, users will go to use the site and get a failed to connect to site error. IISReset and AppPool recycles don&#8217;t resolve the problem, and only a reboot of the Web Front End resolves the issue.</p>
<p>IIS Logs just show connections stopping at a fixed time and the SharePoint logs show nothing other than the usual trace log messages around timer jobs and index crawls.</p>
<p>It wasn&#8217;t until I examined the HTTPERR log file (Located normally in C:\windows\system32\logfiles\HTTPERR) that I realised what was likely to be happening as it was showing Connection Refused.</p>
<p>2009-10-02 10:59:07 &#8211; - &#8211; - &#8211; - &#8211; - &#8211; 2_Connections_Refused -<br />
2009-10-02 10:59:13 &#8211; - &#8211; - &#8211; - &#8211; - &#8211; 1_Connections_Refused -<br />
2009-10-02 10:59:17 &#8211; - &#8211; - &#8211; - &#8211; - &#8211; 2_Connections_Refused -</p>
<p>Basically, all incoming connections to a web server are handled by the HTTP.SYS portion of the system before being handed out first to IIS and then to the respective handler for applications such as SharePoint. Hence the distinct lack of error logs in IIS and SharePoint. </p>
<p>This system process utilizes Non Paged Pool memory extensively, however it has a little known security feature that starts to refuse connections once there is only 20Mb remaining in the NPP.</p>
<p>At this point it&#8217;s important to remember that HTTP.SYS is not the cause of your problem, merely a symptom of a system with potentially a few things wrong with it. So how do we trouble shoot this little problem on a SharePoint WFE.</p>
<p>So the first place to check is how much NPP memory you have available to you. A Windows 2003 32 Bit server should have 256Mb of NPP available at boot. However if for some reason you have the /3GB switch specified in your boot.ini, this NPP allocation is halved to 128Mb. In addition, the /3Gb option is NOT SUPPORTED for SharePoint and must be removed. (<a href="http://support.microsoft.com/kb/933560">KB933560</a>)</p>
<p>So at this point we&#8217;ve doubled the NPP available to us, but this may not have solved the problem as something else is in process taking that memory and possibly leaking it away by not returning it properly to the pool. In these instances you need an application called PoolMon.exe from the Windows Server 2003 resource kit.</p>
<p>Using this tool it is possible to identify the driver or system file that is not returning memory properly to the NPP, which in my case was down to an old Broadcom Ethernet driver for the Dell PowerEdge server this system was running on.</p>
<p>I won&#8217;t re-create the posts on how to use the Poolmon tool as there are some good ones out there, but the MS articles that show you how to use the PoolMon.exe program are below.</p>
<p><A href="http://support.microsoft.com/kb/177415">KB177415 &#8211; How to use Memory Pool Monitor to troubleshoot Kernal mode memory leaks.</a></p>
<p>On a side note, if you have Windows 2003 SP2, then you may need to think about disabling the TCP Chimney as per <a href="http://support.microsoft.com/kb/945977">KB945977</a></p>
<p>Hope this helps you some way to resolving a similar issue.</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=174</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Sales Dashboard using the DataViewWebpart &amp; XSL</title>
		<link>http://www.myfatblog.co.uk/?p=122</link>
		<comments>http://www.myfatblog.co.uk/?p=122#comments</comments>
		<pubDate>Thu, 01 Oct 2009 19:51:47 +0000</pubDate>
		<dc:creator>Reginald</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.myfatblog.co.uk/?p=122</guid>
		<description><![CDATA[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;

Scenario:- [...]]]></description>
			<content:encoded><![CDATA[<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>
<hr />
<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>
<p><em><strong>Use case:-</strong></em><br />
•	Data should be displayed as a single bar for each sales manager.<br />
•	Data should also be broken down against the targets for Consultancy and Managed services.<br />
•	Sales Data will be entered as Sales order numbers are generated on receipt of a firm order.<br />
•	Sales target will be 1/12 of the yearly target. No adjustment will be made for time of year.<br />
•	Bar colour should change depending on % of target achieved. <50,50-99,100 will be the bands used.</p>
<p>First we create a custom list called Sales that will be used to track every sale, this is created with the following fields.</p>
<blockquote><p><strong>Title</strong> &#8212;&#8212;&#8212;&#8211; String &#8211; Sale comment<br />
<strong>Value</strong> &#8212;&#8212;&#8212;&#8211; Currency – Value of the sale<br />
<strong>Account Manager</strong> &#8211; Lookup – A lookup to the list of Sales Managers<br />
<strong>Sales Type</strong> &#8212;&#8212; Lookup – A lookup to the list of Sales Types<br />
<strong>Client</strong> &#8212;&#8212;&#8212;- BDC Lookup to SalesForce (Use a string for now as it makes no difference to this example)<br />
<strong>Date of Sale</strong> &#8212;- DateTime (Date only)<br />
<strong>StartofMonth</strong> &#8212;- Calculated (DateTime-Date only) – 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>
<p>			=DATE(YEAR([Date of Sale]),MONTH([Date of Sale]),1)</p>
<p><strong>EndofMonth</strong> &#8212;&#8212; Calculated (DateTime-Date only)– 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>
<p>			=DATE(YEAR([Date of Sale]),MONTH([Date of Sale])+1,1)-1</p></blockquote>
<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’t create this column and therefore the spaces get encoded in the CAML string (<strong>Date_x0020_of_x0020_Sale</strong>).</p>
<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>
<p>The following data has been populated for testing (Note: I’m using this test in September, so adjust the date of sale to match the calendar month that you’re testing in.)</p>
<div id="attachment_135" class="wp-caption aligncenter" style="width: 1021px"><a href="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/TestData1.jpg"><img 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" /></a><p class="wp-caption-text">The test data for our chart.</p></div>
<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>
<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>
<div id="attachment_141" class="wp-caption alignleft" style="width: 130px"><img 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 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 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 class="wp-caption-text">Red Yellow and Green bars for the chart.</p></div>
<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>
<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>
<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>
<p>SPD should look something like this now:-</p>
<div id="attachment_150" class="wp-caption alignnone" style="width: 662px"><a href="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/DVWP.jpg"><img 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" /></a><p class="wp-caption-text">DataViewWebPart</p></div>
<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>
<div id="attachment_154" class="wp-caption alignnone" style="width: 232px"><a href="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/fields1.jpg"><img 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 class="wp-caption-text">Fields</p></div>
<p>Once these are highlighted, click &#8216;Insert selected fields as &#8211; Multiple Item View.&#8217;</p>
<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>
<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>
<blockquote><p><SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" selectcommand="&lt;View&gt;&lt;/View&gt;" id="dataformwebpart2"></p></blockquote>
<p>We’re going to replace this with our own bit of CAML query language to return just the data that we want.</p>
<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>
<p>So, using the StartofMonth and EndofMonth columns, we have a query that looks like this:-</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Query<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Where<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;And<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Leq<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;FieldRef</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">'StartofMonth'</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Value</span> <span style="color: #000066;">Type</span>=<span style="color: #ff0000;">'DateTime'</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;Today</span><span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/Value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Leq<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Geq<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;FieldRef</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">'EndofMonth'</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Value</span> <span style="color: #000066;">Type</span>=<span style="color: #ff0000;">'DateTime'</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;Today</span><span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/Value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
         <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Geq<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/And<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Where<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Query<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>And returns only those entries that exist within the month we’re currently in (That’s using the <Today/> entry. You could specify a date if you wanted results for that particular month.)</p>
<p>So, paste that query into the select command, save the file (don’t worry about the ghosting message, we’ll 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’t bothered encoding the <> as SPD will do that for you when the file is saved.</p>
<div id="attachment_161" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/query.jpg"><img 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" /></a><p class="wp-caption-text">Query in Code &#038; Results in Design View</p></div>
<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’t be there, then you may need to test your query is working using U2U’s CAML builder.</p>
<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>
<p>To make this easier to manage, we’ll use an external XSL file to transform the data and point the DVWP at it. Here’s the XSLT that we’re going to use. Cut and paste it into notepad, save it as something useful like ‘SalesGraphsByAccountManagerForMonth.xsl” and then drag and drop it into the root of your site in SPD.</p>
<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>
<p><a href='http://www.myfatblog.co.uk/wp-content/uploads/2009/10/SalesGraphsByAccountManagerForMonth.xsl'>SalesGraphsByAccountManagerForMonth</a></p>
<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>
<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>
<p>Click on XSL link and enter the URL of the XSL file that you dropped into the root of your web.</p>
<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>
<div id="attachment_165" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.myfatblog.co.uk/wp-content/uploads/2009/10/Results.jpg"><img 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" /></a><p class="wp-caption-text">Results if all went well</p></div>
<p><em><strong>Troubleshooting</strong></em></p>
<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>
<p><em><strong>Ghosted/Unghosted Pages</strong></em></p>
<p>If you’re worried about having an unghosted page in your web, simply export the webpart that you’ve created. Delete the page and re-create it, then import the webpart once more.</p>
<p>Hopefully this little guide has helped you out.</p>
<p>Regards</p>
<p>Paul.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.myfatblog.co.uk/?feed=rss2&amp;p=122</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
