<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4810971256241483630</id><updated>2012-02-08T21:21:13.114-05:00</updated><category term='VBScript'/><category term='SeverSide'/><category term='Vista'/><category term='Twitter'/><category term='DVWP'/><category term='Microsoft Office'/><category term='jQuery'/><category term='Microsoft'/><category term='XSLT'/><category term='MOSS 2007'/><category term='XP'/><category term='Excel VBA'/><category term='Cloud Computing'/><category term='Web Services'/><category term='roboCAML'/><category term='List Views'/><category term='Stress Test'/><category term='CAML'/><category term='Security'/><category term='VB'/><category term='Win7'/><category term='IDE'/><category term='Web 2.0'/><category term='WSS 3.0'/><category term='self-promotion'/><category term='Windows Server'/><category term='SPServices'/><category term='Scripting'/><category term='SPDatasource'/><category term='PowerShell'/><category term='WMI'/><category term='Backup'/><category term='SPSEMEA'/><category term='Sharepoint'/><category term='Notepad++'/><category term='Marketing'/><category term='PC'/><category term='Ubuntu'/><category term='InterWebs'/><category term='Benchmarking'/><category term='PowerEvents'/><category term='JavaScript'/><category term='Facebook'/><category term='Event'/><category term='HootSuite'/><category term='FAIL'/><category term='Excel'/><title type='text'>Tech Help</title><subtitle type='html'>My thoughts and ideas about IT; whatever IT is...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-3071133550685521828</id><published>2012-02-08T09:30:00.000-05:00</published><updated>2012-02-08T10:05:36.307-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='SPServices'/><category scheme='http://www.blogger.com/atom/ns#' term='roboCAML'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='CAML'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Understanding IncludeMandatoryColumns and SharePoint’s Web Services…</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For a while now this has baffled me and several other people I know whom use SharePoint’s web services religiously.&amp;nbsp; The problem starts with &lt;a href="http://msdn.microsoft.com/en-us/library/dd586530(v=office.11).aspx" target="_blank"&gt;incorrect documentation&lt;/a&gt; and since it has never been updated, new people to SharePoint continue to have issues with &amp;lt;IncludeMandatoryColumns&amp;gt;.&amp;nbsp; This post should give some clarity into what to expect when using this…&lt;br /&gt;&lt;h3&gt;&amp;lt;IncludeMandatoryColumns&amp;gt;False&amp;lt;/IncludeMandatoryColumns&amp;gt;&lt;/h3&gt;When setting this to option to: False; you’d expect a whole bunch of columns to not show up in the results of the XML.&amp;nbsp; That’s just, well: &lt;span style="color: red;"&gt;FALSE&lt;/span&gt;&lt;span style="color: black;"&gt;.&amp;nbsp; The only thing that changes in your data set is the Title column.&amp;nbsp; Nothing more, nothing less…&amp;nbsp; Here’s a sample data set that was retrieved using &lt;a href="http://spservices.codeplex.com/" target="_blank"&gt;SPServices&lt;/a&gt; (which btw, you should use for all of your web service interactivities).&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush: xhtml; toolbar: false; highlight: [3]"&gt;&amp;lt;!-- Mandatory Columns = False --&amp;gt;&lt;br /&gt;&amp;lt;rs:data ItemCount="1"&amp;gt;&lt;br /&gt;   &amp;lt;z:row ows_MyDollars='567890.000000000' ows_Boolean='1' ows_MultiSelectLookup='' ows_ID='404' ows__ModerationStatus='0' ows__Level='1' ows_UniqueId='404;#{2541C25E-1D9A-4480-8F97-570B64077E37}' ows_owshiddenversion='3' ows_FSObjType='404;#0' ows_Created='2012-02-06 13:55:17' ows_PermMask='0x7fffffffffffffff' ows_Modified='2012-02-06 16:17:24' ows_FileRef='404;#mySite/Lists/GrandChild/TestFolder/TestSubFolder/MovedItem' /&amp;gt;&lt;br /&gt;&amp;lt;/rs:data&amp;gt;&lt;/pre&gt;&lt;br /&gt;Did you notice the &lt;strong&gt;owsHiddenVersion &lt;/strong&gt;in the XML?&amp;nbsp; According to the documentation, it should not be there.&amp;nbsp; For posterity, here’s a screenshot of the parameters passed to SPServices. If you are keen, you’ll notice my &amp;lt;ViewFields&amp;gt; do not contain the Title column:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-eGAHGPrPRcg/TzHZ0aI_MbI/AAAAAAAACS4/AZjc8pcf24c/s1600-h/IncludeMandatoryColumns_False%25255B10%25255D.png"&gt;&lt;img alt="IncludeMandatoryColumns_False" border="0" height="304" src="http://lh5.ggpht.com/-MYx400mhNrs/TzHXjgBJiGI/AAAAAAAACTA/sfvhFPSYsCU/IncludeMandatoryColumns_False_thumb%25255B9%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="IncludeMandatoryColumns_False" width="604" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&amp;lt;IncludeMandatoryColumns&amp;gt;True&amp;lt;/IncludeMandatoryColumns&amp;gt;&lt;/h3&gt;So being coy and after a few trial and errors, I decided that &amp;lt;IncludeMandatoryColumns&amp;gt; had to be related to the required fields within the list.&amp;nbsp; Since Title was the only required field, it seemed like a logical step.&amp;nbsp; Within this list, I have a column called Hyperlink.&amp;nbsp; I decided to make that required.&amp;nbsp; Notice in my &amp;lt;ViewFields&amp;gt;, Hyperlink is not present nor is Title for that matter.&lt;br /&gt;&lt;pre class="brush: xhtml; toolbar: false; highlight: [3]"&gt;&amp;lt;!-- Mandatory Columns w/ 2 columns required --&amp;gt;&lt;br /&gt;&amp;lt;rs:data ItemCount="1"&amp;gt;&lt;br /&gt;   &amp;lt;z:row ows_MyDollars='567890.000000000' ows_Boolean='1' ows_MultiSelectLookup='' ows_ID='404' ows__ModerationStatus='0' ows__Level='1' ows_Title='InSubFolder' ows_UniqueId='404;#{2541C25E-1D9A-4480-8F97-570B64077E37}' ows_owshiddenversion='4' ows_FSObjType='404;#0' ows_Created='2012-02-06 13:55:17' ows_PermMask='0x7fffffffffffffff' ows_Modified='2012-02-07 20:12:48' ows_FileRef='404;#mySite/Lists/GrandChild/TestFolder/TestSubFolder/MovedItem' /&amp;gt;&lt;br /&gt;&amp;lt;/rs:data&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/-Fs8s9F1dDqs/TzHXkFb18NI/AAAAAAAACTE/tn3zGvlHCpU/s1600-h/IncludeMandatoryColumns_True%25255B2%25255D.png"&gt;&lt;img alt="IncludeMandatoryColumns_True" border="0" height="304" src="http://lh4.ggpht.com/-n94yrDopszI/TzHXk7YzMFI/AAAAAAAACTI/T0HH8vo1JbY/IncludeMandatoryColumns_True_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="IncludeMandatoryColumns_True" width="604" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Is that ows_Title that I see?&amp;nbsp; Why yes, &lt;strong&gt;YES IT IS&lt;/strong&gt;! As a matter of fact, it’s the only thing that’s different from the two sets of XML.&lt;br /&gt;&lt;h3&gt;What have we learned?&lt;/h3&gt;&lt;br /&gt;&amp;lt;IncludeMandatoryColumns&amp;gt;True&amp;lt;/IncludeMandatoryColumns&amp;gt; += Title. If Title is already in your &amp;lt;ViewFields&amp;gt;, then you’ll get nothing new. Yes, I know ID is in my &amp;lt;ViewFields&amp;gt; in the examples above.&amp;nbsp; Nothing changes except Title.&lt;br /&gt;&lt;br /&gt;The documentation on MSDN is invaluable, however, it must be used with caution.&amp;nbsp; I’ve been running into a few whammies, gotchas, kablooey your code is busticated situations while building &lt;a href="http://robocaml.codeplex.com/" target="_blank"&gt;roboCAML&lt;/a&gt;.&amp;nbsp; The &lt;a href="http://msdn.microsoft.com/en-us/library/ee557057.aspx" target="_blank"&gt;SP Namespace&lt;/a&gt; is another beast altogether, but that’s not what this post is about… yet.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-3071133550685521828?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/3071133550685521828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2012/02/understanding-and-sharepoints-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3071133550685521828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3071133550685521828'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2012/02/understanding-and-sharepoints-web.html' title='Understanding IncludeMandatoryColumns and SharePoint’s Web Services…'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-MYx400mhNrs/TzHXjgBJiGI/AAAAAAAACTA/sfvhFPSYsCU/s72-c/IncludeMandatoryColumns_False_thumb%25255B9%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Takoma Park, MD, USA</georss:featurename><georss:point>38.9778882 -77.0074765</georss:point><georss:box>38.953200200000005 -77.0469585 39.0025762 -76.96799449999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-216115965974498389</id><published>2011-07-20T10:30:00.004-04:00</published><updated>2011-07-20T10:30:47.398-04:00</updated><title type='text'>#SharePint this Saturday</title><content type='html'>&lt;br /&gt;The first virtual #SharePint will be taking place on &lt;b&gt;Saturday, July 23rd, 7:30 E.S.T&lt;/b&gt;. @&amp;nbsp;&lt;a href="http://firestation-1.com/"&gt;http://firestation-1.com&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;Phone&lt;/b&gt;: (301) 585-1370 &lt;br /&gt;&lt;b&gt;Address&lt;/b&gt;: &lt;br /&gt;8131 Georgia Ave. &lt;br /&gt;Silver Spring, MD 20910&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;If you want to participate, but cannot show up in person, join the hangout on #GPlus @&amp;nbsp;&lt;a href="http://gplus.ionline247.me/"&gt;http://gplus.iOnline247.me&lt;/a&gt;&lt;br /&gt;Hope to see you there!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-216115965974498389?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/216115965974498389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/07/sharepint-this-saturday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/216115965974498389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/216115965974498389'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/07/sharepint-this-saturday.html' title='#SharePint this Saturday'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-5349923987478110454</id><published>2011-07-19T23:44:00.001-04:00</published><updated>2011-07-20T00:05:03.913-04:00</updated><title type='text'>My thoughts on Twitter and Google Plus</title><content type='html'>&lt;p&gt;Twitter can rebound from the blow Google has delivered and still keep their ecosystem, however, they do have a lot to account for. Let's look at &lt;strong&gt;Circles&lt;/strong&gt;...    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Circles seem very similar to Lists on Twitter. The primary difference is audiences. It's trivial to post on G+ to a particular audience. However on Twitter, it's black and white. You either tweet it public or you don't. I propose a different skew on the Retweet button. Wouldn't it be nice if you could Retweet to a particular list and the followers of that list would be the only people that could see that tweet? Sound familiar? I'm sure it does... Sounds like a G+ Circle to me. I'm sure there is something in the works over on Twitter as we speak to offer some of these capabilities BUT...&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;The inherent problem with doing so would mean an architectural change within Twitter. There in lies a major hurdle. Twitter relies for the most part, 3rd party applications to handle it's interface. I know this to be true because 99% of the tweets I read are from TweetDeck, HootSuite, SilverBird, Seesmic, to name a few... Most of the tweets are &lt;b&gt;not&lt;/b&gt; from the web.    &lt;br /&gt;If Twitter changed it's API, then you will only be able to use the &lt;i&gt;new&lt;/i&gt; features from the web. Rest assured, the applications would race to add in these new features, but that's another issue altogether: Application Cohesiveness. Why am I offered, as a user, a new capability but only able to use it via the web? I remember not too long ago, the API changed on Twitter to handle DM's in a different manner. That forced me to deal with an error in Silver Bird for several days until it was fixed. You can only imagine the disconnect I felt with Twitter over that period of time.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;G+ has the upper hand in this arena. There's one point of contact, the web. There are mobile apps for the Droid and iPhone, but updates for these apps are pushed automatically by none other than Google themselves. How can you beat that? For right now, G+ is keeping the API closed and I agree with the decision. The masses must now how to use the system before 3rd party apps go bonkers with it. And this is just how Circles affects Twitter. Let's look at &lt;b&gt;Hangouts&lt;/b&gt;...&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;There's NOTHING like it on Twitter. Nothing even close! If you have been following my stream, then you may have noticed me sharing my hangout sessions. Every time one has ended, I've shared it and commented on the quality and effectiveness. I've enjoyed it so much, that I'm putting together a &lt;b&gt;#SharePint&lt;/b&gt; this Saturday and I'm going to stream the even through the G+ Hangout. I've heard some talk about this being a form of ChatRoulette, but seriously, USE IT! It's enabled my team to not only be more productive, but I've been able to actually meet/talk/share thoughts &lt;a href="https://plus.google.com/116942460114088961682"&gt;Jim Bob Howard&lt;/a&gt; without ever actually shaking his hand in person. The old adage comes to mind: Don't knock it, 'til you try it. Change is difficult, but as IT professionals, this shouldn't come as a surprise. Major change happens every three years or so. &lt;b&gt;Embrace it&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;So where does Twitter fit in my realm of social these days? I love SharePoint &amp;lt;period /&amp;gt; It's an excellent platform and in order for me to continue to learn and share my thoughts with the community, I must maintain my status on Twitter. There are a few people that I follow that are holding out and that's a concern for me. SharePoint's community collaboration was built on Twitter and I'm not sure if that's something that will change. Change is difficult, but I for one and tired of using DM's as an Instant Messenger. Twitter wasn't built for that... G+ was. Let's move to a more collaborative environment, since that's what we are all here doing...&lt;/p&gt;  &lt;p&gt;Just in case you were wondering, I did post this originally on &lt;a href="https://plus.google.com/u/0/110508393702111689597/posts/5NCyRNm3Etx" target="_blank"&gt;G+&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-5349923987478110454?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/5349923987478110454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/07/my-thoughts-on-twitter-and-google-plus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5349923987478110454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5349923987478110454'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/07/my-thoughts-on-twitter-and-google-plus.html' title='My thoughts on Twitter and Google Plus'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-4077754437155788457</id><published>2011-04-22T19:26:00.001-04:00</published><updated>2011-10-28T17:42:00.359-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Stress Test'/><title type='text'>The value of a $</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;What really does happen when you type $ into your code?&amp;nbsp; I know it’s magic, but what really is going on?&amp;nbsp; I keep that in mind when doing anything with &lt;a href="http://jquery.com/" target="_blank" title="jQuery"&gt;jQuery&lt;/a&gt;.&amp;nbsp; I always ask, is this the most efficient way to handle this task?&amp;nbsp; No matter how far I’ve progressed, looking at code I’ve written in the past always makes me shiver.&amp;nbsp; &lt;strong&gt;YOU SHOULD TOO!&amp;nbsp; &lt;/strong&gt;Everyday is a learning experience; finding new techniques and trying them out will catapult you to new levels.&lt;br /&gt;As I progress along finding the happy medium between jQuery and it’s parent: Javascript, I’m always looking for simple tweaks to optimize my code.&amp;nbsp; I’ve taken the time out to show a simple example of two different ways to populate a drop down.&amp;nbsp; Can you guess why the .append() method takes longer?&lt;br /&gt;&lt;iframe src="http://jsfiddle.net/iOnline247/DJV9U/embedded/" style="height: 300px; width: 100%;"&gt;&lt;/iframe&gt;&lt;br /&gt;There’s a good reason why.&amp;nbsp; During the for loop, each option is being appended to the select.&amp;nbsp; That means I’m calling jQuery to work it’s magic &lt;strong&gt;EVERY&lt;/strong&gt; time within this loop.&amp;nbsp; In this example, the code literally has to traverse the DOM 100 different times.&amp;nbsp; Even though each option is going to the same destination!&amp;nbsp; So, let’s look at it this way.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-TP3-nd2R5JI/TqshSHvdFUI/AAAAAAAABB4/RJJyczK1b8E/s1600/fieryPit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img align="left" height="136" src="http://3.bp.blogspot.com/-TP3-nd2R5JI/TqshSHvdFUI/AAAAAAAABB4/RJJyczK1b8E/s1600/fieryPit.jpg" style="display: inline; float: left;" width="124" /&gt;&lt;/a&gt;If you had to walk across a fiery pit barefooted multiple times, would you carry as much as you possibly could each time or would you continually make that trip over and over again?&amp;nbsp; Personally, I’d run and not walk, but that’s just me…&amp;nbsp; Hopefully, that makes some sense.&amp;nbsp; Building an array full of the options and then traversing the DOM once, is infinitely more efficient.&amp;nbsp; I only make a call into jQuery once.&amp;nbsp; That’s an important distinction between these two techniques.&amp;nbsp; Traversing the DOM using jQuery is a slow task in some regards, especially in the example above.&lt;br /&gt;Feel free to play around with the code sample provided and see if you can come up with some more techniques where this same logic can be applied.&amp;nbsp; It may just save you some time…&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-4077754437155788457?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/4077754437155788457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/04/value-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4077754437155788457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4077754437155788457'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/04/value-of.html' title='The value of a $'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-TP3-nd2R5JI/TqshSHvdFUI/AAAAAAAABB4/RJJyczK1b8E/s72-c/fieryPit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-9140572373837891671</id><published>2011-04-03T11:16:00.000-04:00</published><updated>2011-04-03T11:34:50.449-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Notepad++'/><title type='text'>Use Notepad++ instead of SharePoint Designer</title><content type='html'>&lt;p&gt;I build and configure a lot of VM’s and I found a need to keep my IDE consistent across all of them.&amp;nbsp; Since I use Notepad++ for most, if not all, of my code; it’s absolutely necessary for me to have the same toolset no matter what VM I’m working in.&amp;nbsp; I’ve taken what I liked most about SPD and added it to Notepad++.&amp;nbsp; You’ll notice when you right click, you can select a tag, for example.&amp;nbsp; I’ve added a whole lot more capabilities also.&amp;nbsp; Check out the video to see what you can do with it.&amp;nbsp; &lt;/p&gt; &lt;h3&gt;How to get it installed?&lt;/h3&gt; &lt;h3&gt;&lt;/h3&gt;&lt;iframe height="396" src="http://www.screenr.com/embed/BtP" frameborder="0" width="600"&gt;&lt;/iframe&gt; &lt;p&gt;Unfortunately DropBox allows you to only share files.&amp;nbsp; For now, you can download the ProgramFiles/AppData from &lt;a href="http://bit.ly/goEZQU" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; You don’t need DropBox to make this work either.&amp;nbsp; All you have to do is install Notepad++ and then rename the Notepad++ folders.&amp;nbsp; Put a new Notepad++ folder in its place instead, then copy the files from above into those folders.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The &lt;a href="http://technet.microsoft.com/en-US/sysinternals" target="_blank"&gt;Sysinternals Suite&lt;/a&gt; helps by providing the junction.exe tool.&amp;nbsp; Without this, I’d have to manage my IDE in many different environments and I would never have the same experience across the board.&amp;nbsp; I highly recommend to have these tools on your box if you want to do anything remotely fun with your computer.&lt;/p&gt; &lt;h3&gt;What can I do with it?&lt;/h3&gt; &lt;p&gt;Lots!&amp;nbsp; This is just a glimpse into what you can do with it.&amp;nbsp; I didn’t even have enough time to go over the code snippets.&amp;nbsp; I hope you enjoy your new Notepad++ capabilities.&amp;nbsp; Definitely click on the Plugins menu and explore.&amp;nbsp; There’s a whole lot of interesting things you can do with it.&lt;/p&gt;&lt;iframe height="396" src="http://www.screenr.com/embed/CtP" frameborder="0" width="600"&gt;&lt;/iframe&gt; &lt;p&gt;Update: I almost forgot to mention where I learned the junction.exe technique from.&amp;nbsp; My buddy &lt;a href="http://www.ravichaganti.com/blog" target="_blank"&gt;Ravikanth Chaganti&lt;/a&gt; first introduced me to the technique with this &lt;a href="http://www.ravichaganti.com/blog/?p=1963" target="_blank"&gt;post&lt;/a&gt;.&amp;nbsp; Excellent work Ravi!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3e284c1e-e8d0-487a-8d9a-0431066f811c" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Notepad%2b%2b" rel="tag"&gt;Notepad++&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IDE" rel="tag"&gt;IDE&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Scripting" rel="tag"&gt;Scripting&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-9140572373837891671?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/9140572373837891671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/04/use-notepad-instead-of-sharepoint.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/9140572373837891671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/9140572373837891671'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/04/use-notepad-instead-of-sharepoint.html' title='Use Notepad++ instead of SharePoint Designer'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-3822159892398008063</id><published>2011-02-24T18:33:00.000-05:00</published><updated>2011-02-26T13:11:31.605-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='PC'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Windows Update–How to stop being annoyed #TipOfTheDay</title><content type='html'>&lt;p&gt;We all have been there before, whether you are in the middle of working on your laptop/desktop or logged into a Remote Desktop session, that pesky Windows Update appears.&amp;nbsp; No matter what you do, you can’t get rid of how annoying that restart box is.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TWbrZOBG7nI/AAAAAAAAAWA/ZWn_HPU-pIg/s1600-h/image%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TWbrejXrj-I/AAAAAAAAAWE/ziaTAVz4jeA/image_thumb.png?imgmax=800" width="244" height="142"&gt;&lt;/a&gt;Beyond that, if you click postpone, it’s just going to prompt you later on.&amp;nbsp; Hey Microsoft: 4 hours isn’t long enough for me!&amp;nbsp; On top of all of that, the Restart Now button is locked an loaded.&amp;nbsp; If, and I say if meaning “When”, you click on it, you are done.&amp;nbsp; Gone goes the tabs of research, the document that wasn’t saved, the sweet blog post; the list goes on and on.&amp;nbsp; Yes, there are measures built into Win7 and Vista to stop accidental reboots, however, it’s extremely inconvenient, and on XP non-existent.&amp;nbsp; At my prior job, we used Remote Desktop Services heavily and this was a constant gripe from my users.&amp;nbsp; I tried to do updates on the weekends, but being a 1 man shop, I like having a life &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TWbre9m4wgI/AAAAAAAAAWI/5mvBYO8riHE/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;.&amp;nbsp; Here’s my solution. &lt;font color="#ff0000"&gt;&lt;font style="background-color: #ffff00"&gt;STOP CLICKING POSTPONE!&lt;/font&gt;&lt;/font&gt;&amp;nbsp; That’s right, treat it like any other window you don’t have time for.&amp;nbsp; Drag that bugger off the screen and leave it there until you, YOU, yes YOU, want to restart.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TWbrgDILArI/AAAAAAAAAWM/DLIetfN9S58/s1600-h/image%5B5%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TWbrg4yv9-I/AAAAAAAAAWQ/zuYlH4l7AC8/image_thumb%5B1%5D.png?imgmax=800" width="244" height="77"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Doing this you get rid of two major annoyances of mine.&amp;nbsp; First, there isn’t a nuke button popping up on your screen.&amp;nbsp; Second, it’s completely out of sight and out of mind.&amp;nbsp; Windows Update, &lt;font color="#ff0000"&gt;&lt;font style="background-color: #ffff00"&gt;I WILL REBOOT WHEN I FEEL LIKE IT&lt;/font&gt;.&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;How do you like them apples?&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;:&amp;nbsp; After doing some digging, I figured these settings could be controlled via Group Policy.&amp;nbsp; If you open gpedit.msc, the settings sure enough are there:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TWlCRuukcPI/AAAAAAAAAWU/w7QB2rQ5ORI/s1600-h/GPO%20-%20DisableAutoReboot%5B8%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="GPO - DisableAutoReboot" border="0" alt="GPO - DisableAutoReboot" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TWlCSwIi5kI/AAAAAAAAAWY/hrzSAy2zqhI/GPO%20-%20DisableAutoReboot_thumb%5B6%5D.png?imgmax=800" width="604" height="204"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Like I said before, Home versions of Windows do not have this capability, so what to do?&amp;nbsp; Regedit!&amp;nbsp; Apply these regedits and you, yes YOU, can disable the nuclear time bomb yourself.&amp;nbsp; Make sure you know what you are doing within the registry before you start editing.&amp;nbsp; I cannot assume any responsibility and will offer no help if you nuke your PC doing so.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TWlCTnAorNI/AAAAAAAAAWc/ZPphzio-eQ0/s1600-h/DisableAutoReboot%5B11%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DisableAutoReboot" border="0" alt="DisableAutoReboot" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TWlCUe_YfII/AAAAAAAAAWg/vYbrEdyLRjM/DisableAutoReboot_thumb%5B7%5D.png?imgmax=800" width="604" height="204"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1f005ac0-ba7a-478d-a87a-779d0a20c754" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/FAIL" rel="tag"&gt;FAIL&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PC" rel="tag"&gt;PC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Win7" rel="tag"&gt;Win7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/XP" rel="tag"&gt;XP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Update" rel="tag"&gt;Windows Update&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+7" rel="tag"&gt;Windows 7&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-3822159892398008063?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/3822159892398008063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/02/windows-updatehow-to-stop-being-annoyed.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3822159892398008063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3822159892398008063'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/02/windows-updatehow-to-stop-being-annoyed.html' title='Windows Update–How to stop being annoyed #TipOfTheDay'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/TWbrejXrj-I/AAAAAAAAAWE/ziaTAVz4jeA/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-771830605381111855</id><published>2011-02-15T07:00:00.000-05:00</published><updated>2011-02-15T09:48:15.076-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='List Views'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Redirect calendar view Web Parts to any date and any view</title><content type='html'>&lt;p&gt;&lt;font color="#ff0000" size="3"&gt;This only works for &lt;/font&gt;&lt;a title="WSS 3.0" href="http://mattbramer.blogspot.com/search/label/WSS%203.0" target="_blank"&gt;&lt;font color="#ff0000" size="3"&gt;WSS 3.0&lt;/font&gt;&lt;/a&gt;&lt;font color="#ff0000" size="3"&gt; and MOSS 2007.&amp;#160; 2010 works completely different.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;There was an interesting email I received in my inbox the other day.&amp;#160; It came from &lt;a href="http://twitter.com/KerriAbraham" target="_blank"&gt;@KerriAbraham&lt;/a&gt; and said: &lt;em&gt;How can I display next week on a weekly calendar view?&amp;#160; I must be missing something obvious.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;With an email like this, I always refer that person to a forum.&amp;#160; If it’s worth asking, then it’s worth sharing…&amp;#160; Here’s a link to the post: &lt;a href="http://endusersharepoint.com/STP/viewtopic.php?f=10&amp;amp;t=2835"&gt;http://endusersharepoint.com/STP/viewtopic.php?f=10&amp;amp;t=2835&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Looking at an OOTB calendar view, I noticed when changing the dates and views from day, week, and month; the URL updated with new query&lt;em&gt; &lt;/em&gt;strings.&amp;#160; These query strings are CalendarPeriod &amp;amp; CalendarDate.&lt;/p&gt;  &lt;h4&gt;CalendarPeriod&lt;/h4&gt;  &lt;p&gt;This parameter (query string) accepts 3 different values.&amp;#160; Each of these are valid and produce different views for the calendar.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;CalendarPeriod=day &lt;/li&gt;    &lt;li&gt;CalendarPeriod=week &lt;/li&gt;    &lt;li&gt;CalendarPeriod=month &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;When this parameter is set, the calendar will automatically update to day, week, or month.&lt;/p&gt;  &lt;h4&gt;CalendarDate&lt;/h4&gt;  &lt;p&gt;This parameter works a little different, but still follows a consistent pattern.&amp;#160; This parameter accepts a date. (I’m captain obvious, I know…)&amp;#160; The format of the date should be:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;M/DD/YYYY&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Since we can’t literally put “/” in a parameter and expect it to work, we need to encode those values.&amp;#160; With that in mind “/” turns into “%2F”.&amp;#160; So our parameter’s value really looks like this:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2%2F15%2F2011&lt;/strong&gt;&lt;/p&gt;  &lt;h4&gt;URL with parameters set&lt;/h4&gt;  &lt;p&gt;Now let’s look at what the URL actually will look like if we wanted to do a view based on the week and the day of Feb. 20, 2011.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TVqQdhPXOjI/AAAAAAAAAVw/St4iF48byYA/s1600-h/CalendarQueryString%5B9%5D.gif"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CalendarQueryString" border="0" alt="CalendarQueryString" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TVqQeJSmnPI/AAAAAAAAAV0/gX0wq0ggiVU/CalendarQueryString_thumb%5B7%5D.gif?imgmax=800" width="604" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You are probably thinking right now…&amp;#160; I knew all of this stuff, did I really just waste 2 minutes reading this post?&amp;#160; Absolutely not… You need to know all of this stuff and a reiteration of the basics will help you understand the script below.&amp;#160; &lt;/p&gt;  &lt;h4&gt;RedirectCalendar.js&lt;/h4&gt;  &lt;p&gt;This script is based off of Christophe Humbert’s redirect script in the &lt;a title="SharePoint" href="http://sp2010.pathtosharepoint.com/SharePoint-User-Toolkit/default.aspx" target="_blank"&gt;SharePoint User’s Toolkit&lt;/a&gt;.&amp;#160; There are lots of excellent scripts stored here that will change how you use &lt;a title="SharePoint" href="http://mattbramer.blogspot.com/search/label/Sharepoint" target="_blank"&gt;SharePoint&lt;/a&gt;.&amp;#160; Also, this post is a great example of it, do not take solutions you find on the internet for &lt;a href="http://blog.pathtosharepoint.com/2010/11/04/dont-take-my-solutions-at-face-value/" target="_blank"&gt;face value&lt;/a&gt;.&amp;#160; With that in mind, let’s get on with it…&lt;/p&gt;  &lt;pre class="brush: javascript; toolbar: false"&gt;URL=&amp;quot;http://URL/Calendar/WebPartPage.aspx&amp;quot;,redirectDay=5,popup=&amp;quot;You will be redirected automatically.&amp;quot;;&lt;br /&gt;var d=new Date();&lt;br /&gt;var currDay = d.getDay();&lt;br /&gt;var currMonth = d.getMonth();&lt;br /&gt;var currYear = d.getFullYear();&lt;br /&gt;currMonth++;&lt;br /&gt;// Calculate day to redirect to&lt;br /&gt;var redirectToDay = d.getDate() + 7;&lt;br /&gt;&lt;br /&gt;/* &lt;br /&gt;Sets query string for redirect.&lt;br /&gt;To redirect to Month view; Change CalendarPeriod to month.&lt;br /&gt;*** ?CalendarPeriod=month ***&lt;br /&gt;To redirect to Day view; Change CalendarPeriod to equal&lt;br /&gt;*** ?CalendarPeriod=day ***&lt;br /&gt;*/&lt;br /&gt;qString = &amp;quot;?CalendarPeriod=week&amp;amp;CalendarDate=&amp;quot;+currMonth+&amp;quot;%2F&amp;quot;+redirectToDay+&amp;quot;%2F&amp;quot;+ currYear;&lt;br /&gt;&lt;br /&gt;function Redirect() {&lt;br /&gt;   // Look for existing query strings. If found, do nothing.&lt;br /&gt;   if (window.location.href.indexOf(&amp;quot;?CalendarPeriod&amp;quot;) &amp;gt;= 0 || window.location.href.indexOf(&amp;quot;&amp;amp;CalendarDate&amp;quot;) &amp;gt;= 0) {&lt;br /&gt;      return false;&lt;br /&gt;   } else {&lt;br /&gt;      if ((!(currDay == redirectDay))) {&lt;br /&gt;         return false;&lt;br /&gt;      } else { &lt;br /&gt;         if (popup) { alert(popup); }&lt;br /&gt;         window.location.href=URL+qString;         &lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;Redirect();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This script allows you to set your variables without much trouble.&amp;#160; The variables that you should be concerned with are:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;URL &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;redirectDay &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;popup &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;redirectToDay &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The &lt;em&gt;URL&lt;/em&gt; needs to be set to the page where your calendar view exists.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TVqQejC6wRI/AAAAAAAAAV4/yFutuDvKnh4/s1600-h/CalendarCurrentURL%5B5%5D.gif"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CalendarCurrentURL" border="0" alt="CalendarCurrentURL" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TVqQfHHdGJI/AAAAAAAAAV8/OseCNxF3TTM/CalendarCurrentURL_thumb%5B3%5D.gif?imgmax=800" width="604" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The &lt;em&gt;redirectDay&lt;/em&gt; is used for what day you’d like for the redirect to occur.&amp;#160; Sunday = 0; Saturday = 6.&amp;#160; This script is locked and loaded for Friday. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;popup &lt;/em&gt;is used for alerting the user redirection is about to happen.&amp;#160; If you don’t like this, then set &lt;em&gt;popup=””&lt;/em&gt;.&amp;#160; That will make popup equal false under the hood and not bug you.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The last variable is &lt;em&gt;redirectToDay&lt;/em&gt;.&amp;#160; If you look at the code, you’ll notice this variable is being set based off of the current date.&amp;#160; Kerri wanted to add 7 days to the redirect on Friday.&amp;#160; That’s why you see: &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: javascript; toolbar: false"&gt;var redirectToDay = d.getDate() + 7;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Feel free to add however many days you’d like to this date.&amp;#160; After you’ve changed all of your variables, you’ll notice when you visit this page on the day you’ve configured, the redirect will automatically happen.&amp;#160; Hope you like…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-771830605381111855?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/771830605381111855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/02/redirect-calendar-view-web-parts-to-any.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/771830605381111855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/771830605381111855'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/02/redirect-calendar-view-web-parts-to-any.html' title='Redirect calendar view Web Parts to any date and any view'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_ywO7MX0I9V8/TVqQeJSmnPI/AAAAAAAAAV0/gX0wq0ggiVU/s72-c/CalendarQueryString_thumb%5B7%5D.gif?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-5755506245127909849</id><published>2011-02-10T19:39:00.000-05:00</published><updated>2011-02-10T19:42:07.430-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='CAML'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>In response to: Complex CAML Queries made simple</title><content type='html'>&lt;p&gt;I spotted this post in my twitter feed and felt it justified a repost.&amp;#160; Here’s the link to the article:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.allaboutmoss.com/index.php/2011/02/11/complex-caml-queries-made-simple/" href="http://www.allaboutmoss.com/index.php/2011/02/11/complex-caml-queries-made-simple/"&gt;http://www.allaboutmoss.com/index.php/2011/02/11/complex-caml-queries-made-simple/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see, this is using nothing but managed code.&amp;#160; Since I live on the front-end side of the house, I tend to get around most of these managed code solutions by using codeplex.&amp;#160; I’ve found a &lt;a href="http://spcamlviewer.codeplex.com/" target="_blank"&gt;fantastic tool&lt;/a&gt; and in my opinion is better that &lt;a href="http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx" target="_blank"&gt;U2U&lt;/a&gt;.&amp;#160; The instructions are very simple.&amp;#160; They actually are the same as the post above, except you are creating the view within the GUI.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TVSFzppNwMI/AAAAAAAAAVc/0g4B0xE7E94/s1600-h/image%5B12%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TVSF0rObkLI/AAAAAAAAAVg/N6xWmexEuL4/image_thumb%5B8%5D.png?imgmax=800" width="596" height="231" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After creating my view, I snap open &lt;a href="http://spcamlviewer.codeplex.com/" target="_blank"&gt;Stramit CAML Viewer&lt;/a&gt;.&amp;#160; I am then able to view all of my lists for the site.&amp;#160; After selecting the list I need, all of the views appear for those lists.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TVSF1VZ36hI/AAAAAAAAAVk/OKeK-GNLCyE/s1600-h/image%5B18%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TVSF3pyOZQI/AAAAAAAAAVo/cm9o_0uZ_cc/image_thumb%5B12%5D.png?imgmax=800" width="589" height="356" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now all you have to do is copy this &lt;a href="http://mattbramer.blogspot.com/search/label/CAML" target="_blank"&gt;CAML&lt;/a&gt; out and paste it wherever you may need it.&amp;#160; Not bad, eh?&lt;/p&gt;      &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0dea885e-9cd5-410f-9211-48df9a20003a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/CAML" rel="tag"&gt;CAML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MOSS" rel="tag"&gt;MOSS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WSS+3.0" rel="tag"&gt;WSS 3.0&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-5755506245127909849?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/5755506245127909849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/02/in-response-to-complex-caml-queries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5755506245127909849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5755506245127909849'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/02/in-response-to-complex-caml-queries.html' title='In response to: Complex CAML Queries made simple'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ywO7MX0I9V8/TVSF0rObkLI/AAAAAAAAAVg/N6xWmexEuL4/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-586042695967064262</id><published>2011-02-04T15:42:00.001-05:00</published><updated>2011-02-04T15:43:46.976-05:00</updated><title type='text'>A look inside the USPJ Academy</title><content type='html'>&lt;p&gt;Well first off, it’s only $497.00/mo.&amp;#160; If you add that up compared to other training, it sells itself, as far as training goes.&amp;#160; The last paid training I attended, I spent $4500 total – hotel, airfare, courses, meals, mileage… The whole 9.&amp;#160; If I divide that $4500 by $497, well you know where I’m going with that.&amp;#160; Most of the courses are 6 weeks, some are 5.&amp;#160; Some courses are easier than others, some actually make you do your research, and when you think you have the answers, you have to dig deeper.&amp;#160; This is my 3rd time in the &lt;a title="DVWP" href="http://mattbramer.blogspot.com/search/label/DVWP" target="_blank"&gt;DVWP&lt;/a&gt; course and would take it again in a heartbeat.&amp;#160; The jQuery course was good, but I need to take it again b/c my skills were completely beginner when I took it.&amp;#160; As a student, you have the option of taking up to 3 courses simultaneously.&amp;#160; This is great for students that want to learn as fast as possible.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;The USPJA has many features…&lt;/h3&gt;  &lt;p&gt;Once you look at the costs, it should push you to do it, but if that’s not enough: &lt;/p&gt;  &lt;h5&gt;USPJA Library &lt;/h5&gt;  &lt;p&gt;Chocked full of downloadable resources, videos, books, how to’s…&amp;#160; The library has complete books on it’s shelves.&amp;#160; These books will be compatible with your mobile devices as well.&amp;#160; If you ever feel the need to open a &lt;a title="SharePoint" href="http://mattbramer.blogspot.com/search/label/Sharepoint" target="_blank"&gt;SharePoint&lt;/a&gt; book on your Kindle, the USPJA has you covered.&lt;/p&gt;  &lt;h5&gt;Labs&lt;/h5&gt;  &lt;p&gt;At any given moment, students can login to the Academy and fire up a virtual machine of their choice.&amp;#160; That’s right!&amp;#160; Do you need to test some obscure setting that you would never attempt on your farm?&amp;#160; Feel free to use the labs to try that out.&amp;#160; There’s an option to make your lab persistent or you can reset it back to the original image after you are finished with it.&amp;#160; All of these labs are in the cloud via Amazon (&lt;strong&gt;24x7 availability!&lt;/strong&gt;).&amp;#160; &lt;/p&gt;  &lt;h5&gt;Classes&lt;/h5&gt;  &lt;p&gt;The instructor of the class is paid to answer your q’s.&amp;#160; So, as long as it’s not too far off the wall, your questions will be answered by someone who’s been there, done that.&amp;#160; The current lineup, in my opinion, is the Dream Team of SharePoint:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Bjorn Furuknap&lt;/li&gt;    &lt;li&gt;Marc D. Anderson&lt;/li&gt;    &lt;li&gt;Ayman El-Hattab&lt;/li&gt;    &lt;li&gt;Christina Wheeler&lt;/li&gt;    &lt;li&gt;Mike Watson&lt;/li&gt;    &lt;li&gt;Laura Docherty&lt;/li&gt;    &lt;li&gt;John Keadle&lt;/li&gt;    &lt;li&gt;Sahil Malik&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are courses for Administrators, Developers, and Business Users.&amp;#160; Plenty enough to wet your palate.&amp;#160; Current running courses include: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Data View Web Part Basics&lt;/li&gt;    &lt;li&gt;Developing SharePoint Content Types&lt;/li&gt;    &lt;li&gt;Beginning SharePoint 2010 Administration&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Forums&lt;/h5&gt;  &lt;p&gt;The USPJA boasts forums that directly email all of the instructors above.&amp;#160; Each and every one of these experts, read your post(s), and give you advice on how to tackle the situation.&amp;#160; It’s always nice to know help is only a few clicks away.&lt;/p&gt;  &lt;h3&gt;USPJA opens doors…&lt;/h3&gt;  &lt;p&gt;If you have followed my writings, then you may know already; I’ve &lt;a href="http://mattbramer.blogspot.com/2011/01/i-have-changed-my-stars.html" target="_blank"&gt;taken a position&lt;/a&gt; with &lt;a href="http://www.juniper-strategy.com" target="_blank"&gt;Juniper-Strategy&lt;/a&gt;.&amp;#160; There would have been no way for me to have that opportunity if I didn’t attend the USPJA.&amp;#160; I’ve been able to learn at such an accelerated rate because all of the instructors are available to me.&amp;#160; I’m able to easily bounce ideas off of them and get top notch feedback.&amp;#160; I’m very grateful to be a part of the Academy and look forward to meeting any new students that may come along.&lt;/p&gt;  &lt;p&gt;If you still have reservations, maybe Bjorn could set up a tour for you.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-586042695967064262?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/586042695967064262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/02/look-inside-uspj-academy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/586042695967064262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/586042695967064262'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/02/look-inside-uspj-academy.html' title='A look inside the USPJ Academy'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-7219697987438958759</id><published>2011-01-22T17:18:00.000-05:00</published><updated>2011-01-22T17:58:57.043-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Event'/><category scheme='http://www.blogger.com/atom/ns#' term='self-promotion'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SPSEMEA'/><title type='text'>#SPSEMEA 2011</title><content type='html'>&lt;p&gt;What I love about the &lt;a title="SharePoint" href="http://mattbramer.blogspot.com/search/label/Sharepoint" target="_blank"&gt;SharePoint&lt;/a&gt; community, is there are always events like &lt;a href="http://www.sharepointsaturday.org/emea/default.aspx" target="_blank"&gt;SPSEMEA&lt;/a&gt; taking place.&amp;#160; Although the time did play a factor, I tried to wake up bright-eyed and bushy tailed.&amp;#160; When I hopped on, I caught the end of the demo: Introduction to Business Connectivity Services.&amp;#160; Brett Lonsdale was on his game and I could tell I have a lot to look at in this area.&amp;#160; You have to remember that, the time here was around 5:30 a.m., so I was still in a bit of a Saturday Haze…&amp;#160; Next up: SharePoint and jQuery - What I Wish I Would Have Known a Year Ago by Mark Rackley (&lt;a href="http://twitter.com/mrackley" target="_blank"&gt;@mrackley&lt;/a&gt;).&amp;#160; This session had a lot of WOW factor.&amp;#160; I absolutely loved seeing the demos and since I’ll be working @ Juniper-Strategy next week, I’m sure I’m going to be shown how to do these things. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TTthLVPBVXI/AAAAAAAAAUg/ZbWTjbGkumY/wlEmoticon-smile%5B2%5D.png?imgmax=800" /&gt;&amp;#160; I wanted to catch Jim Bob’s demo (&lt;a href="http://twitter.com/jbhoward" target="_blank"&gt;@jbhoward&lt;/a&gt;), but there were some technical difficulties.&amp;#160; I did catch the first half, but I really would love to watch the video of that!&amp;#160; About 30 minutes until my demo, so I very carefully walked through the solution again.&amp;#160; Since this was my first public demo of my skills, I wanted to make sure everything worked.&amp;#160; Without a working demo, my session would have been doomed.&lt;/p&gt;  &lt;h3&gt;Showtime!&lt;/h3&gt;  &lt;p&gt;Next up: Matt Bramer (gulp)… I have to admit, I was a bit nervous.&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sicksmile" alt="Sick smile" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TTthLyKwXAI/AAAAAAAAAUk/sIGLMflv0YM/wlEmoticon-sicksmile%5B2%5D.png?imgmax=800" /&gt; My demo slot was aligned right along with some of the highest caliber SharePoint folks; Marc D. Anderson (&lt;a href="http://twitter.com/#!/sympmarc" target="_blank"&gt;@sympmarc&lt;/a&gt;), Ruven Gotz (&lt;a href="http://twitter.com/#!/ruveng" target="_blank"&gt;@ruveng&lt;/a&gt;), Muhammed Nabil (&lt;a href="http://twitter.com/#!/muhammed_nabil" target="_blank"&gt;@Muhammed_Nabil&lt;/a&gt;).&amp;#160; I had big shoes to fill…&amp;#160; My new boss was watching, so there was a bit of added pressure.&amp;#160; Luckily, I had the proper amount of time to put my demo together.&amp;#160; Surprisingly, there didn’t seem to be much of a lag and my audio didn’t break at all.&amp;#160; Cheers to the Demo Gods!&amp;#160; &lt;/p&gt;  &lt;p&gt;I received a lot of positive feedback in Twitter during the whole demo.&amp;#160; That helped out to calm the nerves.&amp;#160; Hopefully, the nerves didn’t show…&amp;#160; I promised to upload my slides and code samples.&amp;#160; I’ve also added a site template of the demo.&amp;#160; Feel free to grab all of the necessary files here: &lt;a href="http://bit.ly/ifJ3Km" target="_blank"&gt;SPSEMEA – Create a Document Dashboard&lt;/a&gt;.&amp;#160; I’ll also update this post when the video is rendered and available for download.&amp;#160; Mark Miller said it should be about 2 weeks.&lt;/p&gt;  &lt;h3&gt;Next year?&lt;/h3&gt;  &lt;p&gt;We’ll see…&amp;#160; I’m sure I’m going to be blasted with knowledge while working at Juniper-Strategy.&amp;#160; There very well may be some interest for end-users in what I have to offer.&amp;#160; I’d love to do it again, so till next time.&amp;#160; Many thanks to all of the sponsors and moderators of this event.&amp;#160; I tried to get up at 2 a.m. for the whole she-bang, but I couldn’t.&amp;#160; Kudos to everyone that put this amazing event together!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-7219697987438958759?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/7219697987438958759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/01/spsemea-2011.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7219697987438958759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7219697987438958759'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/01/spsemea-2011.html' title='#SPSEMEA 2011'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ywO7MX0I9V8/TTthLVPBVXI/AAAAAAAAAUg/ZbWTjbGkumY/s72-c/wlEmoticon-smile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8885906201138841906</id><published>2011-01-10T17:49:00.000-05:00</published><updated>2011-01-10T17:53:34.352-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='Event'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='self-promotion'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='XSLT'/><title type='text'>I’ll be speaking @ SPSEMEA</title><content type='html'>&lt;h1&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://www.sharepointsaturday.org/emea/default.aspx"&gt;&lt;strong&gt;Live Online SharePoint Saturday EMEA&lt;/strong&gt;&lt;/a&gt; is back on January 22nd, 2011. This is the second annual SPSEMEA and promises to be a huge event with over 30 sessions, 4 simultaneous Live Meeting Channels and a public text chat room open to participants and speakers. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://2011-01-22-spsmea.eventbrite.com/"&gt;&lt;strong&gt;Registration for SPSEMEA&lt;/strong&gt;&lt;/a&gt; begins on January 11 and is &lt;strong&gt;free to the global SharePoint Community&lt;/strong&gt;. There are over &lt;strong&gt;30 SharePoint Evangelists, including 10 SharePoint MVPs, &lt;/strong&gt;from around the world providing content you would normally only see at a paid SharePoint Conference. Tracks are set for SharePoint End Users and Business Managers on topics for &amp;quot;&lt;strong&gt;How We Did It: Real World Case Studies&lt;/strong&gt;&amp;quot;, &amp;quot;&lt;strong&gt;No Code/Assembly Solutions&lt;/strong&gt;&amp;quot;, &amp;quot;&lt;strong&gt;SharePoint Interface Branding&lt;/strong&gt;&amp;quot;, and &amp;quot;&lt;strong&gt;SharePoint for Business&lt;/strong&gt;&amp;quot;. The sessions will be recorded and made available two weeks after the event.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TSuN62eYfTI/AAAAAAAAAUU/JLauY-_rAK0/s1600-h/32PiecesOfFlair%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="32PiecesOfFlair" border="0" alt="32PiecesOfFlair" align="left" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TSuN7dsDZnI/AAAAAAAAAUY/hKXJxOMlklU/32PiecesOfFlair_thumb%5B1%5D.jpg?imgmax=800" width="162" height="113" /&gt;&lt;/a&gt;Last year was terrific and what I learned was invaluable.&amp;#160; This is a &lt;strong&gt;*free* &lt;/strong&gt;event, so please sign up!&amp;#160; Look over the list of &lt;a href="http://www.sharepointsaturday.org/emea/Pages/meetings.aspx" target="_blank"&gt;sessions&lt;/a&gt; and plan your day accordingly.&amp;#160; Of course, if you want to attend mine, I’d be very happy!&amp;#160; I’ll be showing off the series of blog posts that I put together: &lt;a title="http://bit.ly/cPlFCE" href="http://bit.ly/cPlFCE"&gt;http://bit.ly/cPlFCE&lt;/a&gt;.&amp;#160; I’ll be adding some flair, not a full 32 pieces, but hopefully enough to get some HS’s!&lt;/p&gt;  &lt;p&gt;I have to give thanks to all of the great people putting this event together.&amp;#160; Without them, this simply would not happen.&lt;/p&gt;  &lt;h5&gt;SPSEMEA Organizing Team&lt;/h5&gt;  &lt;p&gt;Mark Miller (&lt;a href="http://twitter.com/eusp" target="_blank"&gt;@eusp&lt;/a&gt;), United States    &lt;br /&gt;Toni Frankola (&lt;a href="http://twitter.com/ToniFrankola" target="_blank"&gt;@ToniFrankola&lt;/a&gt;), Croatia    &lt;br /&gt;Isaac Stith (&lt;a href="http://twitter.com/MrIsaac" target="_blank"&gt;@MrIsaac&lt;/a&gt;), United States    &lt;br /&gt;Ayman El-Hattab (&lt;a href="http://twitter.com/aymanelhattab" target="_blank"&gt;@aymanelhattab&lt;/a&gt;), Egypt&lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;Thanks guys!&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8885906201138841906?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8885906201138841906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/01/ill-be-speaking-spsemea.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8885906201138841906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8885906201138841906'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/01/ill-be-speaking-spsemea.html' title='I’ll be speaking @ SPSEMEA'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/TSuN7dsDZnI/AAAAAAAAAUY/hKXJxOMlklU/s72-c/32PiecesOfFlair_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-2977866528816532760</id><published>2011-01-10T07:12:00.000-05:00</published><updated>2011-01-10T07:12:41.752-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InterWebs'/><category scheme='http://www.blogger.com/atom/ns#' term='self-promotion'/><title type='text'>I have changed my stars…</title><content type='html'>&lt;p&gt;Throughout my career, I’ve been afforded some exceptional opportunities.&amp;#160; Most people believe you create your own opportunities, however, I believe you need a little bit of luck as well.&amp;#160; A classic example is right after graduating college, I became the Domain Admin for a $70 mil/yr. company &lt;a href="http://www.denier.com" target="_blank"&gt;Denier Electric&lt;/a&gt;.&amp;#160; Who else has done that?&amp;#160; For me it was luck and I’ve been fortunate enough to know it was luck.&amp;#160; &lt;/p&gt;  &lt;p&gt;During my tenure at Denier Electric, I continued my education.&amp;#160; I quickly began studying for my MCSA, but right before I was to complete all of the MCSA tests, I installed Search Server Express 2008.&amp;#160; Seemed like a harmless product, who knew it would define my career today?&amp;#160; Instantly, I recognized there was more to this than meets the eye.&amp;#160; Initially, I figured all I had to do was stand it up and move on.&amp;#160; After reading through the documentation on the “Best Practices” for installation, I felt I had that onion peeled.&amp;#160; Off to the next project… &lt;strong&gt;NOT SO FAST!&lt;/strong&gt;&amp;#160; “We need to have our new intranet do something more than search…&amp;#160; Let’s manage projects on our intranet.&amp;#160; Matt can figure it out and do it cheaply.”&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-justkidding" alt="Just kidding" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TRl7eQGdgMI/AAAAAAAAATk/6me_QMqj5ec/wlEmoticon-justkidding%5B2%5D.png?imgmax=800" /&gt;&amp;#160; Little did they know, the extent of my HTML skills was copy and paste…&amp;#160; Up until that point, I really only wrote VBScripts and Batch files.&amp;#160; I guess that translates to Web Programmer, but I digress.&amp;#160; Never the one to turn down a challenge, I grabbed the bull by the horns.&amp;#160; &lt;/p&gt;  &lt;h3&gt;SharePoint doesn’t like being grabbed by the horns&lt;/h3&gt;  &lt;p&gt;Until you realize that, then you are going to be constantly at odds with the platform.&amp;#160; There are certain things that SharePoint likes and you simply must live with that.&amp;#160; Shortly after installing, I received my first training session on SharePoint.&amp;#160; &lt;a href="http://sharepointbootcamp.com" target="_blank"&gt;SharePoint Experts&lt;/a&gt; has a great training course on none other than &lt;a title="DVWP" href="http://mattbramer.blogspot.com/search/label/DVWP" target="_blank"&gt;DVWP&lt;/a&gt;’s.&amp;#160; It was during that training that I was talked into using Twitter.&amp;#160; Ironically, Dustin Miller (the guy that talked me into using Twitter) doesn’t even tweet anymore…&amp;#160; Life is funny like that &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-rollingonthefloorlaughing" alt="Rolling on the floor laughing" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TRl7ewFAlsI/AAAAAAAAATo/XGcRGM76Mjw/wlEmoticon-rollingonthefloorlaughing%5B2%5D.png?imgmax=800" /&gt;.&amp;#160; After being armed with my newly found skills, I set out to build some applications that would benefit every department.&amp;#160; I began to realize, I needed to know more.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Where do you learn &lt;a title="SharePoint" href="http://mattbramer.blogspot.com/search/label/Sharepoint" target="_blank"&gt;SharePoint&lt;/a&gt;?&lt;/h3&gt;  &lt;p&gt;What made it difficult to learn initially, was the fact there are so many great sources for SharePoint.&amp;#160; I had to find the correct information given my level of knowledge.&amp;#160; &lt;a href="http://www.endusersharepoint.com" target="_blank"&gt;EndUserSharepoint.com&lt;/a&gt; has been a phenomenal resource for my learning and continues to be the top spot for information.&amp;#160; Then Twitter started making sense.&amp;#160; I kept following blogs of authors that were in the same trenches as me.&amp;#160; &lt;a href="http://sympmarc.com" target="_blank"&gt;Marc Anderson&lt;/a&gt; and &lt;a href="http://www.mike-greene.com" target="_blank"&gt;Michael Greene&lt;/a&gt; have guided me the whole way.&amp;#160; Even with all of this guidance, I still needed more.&amp;#160; Enter stage right: &lt;a href="http://www.uspja.com" target="_blank"&gt;USPJA&lt;/a&gt;.&amp;#160; This academy has provided me with all of the tools I could possibly ever need to learn SharePoint.&amp;#160; My understanding has skyrocketed since becoming a student within the academy.&amp;#160; If you are looking for world class training, look no further.&amp;#160; If that doesn’t convince you, keep reading…&lt;/p&gt;  &lt;h3&gt;What’s next for me?&lt;/h3&gt;  &lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" alt="Kaizen" align="left" src="http://www.gynqmgeb.de/Grafiken/kaizen.jpg" width="124" height="222" /&gt;Falling on my face many times, grabbing SharePoint by the horns, going out of my way to help &lt;a href="http://www.endusersharepoint.com/STP" target="_blank"&gt;end-users&lt;/a&gt;, &lt;a href="http://twitter.com/#!/iOnline247/status/24437796299079680" target="_blank"&gt;5000 tweets&lt;/a&gt; later, has led me to this very moment.&amp;#160; I’m extremely proud, honored, and humbled to announce; &lt;a href="http://www.juniper-strategy.com/home.html" target="_blank"&gt;Juniper Strategy&lt;/a&gt; has extended me an offer to be on their team.&amp;#160; Initially, I’ll be doing a lot of front end development, “&lt;a href="http://sympmarc.com/2010/04/14/the-middle-tier-manifesto-an-alternative-approach-to-development-with-microsoft-sharepoint/" target="_blank"&gt;Middle Tier&lt;/a&gt;”, if you will.&amp;#160; Shortly thereafter, &lt;a href="http://sharepointhillbilly.com/" target="_blank"&gt;Mark Rackley&lt;/a&gt; will expand my VB knowledge into the realm of SharePoint.&amp;#160; &lt;/p&gt;  &lt;p&gt;I know I’m definitely entering into the realm of unknown.&amp;#160; I’ve never coded for food before, so I’m very interested in grabbing the bull by the horns again.&amp;#160; I’ll continue to post interesting solutions I find along the way, so we can both continue to learn together.&amp;#160; So here’s a huge &lt;font size="4"&gt;&lt;strong&gt;THANKS&lt;/strong&gt;&lt;/font&gt; for everyone that has allowed me to grow through the years.&amp;#160; I found this song to be very fitting.&amp;#160; I hope you do too.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:8287feab-2faa-428f-94d5-4652677e452b" class="wlWriterEditableSmartContent"&gt;&lt;div id="af1716b7-d965-48a5-9045-9e07c6d37fb7" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=oFhRowkNrTM" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/_ywO7MX0I9V8/TSr3uVQZWhI/AAAAAAAAAUM/4SRODblezvc/video0b8ac3872410%5B3%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('af1716b7-d965-48a5-9045-9e07c6d37fb7'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;567\&amp;quot; height=\&amp;quot;318\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/oFhRowkNrTM?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/oFhRowkNrTM?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;567\&amp;quot; height=\&amp;quot;318\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-2977866528816532760?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/2977866528816532760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2011/01/i-have-changed-my-stars.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/2977866528816532760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/2977866528816532760'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2011/01/i-have-changed-my-stars.html' title='I have changed my stars…'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/TRl7eQGdgMI/AAAAAAAAATk/6me_QMqj5ec/s72-c/wlEmoticon-justkidding%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-2605257287347040905</id><published>2010-12-20T23:39:00.001-05:00</published><updated>2010-12-20T23:39:55.212-05:00</updated><title type='text'>Remote Desktop not displaying Local Drives</title><content type='html'>&lt;p&gt;This may have you stumped if you are a performance freak and like to tweak (disable) certain services that are OOTB with Windows.&amp;#160; You can categorize me within that column, if you like. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TRAvlsK8wSI/AAAAAAAAATE/sP1pw9YCWV4/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt; I typically disable the service called: &lt;strong&gt;Server&lt;/strong&gt; on my workstation because in my eyes, it’s not necessary unless I’m serving something up.&amp;#160; That’s what servers are for eh?&amp;#160; Well in the case of Remote Desktop, you &lt;strong&gt;are&lt;/strong&gt; serving up files if you want to connect to your local drives.&amp;#160; I ran into that issue earlier today and felt like passing it along.&amp;#160; Below is a picture of what local drives look like when logged into a server/PC via Remote Desktop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TRAvmGBXU3I/AAAAAAAAATI/4aGYfECuFJs/s1600-h/TerminalServices%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="TerminalServices" border="0" alt="TerminalServices" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TRAvmj_C7cI/AAAAAAAAATM/XDwyHEBiS58/TerminalServices_thumb%5B1%5D.png?imgmax=800" width="604" height="284" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you constantly tweak settings, it’s always good to keep documentation of what you are doing.&amp;#160; It just so happens that I do this often enough to remember that this was the setting at fault.&amp;#160; Hopefully, it’ll help you along the way…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-2605257287347040905?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/2605257287347040905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/12/remote-desktop-not-displaying-local.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/2605257287347040905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/2605257287347040905'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/12/remote-desktop-not-displaying-local.html' title='Remote Desktop not displaying Local Drives'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ywO7MX0I9V8/TRAvlsK8wSI/AAAAAAAAATE/sP1pw9YCWV4/s72-c/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-3069506313089712637</id><published>2010-12-17T09:47:00.000-05:00</published><updated>2010-12-17T09:56:56.921-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerEvents'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='WMI'/><category scheme='http://www.blogger.com/atom/ns#' term='VBScript'/><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SeverSide'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Create an event receiver script within your ActiveScriptEventConsumer with PowerEvents</title><content type='html'>&lt;p&gt;I’ve had the pleasure of meeting &lt;a href="http://trevorsullivan.net" target="_blank"&gt;Trevor Sullivan&lt;/a&gt; when I convinced him he should learn all about SQL Server.&amp;#160; Not really, but we did chat it up on Twitter and decided to both go to Cleveland for an intro on SQL Server 2008 R2.&amp;#160; Little did I know what he was working on.&amp;#160; Quite simply one of the coolest projects I’ve used from Codeplex.&amp;#160; Trevor has created &lt;a href="http://powerevents.codeplex.com" target="_blank"&gt;PowerEvents&lt;/a&gt;!&amp;#160; I’ll admit, some of it is way over my head at the moment.&amp;#160; It’s directly related to how much I really know about WMI, but I feel that’s about to change drastically.&lt;/p&gt;  &lt;p&gt;I posted a &lt;a href="http://twitter.com/iOnline247/status/15769950056611840" target="_blank"&gt;tweet&lt;/a&gt; earlier about what I’ve created with PowerEvents.&amp;#160; Actually, I feel as if it would be a best practice for the ActiveScriptEventConsumer.&amp;#160; You can be the judge of that &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TQt6NF1fQVI/AAAAAAAAAS8/NeZL2tRPh8c/wlEmoticon-winkingsmile2.png?imgmax=800" /&gt;.&amp;#160; Since it’s almost impossible to see what you’ve created as an Event Consumer, I’ve simply created only one: ActiveScriptEventConsumer.&amp;#160; That way I don’t have to worry about what has been added under the hood to WMI.&amp;#160; All I have to do is tweak the script that is fired when the event occurs.&amp;#160; So, I’ve built a basic script that looks for the arguments you have passed to it.&amp;#160; Based on these arguments, you can dynamically call different scripts or functions.&amp;#160; Pretty slick, eh?&amp;#160; Here’s a basic script that will email two different people based on what the WMI query results are.&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Option&lt;/span&gt; Explicit&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Const&lt;/span&gt; strFrom = &amp;quot;&lt;span style="color: #8b0000"&gt;example@example.com&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Const&lt;/span&gt; strMailserver = &amp;quot;&lt;span style="color: #8b0000"&gt;smtp.example.com&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Const&lt;/span&gt; strSchema = &amp;quot;&lt;span style="color: #8b0000"&gt;http://schemas.microsoft.com/cdo/configuration/&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; objArgs, objEmail&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; strProcessName, strSubject, strBody, strTo&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Get arguments from command line&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; objArgs = WScript.Arguments&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;strProcessName = WScript.Arguments(0)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;strSubject = WScript.Arguments(1)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;strBody = Wscript.Arguments(2)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Dynamically change the email recipient&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Or even change the function to be called&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Or call a completely different script: .bat, .vbs, .ps1&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Endless possibilities&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;If&lt;/span&gt; strProcessName = &amp;quot;&lt;span style="color: #8b0000"&gt;NotePad.exe&lt;/span&gt;&amp;quot; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	strTo = &amp;quot;&lt;span style="color: #8b0000"&gt;myboss@example.com&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;ElseIf&lt;/span&gt; strProcessName = &amp;quot;&lt;span style="color: #8b0000"&gt;Outlook.exe&lt;/span&gt;&amp;quot; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	strTo = &amp;quot;&lt;span style="color: #8b0000"&gt;me@example.com&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Call to send email, but many different functions could be within this script and&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'dynamically called based on arguments&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Call&lt;/span&gt; SendEmail(strSubject, strBody)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Function(s)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; SendEmail(Subject, Body)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	&lt;span style="color: #0000ff"&gt;Set&lt;/span&gt; objEmail = CreateObject(&amp;quot;&lt;span style="color: #8b0000"&gt;CDO.Message&lt;/span&gt;&amp;quot;)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.From = strFrom&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.&lt;span style="color: #0000ff"&gt;To&lt;/span&gt; = strTo&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Subject = Subject&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Textbody = Body&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Configuration.Fields.Item _&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	    (strSchema &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;sendusing&lt;/span&gt;&amp;quot;) = 2&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Configuration.Fields.Item _&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	    (strSchema &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;smtpserver&lt;/span&gt;&amp;quot;) = strMailserver&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Configuration.Fields.Item _&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	    (strSchema &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;smtpserverport&lt;/span&gt;&amp;quot;) = 25&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Configuration.Fields.Update&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;	objEmail.Send&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Clean up vars&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; strProcessName = &lt;span style="color: #0000ff"&gt;nothing&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; strSubject = &lt;span style="color: #0000ff"&gt;nothing&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt; strBody = &lt;span style="color: #0000ff"&gt;nothing&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I hope you find this useful.&amp;#160; I’m brand new to creating PowerEvents, but I do feel this is the best way to handle scripting based on events.&amp;#160; Feel free to post a comment if I’m an idiot &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-rollingonthefloorlaughing" alt="Rolling on the floor laughing" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TQt6N_ldxzI/AAAAAAAAATA/gVZRxIq9K28/wlEmoticon-rollingonthefloorlaughing%5B2%5D.png?imgmax=800" /&gt;and there is a much easier way…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-3069506313089712637?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/3069506313089712637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/12/create-event-receiver-script-within.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3069506313089712637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3069506313089712637'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/12/create-event-receiver-script-within.html' title='Create an event receiver script within your ActiveScriptEventConsumer with PowerEvents'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ywO7MX0I9V8/TQt6NF1fQVI/AAAAAAAAAS8/NeZL2tRPh8c/s72-c/wlEmoticon-winkingsmile2.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-4554082262791402039</id><published>2010-12-04T11:25:00.000-05:00</published><updated>2010-12-04T11:26:07.508-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='InterWebs'/><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='HootSuite'/><category scheme='http://www.blogger.com/atom/ns#' term='PC'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Download pictures from HootSuite: Ow.ly</title><content type='html'>&lt;p&gt;Maybe you have noticed, maybe you haven’t, but when you send pictures to this service, you cannot download them from their website.&amp;#160; Right click as much as you want, you’ll never get a Save Picture As option.&amp;#160; That’s a major flaw in my book.&amp;#160; I send pictures to the cloud not to lock them into a vault.&amp;#160; I send them because I’d like to share them!&amp;#160; These pictures are not yours HootSuite, they are mine and will always be mine!&lt;/p&gt;  &lt;h3&gt;What can you do about it?&lt;/h3&gt;  &lt;p&gt;Being the curious guy that I am, I noticed an embed link on the page.&amp;#160; Let’s look at this one for example: &lt;a href="http://ow.ly/i/65gE"&gt;http://ow.ly/i/65gE&lt;/a&gt;.&amp;#160; Cracking open notepad, I pasted this link and saved the .txt file to a .htm.&amp;#160; Upon opening the newly created web page, I see my beautiful picture with all of it’s glorious pixels.&amp;#160; Well, it’s not that great of a photo, but the end result is gratifying.&amp;#160; Since I’m now viewing a web page with &lt;strong&gt;MY &lt;/strong&gt;photo on it, that isn’t controlled by HootSuite, I’m able to right click the page and Save Picture As. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TPprnCYCr-I/AAAAAAAAARk/0pUb19NEJ-s/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt; Ha ha, I win HootSuite…&amp;#160; When you save the photo, the file type is defaulted to a .gif.&amp;#160; Go ahead and save it as a .gif.&amp;#160; When I did this earlier, I tried opening my picture, but it didn’t display my photo…&amp;#160; Did HootSuite one-up me again?!?&amp;#160; Absolutely not!&amp;#160; Right click that .gif file and select edit.&amp;#160; This will open the picture up in MSPaint.&amp;#160; Then simply save this photo as a .jpeg or .jpg.&amp;#160; Congratulations, you now own your digital media…. again!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I OWN MY PHOTOS HOOTSUITE&lt;/strong&gt; and it’s quite ridiculous that I have to resort to these tactics just to share my digital life.&amp;#160; What if my friends or family wanted to download that photo?&amp;#160; Give up the policy of what is yours is mine and what’s mine is mine.&amp;#160; It’s so not attractive.&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-steamingmad" alt="Steaming mad" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TPprnttXZMI/AAAAAAAAARo/GrjnCHSO1WE/wlEmoticon-steamingmad%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-4554082262791402039?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/4554082262791402039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/12/download-pictures-from-hootsuite-owly.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4554082262791402039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4554082262791402039'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/12/download-pictures-from-hootsuite-owly.html' title='Download pictures from HootSuite: Ow.ly'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_ywO7MX0I9V8/TPprnCYCr-I/AAAAAAAAARk/0pUb19NEJ-s/s72-c/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-6419744167959342322</id><published>2010-11-28T16:43:00.000-05:00</published><updated>2010-11-28T20:43:33.898-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='PC'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Clean up your PC this holiday season…</title><content type='html'>&lt;p&gt;In the last day, I’ve had 3 PC’s dropped off to me all for the same reason: “Can you take off all of the garbage that comes with this and make it as fast as possible?”.&amp;#160; Laptops are horrendously crippled machines out of the box.&amp;#160; It all boils down to advertising.&amp;#160; The Bing bar does absolutely nothing for the end user other than running in the background wasting resources.&amp;#160; The same goes for the classic Adobe Reader auto run entry in the registry.&amp;#160; It’s all a bit of rubbish if you ask me.&amp;#160; There is absolutely no need for a netbook running Windows 7 Starter edition to have 16 .exe’s firing upon startup.&amp;#160; Look at it, I’m not making it up: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TPK6wObgHuI/AAAAAAAAARY/aUp2biVq3p4/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TPK6xHwrBII/AAAAAAAAARc/Fm5QQl_mxlY/image_thumb%5B1%5D.png?imgmax=800" width="604" height="404" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Most, if not all listed here is software that is a bunch of gunk!&amp;#160; I’m completely baffled as to why most software vendors feel the need to attach every bit of itself to the startup process.&amp;#160; It’s Windows 7 people!&amp;#160; If you absolutely need to have your .exe running in the background, fire it up as an Automatic Delayed Service.&amp;#160; Operative word: Delayed…&amp;#160; This will run after the computer freed up a few resources that are tied up during the login process.&amp;#160; It’s a no brainer these days to take advantage of that capability.&amp;#160; However, since this seems to be the status quo, I’ll continue to shake my head and collect my paycheck *fixing* what shouldn’t ever have been broken.&amp;#160; Here’s a few steps that you can take to optimize your brand new computer.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Grab &lt;a href="http://www.revouninstaller.com/" target="_blank"&gt;Revo Uninstaller&lt;/a&gt; – Beginner Level&lt;/li&gt;    &lt;li&gt;Grab &lt;a title="CCleaner" href="http://www.piriform.com/ccleaner" target="_blank"&gt;CCleaner&lt;/a&gt; – Beginner level&lt;/li&gt;    &lt;li&gt;Grab &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx" target="_blank"&gt;Autoruns&lt;/a&gt; – Advanced level&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Depending on how in-depth you’d like to go, I’ve marked each software with a level.&amp;#160; Each of these can do major damage to your brand new machine, so use caution.&amp;#160; If you’d rather leave it to an expert, I can always be &lt;a title="Remote support with Matt Bramer" href="http://www.crossloop.com/matthewbramer" target="_blank"&gt;reached&lt;/a&gt;.&amp;#160; While I never use Revo Uninstaller, I’d like to show beginners some of the options available.&amp;#160; I go through the list in Programs and Features picking off non-essential software.&amp;#160; After a while, you just get an eye for it.&lt;/p&gt;  &lt;h3&gt;What do I look for?&lt;/h3&gt;  &lt;p&gt;I rip out arguably more than I should, but that’s just me.&amp;#160; I OPTIMIZE &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TPK6xTVg_pI/AAAAAAAAARg/VUYApEzoAwk/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;.&amp;#160; The usual targets are any power management softwares, widget bars, pre-loaded games, the stupid trial version of anti-virus… By the way, don’t pay for an anti-virus.&amp;#160; &lt;strong&gt;Yeah, I said it!&lt;/strong&gt;&amp;#160; They all are garbage, but since you &lt;strong&gt;&lt;font size="3"&gt;HAVE&lt;/font&gt;&lt;/strong&gt; to use one, use &lt;a href="http://www.microsoft.com/security_essentials/" target="_blank"&gt;Microsoft Security Essentials&lt;/a&gt;.&amp;#160; It’s free and less intrusive than the other free options out there.&amp;#160; Getting back to the list of garbage: Toolbars, preloaded screensavers, the Acrobat.com entry (To this day, I’ve never found out what that actually does.), DVD programs, Label printing software (Who uses a netbook to print labels?).&amp;#160; Everything I’ve listed here, Windows 7 can do out of the box; and a mighty fine job of it, if you ask me.&amp;#160; &lt;/p&gt;  &lt;h3&gt;Don’t Accept OOTB&lt;/h3&gt;  &lt;p&gt;It’s necessary for you to optimize your computer even though it’s brand new.&amp;#160; It’s a sad fact, but nonetheless, a fact.&amp;#160; If you use different techniques to make your PC more efficient, feel free to post a comment.&amp;#160; I love hearing about how other people are dealing with this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-6419744167959342322?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/6419744167959342322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/11/clean-up-your-pc-this-holiday-season.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6419744167959342322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6419744167959342322'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/11/clean-up-your-pc-this-holiday-season.html' title='Clean up your PC this holiday season…'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ywO7MX0I9V8/TPK6xHwrBII/AAAAAAAAARc/Fm5QQl_mxlY/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-1297033106646824229</id><published>2010-11-24T12:43:00.000-05:00</published><updated>2012-01-24T10:17:02.886-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPDatasource'/><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='XSLT'/><title type='text'>SharePoint: Integrate ASP.net controls with Forms – Pt6: Bonus: Embed documents to page</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;p&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html"&gt;Pt.1: Use an SP Datasource to push values to a drop-down menu control&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html"&gt;Pt2: Adding a DVWP Form to the page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html"&gt;Pt3: Update the DVWP Form using a Drop-Down&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html"&gt;Pt4: Trimming Drop Down List results using CAML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html"&gt;Part 5: Force Selection within Drop Down List&lt;/a&gt;&lt;br /&gt;Pt6: Bonus: Embed documents to page&lt;br /&gt;&lt;/p&gt;I’ve been thinking about a few comments I’ve received during this series.&amp;nbsp; Specifically, this &lt;a href="http://www.endusersharepoint.com/2010/10/07/sharepoint-integrate-asp-net-controls-with-forms-part-2-adding-a-dvwp-form-to-the-page/comment-page-1/#comment-104934" target="_blank"&gt;comment&lt;/a&gt; in particular from Jeremy on &lt;a href="http://www.endusersharepoint.com/" target="_blank"&gt;EUSP&lt;/a&gt;: “Would adding a document view/preview window be possible? It sounds like it might fit into where you are headed with this project.”&amp;nbsp; I initially wrote that it would not be possible without some code.&amp;nbsp; That comment is still valid, but I’ve went ahead and wrote the code to display certain document types.&amp;nbsp; Initially this XSL template will handle: .pdf’s, png’s, jpg’s, gif’s, mp3’s, wmv’s and .vsd’s.&amp;nbsp; I’m sure there’s more to add, so feel free to post a comment if you’d like to see something added!&lt;br /&gt;&lt;h3&gt;&lt;a href="http://spxslt.codeplex.com/" target="_blank" title="SPXSLT"&gt;SPXSLT&lt;/a&gt;&lt;/h3&gt;I’m a big fan of this project.&amp;nbsp; Isn’t it obvious?&amp;nbsp; My avatar on Twitter was the SPXSLT logo for a week or so.&amp;nbsp; If you haven’t been to the codeplex site and used these templates, you now have no reason…&lt;br /&gt;&lt;h3&gt;What does it do?&lt;/h3&gt;I’m going to go over the most complex file type.&amp;nbsp; This should give you a good understanding of how all of the other file types work.&amp;nbsp; Let’s give credit where credit is due. &lt;a href="http://www.wssdemo.com/Pages/visio.aspx" title="http://www.wssdemo.com/Pages/visio.aspx"&gt;http://www.wssdemo.com/Pages/visio.aspx&lt;/a&gt; is where you can find this code:&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &amp;lt;OBJECT classid="&lt;span style="color: darkred;"&gt;CLSID:279D6C9A-652E-4833-BEFC-312CA8887857&lt;/span&gt;" &lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;codebase="&lt;span style="color: darkred;"&gt;http://www.microsoft.com/downloads/info.aspx?na=90&amp;amp;p=&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=d88e4542-b174-4198-ae31-6884e9edd524&amp;amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f6%2ff%2f5%2f6f569198-e7d0-49af-b162-54a11f38d301%2fvisioviewer.exe&lt;/span&gt;" &lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;id="&lt;span style="color: darkred;"&gt;viewer1&lt;/span&gt;" width="&lt;span style="color: darkred;"&gt;100%&lt;/span&gt;" height="&lt;span style="color: darkred;"&gt;100&lt;/span&gt;"&amp;gt; &lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;BackColor&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;16777120&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;AlertsEnabled&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;ContextMenuEnabled&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;GridVisible&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;0&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;HighQualityRender&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;PageColor&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;16777215&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;PageVisible&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;PropertyDialogEnabled&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;ScrollbarsVisible&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;ToolbarVisible&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;SRC&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;http://www.wssdemo.com/Shared%20Documents/carpark.vsd&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;CurrentPageIndex&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;0&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;param name="&lt;span style="color: darkred;"&gt;Zoom&lt;/span&gt;" value="&lt;span style="color: darkred;"&gt;-1&lt;/span&gt;"&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&amp;lt;/object&amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This code allows you to embed visio files within IE (Internet Explorer).&amp;nbsp; I know, I know, it doesn’t work in Chrome or any other browser for that matter, but it’s still nice if you have an audience that will be using IE only.&amp;nbsp; I’ve tried to make all of the other file types adhere to standards, so they all should work no matter what browser you use.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Breaking It Down&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;To use this template, you have to call it like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;call&lt;/span&gt;-&lt;span style="color: red;"&gt;template&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"EmbeddedFilePreview"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;with&lt;/span&gt;-&lt;span style="color: red;"&gt;param&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"FileType"&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"@File_x0020_Type"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;with&lt;/span&gt;-&lt;span style="color: red;"&gt;param&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"FilePath"&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"@FileRef"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;with&lt;/span&gt;-&lt;span style="color: red;"&gt;param&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"paramHeight"&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"500"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;with&lt;/span&gt;-&lt;span style="color: red;"&gt;param&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"paramWidth"&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"1000"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;with&lt;/span&gt;-&lt;span style="color: red;"&gt;param&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"curr_Site"&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"$curr_Site"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;call&lt;/span&gt;-template&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The FileType, FilePath, and curr_Site parameter are required if you are wanting to display .vsd files in your page.&amp;nbsp; For some reason, the .vsd object requires a full URL and not a relative path.&amp;nbsp; To get the current site, you’ll want to setup a &lt;a href="http://sympmarc.com/2007/10/19/data-view-web-part-parameters-based-on-server-variables/" target="_blank"&gt;Server Variable&lt;/a&gt;: SERVER_NAME.&amp;nbsp; You’ll see why that’s important within the .vsd file type.&amp;nbsp; All of the other file types that you would display using this template *do not* require the curr_Site variable.&amp;nbsp; There are two other variables that are optional.&amp;nbsp; They are paramHeight and paramWidth.&amp;nbsp; If these aren’t set when you call the template, the values are defaulted to 500px and 100%, respectively.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here’s the SPXSLT code to embed a visio document:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;when&lt;/span&gt; &lt;span style="color: red;"&gt;test&lt;/span&gt;=&lt;span style="color: blue;"&gt;"$FileType = 'vsd'"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;choose&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;when&lt;/span&gt; &lt;span style="color: red;"&gt;test&lt;/span&gt;=&lt;span style="color: blue;"&gt;"$curr_Site = ''"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;   &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;The current site parameter *must* be provided!&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;b&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;when&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;otherwise&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;   &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;object&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"classid"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;    &lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;     &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;CLSID:279D6C9A-652E-4833-BEFC-312CA8887857&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"id"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;    &lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;     &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;VSDViewer&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"width"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;     &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;value&lt;/span&gt;-&lt;span style="color: red;"&gt;of&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"$Width"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"height"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;     &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;value&lt;/span&gt;-&lt;span style="color: red;"&gt;of&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"$Height"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;attribute&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt; &lt;span style="color: red;"&gt;disable&lt;/span&gt;-&lt;span style="color: red;"&gt;output&lt;/span&gt;-&lt;span style="color: red;"&gt;escaping&lt;/span&gt;=&lt;span style="color: blue;"&gt;"yes"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;BackColor&amp;amp;quot; value=&amp;amp;quot;16777120&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;AlertsEnabled&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;ContextMenuEnabled&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;GridVisible&amp;amp;quot; value=&amp;amp;quot;0&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;HighQualityRender&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;PageColor&amp;amp;quot; value=&amp;amp;quot;16777215&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;PageVisible&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;PropertyDialogEnabled&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;ScrollbarsVisible&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;ToolbarVisible&amp;amp;quot; value=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;SRC&amp;amp;quot; value=&amp;amp;quot;http://&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;value&lt;/span&gt;-&lt;span style="color: red;"&gt;of&lt;/span&gt; &lt;span style="color: red;"&gt;select&lt;/span&gt;=&lt;span style="color: blue;"&gt;"concat($curr_Site, $FilePath)"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt; &lt;span style="color: red;"&gt;disable&lt;/span&gt;-&lt;span style="color: red;"&gt;output&lt;/span&gt;-&lt;span style="color: red;"&gt;escaping&lt;/span&gt;=&lt;span style="color: blue;"&gt;"yes"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;CurrentPageIndex&amp;amp;quot; value=&amp;amp;quot;0&amp;amp;quot;&amp;amp;gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &amp;amp;lt;param name=&amp;amp;quot;Zoom&amp;amp;quot; value=&amp;amp;quot;-1&amp;amp;quot;&amp;amp;gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;text&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;p&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;It appears you don't have a Visio Viewer plugin for this browser.&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;p&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;   &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;object&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;otherwise&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;choose&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;xsl&lt;/span&gt;:&lt;span style="color: maroon;"&gt;when&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You’ll notice the test is to see whether or not curr_Site is blank.&amp;nbsp; If the curr_Site and FilePath match a document, then it’ll embed the visio drawing into the page.&amp;nbsp; I do a little bit of magic with the concat in the middle there, so if you are trying to use this in an SSL environment, change the text to: https://.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Where’s the code?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;The preview is only shown here.&amp;nbsp; I’m going to post all of the code to the &lt;a href="http://spxslt.codeplex.com/" target="_blank"&gt;SPXSLT&lt;/a&gt; site, so get the latest revision there.&amp;nbsp; If you have any tweaks for me or need to get this working, I’m always glad to hear from you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Screenshots?&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;You know I have screenshots!&amp;nbsp; Here’s a visio drawing:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TO3N1g8n25I/AAAAAAAAAQ4/1h06WdjdAy8/s1600-h/image%5B3%5D.png"&gt;&lt;img alt="image" border="0" height="379" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TO3N2fI0UeI/AAAAAAAAAQ8/3Ov0-Yg0FDA/image_thumb%5B1%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="604" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here’s a .pdf:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TO3N3GsjQXI/AAAAAAAAARA/dU5tjSsqKDo/s1600-h/image%5B7%5D.png"&gt;&lt;img alt="image" border="0" height="379" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TO3N4-X3XBI/AAAAAAAAARE/fiWltgFp6FI/image_thumb%5B3%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="604" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's a .jpg:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TO3N5v-jrMI/AAAAAAAAARI/GNaW7kKcrGM/s1600-h/image%5B11%5D.png"&gt;&lt;img alt="image" border="0" height="379" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TO3N6ntc_QI/AAAAAAAAARM/l0UWB4ZQYJ4/image_thumb%5B5%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="604" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hey, why not a video? .wmv&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TO3N7o3hbTI/AAAAAAAAARQ/HZWQ2KfMiuQ/s1600-h/image%5B15%5D.png"&gt;&lt;img alt="image" border="0" height="309" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TO3N8G7vTrI/AAAAAAAAARU/CQ8A8_abRbo/image_thumb%5B7%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="604" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Update:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;The code for this template can be found here:&lt;br /&gt;&lt;a href="http://spxslt.codeplex.com/discussions/235951"&gt;http://spxslt.codeplex.com/discussions/235951&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-1297033106646824229?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/1297033106646824229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/1297033106646824229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/1297033106646824229'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html' title='SharePoint: Integrate ASP.net controls with Forms – Pt6: Bonus: Embed documents to page'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ywO7MX0I9V8/TO3N2fI0UeI/AAAAAAAAAQ8/3Ov0-Yg0FDA/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8609987286740043786</id><published>2010-10-28T10:57:00.000-04:00</published><updated>2012-01-24T10:14:44.539-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPDatasource'/><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint: Integrate ASP.net controls with Forms – Part 5: Force Selection within Drop Down List</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;p&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html"&gt;Pt.1: Use an SP Datasource to push values to a drop-down menu control&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html"&gt;Pt2: Adding a DVWP Form to the page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html"&gt;Pt3: Update the DVWP Form using a Drop-Down&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html"&gt;Pt4: Trimming Drop Down List results using CAML&lt;/a&gt;&lt;br /&gt;Part 5: Force Selection within Drop Down List&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html"&gt;Pt6: Bonus: Embed documents to page&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;&lt;span xmlns="xmlns"&gt;So Close!      &lt;/span&gt;&lt;/h1&gt;&lt;span xmlns="xmlns"&gt;    You may have noticed the Drop Down control has a bug. When you visit the page, an item is already selected but the EditForm isn't displayed for that item. The best I can tell is the value for the Drop Down is set before the EditForm is ready to accept a connection. Don't worry though; we can fix it with just a few tweaks to the control.      &lt;br /&gt;    First we must select/click/highlight (pick your pleasure) the Drop Down List so we can open the Tag Properties for this control. With anything you set out to do, there is always more than one way to get it done. You can select the control and then Click Task Panes, Tag Properties; or you can simply double click on the Drop Down List.      &lt;br /&gt;    &lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TMmP3sbTIpI/AAAAAAAAAPQ/5FrVsvy7ki0/s1600-h/image%5B5%5D.png"&gt;&lt;img alt="image" border="0" height="275" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TMmP4sVILtI/AAAAAAAAAPU/4cFlgid9rgo/image_thumb%5B3%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="504" /&gt;&lt;/a&gt;&lt;br /&gt;    The settings we are interested in are:      &lt;br /&gt;    &lt;ul&gt;&lt;li&gt;AutoPostBack        &lt;/li&gt;&lt;li&gt;ToolTip        &lt;/li&gt;&lt;li&gt;AppendDataBoundItems        &lt;/li&gt;&lt;li&gt;DataSourceID        &lt;/li&gt;&lt;li&gt;DataTextField        &lt;/li&gt;&lt;li&gt;DataValueField        &lt;/li&gt;&lt;li&gt;Misc – Items        &lt;/li&gt;&lt;/ul&gt;You may have noticed already, some of these properties are highlighted in blue. This happens when you customize a setting for this control. Remember checking the AutoPostBack option in &lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html"&gt;Step 1&lt;/a&gt;? Since some of these properties have already been set, we don't need to worry about them. I've listed them above so you when you want to deep dive into the inner workings, you'll have a good &lt;a href="http://www.w3schools.com/aspnet/control_dropdownlist.asp"&gt;base&lt;/a&gt; to start from.       &lt;br /&gt;    &lt;h1&gt;Ready, Set, Config!      &lt;/h1&gt;Let's set the &lt;strong&gt;ToolTip&lt;/strong&gt; first. This gives a visual indicator to the user of the page. When you hover over the Drop Down List, a notification will appear. These are extremely useful when trying to give simple tips to your users. For this property, we are allowed to type our message directly into the box to the right.       &lt;br /&gt;    &lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TMmP5WGDV7I/AAAAAAAAAPY/7FpyZ1DgqMg/s1600-h/image%5B8%5D.png"&gt;&lt;img alt="image" border="0" height="229" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TMmP57XDfvI/AAAAAAAAAPc/yfmvp5nosx4/image_thumb%5B4%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;    You'll notice some properties work differently. Some only give you a True/False selection. By using these controls, you'll become more familiar with these properties and how each one works. &lt;strong&gt;AppendDataBoundItems&lt;/strong&gt; is a prime example of why it's necessary to become familiar with these controls. It's difficult to decipher at first glance what this really does. From trial and error, I've found out that it actually solves our problem. Let's set it to True. By doing that, the items that we add in the next step will be appended to the Drop Down control. If that's still confusing, after you complete all of the steps and get the page working, go back and set this property to False. The last property we have to set is under the &lt;strong&gt;Misc&lt;/strong&gt; heading and it's called &lt;strong&gt;Items&lt;/strong&gt;. This allows us to manually add items to select from our Drop Down List. Click the ellipses on the right of &lt;strong&gt;Items&lt;/strong&gt;, so we can add an item.       &lt;br /&gt;    &lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TMmP6dG9XYI/AAAAAAAAAPg/UhYvPbjnE4k/s1600-h/image%5B11%5D.png"&gt;&lt;img alt="image" border="0" height="146" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TMmP7TBJg8I/AAAAAAAAAPk/Gn8lkXyQgCU/image_thumb%5B5%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;    This brings up a rather odd looking dialog, but once you know what it's doing for you, you'll get that raise from your boss! Click Add and then configure this item to:      &lt;br /&gt;    &lt;ul&gt;&lt;li&gt;Enabled:True        &lt;/li&gt;&lt;li&gt;Selected:True        &lt;/li&gt;&lt;li&gt;Text:Select a document…        &lt;/li&gt;&lt;li&gt;Value:Select a document…        &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TMmP7ijvSlI/AAAAAAAAAPo/jyRhX9-f82o/s1600-h/image%5B14%5D.png"&gt;&lt;img alt="image" border="0" height="178" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TMmP8O7fH9I/AAAAAAAAAPs/rfjOOwgtPgk/image_thumb%5B6%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;    It's important to note, the property Value plays a very important part here. Remember in &lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html"&gt;Step 3&lt;/a&gt;, we configured the parameter to filter our EditForm when the ID equals the ID of the SPDatasource. Since we've set the Value here to: Select a document…, there's no possible way the Drop Down List will filter to an EditForm. With this in mind, it's definitely possible to &lt;strong&gt;*NOT*&lt;/strong&gt; have your Drop Down bound to an SPDatasource and manually insert items with values. You could then filter based of off whatever you'd like to. Do I recommend it? No, because it's just as easy to bind this control to a list and update the values there. It'll keep you from having to dip into SPD just to add more functionality down the road.       &lt;br /&gt;    &lt;h1&gt;HOORAY!      &lt;/h1&gt;Guess what? We've done enough to merit saving the page. While we are at it, go ahead and open this page. Do you notice anything different? At this point, you should have: Select a document…, as your initial selection. With this in place, your users are now forced to make a selection and aren't stuck wondering why your Drop Down isn't working when the page is initially loaded.      &lt;br /&gt;    &lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TMmP8gBCXGI/AAAAAAAAAPw/t_U0uNvMmzo/s1600-h/image%5B17%5D.png"&gt;&lt;img alt="image" border="0" height="78" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TMmP9DIzGiI/AAAAAAAAAP0/erWd_Dz-jKo/image_thumb%5B7%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;    If you’ve followed along from the beginning, we have just finished building a Drop Down List that’s automatically populated with Items the current user has created.&amp;nbsp; Upon selecting an Item, an EditForm appears and allows for easy manipulation of metadata.&amp;nbsp; There’s a nagging question to all of this:&amp;nbsp; &lt;strong&gt;What else can I do with these techniques?&lt;/strong&gt; That's an awesome question because using this techniques; you are able to add functionality to your page that you simply can't find anywhere else in SharePoint. I'll leave it up to you to post comments on how you are using this or how it could be used. I definitely have some ideas for follow-up posts and have a project coming up that I'm going to be using this extensively. I'd still love to hear from you guys though, so don't be shy in the comments!       &lt;br /&gt;    &lt;br /&gt;&lt;br /&gt; &lt;/span&gt;  &lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:be6e36dc-6af9-4b43-ae70-04db1c537d30" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/dvWP" rel="tag"&gt;dvWP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moSS+2007" rel="tag"&gt;moSS 2007&lt;/a&gt;,&lt;a href="http://technorati.com/tags/spDatasource" rel="tag"&gt;spDatasource&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sharepoint" rel="tag"&gt;sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/wSS+3.0" rel="tag"&gt;wSS 3.0&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8609987286740043786?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8609987286740043786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8609987286740043786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8609987286740043786'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html' title='SharePoint: Integrate ASP.net controls with Forms – Part 5: Force Selection within Drop Down List'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/TMmP4sVILtI/AAAAAAAAAPU/4cFlgid9rgo/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-4247262009542573896</id><published>2010-10-27T13:31:00.001-04:00</published><updated>2010-10-27T13:40:24.961-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Office'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><title type='text'>VBA – String Manipulation</title><content type='html'>&lt;p&gt;Sometimes you just have to not accept what is given to you.&amp;#160; I came across something interesting building a form within Excel today.&amp;#160; I have 7 combo boxes on this form and I needed to assign values to all of the choices.&amp;#160; So when a description of 20A Receptacle was chosen, I needed to assign a value of O to it.&amp;#160; The end result would be a string of these variables concatenated together to form one long string that resembled: (O X G OS S X S).&lt;/p&gt;&lt;p&gt;A few lines of code and were off:&lt;/p&gt;&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Devices = Array(cmb1.Value, cmb2.Value, cmb3.Value, cmb4.Value, cmb5.Value, cmb6.Value, cmb7.Value)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;NumOfDevices = 0&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Find all values for combobox&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;For&lt;/span&gt; i = 0 &lt;span style="color: #0000ff"&gt;To&lt;/span&gt; UBound(Devices)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; Devices(i) = &amp;quot;&lt;span style="color: #8b0000"&gt;&lt;/span&gt;&amp;quot; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt; NumOfDevices = NumOfDevices + 1&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #008000"&gt;'Match Description to Ganged&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; &lt;span style="color: #0000ff"&gt;True&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; Devices(i) = &amp;quot;&lt;span style="color: #8b0000"&gt;20A RECEPTACLE&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Ganged &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;O &lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; Devices(i) = &amp;quot;&lt;span style="color: #8b0000"&gt;20A GFI&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Ganged &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;G &lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; Devices(i) = &amp;quot;&lt;span style="color: #8b0000"&gt;20A GFI PROTECT DS&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Ganged &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;4G &lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; Devices(i) = &amp;quot;&lt;span style="color: #8b0000"&gt;20A HALF SWITCHED DUPLEX&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Ganged &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;OS &lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; Devices(i) = &amp;quot;&lt;span style="color: #8b0000"&gt;SINGLE POLE&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Ganged &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;S &lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Case&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Else&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Ganged &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;X &lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Select&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Next&lt;/span&gt; i&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;Now that we have all of our variables assigned to the description picked, a problem has arose with my approach.&amp;#160; Sometimes, there are empty slots within these boxes that still need to be designated by an X, but only if they are contained within the string.&amp;#160; For example: (O X G OS S X S).&amp;#160; This is valid, but my code will assign X’s to every combo box that is blank or equal to “”.&amp;#160; I need this to happen to accommodate for the empty slots within the box.&amp;#160; The challenge comes when the box has less than 7 devices.&amp;#160; The string could look like this: (S X G X X X X).&amp;#160; Thinking outside of the box, I came up with this solution:&lt;/p&gt;&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Do&lt;/span&gt; &lt;span style="color: #0000ff"&gt;While&lt;/span&gt; UCase(Left(Right(Trim(Ganged), 1), 1)) = &amp;quot;&lt;span style="color: #8b0000"&gt;X&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;GangedLength = Len(Ganged)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = Left(Right(Trim(Ganged), GangedLength), GangedLength - 1)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Loop&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Ganged = &amp;quot;&lt;span style="color: #8b0000"&gt;(&lt;/span&gt;&amp;quot; &amp;amp; Trim(Ganged) &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;)&lt;/span&gt;&amp;quot;&lt;/pre&gt;&lt;/pre&gt;Seems to be working just fine now.&amp;#160; Any of these strings that end with X get cut off until I’m left with a value that doesn’t equal X.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-4247262009542573896?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/4247262009542573896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/10/vba-string-manipulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4247262009542573896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4247262009542573896'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/10/vba-string-manipulation.html' title='VBA – String Manipulation'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-7526410561487204151</id><published>2010-10-21T14:30:00.003-04:00</published><updated>2012-01-24T10:13:40.351-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPDatasource'/><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='List Views'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='CAML'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint: Integrate ASP.net controls with Forms – Pt4: Trimming Drop Down List results using CAML</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html"&gt;Pt.1: Use an SP Datasource to push values to a drop-down menu control&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html"&gt;Pt2: Adding a DVWP Form to the page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html"&gt;Pt3: Update the DVWP Form using a Drop-Down&lt;/a&gt;&lt;br /&gt;Pt4: Trimming Drop Down List results using CAML&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html"&gt;Part 5: Force Selection within Drop Down List&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html"&gt;Pt6: Bonus: Embed documents to page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;ACK!!! CODE!!!&lt;/h4&gt;I’ve been writing these posts by using a &lt;strong&gt;*real*&lt;/strong&gt; no code approach, sort of.&amp;nbsp; I have a very different view of what no code means, but that’s a different story altogether.&amp;nbsp; However, this article I’d like to have you peer into the dark-side.&amp;nbsp; I know all too well myself, viewing code can make your eyes bug out, but I do feel it’s necessary at some point to learn.&amp;nbsp; I’ve taught myself most of the programming skills I possess today, so I know you can too.&amp;nbsp; I understand trying to learn these languages on your own can be a real burden, so if you don’t understand how it works, just try it anyway.&amp;nbsp; The worst that will happen is the solution will not work.&amp;nbsp; There’s no shame in trying and if it does work, then you can impress your boss!&lt;br /&gt;&lt;h4&gt;DVWP &amp;amp; CAML&lt;/h4&gt;We should probably look at how these two are related.&amp;nbsp; &lt;a href="http://www.bing.com/search?q=caml+sharepoint+tutorial+dvwp" target="_blank"&gt;CAML&lt;/a&gt; (Collaborative Application Markup Language) queries are the instructions within the &lt;a href="http://mattbramer.blogspot.com/search/label/DVWP" target="_blank"&gt;DVWP&lt;/a&gt; or &lt;a href="http://www.sharepointnutsandbolts.com/2008/06/spdatasource-every-sharepoint-developer.html" target="_blank"&gt;SPDatasource&lt;/a&gt; that controls what data is retrieved from the database.&amp;nbsp; The CAML query is hidden from you unless you know what you are looking for.&amp;nbsp; Here’s a sample line of code that contains a CAML query:&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;SharePoint&lt;/span&gt;:&lt;span style="color: maroon;"&gt;SPDataSource&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;=&lt;span style="color: blue;"&gt;"server"&lt;/span&gt; &lt;span style="color: red;"&gt;DataSourceMode&lt;/span&gt;=&lt;span style="color: blue;"&gt;"List"&lt;/span&gt; &lt;span style="color: red;"&gt;SelectCommand&lt;/span&gt;=&lt;span style="color: blue;"&gt;"&amp;amp;lt;View&amp;amp;gt;&amp;amp;lt;/View&amp;amp;gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;UseInternalName&lt;/span&gt;=&lt;span style="color: blue;"&gt;"True"&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;=&lt;span style="color: blue;"&gt;"dataformwebpart2"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;Within this line of code is a &lt;strong&gt;SelectCommand&lt;/strong&gt;.&amp;nbsp; This command combined with the CAML: &lt;strong&gt;"&amp;amp;lt;View&amp;amp;gt;&amp;amp;lt;/View&amp;amp;gt;"&lt;/strong&gt; will control what information is displayed to us in the browser.&amp;nbsp; I wont get into all of the details here, but I thought it would be important to show you what’s happening under the hood.&lt;br /&gt;&lt;h4&gt;Okay CAML, I sort of get it.&amp;nbsp; Now what?&lt;/h4&gt;What we want to do is trim the results of the Drop Down List to only show what items have been created by the currently logged in user.&amp;nbsp; To do that, we need to update the &lt;strong&gt;SelectCommand &lt;/strong&gt;for our SPDatasource with our own CAML.&amp;nbsp; What I like to do is search for the SelectCommand by clicking into the Code View window, and then clicking on Edit, Find.&amp;nbsp; &lt;em&gt;&lt;span style="color: red;"&gt;Remember to click into the code view at the top of the page.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TL-k7BsaWjI/AAAAAAAAAOo/w84cXNPfs8o/s1600-h/image%5B2%5D.png"&gt;&lt;img alt="image" border="0" height="194" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TL-k7jzvYBI/AAAAAAAAAOs/ojICVq2TnRw/image_thumb.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="244" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TL-0wcTtOiI/AAAAAAAAAOw/TTonZ6cD56g/s1600-h/image%5B7%5D.png"&gt;&lt;img alt="image" border="0" height="255" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TL-0w-BHElI/AAAAAAAAAO0/9iMEQi9GFJ8/image_thumb%5B3%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="515" /&gt;&lt;/a&gt; &lt;br /&gt;If you’ve followed along from &lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html" target="_blank"&gt;Step 1&lt;/a&gt;, then the first &lt;strong&gt;SelectCommand&lt;/strong&gt; that you’ll find is the one we’ll need to update.&amp;nbsp; The code should look similar to this:&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;SharePoint&lt;/span&gt;:&lt;span style="color: maroon;"&gt;SPDataSource&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;=&lt;span style="color: blue;"&gt;"server"&lt;/span&gt; &lt;span style="color: red;"&gt;DataSourceMode&lt;/span&gt;=&lt;span style="color: blue;"&gt;"List"&lt;/span&gt; &lt;span style="color: red;"&gt;UseInternalName&lt;/span&gt;=&lt;span style="color: blue;"&gt;"true"&lt;/span&gt; &lt;span style="color: red;"&gt;selectcommand&lt;/span&gt;=&lt;span style="color: blue;"&gt;"&amp;amp;lt;View&amp;amp;gt;&amp;amp;lt;/View&amp;amp;gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;id&lt;/span&gt;=&lt;span style="color: blue;"&gt;"spdatasource1"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;SelectParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;SelectParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;DeleteParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;DeleteParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;UpdateParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;UpdateParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;InsertParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;InsertParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;SharePoint&lt;/span&gt;:&lt;span style="color: maroon;"&gt;SPDataSource&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;We’ll need to only update the &lt;strong&gt;SelectCommand&lt;/strong&gt; with our custom &lt;strong&gt;CAML&lt;/strong&gt; query:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&amp;amp;lt;View&amp;amp;gt;&amp;amp;lt;Query&amp;amp;gt;&amp;amp;lt;Where&amp;amp;gt;&amp;amp;lt;Eq&amp;amp;gt;&amp;amp;lt;FieldRef Name=&amp;amp;quot;Author&amp;amp;quot;/&amp;amp;gt;&amp;amp;lt;Value Type=&amp;amp;quot;Integer&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;UserID/&amp;amp;gt;&amp;amp;lt;/Value&amp;amp;gt;&amp;amp;lt;/Eq&amp;amp;gt;&amp;amp;lt;/Where&amp;amp;gt;&amp;amp;lt;/Query&amp;amp;gt;&amp;amp;lt;/View&amp;amp;gt;&lt;/pre&gt;The final result should look similar to this:&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;SharePoint&lt;/span&gt;:&lt;span style="color: maroon;"&gt;SPDataSource&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;=&lt;span style="color: blue;"&gt;"server"&lt;/span&gt; &lt;span style="color: red;"&gt;DataSourceMode&lt;/span&gt;=&lt;span style="color: blue;"&gt;"List"&lt;/span&gt; &lt;span style="color: red;"&gt;UseInternalName&lt;/span&gt;=&lt;span style="color: blue;"&gt;"true"&lt;/span&gt; &lt;span style="color: red;"&gt;selectcommand&lt;/span&gt;=&lt;span style="color: blue;"&gt;"&amp;amp;lt;View&amp;amp;gt;&amp;amp;lt;Query&amp;amp;gt;&amp;amp;lt;Where&amp;amp;gt;&amp;amp;lt;Eq&amp;amp;gt;&amp;amp;lt;FieldRef Name=&amp;amp;quot;Author&amp;amp;quot;/&amp;amp;gt;&amp;amp;lt;Value Type=&amp;amp;quot;Integer&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;UserID/&amp;amp;gt;&amp;amp;lt;/Value&amp;amp;gt;&amp;amp;lt;/Eq&amp;amp;gt;&amp;amp;lt;/Where&amp;amp;gt;&amp;amp;lt;/Query&amp;amp;gt;&amp;amp;lt;/View&amp;amp;gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;id&lt;/span&gt;=&lt;span style="color: blue;"&gt;"spdatasource1"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;SelectParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;SelectParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;DeleteParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;DeleteParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;UpdateParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;UpdateParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;InsertParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;asp&lt;/span&gt;:&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"ListID"&lt;/span&gt; &lt;span style="color: red;"&gt;DefaultValue&lt;/span&gt;=&lt;span style="color: blue;"&gt;"{D3CB17ED-B351-4463-94E5-9C4863A3CEA3}"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;InsertParameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: mediumvioletred;"&gt;SharePoint&lt;/span&gt;:&lt;span style="color: maroon;"&gt;SPDataSource&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;Now would be a good time to save your work!&amp;nbsp; When we view the page now, all you will see in the Drop Down is the documents you’ve created.&amp;nbsp; When a different user views this page, the same will hold true.&amp;nbsp; They’ll only view the documents that they’ve created.&amp;nbsp; With this tiny piece of CAML, you can see how easy it can be to change the interaction within the page.&amp;nbsp; Don’t lock yourself into a box either, CAML will allow you to filter anything within the list.&amp;nbsp; So, if I wanted to, I could change the CAML to retrieve the only the documents I’ve created and also&amp;nbsp; if the DocCategory equals: I’ve been slacking.&amp;nbsp; Try to be as creative as you can, I think you’ll be impressed with what you can do with this.&lt;br /&gt;&lt;h4&gt;&lt;b&gt;CAML is tough to learn.&amp;nbsp; Is there an easier way?&lt;/b&gt;&lt;/h4&gt;Absolutely!&amp;nbsp; There are several ways of learning CAML.&amp;nbsp; First you &lt;b&gt;*could*&lt;/b&gt; decipher the &lt;a href="http://msdn.microsoft.com/en-us/library/ms462365.aspx"&gt;official documentation&lt;/a&gt; for CAML on MSDN or you can try out these 2 different approaches.&amp;nbsp; First up is to crack open your Document Library and create a view.&amp;nbsp; Let’s filter this library for all Docs created by [Me] AND when the DocCategory equals: I’ve been slacking.&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TMBEYF7PKII/AAAAAAAAAO4/fUz-jQkyO4I/s1600-h/image%5B6%5D.png"&gt;&lt;img alt="image" border="0" height="225" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TMBEYnU101I/AAAAAAAAAPA/OFGDvyzV5SQ/image_thumb%5B4%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="523" /&gt;&lt;/a&gt;&lt;br /&gt;Once you’ve created this view, you’ll notice in SPD, the view appears as an .aspx page.&amp;nbsp; If it doesn’t, refresh SPD by pressing F5 and it’ll be there.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TMBJ8IUqYTI/AAAAAAAAAPI/jbmOqmFlKxY/s1600-h/image%5B9%5D.png"&gt;&lt;img alt="image" border="0" height="206" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TMBJ8tvrfZI/AAAAAAAAAPM/nmQfA_5h0HY/image_thumb%5B5%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;We need to open this page and convert this Web Part into an XSLT View.&amp;nbsp; I do that by right clicking on the Web Part and selecting; you guessed it: Convert To XSLT Data View.&amp;nbsp; Once this has been converted, we can search through the code for our &lt;b&gt;SelectCommand&lt;/b&gt;.&amp;nbsp; Yep, we just used SharePoint Designer as a CAML code generator.&amp;nbsp; Pretty cool eh?&amp;nbsp; I use this approach when I know my filters are going to be more complex than normal.&amp;nbsp; I can take it as far as I can before I have to tweak it manually.&amp;nbsp; So that’s one way to start learning CAML.&amp;nbsp; &lt;br /&gt;Next up is to use the free CAML Builders that are on the internet.&amp;nbsp; These two are the best I’ve found: &lt;a href="http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx"&gt;U2U CAML Query Builder&lt;/a&gt; &amp;amp; &lt;a href="http://spcamlviewer.codeplex.com/"&gt;Stramit CAML Viewer&lt;/a&gt;.&amp;nbsp; These work a little differently than the first method, but you can build your code all the same.&amp;nbsp; I suggest downloading both of them and experimenting with the capabilities of both.&amp;nbsp; I’m still learning the nuances of CAML myself, so I always use these different methods to generate my code.&amp;nbsp; Once you’ve generated the code, learning the language will take you to the next level and allow you to produce some very cool results.&amp;nbsp; &lt;br /&gt;You’ll also notice when you use these two tools, the code is in this format:&lt;br /&gt;&lt;pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;View&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Query&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Where&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Eq&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;FieldRef&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;=&lt;span style="color: blue;"&gt;"Author"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Value&lt;/span&gt; &lt;span style="color: red;"&gt;Type&lt;/span&gt;=&lt;span style="color: blue;"&gt;"Integer"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;UserID&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Value&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Eq&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Where&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Query&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;View&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;You’ll need to escape this code in order to work well with your DVWP or SPDatasource.&amp;nbsp; I’ve wrote a &lt;a href="http://mattbramer.blogspot.com/2010/07/convert-xml-to-caml-query-with.html"&gt;PowerShell script&lt;/a&gt; to do just that or you can use the &lt;a href="http://www.myxmltools.com/xml-escape-tool.shtml"&gt;XML Escape Tool&lt;/a&gt;.&amp;nbsp; Both of these will convert all of the characters that aren’t allowed in the &lt;b&gt;SelectCommand &lt;/b&gt;into characters that are allowed.&amp;nbsp; I’ve listed them below for you: &lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="2" cellspacing="0" style="width: 400px;"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;Original Character&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;Escaped&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;‘&lt;/div&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;amp;apos;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;“&lt;/div&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;amp;quot;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;amp;&lt;/div&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;amp;amp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;lt;&lt;/div&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;amp;lt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&lt;br /&gt;&lt;div align="center"&gt;&amp;amp;gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;i&gt;&lt;span style="color: red;"&gt;Note: The CAML query cannot contain any white space.&lt;/span&gt;&amp;nbsp; &lt;span style="color: red;"&gt;The code must also be in one continuous line.&lt;/span&gt;&lt;/i&gt;&lt;i&gt; &lt;/i&gt;It sounds like a lot of steps, but once you get the hang of it, you’ll be flying through this stuff.&amp;nbsp;&amp;nbsp; Post a comment and let me know which method you like the best.&lt;br /&gt;&lt;h4&gt;&lt;b&gt;What’s next?&lt;/b&gt;&lt;/h4&gt;This article wasn’t supposed to be this long, but in the end, I felt it was necessary.&amp;nbsp; Hopefully it was clear enough to follow.&amp;nbsp; There’s still one more tweak I’d like to show you.&amp;nbsp; With the next article, I’ll show you how to force a selection within the Drop Down List.&amp;nbsp; This will make the page a bit more user friendly, so that’s always worth the extra effort.&amp;nbsp; I promise, we’ll jump out of code view and start clicking around more: Screenshots and all…&amp;nbsp; Are you still interested?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1c1220c7-0683-4865-acee-b9c288f57f5a" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DVWP" rel="tag"&gt;DVWP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CAML" rel="tag"&gt;CAML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MOSS+2007" rel="tag"&gt;MOSS 2007&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WSS+3.0" rel="tag"&gt;WSS 3.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sharepoint" rel="tag"&gt;Sharepoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/List+Views" rel="tag"&gt;List Views&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Data+View+Web+Part" rel="tag"&gt;Data View Web Part&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SPDatasource" rel="tag"&gt;SPDatasource&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-7526410561487204151?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/7526410561487204151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7526410561487204151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7526410561487204151'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html' title='SharePoint: Integrate ASP.net controls with Forms – Pt4: Trimming Drop Down List results using CAML'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_ywO7MX0I9V8/TL-k7jzvYBI/AAAAAAAAAOs/ojICVq2TnRw/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-3564643734748301735</id><published>2010-10-18T16:55:00.000-04:00</published><updated>2010-10-18T16:59:19.684-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InterWebs'/><title type='text'>Block sites using the HOSTS file</title><content type='html'>&lt;p&gt;While I know this isn’t anything new, I have been asked 3 times this week how to easily block sites.&amp;#160; It’s really simple.&amp;#160; It revolves around &lt;a href="http://en.wikipedia.org/wiki/Domain_Name_System" target="_blank"&gt;DNS&lt;/a&gt; and it’s basic principles.&amp;#160; There are ways to subvert this technique, but it should suffice for parents trying to lock down a certain website on a child’s laptop.&amp;#160; It’s is better to look at your other options though.&amp;#160; I’d suggest using &lt;a href="http://windows.microsoft.com/en-US/Windows7/products/features/parental-controls" target="_blank"&gt;Parental Controls&lt;/a&gt; for a more robust solution.&lt;/p&gt;  &lt;h5&gt;Why not show the Parental Controls?&lt;/h5&gt;  &lt;p&gt;I’d then have to have it installed…&amp;#160; I don’t need it!&amp;#160; Like I said, this is for a quick easy win.&amp;#160; Let’s jump into it.&amp;#160; Open Windows Explorer and navigate to this folder: &lt;strong&gt;C:\Windows\System32\drivers\etc&lt;/strong&gt;&amp;#160; or for you geeks: “&lt;strong&gt;%windir%\System32\drivers\etc&lt;/strong&gt;”.&amp;#160; Within this folder is a file called hosts.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TLy1EqAf6cI/AAAAAAAAAOI/st-xfBflcI8/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TLy1E83fLDI/AAAAAAAAAOM/xPWEuI76UFE/image_thumb%5B5%5D.png?imgmax=800" width="468" height="325" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Right click the hosts file and select Open.&amp;#160; This will prompt you to choose which program to use.&amp;#160; Simply select Notepad from the list and press OK.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TLy1F6LTM-I/AAAAAAAAAOQ/X5d1o7A3vII/s1600-h/image%5B12%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TLy1GOTiruI/AAAAAAAAAOU/pqbb_i_vBqA/image_thumb%5B6%5D.png?imgmax=800" width="244" height="202" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This will open up the hosts file and allow you to make your changes.&amp;#160; If you have never seen this file before, let me explain it a bit.&amp;#160; This file used to be the backbone of the internet.&amp;#160; The domain name you’d type into your browser would check this host file and know where to go in order to find the web site.&amp;#160; When the internet became too large a better solution was needed, hence &lt;a href="http://en.wikipedia.org/wiki/Domain_Name_System" target="_blank"&gt;DNS&lt;/a&gt;.&amp;#160; What some people don’t know, is your computer checks this file first before querying any DNS server for an IP address.&amp;#160; So a quick edit here, will allow you to redirect all traffic to, let’s say: Facebook.com.&amp;#160; &lt;/p&gt;  &lt;h5&gt;Nice!&amp;#160; What do I type?&lt;/h5&gt;  &lt;p&gt;When you first open the hosts file, it should look just like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TLy1HlcTOtI/AAAAAAAAAOY/fBMowwgu6iM/s1600-h/image%5B19%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TLy1H8iy9LI/AAAAAAAAAOc/gge45-NHxsc/image_thumb%5B11%5D.png?imgmax=800" width="473" height="299" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What is nice, is there are some examples on how to use the hosts file.&amp;#160; All of these lines are already commented by: &lt;strong&gt;#&amp;#160; &lt;/strong&gt;So as long as that line has an &lt;strong&gt;#&lt;/strong&gt;, any text will not have any effect.&amp;#160; What you need to do is type an &lt;a href="http://en.wikipedia.org/wiki/IP_address" target="_blank"&gt;IP address&lt;/a&gt; that isn’t capable of internet traffic.&amp;#160; I typically always use: &lt;strong&gt;127.0.0.1&lt;/strong&gt;.&amp;#160; I’ll leave it up to you to find out why I use that address.&amp;#160; So all we have to do is add this line:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;127.0.0.1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; facebook.com&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As soon as you save this hosts file, all traffic bound for facebook.com, will now be routed to 127.0.0.1.&amp;#160; It’s just that easy…&amp;#160; Here’s a screenshot of what the file should look like after the edits:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TLy1JGh4n1I/AAAAAAAAAOg/OV842eLqGsE/s1600-h/image%5B23%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TLy1JoX4wvI/AAAAAAAAAOk/ax4Lo-AHWqs/image_thumb%5B13%5D.png?imgmax=800" width="471" height="279" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:00dcd851-4fea-4a5a-8353-e0cee6763998" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/hosts+file" rel="tag"&gt;hosts file&lt;/a&gt;,&lt;a href="http://technorati.com/tags/security" rel="tag"&gt;security&lt;/a&gt;,&lt;a href="http://technorati.com/tags/dns" rel="tag"&gt;dns&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-3564643734748301735?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/3564643734748301735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/10/block-sites-using-hosts-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3564643734748301735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3564643734748301735'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/10/block-sites-using-hosts-file.html' title='Block sites using the HOSTS file'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ywO7MX0I9V8/TLy1E83fLDI/AAAAAAAAAOM/xPWEuI76UFE/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-4350629511391230944</id><published>2010-10-08T20:36:00.003-04:00</published><updated>2012-01-24T10:12:56.087-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint: Integrate ASP.net controls with Forms – Pt3: Update the DVWP Form using a Drop-Down</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html"&gt;Pt.1: Use an SP Datasource to push values to a drop-down menu control&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html"&gt;Pt2: Adding a DVWP Form to the page&lt;/a&gt;&lt;br /&gt;Pt3: Update the DVWP Form using a Drop-Down&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html"&gt;Pt4: Trimming Drop Down List results using CAML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html"&gt;Part 5: Force Selection within Drop Down List&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html"&gt;Pt6: Bonus: Embed documents to page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now that we have a good base, we can move this form along into something useful. Essentially what we are going to do is have the Drop Down List display the correct Edit Form for that document. Let’s get to it, shall we?&lt;br /&gt;&lt;h4&gt;&lt;b&gt;Create a parameter&lt;/b&gt;&lt;/h4&gt;First we need to open up the DVWP’s &lt;b&gt;Common Data View Tasks&lt;/b&gt;, by clicking on the chevron again and then clicking on &lt;b&gt;Parameters…&lt;/b&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TK-36NbqUkI/AAAAAAAAANQ/Cq0hVuvH6Lo/s1600-h/image%5B26%5D.png" target="_blank"&gt;&lt;img alt="image" border="0" height="244" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TK-36jASgsI/AAAAAAAAANU/sgk_cdyduzI/image_thumb%5B16%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="208" /&gt;&lt;/a&gt; &lt;br /&gt;This will open up a confusing dialog box, if you’ve never used this before. Here’s a screenshot:&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TK-37M_Vo0I/AAAAAAAAANY/4D5F5Bv98Jw/s1600-h/image%5B23%5D.png" target="_blank"&gt;&lt;img alt="image" border="0" height="296" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TK-37TWbpVI/AAAAAAAAANc/zvixIuZCH-E/image_thumb%5B15%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="616" /&gt;&lt;/a&gt; &lt;br /&gt;I’ve found that generally, there will always be a ListID already setup for you. Sometimes, there are others, but I haven’t seen consistency with other parameters. I leave these alone. There’s no need to disturb Mother SharePoint. She knows best! What we need to do is create a &lt;b&gt;New Parameter&lt;/b&gt;. After clicking on &lt;b&gt;New Parameter&lt;/b&gt;, you get an opportunity to name the parameter. I always name the parameter something I can instantly recognize. I’ve named mine: ddlSharedDocs. The prefix: ddl stands for Drop Down List and since this parameter is going to be used for the Shared Documents library, it makes sense to use SharedDocs. The next piece is to set the &lt;b&gt;Parameter Source&lt;/b&gt; to &lt;b&gt;Control&lt;/b&gt;. After doing that another selection appears called: &lt;b&gt;Control ID&lt;/b&gt;.&lt;br /&gt;I click the what, with the what, and then…. What does all of this actually do? If you remember, we configured the &lt;b&gt;SPDatasource&lt;/b&gt; to display the &lt;b&gt;LinkFileName&lt;/b&gt; (code for the column: Name) and to have a value of &lt;b&gt;ID&lt;/b&gt;. That simply means display all of the names, but when you select a name the value equals the ID related to the document. You’ll see why this is so important in the next step.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TK-37_boyhI/AAAAAAAAANg/o1Hi-hT3XFY/s1600-h/image%5B18%5D.png" target="_blank"&gt;&lt;img alt="image" border="0" height="372" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TK-38STpVkI/AAAAAAAAANk/oUuk4YG-95M/image_thumb%5B12%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="600" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;h4&gt;&lt;b&gt;Sweet, still no code!&lt;/b&gt;&lt;/h4&gt;If you save the page and open it, the control STILL doesn’t do anything when you select a new value… Yep, that’s right, one final step. We need to wire up the Parameter to the ID of the DVWP Form. Don’t worry; it’s not as hard as it sounds. Let’s dive into the &lt;b&gt;Common Data View Tasks&lt;/b&gt; dialog again and click on Filter. Now all we have to do is select ID and make it Equal to ddlSharedDocs. Here’s a screenshot of what it should look like:&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TK-387GVxaI/AAAAAAAAANo/ZBYUKfQrwi8/s1600-h/image%5B15%5D.png" target="_blank"&gt;&lt;img alt="image" border="0" height="270" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TK-39MlmXSI/AAAAAAAAANs/F0y2VO50RxY/image_thumb%5B9%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="588" /&gt;&lt;/a&gt; &lt;br /&gt;Press OK and now let’s see what this page does. Now within this page, we have a &lt;b&gt;Drop Down List&lt;/b&gt; that’s populated from an &lt;b&gt;SPDatasource. &lt;/b&gt;This data source is pulling the Names of all of the documents within the Shared Documents Library. When you click on a name within the Drop Down List, the &lt;b&gt;DVWP Form&lt;/b&gt; for that document appears because it’s filtered by ID. Now we can easily modify metadata that relates to these documents. Here’s a screenshot of what it looks like:&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TK-39i1OYBI/AAAAAAAAANw/WjDw07HI9Yo/s1600-h/image%5B4%5D.png" target="_blank"&gt;&lt;img alt="image" border="0" height="278" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TK-5C2xuZiI/AAAAAAAAAN0/s_nE4fVAEi8/image_thumb%5B2%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="590" /&gt;&lt;/a&gt; &lt;br /&gt;Sure there’s datasheet view for bulk updating records, but I’m showing a simple example of what is possible. There are many, many cool things you can do with parameters. This only covers a very small portion. Here’s a great link that gives ideas on how you &lt;b&gt;*could*&lt;/b&gt; use them: &lt;a href="http://www.sharepointnutsandbolts.com/2008/07/spdatasource-every-developer-friend.html"&gt;http://www.sharepointnutsandbolts.com/2008/07/spdatasource-every-developer-friend.html&lt;/a&gt;. It’s ok if this look like Japanese to you. I’m still learning new tricks from this page myself and refer to it all the time. When you start using Parameters, Controls, and SPDatasources, it’s really opening up a whole new set of tools; “&lt;b&gt;&lt;a href="http://www.sympraxisconsulting.com/Public%20Documents/White%20Paper%20-%20The%20Middle%20Tier%20Manifesto%20-%20Edition%201.pdf" target="_blank"&gt;Middle-Tier&lt;/a&gt; Power Tools&lt;/b&gt;”. I invite you to learn more about how to use them. We can trade notes…&lt;br /&gt;&lt;h4&gt;&lt;b&gt;But wait, there’s more?&lt;/b&gt;&lt;/h4&gt;Of course there is, there’s always something more you &lt;b&gt;*could*&lt;/b&gt; do… Within these articles, we’ve not touched code one bit. Now it’s time to drizzle a few tiny tweaks into the mix. Don’t be shy, not only will you impress your users, you may impress your boss enough to get a raise. That’s a true story by the way. In the next article, I’ll show you how to trim the Drop Down List to only show documents created by the user viewing the page. I’ll also show you how to configure the Drop Down List to force a selection. As always, post a comment if you’d like for me to explore something we &lt;b&gt;*could*&lt;/b&gt; do.&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b10af42e-0df8-4080-8820-4cadca29821f" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DVWP" rel="tag"&gt;DVWP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MOSS" rel="tag"&gt;MOSS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WSS+3.0" rel="tag"&gt;WSS 3.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SharePoint+Designer" rel="tag"&gt;SharePoint Designer&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.net" rel="tag"&gt;ASP.net&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-4350629511391230944?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/4350629511391230944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4350629511391230944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/4350629511391230944'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html' title='SharePoint: Integrate ASP.net controls with Forms – Pt3: Update the DVWP Form using a Drop-Down'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/TK-36jASgsI/AAAAAAAAANU/sgk_cdyduzI/s72-c/image_thumb%5B16%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8220757411170260880</id><published>2010-10-06T14:48:00.000-04:00</published><updated>2010-10-06T14:50:40.984-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>PowerShell: Backup Script</title><content type='html'>&lt;p&gt;I hooked up a quick script to backup important items from a PC.&amp;#160; It’s is a quick and dirty solution that I may revisit sometime in the future with enhancements.&amp;#160; &lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  1: # http:&lt;span style="color: #008000"&gt;//geekswithblogs.net/Lance/archive/2009/12/29/program-files-environment-variable-in-powershell.aspx&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  2: # http:&lt;span style="color: #008000"&gt;//itknowledgeexchange.techtarget.com/powershell/deleting-files-older-than-a-certain-date/&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  3: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  4: $Today = (Get-&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt; -format &amp;quot;&lt;span style="color: #8b0000"&gt;yyyy-MM-dd&lt;/span&gt;&amp;quot;)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  5: $targetFolder = &amp;quot;&lt;span style="color: #8b0000"&gt;\\BackupServer\Share&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  6: $backupDir = &amp;quot;&lt;span style="color: #8b0000"&gt;$targetFolder\$env:username\$Today&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  7: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  8: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Remove-Items&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  9: { &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 10:     $testFolderPath = $targetFolder&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 11: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 12:     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Test-Path -Path $testFolderPath)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 13:     { &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 14:         $fiveDaysAgo = (Get-&lt;span style="color: #0000ff"&gt;Date&lt;/span&gt;).AddDays(-5)        &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 15:         Get-ChildItem -Path $testFolderPath -Recurse | Where-Object { $_.CreationTime -lt $fiveDaysAgo } | Remove-Item -recurse -force&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 16:     }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 17:     &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 18:     {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 19:         Write-Host &amp;quot;&lt;span style="color: #8b0000"&gt;$testFolderPath does not exist.&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 20:         #Kill Script&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 21:         Exit&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 22:     }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 23: }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 24: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 25: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; is64bit()&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 26: {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 27:   &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; ([IntPtr]::Size -eq 8)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 28: }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 29: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 30: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Get-ProgramFilesDir()&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 31: {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 32:   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (is64bit -eq $&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;) {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 33:     (Get-Item &amp;quot;&lt;span style="color: #8b0000"&gt;Env:ProgramFiles(x86)&lt;/span&gt;&amp;quot;).Value&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 34:   }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 35:   &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 36:     (Get-Item &amp;quot;&lt;span style="color: #8b0000"&gt;Env:ProgramFiles&lt;/span&gt;&amp;quot;).Value&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 37:   }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 38: }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 39: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 40: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Create-Folders &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 41: { &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 42:     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Test-Path -Path $backupDir) &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 43:     { &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 44:         #&lt;span style="color: #0000ff"&gt;do&lt;/span&gt; nothing. Folders have been setup already&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 45:     }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 46:     &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 47:     {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 48:         md &amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir&lt;/span&gt;&amp;quot; -force&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 49:     }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 50: }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 51: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 52: # Remove Folders older than $fivedaysago&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 53: Remove-Items&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 54: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 55: # Kills Outlook &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; preparation &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; backup&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 56: &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;((get-process &amp;quot;&lt;span style="color: #8b0000"&gt;OUTLOOK&lt;/span&gt;&amp;quot; -ea SilentlyContinue) -eq $Null){ }&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;{ Stop-Process -processname Outlook }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 57: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 58: # Start backup operation&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 59: Create-Folders&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 60: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 61: #Robocopy /MIR /Z /COPYALL /MT:20 /R:5 /W:2 /NP &amp;quot;&lt;span style="color: #8b0000"&gt;$env:appdata\Microsoft\Outlook&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\OutlookAppdata&lt;/span&gt;&amp;quot; /LOG+:&amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\backup.log&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 62: #Robocopy /MIR /Z /COPYALL /MT:20 /R:5 /W:2 /NP &amp;quot;&lt;span style="color: #8b0000"&gt;$env:userprofile\AppData\Local\Microsoft\Outlook&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\Outlook&lt;/span&gt;&amp;quot; /LOG+:&amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\backup.log&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 63: #Robocopy /MIR /Z /COPYALL /MT:20 /R:5 /W:2 /NP &amp;quot;&lt;span style="color: #8b0000"&gt;$env:userprofile\Documents&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\Docs&lt;/span&gt;&amp;quot; /LOG+:&amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\backup.log&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 64: #Robocopy /MIR /Z /COPYALL /MT:20 /R:5 /W:2 /NP &amp;quot;&lt;span style="color: #8b0000"&gt;$env:userprofile\Favorites&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\Favorites&lt;/span&gt;&amp;quot; /LOG+:&amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\backup.log&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 65: #Robocopy /MIR /Z /COPYALL /MT:20 /R:5 /W:2 /NP &amp;quot;&lt;span style="color: #8b0000"&gt;$env:userprofile\Desktop&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\Desktop&lt;/span&gt;&amp;quot; /LOG+:&amp;quot;&lt;span style="color: #8b0000"&gt;$backupDir\backup.log&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 66: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 67: #Start Outlook&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 68: $programfilespath = Get-ProgramFilesDir&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 69: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 70: &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Test-Path -Path &amp;quot;&lt;span style="color: #8b0000"&gt;$programfilespath\Microsoft Office\Office12\Outlook.exe&lt;/span&gt;&amp;quot;) &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 71: {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 72:     Start-Process &amp;quot;&lt;span style="color: #8b0000"&gt;$programfilespath\Microsoft Office\Office12\Outlook.exe&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 73: }&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 74: &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 75: {&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 76:     Start-Process &amp;quot;&lt;span style="color: #8b0000"&gt;$programfilespath\Microsoft Office\Office11\Outlook.exe&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 77: }&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Please note: &lt;/strong&gt;&lt;em&gt;This script is designed for Vista and above.&amp;#160; It uses Robocopy to backup.&amp;#160; You can get Robocopy on XP by installing the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&amp;amp;displaylang=en" target="_blank"&gt;Resource Kit Tools&lt;/a&gt;.&amp;#160; I’ve only tested this on Vista and above though.&amp;#160; I’m also using version 2 of PowerShell.&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8220757411170260880?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8220757411170260880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/10/powershell-backup-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8220757411170260880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8220757411170260880'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/10/powershell-backup-script.html' title='PowerShell: Backup Script'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8121423912088872293</id><published>2010-09-30T21:04:00.003-04:00</published><updated>2012-01-24T10:11:41.354-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint: Integrate ASP.net controls with Forms – Pt2: Adding a DVWP Form to the page</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html"&gt;Pt.1: Use an SP Datasource to push values to a drop-down menu control&lt;/a&gt;&lt;br /&gt;Pt2: Adding a DVWP Form to the page&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html"&gt;Pt3: Update the DVWP Form using a Drop-Down&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html"&gt;Pt4: Trimming Drop Down List results using CAML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html"&gt;Part 5: Force Selection within Drop Down List&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html"&gt;Pt6: Bonus: Embed documents to page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If this post doesn’t make any sense, please read over the &lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html" target="_blank"&gt;first post&lt;/a&gt; in this series.&amp;nbsp; I’m going to keep building on each post and then tying them together at the end.&amp;nbsp; &lt;br /&gt;&lt;h5&gt;Adding the Web Part Zone&lt;/h5&gt;I always add a Web Part Zone to every custom page that I create.&amp;nbsp; Adding these zones allow you to easily modify the page by clicking on Site Actions &amp;gt; Edit Page.&amp;nbsp; Let’s first click in the correct area of the table, so we’ll get the placement of this zone just right.&amp;nbsp; If you remember, we had a table with 2 columns and 2 rows.&amp;nbsp; The first cell in this table is where we added the data source and the ASP.net control.&amp;nbsp; Directly below this, let’s add this zone.&amp;nbsp; Refer to this screenshot if this sounds confusing.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TKU3m1I6ygI/AAAAAAAAAMg/PsHIS991F5M/s1600-h/image%5B15%5D.png" target="_blank"&gt;&lt;img alt="image" border="0" height="180" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TKU3nS2KjYI/AAAAAAAAAMk/f-sAIkj5GuE/image_thumb%5B7%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="582" /&gt;&lt;/a&gt; &lt;br /&gt;With that out of the way, here’s how to add a Web Part Zone: Click Insert &amp;gt; SharePoint Controls &amp;gt; Web Part Zone.&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TKU3njE3ejI/AAAAAAAAAMo/6Txq19F1plE/s1600-h/image%5B21%5D.png"&gt;&lt;img alt="image" border="0" height="176" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TKU3oBmk4eI/AAAAAAAAAMs/Aj7eGxDI9-s/image_thumb%5B9%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h5&gt;Now onto the meat and potatoes…&lt;/h5&gt;What I like to do is click on that Zone and insert my Web Parts.&amp;nbsp; After all that is what it says to do, right?&amp;nbsp; Doing so, makes sure you are adding the DVWP to the correct location.&amp;nbsp; Here’s the steps to add the Edit Form to the page: Click Data View &amp;gt; Insert Data View…&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TKU3oc3OuyI/AAAAAAAAAMw/YSF7HbxDgBI/s1600-h/image%5B38%5D.png"&gt;&lt;img alt="image" border="0" height="171" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TKU3o_QPaLI/AAAAAAAAAM0/teeSEeJfu2Q/image_thumb%5B16%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="237" /&gt;&lt;/a&gt; &lt;br /&gt;Find your Shared Documents Library on the right within the Data Source Library Pane.&amp;nbsp; Click on the drop-down menu and select Show Data.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TKU3pBFo5CI/AAAAAAAAAM4/2qZRqn6YhrU/s1600-h/image%5B41%5D.png"&gt;&lt;img alt="image" border="0" height="244" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TKU3pdPzQ9I/AAAAAAAAAM8/j_bP8OllN0Y/image_thumb%5B17%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="153" /&gt;&lt;/a&gt; &lt;br /&gt;This will display all of the columns within your Library.&amp;nbsp; Within my library, I have a custom column already setup.&amp;nbsp; I’ve called it DocCategory.&amp;nbsp; I’m going to select every column (metadata), I’d like to have available for editing on my page.&amp;nbsp; After doing that, you’ll want to click: Insert Fields As &amp;gt; Single Item Form.&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TKU3php4nCI/AAAAAAAAANA/5RzuFFjOwLg/s1600-h/image%5B44%5D.png"&gt;&lt;img alt="image" border="0" height="244" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TKU3qC2txpI/AAAAAAAAANE/aA32AmNodMc/image_thumb%5B18%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="159" /&gt;&lt;/a&gt; &lt;br /&gt;I only have two columns, but that’s all that I need for this example.&amp;nbsp; Feel free to have 10, if you want!&amp;nbsp; The more columns you bring to the page, the more columns you’ll be able to edit.&lt;br /&gt;&lt;h5&gt;But it still doesn’t do anything!!!&lt;/h5&gt;I know, I know… Stick with me and I’m sure you’ll find something useful.&amp;nbsp; So far, we’ve added our ASP.net drop-down list, a Web Part Zone, and a DVWP Edit Form.&amp;nbsp; Here’s a screenshot of where we should be at this point:&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TKU3qg9dGjI/AAAAAAAAANI/QIaGqDkWP0U/s1600-h/image%5B35%5D.png"&gt;&lt;img alt="image" border="0" height="330" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TKU3rHEG_HI/AAAAAAAAANM/qDSBnOBYaFs/image_thumb%5B15%5D.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="image" width="586" /&gt;&lt;/a&gt; &lt;br /&gt;The next few articles, I’ll show you how to filter this Web Part using the ASP.net control and create a more dynamic Edit Form.&amp;nbsp; If you have a question or suggestion, feel free to post a comment.&amp;nbsp; I’ve already came up with a few myself.&amp;nbsp; Please don’t be shy because you don’t understand the title.&amp;nbsp; I love screenshots and am a visual learner.&amp;nbsp; I promise you will get plenty of screenshots along the way.&amp;nbsp; If you need more, maybe I’ll do a video, just let me know if something isn’t making sense.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;var addthis_pub="remy20000000000";&lt;/script&gt;&lt;a href="http://www.addthis.com/bookmark.php?v=20"&gt;&lt;img alt="Bookmark and Share" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px;" width="125" /&gt;&lt;/a&gt;&lt;script src="http://s7.addthis.com/js/200/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8121423912088872293?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8121423912088872293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8121423912088872293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8121423912088872293'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html' title='SharePoint: Integrate ASP.net controls with Forms – Pt2: Adding a DVWP Form to the page'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_ywO7MX0I9V8/TKU3nS2KjYI/AAAAAAAAAMk/f-sAIkj5GuE/s72-c/image_thumb%5B7%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-2662376887889226398</id><published>2010-09-26T21:08:00.000-04:00</published><updated>2012-01-24T10:09:33.245-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>SharePoint: Integrate ASP.net controls with Forms - Pt.1: Use an SP Datasource to push values to a drop-down menu control</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Pt.1: Use an SP Datasource to push values to a drop-down menu control&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls_30.html"&gt;Pt2: Adding a DVWP Form to the page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls.html"&gt;Pt3: Update the DVWP Form using a Drop-Down&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_21.html"&gt;Pt4: Trimming Drop Down List results using CAML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/10/sharepoint-integrate-aspnet-controls_28.html"&gt;Part 5: Force Selection within Drop Down List&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mattbramer.blogspot.com/2010/11/sharepoint-integrate-aspnet-controls.html"&gt;Pt6: Bonus: Embed documents to page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I’d like to start this post of with giving credit where credit is due: &lt;a href="http://blogs.msdn.com/b/sharepointdesigner/archive/2007/03/05/asp-net-controls-filter-the-data-view.aspx" target="_blank"&gt;ASP.NET Controls Filter the Data View&lt;/a&gt;.&amp;nbsp; Finding this post was key to the end solution.&amp;nbsp; Within this post, I’d like to elaborate on some of the things you should know and make it a bit more end-user friendly.&amp;nbsp; Also, over the next few articles, I’m going to show you how to make an interactive Edit Form for a Document Library using this ASP.net control.&lt;br /&gt;&lt;h5&gt;I’m interested, where do I start?&lt;/h5&gt;Glad you asked ;-P.&amp;nbsp; Typically, what I do is crack open SPD (SharePoint Designer) and create a blank .aspx page.&amp;nbsp; It’ll look similar to this:&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ4724-NqNI/AAAAAAAAALM/2rnaaC-g6AQ/s1600-h/image%5B4%5D.png"&gt;&lt;img alt="image" border="0" height="251" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TJ473JZrCNI/AAAAAAAAALQ/rHJswVvukHA/image_thumb%5B2%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="575" /&gt;&lt;/a&gt; &lt;br /&gt;The next step is to add a table to the page.&amp;nbsp; This will be the base for all of the content and will allow us to have a place to add controls and Web Part Zones.&amp;nbsp; I’ll talk more about in a later post.&amp;nbsp;&amp;nbsp; To add this click on Table from the menu bar and then click: Insert Table.&amp;nbsp; The next dialog box allows you to control how many columns and rows your table has.&amp;nbsp; For this example, I’m only going to have 2 of each.&amp;nbsp; All of the other options, I am using the default settings.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TJ473pYRY5I/AAAAAAAAALU/7gZLmuNVc3o/s1600-h/image%5B7%5D.png"&gt;&lt;img alt="image" border="0" height="244" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TJ474MJJsvI/AAAAAAAAALY/k2tZMNJ5_ZM/image_thumb%5B3%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="189" /&gt;&lt;/a&gt; &lt;br /&gt;Now that we have a place for our ASP.net control, we’ll need to add it to the page.&amp;nbsp; You can do that my clicking on Insert from the menu bar, select ASP.net controls, and then choose Dropdown List.&amp;nbsp; Here’s a screenshot of what that will look like:&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TJ474cccwbI/AAAAAAAAALc/msa4lVdnY_c/s1600-h/image%5B14%5D.png"&gt;&lt;img alt="image" border="0" height="190" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ475hPmNXI/AAAAAAAAALg/pnnu4PDEVOc/image_thumb%5B6%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="244" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;em&gt;It’s a good time to note, that you cannot add this control to a Web Part Zone.&amp;nbsp; Try with all of your might, it doesn’t work.&lt;/em&gt;&lt;br /&gt;&lt;h5&gt;This looks cool but what do I do with it?&lt;/h5&gt;We have to populate this Dropdown list with data.&amp;nbsp; For this example, we’re going to be creating a DataSource from my Shared Documents Library.&amp;nbsp; To do this, we have to click on Task Panes, DataSource Library.&amp;nbsp; From this pane, we can click on the Shared Documents menu and select Insert Data Source Control.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TJ4756cEisI/AAAAAAAAALk/MOhhAT0pEmI/s1600-h/image%5B20%5D.png"&gt;&lt;img alt="image" border="0" height="244" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ476MB07OI/AAAAAAAAALo/wNQPLcdNoLg/image_thumb%5B8%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="144" /&gt;&lt;/a&gt; &lt;br /&gt;Once we have the DataSource inserted to the page, we need to configure our Dropdown List (I personally like to change the tag properties of this control, but you don’t have to.).&amp;nbsp; To do that, click on the control.&amp;nbsp; A tiny chevron &lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TJ-_ha4hfnI/AAAAAAAAAL0/UOh0jNpd7GI/s1600-h/image%5B30%5D.png"&gt;&lt;img alt="image" border="0" height="20" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ-_hsZBTuI/AAAAAAAAAL4/7xDUatk4t88/image_thumb%5B12%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="20" /&gt;&lt;/a&gt; appears and when we click on that, a fly out menu appears.&amp;nbsp; Add a checkmark to: Enable AutoPostBack and then select the option to Choose Data Source.&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/TJ-_hxtKr5I/AAAAAAAAAL8/Jyr7vPzL6ec/s1600-h/image%5B40%5D.png"&gt;&lt;img alt="image" border="0" height="123" src="http://lh5.ggpht.com/_ywO7MX0I9V8/TJ-_iV8AqyI/AAAAAAAAAMA/XINeEUrgKks/image_thumb%5B16%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="244" /&gt;&lt;/a&gt; &lt;br /&gt;We want to wire this control up to our Shared Documents library.&amp;nbsp; Pick the same settings I have in this photo:&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ-_jsLRGCI/AAAAAAAAAME/Uc9cVDNVcNk/s1600-h/image%5B43%5D.png"&gt;&lt;img alt="image" border="0" height="191" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TJ-_kPMyxGI/AAAAAAAAAMI/VH8iE2DLELY/image_thumb%5B17%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="244" /&gt;&lt;/a&gt; &lt;br /&gt;This will populate the Dropdown List with all of the names of your documents that are in the Shared Documents library.&amp;nbsp; Selecting the ID for the data field will tell the page what value the selection should be set to.&amp;nbsp; Using ID, we’ll be able to get accurate results later on.&lt;br /&gt;&lt;h5&gt;It still doesn’t look like much?!?&lt;/h5&gt;Now we’ll add the master page to this custom page we have built so far.&amp;nbsp; Click on Format, Master Page, Attach Master Page.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TJ_ub2FP8uI/AAAAAAAAAMM/4XpJFBIR5wI/s1600-h/image%5B46%5D.png"&gt;&lt;img alt="image" border="0" height="211" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ_ucLSn8nI/AAAAAAAAAMQ/t4cqrguTZT4/image_thumb%5B18%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="244" /&gt;&lt;/a&gt; &lt;br /&gt;I’ve chosen my default master page.&amp;nbsp; If you have custom master pages, now is the time you would want to use that instead.&amp;nbsp; All we have to do now is save this page.&amp;nbsp; I already have an Apps Document Library setup, so that’s where I’ll be storing my page.&amp;nbsp; Here’s the end result:&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ_uclidJQI/AAAAAAAAAMU/jnXw0qERT-0/s1600-h/image%5B56%5D.png"&gt;&lt;img alt="image" border="0" height="272" src="http://lh3.ggpht.com/_ywO7MX0I9V8/TJ_udKtrUfI/AAAAAAAAAMY/Qnw5Ktz98HM/image_thumb%5B24%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="565" /&gt;&lt;/a&gt;&lt;br /&gt;The next article, I’m going to walk through adding a Web Part Zone and then a DVWP (Data View Web Part) as an Edit Form.&amp;nbsp; If you want me to add some things along the way, feel free to post a comment!&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4aec1898-c2fb-4840-8346-e5480b0612d4" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WSS+3.0" rel="tag"&gt;WSS 3.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MOSS" rel="tag"&gt;MOSS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DVWP" rel="tag"&gt;DVWP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.net" rel="tag"&gt;ASP.net&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-2662376887889226398?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/2662376887889226398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/2662376887889226398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/2662376887889226398'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/09/sharepoint-integrate-aspnet-controls.html' title='SharePoint: Integrate ASP.net controls with Forms - Pt.1: Use an SP Datasource to push values to a drop-down menu control'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ywO7MX0I9V8/TJ473JZrCNI/AAAAAAAAALQ/rHJswVvukHA/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-6217893192786082830</id><published>2010-09-22T17:00:00.001-04:00</published><updated>2010-11-12T16:40:52.163-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>RoboCopy vs. SyncToy</title><content type='html'>While this is not really an in depth comparison, this is more of a quick observation…&amp;nbsp; If you are looking for a backup solution, please, PLEASE pick one that can actually call itself a backup solution.&amp;nbsp; Here’s where SyncToy falls short:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Copy files in Restartable mode&lt;/strong&gt; ~ This allows for an intermittent network connection and will pick up where the copy operation left off.&amp;nbsp; This is great for those fiesty T1’s that love to chew up more time than they are worth.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Copy Access Rights&lt;/strong&gt; ~ So if you have intricate permissions set on your files (Who doesn’t ;-P), then you will miss out on all of this glory.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Monitor Source&lt;/strong&gt; ~ WOW… What a capability.&amp;nbsp; Robocopy can monitor your files and when there are changes, it’ll automatically copy them.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Bandwidth Throttling &lt;/strong&gt;~ While this isn’t a complete solution, it still can free up some bits for other stuff that’s traveling down that slow T1.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Multi-Threaded &lt;/strong&gt;~ Why am I still going?&amp;nbsp; This allows for multiple files to be handled at once.&amp;nbsp; Now you don’t have to wait on that 6 GB .pst to copy over before your 32 KB files are handled.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Attribute Handling&lt;/strong&gt; ~ This is not the most impressive, but it’s actually my favorite.&amp;nbsp; If you know anything about backups, then you know setting the Archive attribute on files can save precious time and space on your backup routine.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Can be easily automated&lt;/strong&gt; ~ Now before you ping my comment section, I’m very aware that you can schedule a task to run SyncToy.&amp;nbsp; My main problem with that is I have to setup my pairs via GUI only.&amp;nbsp; The help files say otherwise, but I’m not convinced.&amp;nbsp; I’ve spent at least 30 mins trying to prove myself wrong…&amp;nbsp; This doesn’t work: &lt;em&gt;SyncToy -d(left=e:\,right=c:\Pictures, name=MyPictures,operation=contribute) and this is in the help file!!!&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h5&gt;What is SyncToy good for?&lt;/h5&gt;Practical uses?&amp;nbsp; Set it up for your grandma and wait for her to call you when she wants to do a simple backup.&amp;nbsp; But you then also have to consider what is being backed up.&amp;nbsp; There are more caveats that you may not know about.&amp;nbsp; Here’s an excerpt from &lt;a href="http://social.microsoft.com/Forums/en-US/synctoy/thread/5c021aa1-8738-47af-854d-c38d635800ac" target="_blank"&gt;SyncToy’s Forum&lt;/a&gt;: &lt;br /&gt;&lt;em&gt;Q. I have noticed that sometimes SyncToy does not pick up changes to my photos which I had edited using "some popular" photo editing and management software? &lt;/em&gt;&lt;br /&gt;&lt;em&gt;A. Several popular photo-editing suites do NOT modify the file time or file size when making certain changes to pictures such as when the user adds or edits tags, description, title, etc on the picture. This is especially true of file formats such as JPEG which use the EXIF header structure. Because of this SyncToy has no way of knowing that the file was modified by the user - if either the last updated timestamp on the file changes or the file size changes, SyncToy will pick up that change and synchronize it over to the other side - otherwise it looks like the same file as before to SyncToy. We're considering improving this behavior in later versions of the Microsoft Sync Framework which is the synchronization technology underneath SyncToy.&amp;nbsp; For now, the only options users have when synchronizing pictures that may exhibit this behavior is to turn on the Check File Contents option on their folder pair - however, it will make the sync operation quite slow because for this SyncToy has to do a complete scan of every file on each side to compute a signature for the file contents.&lt;/em&gt;&lt;br /&gt;&lt;h5&gt;RoboCopy is your friend…&lt;/h5&gt;This is really a short list that could go on forever.&amp;nbsp; It may sound a bit biased, but based on what I’ve seen, SyncToy should never be used as for backup.&amp;nbsp; It may seem like such an easy piece of software to work with, in the end do not be fooled.&amp;nbsp; &lt;br /&gt;&lt;strong&gt;What do you think?&lt;/strong&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b49259f7-a355-4abd-9597-4aa6bb0af78c" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Backup" rel="tag"&gt;Backup&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Robocopy" rel="tag"&gt;Robocopy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Synctoy" rel="tag"&gt;Synctoy&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-6217893192786082830?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/6217893192786082830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/09/robocopy-vs-synctoy.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6217893192786082830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6217893192786082830'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/09/robocopy-vs-synctoy.html' title='RoboCopy vs. SyncToy'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-7013252289312534337</id><published>2010-09-21T01:55:00.000-04:00</published><updated>2010-09-21T02:09:21.421-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>The Almighty Content Database</title><content type='html'>&lt;p&gt;I ran into a major issue on my dev box the other night.&amp;#160; It was such a weird issue, I ran for the hills and waited for it to fix itself.&amp;#160; That almost never works, so I dug in.&amp;#160; What’s a bit of work without getting your hands dirty, eh?&lt;/p&gt;  &lt;p&gt;The issue with my box was an update.&amp;#160; I’m almost 99% sure it was an update, but I couldn’t pin it on one and since it’s a box running in Hyper-V, I decided to take the easy route.&amp;#160; I constantly make backups of my content database.&amp;#160; That is key, without these precious backups, I would have lost all of my work.&amp;#160; Since I take snapshots of this server regularly, I figured the most effective time-saver was to use my latest snapshot.&amp;#160; It was only a week old and I know I wasn’t suffering from my problem at that point.&lt;/p&gt;  &lt;p&gt;The recovery went well and SharePoint snapped right open.&amp;#160; So far, so good.&amp;#160; I’ve never had to recover a full content database before, so this was new territory for me.&amp;#160; Not to worry, I have good backups.&amp;#160; A quick google search landed me on &lt;a href="http://www.keirgordon.com/post/Move-a-SharePoint-Content-Database.aspx" target="_blank"&gt;Stefan Keir Gordon’s blog&lt;/a&gt;.&amp;#160; This specific post talks about moving the DB to a new server, it was exactly what I needed.&amp;#160; I tweaked it just a bit by taking the Content DB offline first.&amp;#160; After a reboot, I ran a Recover Database operation.&amp;#160; You just simply point to the .bak from your backups and then pick the Content DB.&amp;#160; This all took about 10 mins (My site is rather small).&amp;#160; &lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h4&gt;What Have I Learned?&lt;/h4&gt;  &lt;p&gt;That’s what it’s all about right?&amp;#160; Before this issue, I have been manually running them every week or so.&amp;#160; Dropping off the bits to my file server here which is on a RAID 5.&amp;#160; Plenty enough redundancy for my tiny operation…&amp;#160; Now I’ve realized, the weeks’ worth of work that I lost was a big loss to me.&amp;#160; Because of that, I now have my backups scheduled to run every day.&amp;#160; It’s not talked about enough in my book: &lt;strong&gt;We all should review backup strategies every 3 mos. or so and re-evaluate what’s mission critical and what isn’t.&amp;#160; It can literally save lots of time and money.&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-7013252289312534337?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/7013252289312534337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/09/almighty-content-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7013252289312534337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7013252289312534337'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/09/almighty-content-database.html' title='The Almighty Content Database'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-7616250037408812110</id><published>2010-09-20T11:40:00.000-04:00</published><updated>2010-09-20T12:00:39.288-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Office'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel VBA'/><title type='text'>Order Form using Excel VBA</title><content type='html'>&lt;p&gt;I’d love to post all of the inner workings of this Order Form, I’m simply not allowed.&amp;#160; Our &lt;a href="http://www.roughinready.com" target="_blank"&gt;manufacturing line&lt;/a&gt; is very competitive and I’d like to keep our advantage.&amp;#160; However, there are a few things I’ve built that I’d like to show off.&amp;#160; Here’s a simple screenshot of the INPUT page:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/TJeFIPDiKtI/AAAAAAAAAK8/YCUFI0Fzobo/s1600-h/image%5B17%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_ywO7MX0I9V8/TJeFIgjUthI/AAAAAAAAALA/g9boOu3WjP0/image_thumb%5B13%5D.png?imgmax=800" width="602" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This allows my foreman to simply order parts by adding an X in the box.&amp;#160; I’m bound to the legacy database that runs the line, so instead of adding a quantity for each part, the X represents an an individual part sent to the line.&amp;#160; What was an interesting challenge was creating the data for the legacy database.&amp;#160; I had to create custom functions within VBA to handle the logic.&amp;#160; We were able to make most of the calculations within 2007, but my workforce uses 2003 and Office XP…&amp;#160; I had to make it backwards compatible.&amp;#160; Here’s a screenshot of what the data looks like (sorry, I had to cut some data out):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/TJeFI3zFIqI/AAAAAAAAALE/ZUMFB3a8-E8/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_ywO7MX0I9V8/TJeFJn9-XAI/AAAAAAAAALI/Pg92pXJANM4/image_thumb%5B7%5D.png?imgmax=800" width="595" height="288" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Since the database only accepts one Wire Type at a time, I had to create some macros that separate the data according to Wire Type.&amp;#160; When the macro is ran, a new worksheet is created for each Wire Type that is listed within the ALL FILE.&amp;#160; Once these are created, another macro is fired and sorts each worksheet descending except for the largest Wire Type worksheet.&amp;#160; Since it’s the largest worksheet, it is sorted ascending.&amp;#160; Weird requirement, I know… It’s what I have to work with since I’m forced to use this old database.&amp;#160; Once all of this is done, it’s now time to import these tabs into the database.&amp;#160; Another weird requirement, is that for each Wire Type, a new template database is used.&amp;#160; This doesn’t sound much like a database at all…&amp;#160; What I’ve been told is that on average, there are 3-4 Wire Types.&amp;#160; That means for this project, this *database* has to be copied 3 or 4 times and an import operation completed for each Wire Type.&amp;#160; I could be way off base here, but this doesn’t sound like a database at all, it sounds more like a band-aid.&lt;/p&gt;  &lt;p&gt;Enough about my rants… I’m in the process of showing off the benefits of overhauling this anyway :D.&amp;#160; Once this is done, I’ll have to revisit my Order Form for sure.&amp;#160; For now though, I’m wrapping up the BETA version of this Order Form and it’s going to be tested this week.&amp;#160; &lt;/p&gt;  &lt;p&gt;I’m sure you are wondering… Where are the custom functions?!?&amp;#160; I didn’t want to leave you hanging, so here’s a custom function that I had to write for this project.&amp;#160; I hope you find it useful.&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt; FindWireType(rng &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Range) &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; cell &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; Range&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; intDelim &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; intColCount &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Integer&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; strColumn &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; strWireType &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;      &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; cell &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; rng&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; IsEmpty(cell.Value) &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            intDelim = InStr(2, cell.Address, &amp;quot;&lt;span style="color: #8b0000"&gt;$&lt;/span&gt;&amp;quot;) - 1 &lt;span style="color: #008000"&gt;'Minus one to strip $ sign out. Posts back $A$ or $AA$&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            intColCount = Len(Left(cell.Address, intDelim)) - 1 &lt;span style="color: #008000"&gt;'Trims the left $ sign&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            strColumn = Right(Left(cell.Address, intDelim), intColCount) &amp;amp; &amp;quot;&lt;span style="color: #8b0000"&gt;8&lt;/span&gt;&amp;quot; &lt;span style="color: #008000"&gt;'Trims the cell.address to just the columns and appends an 8&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            strWireType = ActiveWorkbook.Sheets(&amp;quot;&lt;span style="color: #8b0000"&gt;INPUT&lt;/span&gt;&amp;quot;).Range(strColumn).Value&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            FindWireType = strWireType&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;Exit&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-7616250037408812110?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/7616250037408812110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/09/order-form-using-excel-vba.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7616250037408812110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7616250037408812110'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/09/order-form-using-excel-vba.html' title='Order Form using Excel VBA'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ywO7MX0I9V8/TJeFIgjUthI/AAAAAAAAALA/g9boOu3WjP0/s72-c/image_thumb%5B13%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-1968249406049374746</id><published>2010-09-07T10:12:00.000-04:00</published><updated>2010-09-07T11:11:35.644-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Remove-Item –recurse will actually make you curse</title><content type='html'>&lt;p&gt;Walking in today, I found myself with a challenge.&amp;#160; Definitely not a unique one, but a challenge.&amp;#160; I have to delete an .xls template from a file server within many different project folders.&amp;#160; Our setup looks like this: \\server\Projects\{JobNumber}\*.&amp;#160; Within each job number are many different folders and sub-folders.&amp;#160; I’ve been tasked to remove the old excel template that we were using and replace it with the new one.&lt;/p&gt;  &lt;p&gt;Sounds like a job for PowerShell eh?&amp;#160; I’ve done some recursion in the past using VBScript and I’d rather not revisit that…&amp;#160; It was a bit of torture to get the logic sorted out using that language.&amp;#160; With PowerShell, you just slap a –recurse to what you are doing and you *should* be good to go. Or so you thought…&amp;#160; A quick ping to Bing showed me the &lt;a href="http://technet.microsoft.com/en-us/library/ee176938.aspx" target="_blank"&gt;Remove-Item&lt;/a&gt; cmdlet usage doc on TechNet.&amp;#160; Reading over this, it seems very easy to setup recursion and manipulate files, until you do something like this:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$path = &lt;span class="str"&gt;&amp;quot;c:\test\*&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Remove-Item $path -recurse -include .xls&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;These simple lines of code simply fail without any notification or errors.&amp;#160; I’ve sent a &lt;a href="http://twitter.com/iOnline247/status/23238788453" target="_blank"&gt;tweet&lt;/a&gt; out to the Scripting Guys to get a reason why.&amp;#160; I haven’t heard back from them so far, but all is not lost!&amp;#160; You simply have to think outside the box.&amp;#160; To get this to work you have to use these lines of code instead:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$path = &lt;span class="str"&gt;&amp;quot;c:\test\*&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Get-ChildItem $path -recurse -include *.xls | Remove-Item&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This works consistently and will give you the results you’d expect.&amp;#160; I’ll update this article if I hear back from the &lt;a href="http://twitter.com/scriptingguys" target="_blank"&gt;Scripting Guys&lt;/a&gt; ;-). &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;2010-09-07 11:10 a.m. Update:&amp;#160; &lt;/strong&gt;As always the Scripting Guys are awesome and answer my question.&amp;#160; Take a look at their &lt;a href="http://twitter.com/ScriptingGuys/status/23244170553" target="_blank"&gt;response&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-1968249406049374746?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/1968249406049374746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/09/remove-item-recurse-will-actually-make.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/1968249406049374746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/1968249406049374746'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/09/remove-item-recurse-will-actually-make.html' title='Remove-Item –recurse will actually make you curse'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-3591072473060322838</id><published>2010-08-06T10:12:00.002-04:00</published><updated>2010-08-09T09:36:44.196-04:00</updated><title type='text'>How To: Display SharePoint in Outlook</title><content type='html'>&lt;p&gt;There have been a few questions lately being asked over on &lt;a href="http://twitter.com/eusp" target="_blank"&gt;@EUSP’s&lt;/a&gt; &lt;a href="http://www.endusersharepoint.com/STP/" target="_blank"&gt;STP (Stump the Panel)&lt;/a&gt; that needed a specific integration with &lt;span class="twitter_search"&gt;Outlook&lt;/span&gt; that you simply can’t get using OOTB features of SharePoint.&amp;#160; Here are some examples:&lt;/p&gt;&lt;p&gt;&lt;a href="http://bit.ly/9GpsUc" target="_blank"&gt;http://www.endusersharepoint.com/STP/viewtopic.php?f=10&amp;amp;t=1531&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.endusersharepoint.com/STP/viewtopic.php?t=1500&amp;amp;p=5773#p5773" href="http://www.endusersharepoint.com/STP/viewtopic.php?t=1500&amp;amp;p=5773#p5773" target="_blank"&gt;http://www.endusersharepoint.com/STP/viewtopic.php?t=1500&amp;amp;p=5773#p5773&lt;/a&gt;&lt;/p&gt;&lt;p&gt;These are very good questions and I hope that the solution allows for more SharePoint/Outlook integration.&amp;#160; These are two fantastic tools that I never close while I’m computing.&lt;/p&gt;&lt;p&gt;So how do you do this?&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In Outlook create a new folder and call it whatever makes sense to your situation. &lt;/li&gt;&lt;li&gt;Right click that folder and select properties.&lt;/li&gt;&lt;li&gt;On the home page tab type: &lt;a href="http://URLtoYourCustomPage"&gt;http://URLtoYourCustomPage&lt;/a&gt; and check mark the &amp;quot;Show home page by default for this folder.&amp;quot;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;When you click on the folder, you can instantly view your SharePoint page within Outlook or any web page for that matter.&amp;#160; There are many uses for this, feel free to drop a comment and let me know how you are using it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-3591072473060322838?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/3591072473060322838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/08/how-to-display-sharepoint-in-outlook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3591072473060322838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3591072473060322838'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/08/how-to-display-sharepoint-in-outlook.html' title='How To: Display SharePoint in Outlook'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-9179775371393927123</id><published>2010-07-20T18:27:00.000-04:00</published><updated>2010-07-20T18:31:06.390-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='CAML'/><title type='text'>Convert XML to a CAML Query with Powershell</title><content type='html'>&lt;p&gt;You might ask yourself, “Why would I want to do that?”&amp;#160; Well, as you probably could tell, I use SharePoint A LOT!&amp;#160; I’ve recently started deep diving into DVWP’s (Data View Web Parts), thanks to the &lt;a href="http://www.uspja.com" target="_blank"&gt;USPJA&lt;/a&gt; and &lt;a href="http://sympmarc.com" target="_blank"&gt;Marc Anderson’s&lt;/a&gt; excellent DVWP course.&amp;#160; CAML piqued my interest a whole lot and because of that I found easy ways to construct my CAML queries.&amp;#160; These free tools are absolutely excellent: &lt;a href="http://www.u2u.be/res/tools/camlquerybuilder.aspx" target="_blank"&gt;U2U CAML Query Builder&lt;/a&gt; and &lt;a href="http://spcamlviewer.codeplex.com/" target="_blank"&gt;Stramit SharePoint CAML Viewer&lt;/a&gt;.&amp;#160; These tools are simply the best when it comes to ease of use and quality of results.&amp;#160; However, with a DVWP, I cannot simply copy and paste the query from these tools into it.&amp;#160; I must escape all of the characters CAML chokes on.&amp;#160; For that I’ve built a simple tool in Powershell that will ask you which file you’d like to convert and then it’ll even trim the white space in the file.&amp;#160; Literally all you have to do is copy the query from one of these tools to notepad and save it.&amp;#160; Run my &lt;a href="http://bit.ly/duebEf" target="_blank"&gt;XML2CAML&lt;/a&gt; script and your CAML Query is ready to be dropped into your DVWP.&amp;#160; I know there are other tools out there that are similar, but are they free?&amp;#160; Also do they trim the whitespace for you?&amp;#160; &lt;/p&gt;  &lt;p&gt;I hope you find this as useful as I do…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-9179775371393927123?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/9179775371393927123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/07/convert-xml-to-caml-query-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/9179775371393927123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/9179775371393927123'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/07/convert-xml-to-caml-query-with.html' title='Convert XML to a CAML Query with Powershell'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-5615631222394042342</id><published>2010-06-21T15:35:00.000-04:00</published><updated>2010-06-21T15:37:46.805-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Integrating PowerShell and Sharepoint pt. 1</title><content type='html'>&lt;p&gt;If you follow me on Twitter (@&lt;a href="http://twitter/iOnline247" target="_blank"&gt;iOnline247&lt;/a&gt;), then you have probably noticed me tweeting&amp;#160; a lot about POSH (PowerShell) lately.&amp;#160; When I was first introduced to this language, it was about 4-5 years ago.&amp;#160; At that point, I was knee deep in VB code and building some cool HTA’s.&amp;#160; I figured I should backburner POSH and learn it later.&amp;#160; Fortunately, that time has come.&amp;#160; Unfortunately, it should’ve came sooner…&amp;#160; As I take you through what I’m currently working on, you’ll see why ;-).&lt;/p&gt;  &lt;p&gt;I’ll give you an aerial view of my current project.&amp;#160; The setup I’m working with is MSSX, single server deployment; farm, server… Whatever you want to call a single server hosting SharePoint.&amp;#160; A PMA (Project Management Application) was recently rolled out and as I integrate more forms from excel and word, the lists related to the initial project will become bigger and bigger.&amp;#160; I’m expecting about 8 at the end of it all that will support the project’s main information.&amp;#160; With all of these different lists, there will have to be an easy way to purge or archive the information once the project data is stale.&amp;#160; &lt;/p&gt;  &lt;p&gt;So what does that mean?&amp;#160; I need to come up with a way that will handle recursive deletes in SharePoint across multiple lists.&amp;#160; It was only natural to turn to POSH to handle a job like this.&amp;#160; The decision makers also want to be able to do this from the browser.&amp;#160; “Wha?”, I replied…&amp;#160; After trolling the net for a day or so, I’m close to setting it all up.&lt;/p&gt;  &lt;p&gt;List of tools I’ll be using:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://support.microsoft.com/kb/968929" target="_blank"&gt;PowerShell v2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://ilovesharepoint.codeplex.com/releases/view/14947" target="_blank"&gt;iLoveSharepoint PowerActivities v1.2&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.idera.com/Products/PowerShell/PowerShell-Plus/" target="_blank"&gt;Idera PowerShell Plus v3.1&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I do not accept any compensation from any one of those sources.&amp;#160; As a matter of fact, I owe @&lt;a href="http://twitter.com/iOnline247/status/16464817324" target="_blank"&gt;cglessner&lt;/a&gt; a beer for his help!&amp;#160; He built PowerActivities and was gracious enough to share.&amp;#160; Without him building this, I wouldn’t be able to build my solution whatsoever.&amp;#160; Cheers to Christian!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-5615631222394042342?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/5615631222394042342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/06/integrating-powershell-and-sharepoint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5615631222394042342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5615631222394042342'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/06/integrating-powershell-and-sharepoint.html' title='Integrating PowerShell and Sharepoint pt. 1'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-222894226259888203</id><published>2010-05-24T15:43:00.000-04:00</published><updated>2010-05-24T22:05:38.800-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='List Views'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Security trimmed list views with ease!</title><content type='html'>&lt;p&gt;I didn’t know how if this could be done, so I did what came natural.&amp;#160; Poke around 'til I finally get an answer.&amp;#160; Usually I end up with a dead-end but today, I definitely found something of value.&amp;#160; It’s a lot more simple than what I originally thought.&amp;#160; Tools needed: SharePoint Designer and Notepad.&amp;#160; This could all be done within SPD but since it crashes on me, I tend to take my code offline, then paste it back into SPD, right before saving.&lt;/p&gt;  &lt;p&gt;So where do we start?&amp;#160; How about cracking open the list that you’d like to create a secure view on.&amp;#160; I needed a way to create a secure view of a Gantt Chart and mash it up with a few other lists.&amp;#160; So since I didn’t know how to make a Gantt chart with a DVWP, I poked around a little.&amp;#160; I created a Gantt Chart view using the GUI.&amp;#160; When you save the view, there is a .aspx page that shows up within the Folder Navigation.&amp;#160; My custom view is cleverly called, PersonalViews.aspx&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/S_ratwqGUdI/AAAAAAAAAI0/lp5ryUPTln4/s1600-h/SPD-FolderNav%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SPD-FolderNav" border="0" alt="SPD-FolderNav" src="http://lh4.ggpht.com/_ywO7MX0I9V8/S_rauKDV-zI/AAAAAAAAAI4/-tf8OaTLpbg/SPD-FolderNav_thumb%5B2%5D.jpg?imgmax=800" width="364" height="317" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once this view is created, you can open the page up and *reuse* all of that code somewhere else…&amp;#160; So, since I already have a Benchmarking Doc Library that uses custom permissions,&amp;#160; this will be a perfect place for my PersonalViews.aspx page.&amp;#160; After opening the page, click over to the code view and select all of the code.&amp;#160; This is where Notepad comes into play.&amp;#160; I take all of that code and paste it directly into a fresh Notepad .txt file.&amp;#160; That way I have all of that code within another program…&amp;#160; Just a preference, but we all have our ways ;-).&amp;#160; With all of that code, we can now navigate the GUI and delete the view we created.&amp;#160; There’s no need for it anymore and it’s best to delete the view within the GUI.&amp;#160; I’m not sure what happens if you just delete the .aspx page, but to be safe, use the GUI.&amp;#160; &lt;strong&gt;Why are we deleting what we just created?&amp;#160; Doesn’t that defeat the purpose?&lt;/strong&gt;&amp;#160; NO!&amp;#160; We have all of the code that’s needed in Notepad, remember?&amp;#160; What we need to do now is create a new .aspx page within SPD.&amp;#160; I deleted all of the auto generated code:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/S_rausOtGMI/AAAAAAAAAI8/8qbfxGtr3cY/s1600-h/SPD%20-%20NewASPX%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SPD - NewASPX" border="0" alt="SPD - NewASPX" src="http://lh5.ggpht.com/_ywO7MX0I9V8/S_rau1Q7NhI/AAAAAAAAAJA/suAkkilmPjM/SPD%20-%20NewASPX_thumb%5B2%5D.jpg?imgmax=800" width="410" height="230" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We don’t need any of that gunking up our new view.&amp;#160; Now copy all of the code from Notepad into the code view of the .aspx page.&amp;#160; When this page renders, it’ll give you a nasty looking error:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/S_ravB-z4PI/AAAAAAAAAJE/R8uelBuTiFw/s1600-h/SPD%20-%20ListViewError%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SPD - ListViewError" border="0" alt="SPD - ListViewError" src="http://lh6.ggpht.com/_ywO7MX0I9V8/S_ravb5GrkI/AAAAAAAAAJI/-_HkF_wuW-A/SPD%20-%20ListViewError_thumb%5B3%5D.jpg?imgmax=800" width="433" height="115" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I thought this was a show stopper, until I saved it in my secure location: Benchmarking Doc Library.&amp;#160; Here only the owners of the site are allowed to view.&amp;#160; I’ve tested logging in as many different users and even if they are allowed to view the Benchmarking Doc Library, if they don’t have explicit rights to this aspx page, they’ll get security trimmed.&amp;#160; List Views can now be security trimmed!!!&amp;#160; Also, you’ll notice within your list, the drop-down for all of the views has a new view.&amp;#160; It’s called whatever you named your aspx page.&amp;#160; However, when someone without rights to the page clicks on the view from the drop down, they’ll soon realize they are in the wrong spot:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/S_ravu2kcmI/AAAAAAAAAJM/H9l_4Khzus0/s1600-h/Access%20Denied%20Error%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Access Denied Error" border="0" alt="Access Denied Error" src="http://lh6.ggpht.com/_ywO7MX0I9V8/S_rawiBRvBI/AAAAAAAAAJQ/pPwNPwcUF7U/Access%20Denied%20Error_thumb%5B2%5D.jpg?imgmax=800" width="465" height="217" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you use this and find more purposes for this, please drop a comment.&amp;#160; I’d like to hear about it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;var addthis_pub="remy20000000000";&lt;/script&gt;&lt;a onmouseover="return addthis_open(this, &amp;#39;&amp;#39;, &amp;#39;[URL]&amp;#39;, &amp;#39;[TITLE]&amp;#39;)" onmouseout="addthis_close()" onclick="return addthis_sendto()" href="http://www.addthis.com/bookmark.php?v=20"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="Bookmark and Share" src="http://s7.addthis.com/static/btn/lg-share-en.gif" width="125" height="16" /&gt;&lt;/a&gt;&lt;script type="text/javascript" src="http://s7.addthis.com/js/200/addthis_widget.js"&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-222894226259888203?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/222894226259888203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/05/security-trim-list-views-with-ease.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/222894226259888203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/222894226259888203'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/05/security-trim-list-views-with-ease.html' title='Security trimmed list views with ease!'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/S_rauKDV-zI/AAAAAAAAAI4/-tf8OaTLpbg/s72-c/SPD-FolderNav_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-6499383586026686460</id><published>2010-05-12T10:48:00.000-04:00</published><updated>2010-05-14T00:47:29.107-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Sharepoint Workflows - Failed on Start (retrying)</title><content type='html'>&lt;p&gt;This ought to be a lot of &lt;strong&gt;*fun*&lt;/strong&gt; troubleshooting.&amp;#160; It’s the biggest product that I support for my company and also, at times, the most complex.&amp;#160; As you may have already seen this Workflow Error: Failed on Start (retrying), I have not.&amp;#160; At least not from a well formed workflow.&amp;#160; I’ve seen this come from the accidental infinite loop, so with that aside, this has become a nasty problem for me.&amp;#160; Currently this is happening on all workflows, once it’s initiated.&amp;#160; I have workflows that fire when an item is created, some that only fire manually, and others that fire when the item has changed…&amp;#160; A digital medley of workflow love.&amp;#160; All of these are having the same problem, all at once.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Things that make you go HMMMMM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This has got to be from the recent upgrade I just went through.&amp;#160; I upgraded to SP2 because of another error I was getting with content types.&amp;#160; Go figure, move from one problem to another ;-).&amp;#160; Sometimes I feel stranded on an island, but then I turn to the Sharepoint Community for help and they are always right there.&amp;#160; Websites like &lt;a href="http://sharepointoverflow.com/" target="_blank"&gt;SharepointOverflow.com&lt;/a&gt;, &lt;a href="http://www.endusersharepoint.com/STP/" target="_blank"&gt;Stump the Panel&lt;/a&gt;, and I can’t forget &lt;a href="http://twitter.com/" target="_blank"&gt;Twitter&lt;/a&gt;!&amp;#160; Without these websites and the people that converse within them, I wouldn’t do SharePoint.&amp;#160; It’d be too much for just me to handle.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;The AH HA moment (More like well it’s fixed now, so I’ll move on)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Listed below are the errors I was able to pull from the ULS logs on my server.&lt;/p&gt;  &lt;p&gt;Errors:&lt;/p&gt;  &lt;p&gt;05/11/2010 16:42:24.97*    &lt;br /&gt;w3wp.exe (0x208C)     &lt;br /&gt;0x1B14     &lt;br /&gt;Windows SharePoint Services     &lt;br /&gt;Workflow Infrastructure     &lt;br /&gt;936l     &lt;br /&gt;High     &lt;br /&gt;...eExecutor(Guid instanceId, CreationContext context, WorkflowExecutor executor, WorkflowInstance workflowInstance) at System.Workflow.Runtime.WorkflowRuntime.Load(Guid key, CreationContext context, WorkflowInstance workflowInstance) at System.Workflow.Runtime.WorkflowRuntime.GetWorkflowExecutor(Guid instanceId, CreationContext context) at System.Workflow.Runtime.WorkflowRuntime.InternalCreateWorkflow(CreationContext context, Guid instanceId) at System.Workflow.Runtime.WorkflowRuntime.CreateWorkflow(Type workflowType, Dictionary`2 namedArgumentValues, Guid instanceId) at Microsoft.SharePoint.Workflow.SPWinOeHostServices.Send(SPWinOeWorkflow winoeworkflow, SPWorkflowEvent e) at Microsoft.SharePoint.Workflow.SPWinOeEngine.RunWorkflow(Guid trackingId, SPWorkflowHostServi...&lt;/p&gt;  &lt;p&gt;05/11/2010 16:42:24.97*    &lt;br /&gt;w3wp.exe (0x208C)     &lt;br /&gt;0x1B14     &lt;br /&gt;Windows SharePoint Services     &lt;br /&gt;Workflow Infrastructure     &lt;br /&gt;936l     &lt;br /&gt;High     &lt;br /&gt;...ce host, SPWorkflow workflow, Collection`1 events, TimeSpan timeOut)&lt;/p&gt;  &lt;p&gt;05/11/2010 16:42:24.97    &lt;br /&gt;w3wp.exe (0x208C)     &lt;br /&gt;0x1B14     &lt;br /&gt;Windows SharePoint Services     &lt;br /&gt;Workflow Infrastructure     &lt;br /&gt;936l     &lt;br /&gt;High     &lt;br /&gt;Engine RunWorkflow: System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException: The workflow failed validation. at System.Workflow.Runtime.WorkflowDefinitionDispenser.ValidateDefinition(Activity root, Boolean isNewType, ITypeProvider typeProvider) at System.Workflow.Runtime.WorkflowDefinitionDispenser.LoadRootActivity(Type workflowType, Boolean createDefinition, Boolean initForRuntime) at System.Workflow.Runtime.WorkflowDefinitionDispenser.MruCache.GetOrGenerateDefinition(Type type, String xomlText, String rulesText, Byte[] md5Codes, Boolean initForRuntime, Boolean&amp;amp; exist) at System.Workflow.Runtime.WorkflowDefinitionDispenser.GetRootActivity(Type workflowType, Boolean createNew, Boolean initForRuntime) at System.Workflow.Runtime.WorkflowRuntime.Initializ...&lt;/p&gt;  &lt;p&gt;As I was gathering information to troubleshoot this error, suddenly, the workflows *just work*!&amp;#160; OH WOW!&amp;#160; Since I’m a big fan of “If it isn’t broke, don’t fix it.”, I’ll be leaving this alone for now.&amp;#160; If anyone has a clue as to how this could’ve happened, feel free to drop a comment.&amp;#160; Please note that all of my workflows are built in SPD only.&amp;#160; Nothing custom and no OOTB workflows have been built.&amp;#160; I’m sure I’ll be updating this article again…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;     &lt;br /&gt;This may be a fix: &lt;a href="http://blogs.msdn.com/wael/archive/2008/01/11/workflow-failed-on-start-retrying.aspx"&gt;http://blogs.msdn.com/wael/archive/2008/01/11/workflow-failed-on-start-retrying.aspx&lt;/a&gt;; specifically this command: Lodctr /R &amp;quot;c:\Windows\Microsoft.Net\Framework\v3.0\Windows Workflow Foundation\perfcounters.ini&amp;quot;.     &lt;br /&gt;I'm not going to run it until the thing breaks again, so we'll have to wait.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;var addthis_pub="remy20000000000";&lt;/script&gt;&lt;a onmouseover="return addthis_open(this, &amp;#39;&amp;#39;, &amp;#39;[URL]&amp;#39;, &amp;#39;[TITLE]&amp;#39;)" onmouseout="addthis_close()" onclick="return addthis_sendto()" href="http://www.addthis.com/bookmark.php?v=20"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="Bookmark and Share" src="http://s7.addthis.com/static/btn/lg-share-en.gif" width="125" height="16" /&gt;&lt;/a&gt;&lt;script type="text/javascript" src="http://s7.addthis.com/js/200/addthis_widget.js"&gt;&lt;/script&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-6499383586026686460?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/6499383586026686460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/05/sharepoint-workflows-failed-on-start.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6499383586026686460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6499383586026686460'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/05/sharepoint-workflows-failed-on-start.html' title='Sharepoint Workflows - Failed on Start (retrying)'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-6321503436088008730</id><published>2010-05-11T13:45:00.000-04:00</published><updated>2010-05-11T14:14:17.541-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='InterWebs'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>Another Facebook #Fail</title><content type='html'>&lt;p&gt;How many more of these privacy leaks must we endure from Facebook?&amp;#160; Here’s another hack that I was told about and have confirmed true.&amp;#160; I believe it’s fixed at this point, but for all of the millions of other Facebook notifications &lt;strong&gt;*THIS WORKS*&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the mail header of the email there is a very weak encryption in place:&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;X-Facebook: from zuckmail ([MjA5Ljg1LjIyNS4xMDQ=])&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So all you have to do is decode the MIME base64 string:&lt;/p&gt;  &lt;p&gt;$ perl -MMIME::Base64 -e 'print decode_base64(&amp;quot;MjA5Ljg1LjIyNS4xMDQ=&amp;quot;);' or just go to a &lt;a href="http://www.motobit.com/util/base64-decoder-encoder.asp" target="_blank"&gt;base64 Decoder site&lt;/a&gt;.&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;THE SHOCKER?!?&amp;#160; IT’S YOUR IP ADDRESS!&lt;/strong&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;&lt;font size="3"&gt;209.85.225.104&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;It’s child’s play to track someone’s IP address right back to their front door step.&amp;#160; This is just another reason I’ve cancelled my Facebook account permanently.&amp;#160; As of this writing, I believe the hash does now only resolve to 127.0.0.1, but WTF?&amp;#160; This is simple stuff guys…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-6321503436088008730?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/6321503436088008730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/05/another-facebook-fail.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6321503436088008730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6321503436088008730'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/05/another-facebook-fail.html' title='Another Facebook #Fail'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-5681558956192022425</id><published>2010-05-10T23:09:00.002-04:00</published><updated>2010-10-17T01:25:16.922-04:00</updated><title type='text'>Batch Feature Installation w/ Logging (Expanded)</title><content type='html'>&lt;p&gt;&lt;a href="http://mike-greene.com"&gt;Michael Greene&lt;/a&gt; wrote an excellent script earlier today.&amp;#160; Since I like to try what I see, I took the script a bit further and added a bit more of logic.&amp;#160; You can see the original script here &lt;a href="http://mike-greene.com/?p=375" target="_blank"&gt;Batch Feature Installation w/ Logging&lt;/a&gt;.&amp;#160; I’ve added more logic to the URL input, EVENTCREATE, and it’ll install every .wsp that you have in the directory.&amp;#160; Here’s how to use this script:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Copy and paste the script into a &lt;a href="http://bit.ly/92Irw0" target="_blank"&gt;batch file&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Place the batch file in the directory that has all of your .wsp’s &lt;/li&gt;&lt;li&gt;Run the batch file and type the URL of the Site Collection (don’t worry if you mistype the http:// portion of the URL, I have an error checker for that ;-) ) &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So what will this do? Add the solution(s), deploy the solution(s), install them, and activate all of them in one fell swoop.&amp;#160; Cool eh?&amp;#160; Great for deployment scenarios or setting up those test box vm’s.&amp;#160; Feel free to add more… As I’m posting this, I already have thought of a way to bulk add .stp’s.&amp;#160; Maybe another post?&lt;/p&gt;&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 439px; padding-right: 5px; height: 1352px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 104.84%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; height: 20px; font-size: 12px"&gt;@echo off&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;setlocal enabledelayedexpansion&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 97.03%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; height: 20px; font-size: 12px"&gt;color 0E&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Title Auto .wsp Deploy&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem *******************  Deploys all .wsp's in the current directory to the Site Collection ***************************&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem ******************* How to use?  Put this batch file in the same directory as your .wsp's *********************&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem ******************* The script will find every .wsp and deploy it to the Site Collection of your choice ********&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem ******************* I guarantee this will destroy your sharepoint farm unless you know what this ***********&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem ******************* code does.  Please make sure you test this before production usage. *********************&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem ****************** Sets vars *********************************************************************************************&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;set &amp;quot;path=C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\;%PATH%&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;set _http=http://&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;set /P _inputURL=&amp;quot;Please enter the url the site collection to activate the feature(s) to: &amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;rem ******************* Checks the URL and appends http:// if needed **************************************************&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;IF /I %_inputURL:~0,7% == %_http% (&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;echo URL is in correct format&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;set _URL=%_inputURL%&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;) ELSE (&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;set _URL=%_http%!_inputURL!&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;echo.&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;echo.&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Echo ************* Finding .wsp files *************&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;for %%a in (*.wsp) do call :ROUTINE &amp;quot;%%a&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;GOTO :EOF&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;:ROUTINE&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Echo Adding Solution&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;stsadm.exe -o addsolution -filename %1&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Echo Deploying Solution&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;stsadm.exe -o deploysolution -name %1 -allowGacDeployment -immediate -force&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Echo Installing Feature&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;stsadm.exe -o installfeature -name %~n1 -force&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;IF errorlevel == 0 (&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;EVENTCREATE /L System /T Success /SO &amp;quot;SharePoint&amp;quot; /ID 3 /D &amp;quot;%1 Installed&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;) else (&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;EVENTCREATE /L System /T Error /SO &amp;quot;SharePoint&amp;quot; /ID 3 /D &amp;quot;%1 didn't install properly&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Echo Activating Feature&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;stsadm.exe -o activatefeature -name %~n1 -url %_URL% -force&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;IF errorlevel == 0 (&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;EVENTCREATE /L System /T Success /SO &amp;quot;SharePoint&amp;quot; /ID 4 /D &amp;quot;%1 Activated&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;Echo Activation of feature %1 COMPLETE!&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;) else (&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;EVENTCREATE /L System /T Error /SO &amp;quot;SharePoint&amp;quot; /ID 4 /D &amp;quot;%1 didn't activate properly&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;echo Running timer jobs to finish deployment&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;stsadm.exe -o  execadmsvcjobs&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;PING 127.0.0.1 -n 12 -w 100 2&amp;gt;NUL | FIND &amp;quot;TTL=&amp;quot; &amp;gt;NUL&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You can also copy the script from this link: &lt;a href="http://docs.google.com/Doc?docid=0AQNGZmZ9rpe-ZGhmZzdtN3RfMTZkeGJrNnhjOA&amp;amp;hl=en" target="_blank"&gt;Batch Feature Installation w/ Logging (Expanded)&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-5681558956192022425?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/5681558956192022425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/05/batch-feature-installation-w-logging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5681558956192022425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5681558956192022425'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/05/batch-feature-installation-w-logging.html' title='Batch Feature Installation w/ Logging (Expanded)'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8670930522519619756</id><published>2010-04-14T23:39:00.000-04:00</published><updated>2010-04-14T23:40:23.769-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InterWebs'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>HTML5 is changing more than the web</title><content type='html'>&lt;p&gt;This is more of an observation of what I see the internet will be in the next 10 years. Think back to 2000 and how the web used to look then, compared to now. It’s almost a laughable matter. I would’ve never been able to pull of my &lt;a href="http://mdasblog.wordpress.com/2010/04/11/twitter-marriage-proposal/"&gt;Twitter Marriage Proposal&lt;/a&gt;. ^_^ &lt;a href="http://en.wikipedia.org/wiki/HTML5"&gt;HTML5&lt;/a&gt; will change how software is developed, with &lt;a href="http://en.wikipedia.org/wiki/DOM_storage"&gt;database caching&lt;/a&gt; and &lt;a href="http://decafbad.com/2009/07/drag-and-drop/api-demos.html"&gt;drag and drop&lt;/a&gt; being the biggest catalyst.&lt;/p&gt;  &lt;p&gt;Microsoft has dedicated itself to creating a &lt;a href="http://ie.microsoft.com/testdrive/"&gt;browser&lt;/a&gt; that is capable to handle HTML5. Lucky for us it’s the next iteration of Internet Explorer. And yes if you opened the last link up with IE8, it doesn’t work that well unfortunately… With everything computer related, there is always a better way to do it. That’s why the HTML5 standard is so important. It’ll open so many possibilities. One major capability will be to run applications from the cloud and have direct access to everything when you aren’t connected. That’s absolutely HUGE! I see the ability to use a computer without ever installing an application natively. This could work so well, that this may never be an offering again…&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;How will Microsoft compete?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Currently there are licensing costs for &lt;a href="http://www.microsoft.com/windowsserver2008/en/us/2008-web.aspx"&gt;Microsoft’s O.S.&lt;/a&gt; as well as &lt;a href="http://download.microsoft.com/download/1/e/6/1e68f92c-f334-4517-b610-e4dee946ef91/2008%20SQL%20Licensing%20overview%20final.docx"&gt;SQL Server&lt;/a&gt; for that matter. With the transformation of the web, Microsoft will have to rethink how they license their software in order to position themselves as the web platform of choice. &lt;a href="http://www.linux.com/learn/tutorials/288158:easy-lamp-server-installation"&gt;LAMP&lt;/a&gt; (Linux, Apache, MySQL, PHP) servers can be downloaded freely and setup with relatively no costs. There are compelling reasons for using these types of deployments for the web (e.g., &lt;a href="http://uptime.netcraft.com/perf/reports/performance/Hosters?tn=march_2010"&gt;here&lt;/a&gt; and &lt;a href="http://news.netcraft.com/archives/web_server_survey.html"&gt;here&lt;/a&gt;) Did I mention it’s free?; Because it’s free… That doesn’t mean there isn’t any hope in securing the top spot. Microsoft has been focusing on allowing &lt;a href="http://www.microsoft.com/web/websitespark/default.aspx"&gt;new startups&lt;/a&gt; to compete for relatively no costs as well. It’s also making it very easy to deploy &lt;a href="http://www.microsoft.com/web/gallery/"&gt;major applications&lt;/a&gt; on top of IIS.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Licensing, Licensing, Licensing!!!&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;One of the most compelling reasons for using a LAMP deployment is licensing. Costs can make or break companies these days. How to get off the ground with little costs is a question I’ve asked myself. Maybe you have too… There are many entry level ways (as I’ve shown above) to get up and running with Microsoft but scaling those out to handle millions of connections can become very expensive, very quickly. MySQL is so popular because it’s scalable without the hefty price tag of SQL. For licensing revenue to continue rolling in for both O.S. and SQL, they’ll have to compete in this market as it exists today.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;As the web grows…&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You’ll continue to hear more stories such as “&lt;a href="http://www.infoworld.com/d/cloud-computing/what-cloud-computing-really-means-031"&gt;Cloud Computing&lt;/a&gt;” and “&lt;a href="http://mashable.com/2010/04/12/tv-online/"&gt;I only watch TV online&lt;/a&gt;”. You’ll also see Microsoft persuade young developers more and more that it’s the &lt;a href="https://www.dreamspark.com/"&gt;platform of choice&lt;/a&gt; for the web. Making IT personnel more comfortable with hosting their web apps on Microsoft is only the start in my eyes. I’m sure this hasn’t been overlooked within the walls of Redmond either. Either way HTML5 is pushing this forward.&lt;/p&gt;  &lt;p&gt;I’m excited to see what’s in store over the next 10 years and expect my life to be easier because of a server side app, not a client side app…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8670930522519619756?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8670930522519619756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/04/html5-is-changing-more-than-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8670930522519619756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8670930522519619756'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/04/html5-is-changing-more-than-web.html' title='HTML5 is changing more than the web'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8476254612276331470</id><published>2010-03-26T19:54:00.001-04:00</published><updated>2010-03-27T06:00:34.481-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>My first go around with PowerShell</title><content type='html'>&lt;p&gt;Figured I’d start with math since I was good at it in school…&lt;/p&gt;  &lt;p&gt;Well, school was a long time ago!&amp;#160; And I’ve come to find out DateTime math via computers, really isn’t my forte.&amp;#160; What I’m trying to do is setup a simple stop-watch like function.&amp;#160; When I start any of my scripts, I always love to have time involved~~~ somehow, someway…&amp;#160; This particular script (when completed) will give me the ability to set the start time of a script and the end time.&amp;#160; With those variables set, I’ll then be able to do a time difference to determine how long the script ran.&amp;#160; Here’s my first go around:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;blockquote&gt;     &lt;div class="csharpcode"&gt;       &lt;p&gt;Function StartTimeD { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $day = (Get-Date).Day         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $day          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function StartTimeH { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $hour = (Get-Date).Hour         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $hour          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function StartTimeM { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $minute = (Get-Date).Minute         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $minute          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function StartTimeS { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $second = (Get-Date).Second         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $second          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function EndTimeD { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $endday = (Get-Date).Day         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $endday          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function EndTimeH { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $endhour = (Get-Date).Hour         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $endhour          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function EndTimeM { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $endminute = (Get-Date).Minute         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $endminute          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function EndTimeS { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; [int] $endsecond = (Get-Date).Second         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Return $endsecond          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;&amp;#160;&lt;/p&gt;        &lt;p&gt;Function HelloWorld { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; $startday = StartTimeD         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $starthour = StartTimeH          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $startminute = StartTimeM          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $startsecond = StartTimeS          &lt;br /&gt;} &lt;/p&gt;        &lt;p&gt;Function EndOfTime { &lt;/p&gt;        &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; $endday = EndTimeD         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $endhour = EndTimeH          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $endminute = EndTimeM          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $endsecond = EndTimeS &lt;/p&gt;        &lt;p&gt;} &lt;/p&gt;        &lt;p&gt;HelloWorld         &lt;br /&gt;Start-Sleep 5          &lt;br /&gt;EndOfTime &lt;/p&gt;        &lt;p&gt;Write-Output $startday $starthour $startminute $startsecond EndTimes are $endday $endhour $endminute $endsecond &lt;/p&gt;        &lt;p&gt;New-TimeSpan $(Get-Date -day $startday -hour $starthour -minute $startminute -second $startsecond) $(Get-Date -day $endday -hour $endhour -minute $endminute -second $endsecond) &lt;/p&gt;     &lt;/div&gt;   &lt;/blockquote&gt;    &lt;div class="csharpcode"&gt;&amp;#160;&lt;/div&gt;    &lt;div class="csharpcode"&gt;&amp;#160;&lt;/div&gt; &lt;/div&gt; &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;Unfortunately for me, it’s not working properly.&amp;#160; The Write-Output spits out the same numbers for both StartTime and EndTime functions.&amp;#160; There’s gotta be a much simpler way…&amp;#160; Maybe there’s something already under the hood for what I’m trying to do.&amp;#160; So far, I haven’t found it, but I am working on it! ^_^&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8476254612276331470?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8476254612276331470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/03/my-first-go-around-with-powershell.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8476254612276331470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8476254612276331470'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/03/my-first-go-around-with-powershell.html' title='My first go around with PowerShell'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-3176444578796434893</id><published>2010-02-07T23:22:00.000-05:00</published><updated>2010-02-08T23:22:25.877-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVWP'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>How to alternate row color using DVWP’s</title><content type='html'>&lt;p&gt;I was on twitter the other day (like that is a surprise to anyone) and came across a question.&amp;#160; How do you alternate color for each row within a DVWP.&amp;#160; This is very easy when configuring the webpart within the list view and as it turns out, painless as well within the DVWP’s too. &lt;/p&gt;  &lt;p&gt;Assuming you already have been schooled in making &lt;a href="http://www.endusersharepoint.com/2009/05/12/6-minute-screencast-insert-a-data-view-web-part-onto-a-sharepoint-page/" target="_blank"&gt;DVWP’s&lt;/a&gt;, let’s hop right into it.&amp;#160; After adding you DVWP to the page, put your cursor in the first row of the data that is displayed.&amp;#160; Make sure you do *NOT* put your cursor in the Column Title row…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/S27_Rq6AKXI/AAAAAAAAAIA/FHRKE6ofIm8/s1600-h/DVWP%20Row%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DVWP Row" border="0" alt="DVWP Row" src="http://lh3.ggpht.com/_ywO7MX0I9V8/S27_R4y1M3I/AAAAAAAAAIE/6FYaxhBCJ-A/DVWP%20Row_thumb%5B2%5D.jpg?imgmax=800" width="410" height="172" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Next you’ll want to right click within that cell and hover over the Select option, then pick Row.&amp;#160; This will highlight the entire row for you.&amp;#160; Now we can setup conditional formatting on our DVWP to display a color for every row.&amp;#160; By clicking on the chevron off to the right of the DVWP, you’ll get a fly-out menu with a lot of different options:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/S27_SS-3UWI/AAAAAAAAAII/DDMzH8_xVek/s1600-h/DVWP%20-%20Conditional%20Formating%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DVWP - Conditional Formating" border="0" alt="DVWP - Conditional Formating" src="http://lh5.ggpht.com/_ywO7MX0I9V8/S27_SqGcuQI/AAAAAAAAAIM/uPixKQTCQXI/DVWP%20-%20Conditional%20Formating_thumb%5B2%5D.jpg?imgmax=800" width="433" height="143" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on Conditional Formatting from this menu, so we can setup the formatting for each row.&amp;#160; Click on Create and select Apply Formatting from this menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/S27_S060KhI/AAAAAAAAAIQ/g7ABayurKMU/s1600-h/Conditional%20Formating%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Conditional Formating" border="0" alt="Conditional Formating" src="http://lh6.ggpht.com/_ywO7MX0I9V8/S27_TMJXpzI/AAAAAAAAAIU/BWpu7FUSXSg/Conditional%20Formating_thumb.jpg?imgmax=800" width="244" height="217" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What we need to do is tell the DVWP a condition that we will expect to occur within our DVWP.&amp;#160; This could be a pretty much anything and it’s not bound to just what I’m showing.&amp;#160; Since we want each row to have a different color, choose [Row Number] is Odd from the Condition Criteria.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/S27_TYix6uI/AAAAAAAAAIY/Qp8Iz6sBXaU/s1600-h/DVWP%20-%20%5BRow%20Number%5D%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DVWP - [Row Number]" border="0" alt="DVWP - [Row Number]" src="http://lh4.ggpht.com/_ywO7MX0I9V8/S27_TqKbX3I/AAAAAAAAAIc/mXKAM0sG7Vk/DVWP%20-%20%5BRow%20Number%5D_thumb%5B3%5D.jpg?imgmax=800" width="402" height="214" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After clicking on OK, we’ll be prompted for the formatting we’d like to see when the condition is met.&amp;#160; We need to set the background to a certain color.&amp;#160; Select background from the left side and click on the drop down for background-color.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/S27_T7ozRYI/AAAAAAAAAIg/ERJUN7mh8CM/s1600-h/DVWP%20-%20Formatting%20-%20Modify%20Style%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DVWP - Formatting - Modify Style" border="0" alt="DVWP - Formatting - Modify Style" src="http://lh4.ggpht.com/_ywO7MX0I9V8/S27_UOXdiAI/AAAAAAAAAIk/xmvpazG3bCs/DVWP%20-%20Formatting%20-%20Modify%20Style_thumb%5B2%5D.jpg?imgmax=800" width="410" height="240" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’ve selected a very light grey because it’s easy on the eyes and looks good with my color scheme.&amp;#160; Feel free to play around with all of these options.&amp;#160; Conditional formatting is a very powerful tool when displaying data and I’ve only scratched the surface myself… &lt;/p&gt;  &lt;p&gt;Here is my end result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/S28AL07iKjI/AAAAAAAAAIo/r4uUTlWfTp8/s1600-h/DVWP%20-%20Conditional%20Formating%20-%20Alternating%20Row%20Style%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DVWP - Conditional Formating - Alternating Row Style" border="0" alt="DVWP - Conditional Formating - Alternating Row Style" src="http://lh4.ggpht.com/_ywO7MX0I9V8/S28AMF74YKI/AAAAAAAAAIs/Tjd7bJb7HPA/DVWP%20-%20Conditional%20Formating%20-%20Alternating%20Row%20Style_thumb%5B3%5D.jpg?imgmax=800" width="445" height="116" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Feel free to ask questions!&amp;#160; P.S. I’ve also tested this with joins and merges and it works just fine.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-3176444578796434893?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/3176444578796434893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/02/how-to-alternate-row-color-using-dvwps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3176444578796434893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/3176444578796434893'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/02/how-to-alternate-row-color-using-dvwps.html' title='How to alternate row color using DVWP’s'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ywO7MX0I9V8/S27_R4y1M3I/AAAAAAAAAIE/6FYaxhBCJ-A/s72-c/DVWP%20Row_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-5693735676060006281</id><published>2010-02-05T19:30:00.001-05:00</published><updated>2010-02-05T19:30:28.096-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAIL'/><category scheme='http://www.blogger.com/atom/ns#' term='InterWebs'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>C’mon, Really?</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/S2y4HS54zCI/AAAAAAAAAHw/6JSDCMX2-64/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_ywO7MX0I9V8/S2y4H--LEoI/AAAAAAAAAH0/ZJLa3iIvdaw/image_thumb%5B3%5D.png?imgmax=800" width="762" height="512" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m using IE 8 fully updated BTW…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/S2y4IS-dq7I/AAAAAAAAAH4/KqHF5W6w_pM/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_ywO7MX0I9V8/S2y4I3Y58AI/AAAAAAAAAH8/dFEv45oC2Ak/image_thumb%5B5%5D.png?imgmax=800" width="323" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-5693735676060006281?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/5693735676060006281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/02/cmon-really.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5693735676060006281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5693735676060006281'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/02/cmon-really.html' title='C’mon, Really?'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ywO7MX0I9V8/S2y4H--LEoI/AAAAAAAAAH0/ZJLa3iIvdaw/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8186430446796772362</id><published>2010-01-27T09:20:00.002-05:00</published><updated>2010-01-27T09:22:10.087-05:00</updated><title type='text'>Crawl log error: Access is Denied</title><content type='html'>&lt;p&gt;The error I’m receiving is: &lt;strong&gt;Access is denied. Verify that either the Default Content Access Account has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has &amp;quot;Full Read&amp;quot; permissions on the SharePoint Web Application being crawled. (The item was deleted because it was either not found or the crawler was denied access to it.)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I believe this had something to do with changing the Alternate Access Mappings. This error and the change to the mappings happened around the same time. Of course I tried to change the mapping back to what it was previously, with no luck. Googled the morning away and then I found a regedit from Microsoft: &lt;a title="http://support.microsoft.com/default.aspx/kb/896861" href="http://support.microsoft.com/default.aspx/kb/896861"&gt;&lt;strong&gt;http://support.microsoft.com/default.aspx/kb/896861&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After a reboot, I reset all crawled content and now I’m able to crawl my Sharepoint site. Was very strange problem to me because I didn’t get this error when crawling my fileshares. With that info, I knew the credentials were fine, so I had to move on to another cause. The fix seems to be working great. It’s been running good for about 48 hours with multi-reboots for good measure. Please read carefully and make sure that this applies to you before implementing this fix.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Important&lt;/b&gt; This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/322756/"&gt;322756&lt;/a&gt; (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:48c1f5b1-8930-414f-88f2-593291e0fc48" class="wlWriterSmartContent"&gt;Sorry, Windows Live Spaces doesn't support file uploads    &lt;br /&gt;Please:     &lt;br /&gt;1) Change to a different blog provider, then;     &lt;br /&gt;2) Save the draft     &lt;br /&gt;3) Change to HTML view, then back to the view you were on.     &lt;br /&gt;Your files will be ready to upload then.&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:83e31fb2-53e2-4c60-b889-334df9ff9558" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MSSX+2008" rel="tag"&gt;MSSX 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MSS+2008" rel="tag"&gt;MSS 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Search+Server+Express+2008" rel="tag"&gt;Search Server Express 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Crawl+log+error" rel="tag"&gt;Crawl log error&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sharepoint" rel="tag"&gt;Sharepoint&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8186430446796772362?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8186430446796772362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/01/crawl-log-error-access-is-denied.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8186430446796772362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8186430446796772362'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/01/crawl-log-error-access-is-denied.html' title='Crawl log error: Access is Denied'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-5739924444512442818</id><published>2010-01-25T09:56:00.001-05:00</published><updated>2010-01-25T09:56:02.408-05:00</updated><title type='text'>Sharepoint - Prompting for user credentials</title><content type='html'>&lt;p&gt;At first this seemed to be an easy fix but after my first few trials and errors, I had to dig a bit deeper.&amp;#160; Let me set up the scenario:&lt;/p&gt;  &lt;p&gt;User had just changed her password upon logging into Remote Desktop (Terminal Services for you hard core people).&amp;#160; After the login process, her credentials were out of sync on the original PC she was using to login to Remote Desktop.&amp;#160; That’s when the fun started.&amp;#160; So, I get a call and the user explains the issue: “I cannot see the intranet, what’s wrong?”&amp;#160; A quick jump over to the client and now I’m in the thick of it…&amp;#160; If you have been using Sharepoint enough, then you have seen this prompt before:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://bto.bluecoat.com/packetguide/rc3.1/reports/images/login-prompt.gif" /&gt;&lt;/p&gt;  &lt;p&gt;I simply typed the credentials in and WHAM!?!..&amp;#160; I get prompted again for credentials.&amp;#160; Curious, this time, I try my credentials.&amp;#160; Same thing is happening over and over again.&amp;#160; This user cannot see the intranet!!!&amp;#160; After finding out about the password change, I logged out and logged back in.&amp;#160; Now the page actually loaded, but after a few clicks, I’m prompted for credentials again… WTF?!?&amp;#160; Thinking on the fly, I just was curious to see what the event viewer would tell me.&amp;#160; I found these two error messages:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/S12w-_PPEtI/AAAAAAAAAHY/sQ-99tGnCos/s1600-h/Error%202%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Error 2" border="0" alt="Error 2" src="http://lh4.ggpht.com/_ywO7MX0I9V8/S12w_GDGJoI/AAAAAAAAAHc/Iv4--8TUZog/Error%202_thumb%5B3%5D.jpg?imgmax=800" width="396" height="421" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/S12w_n688jI/AAAAAAAAAHg/GqLAnk9mGOg/s1600-h/Error%203%5B8%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Error 3" border="0" alt="Error 3" src="http://lh6.ggpht.com/_ywO7MX0I9V8/S12w_-81yBI/AAAAAAAAAHk/kgR51tVs3eQ/Error%203_thumb%5B6%5D.jpg?imgmax=800" width="393" height="472" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I initially thought the user account was being hammered via Remote Desktop by someone out in the world.&amp;#160; I pull up Active Directory to check the status of the account.&amp;#160; That didn’t go over, because the account wasn’t disabled.&amp;#160; At that point, I wanted to make sure the account was enabled, so I just disabled/enabled the account.&amp;#160; After doing that, the problem persisted, however, I did get a nugget of love in the Event Viewer this time!!!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_ywO7MX0I9V8/S12xACsMmTI/AAAAAAAAAHo/aJRVp9hcuPM/s1600-h/Error%201%5B6%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Error 1" border="0" alt="Error 1" src="http://lh4.ggpht.com/_ywO7MX0I9V8/S12xAbb9aGI/AAAAAAAAAHs/JIq0osEKXwU/Error%201_thumb%5B4%5D.jpg?imgmax=800" width="397" height="436" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now we are on to something…&amp;#160; (&lt;span style="color: red"&gt;WARNING!!!&lt;/span&gt; XP Instructions, so modify accordingly to your O.S.) Crack open the control panel, click on user accounts, click the Advanced tab, and finally onto the magic Manage Passwords button.&amp;#160; Buried in here was the user’s cached credentials that windows was pulling from and thus prompting us for the updated credentials.&amp;#160; I simply deleted it, as this functionality isn’t required for my environment.&amp;#160; I hope this helps!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-5739924444512442818?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/5739924444512442818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2010/01/sharepoint-prompting-for-user.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5739924444512442818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/5739924444512442818'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2010/01/sharepoint-prompting-for-user.html' title='Sharepoint - Prompting for user credentials'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_ywO7MX0I9V8/S12w_GDGJoI/AAAAAAAAAHc/Iv4--8TUZog/s72-c/Error%202_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-7197478465716460334</id><published>2009-10-27T14:27:00.004-04:00</published><updated>2010-09-21T15:08:05.599-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSS 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS 2007'/><title type='text'>Customize a NewForm.aspx to accept Query Parameters</title><content type='html'>&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Works on WSS 3.0 and MOSS 2007&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This post will show you to create a hyperlink in a Data View Web Part (DVWP) that open&amp;rsquo;s a customized NewForm.aspx. When the NewForm.aspx opens, it&amp;rsquo;ll have some of the required inputs already filled out for you. We&amp;rsquo;ll set this magic up by using DVWP and parameters passed from the DVWP to the NewForm.aspx.&lt;/p&gt;&lt;p&gt;I need to show you how I have my lists setup first, so let&amp;rsquo;s dive into that for a minute. I have two lists setup: 1. Calendar with two custom columns. These two columns are Job # and Job Name. The rest is default or whatever you&amp;rsquo;d like to have. The next list I have is a Tasks list that has these two custom columns as well. Here are some screen shots:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/Suc7mN-vKoI/AAAAAAAAAG0/Kfh17ZVhucQ/s1600-h/CustomCalendar%5B2%5D.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="CustomCalendar" src="http://lh5.ggpht.com/_ywO7MX0I9V8/Suc7mTVUMMI/AAAAAAAAAG4/tdjvDMzSfLs/CustomCalendar_thumb.png?imgmax=800" border="0" alt="CustomCalendar" width="244" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_ywO7MX0I9V8/Suc7m0uqPwI/AAAAAAAAAG8/dy9dEUfTqMA/s1600-h/CustomTasks%5B2%5D.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="CustomTasks" src="http://lh5.ggpht.com/_ywO7MX0I9V8/Suc7nCfBlYI/AAAAAAAAAHA/0preo4YrzM0/CustomTasks_thumb.png?imgmax=800" border="0" alt="CustomTasks" width="244" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You should take notice that I&amp;rsquo;ve required Job # to be inputted on each form. This is a must because it&amp;rsquo;s our primary key, if you will. This is going to be used for filtering later on, so it&amp;rsquo;s important.&lt;/p&gt;&lt;p&gt;Now that we have those lists setup we can now create our custom dashboard that allows hyperlink filtering and our magical custom newform.aspx. Fire up sharepoint designer and create a new aspx page. Add a webpart zone to your page, so we&amp;rsquo;ll have a spot to place our DVWP. Now we&amp;rsquo;ll want to click on Data View, Insert Data View. Inside our Data Source Library, we&amp;rsquo;ll highlight the Calendar. Then you&amp;rsquo;ll select show data. This will allow us to select the rows we&amp;rsquo;d like to appear in our DVWP. I usually only select one row and then click the Insert Selected Fields As: Multiple Item View. After I get the DVWP to show up on my page, then I&amp;rsquo;ll choose to edit the columns as they seem fit. SAVE YOUR WORK! We&amp;rsquo;ll call this page: Dashboard Right now, we want to see only the Job # and Job Name fields from the calendar list. Now we need to add a column to the DVWP. This will provide us a place for an additional hyperlink to our Custom NewForm.aspx. In the new column, pick any row that has a job # and then type &amp;ldquo;Add Task&amp;hellip;&amp;rdquo;. If you have done it right, it&amp;rsquo;ll populate your entire DVWP.&lt;/p&gt;&lt;p&gt;Here&amp;rsquo;s a quick glance at what it should look like:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_ywO7MX0I9V8/SuhSKz_QM1I/AAAAAAAAAHE/TvfNmOJtD_A/s1600-h/CalendarDVWP%5B5%5D.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="CalendarDVWP" src="http://lh5.ggpht.com/_ywO7MX0I9V8/SuhSLKG4euI/AAAAAAAAAHI/8FyM1PnnJQE/CalendarDVWP_thumb%5B1%5D.png?imgmax=800" border="0" alt="CalendarDVWP" width="244" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Once you get this setup how you like it, we&amp;rsquo;ll need to add two parameters to our DVWP. When you highlight the DVWP, you&amp;rsquo;ll see a chevron on the right of it. That is a menu for Common Data View Tasks. Listed inside this menu is our parameters section. Open that and add two Query Strings. Here is a photo to guide you along:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_ywO7MX0I9V8/SuhSLZ7NHxI/AAAAAAAAAHM/hslvsrSh8yA/s1600-h/QueryParams%5B2%5D.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="QueryParams" src="http://lh6.ggpht.com/_ywO7MX0I9V8/SuhSLlw36lI/AAAAAAAAAHQ/3tkaq_1WAiI/QueryParams_thumb.png?imgmax=800" border="0" alt="QueryParams" width="244" height="163" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;We&amp;rsquo;ll need these in order to carry information from our Dashboard to our CustomNewForm.&lt;/p&gt;&lt;p&gt;We now need to create another new aspx page and customize it. This will be our custom NewForm.aspx. I called it AddTask.aspx, but you certainly can make it whatever you like. I saved my page in the same place where the NewForm.aspx is for the Tasks list that I&amp;rsquo;m using. Once we have added a new web part zone to our page, we can now add a custom form. If you follow the same steps as above to add a new DVWP, you&amp;rsquo;ll be fine. There are a few differences from what we did before though. You will add the DVWP as a New Item Form instead of Multiple Item View. Also you&amp;rsquo;ll want to make sure the DVWP is for the Tasks list and not the Calendar. You&amp;rsquo;ll also want to customize the inputs as you seem fit. Be sure to include any required fields on your Tasks list on your AddTask.aspx page. Also make sure that Job # and Job Name are inputs on your AddTask.aspx page. Ok once that has been setup, now we can get down to the magic.&lt;/p&gt;&lt;p&gt;We&amp;rsquo;ll now delete both of the text boxes for Job # and Job Name. We are going to replace them with our own. Highlight the form where you&amp;rsquo;d like for them to show up, and then select Insert, ASP.Net Controls, Text Box. We have to do that because when using the DVWP for a new item form, it wouldn&amp;rsquo;t allow me to alter the Value property. When I do it this way with our own ASP.Net control, I&amp;rsquo;m able to. Now we need to make these text boxes reference our Tasks list. There will be a little chevron on each text box. Clicking that will give us the options we need. Change the data field for both to relate to the field you need. i.e. Job # = Job #, you get the idea. Now switch to code view and drop a few custom lines of magic. First we need to add our Query Strings as a parameter for our page to use. This is the code we need to add:&lt;/p&gt;&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;&lt;pre id="codeSnippet" class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ParameterBinding&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="JobNum"&lt;/span&gt; &lt;span class="attr"&gt;Location&lt;/span&gt;&lt;span class="kwrd"&gt;="QueryString(JobNum)"&lt;/span&gt; &lt;span class="attr"&gt;DefaultValue&lt;/span&gt;&lt;span class="kwrd"&gt;="Please Type a Job Num"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ParameterBinding&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="JobName"&lt;/span&gt; &lt;span class="attr"&gt;Location&lt;/span&gt;&lt;span class="kwrd"&gt;="QueryString(JobName)"&lt;/span&gt; &lt;span class="attr"&gt;DefaultValue&lt;/span&gt;&lt;span class="kwrd"&gt;="Please Type a Job Name"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;You&amp;rsquo;ll need to search the code view using:&lt;/p&gt;&lt;p&gt;&amp;lt;ParameterBinding Name&lt;/p&gt;&lt;p&gt;Just paste the code provided above in the &amp;lt;ParameterBinding Name section. I usually just search the code view for &amp;lt;ParameterBinding Name using ctrl+f. Put these two lines of code below everything else in this section. Now we need to add these two lines in the &amp;lt;xsl:stylesheet section as a parameter. Using the same logic as above, I searched the code view for &amp;lt;xsl:param This can be a bit convoluted because there are many &amp;lt;xsl:param under many other xsl:template names. I added mine directly under the xsl:stylesheet. You&amp;rsquo;ll find a few parameters there, so add them accordingly. Here is the code that you need to add:&lt;/p&gt;&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="JobNum"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;xsl:param&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="JobName"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Now we need to add a value to our customized text boxes. Again search the code for Job Name. Below that is the text box code. It begins with:&lt;/p&gt;&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;&lt;pre id="codeSnippet" class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;asp:TextBox runat="server"&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;We need to modify this line and add one attribute:&lt;/p&gt;&lt;p&gt;value=&amp;rdquo;{$JobName}&amp;rdquo;&lt;/p&gt;&lt;p&gt;Your text box code should look like this&amp;hellip; I suggest only to add the line of code above and not copy what is listed below!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="ff10{$Pos}"&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;="{$JobName}"&lt;/span&gt; &lt;span class="attr"&gt;text&lt;/span&gt;&lt;span class="kwrd"&gt;="{@Job_x0020_Name}"&lt;/span&gt; &lt;span class="attr"&gt;__designer:bind&lt;/span&gt;&lt;span class="kwrd"&gt;="{ddwrt:DataBind('i',concat('ff10',$Pos),'Text','TextChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Job_x0020_Name')}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;span class="kwrd"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now change the Job # text box the same way except we&amp;rsquo;ll add this line of code instead:&lt;/p&gt;&lt;pre class="csharpcode"&gt;value=&amp;rdquo;{$JobNum}&amp;rdquo;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;SAVE YOUR WORK! We need to add one last thing to our Dashboard page and that&amp;rsquo;s our magic hyperlink! With that page open in Design View, highlight the &amp;ldquo;Add Task&amp;hellip;&amp;rdquo; text that we added above. Right click and select hyperlink. We have to link this page to our AddTask form and add our parameters. Our link should look like this:&lt;/p&gt;&lt;p&gt;&lt;a href="http://addtasks.aspxurl/?JobNum={@Job_x0020__x0023_}&amp;amp;JobName={@Title"&gt;http://addtasks.aspxurl/?JobNum={@Job_x0020__x0023_}&amp;amp;JobName={@Title&lt;/a&gt;}&lt;/p&gt;&lt;p&gt;Save this page on final time and cross your fingers because I think we are ready to test this baby out! Open your Dashboard page and click Add Task&amp;hellip; This should open your AddTask.aspx page and automagically fill out Job # and Job Name.&lt;/p&gt;&lt;p&gt;If you like this or need some clarification, please feel free to drop me a comment.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b3e5a576-bd8e-4080-8740-8bd1620b35bb" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Custom+NewForm.aspx"&gt;Custom NewForm.aspx&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/WSS+3.0"&gt;WSS 3.0&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Sharepoint"&gt;Sharepoint&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/MOSS+2007"&gt;MOSS 2007&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a onclick="return addthis_sendto()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')" onmouseout="addthis_close()" href="http://www.addthis.com/bookmark.php?v=20"&gt;&lt;img style="border-width: 0px;" src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" width="125" height="16" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-7197478465716460334?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/7197478465716460334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2009/10/customize-newformaspx-to-accept-query.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7197478465716460334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/7197478465716460334'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2009/10/customize-newformaspx-to-accept-query.html' title='Customize a NewForm.aspx to accept Query Parameters'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_ywO7MX0I9V8/Suc7mTVUMMI/AAAAAAAAAG4/tdjvDMzSfLs/s72-c/CustomCalendar_thumb.png?imgmax=800' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-9060436903708638286</id><published>2009-07-29T18:12:00.001-04:00</published><updated>2009-07-29T18:15:58.039-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stress Test'/><category scheme='http://www.blogger.com/atom/ns#' term='Benchmarking'/><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Vista SP2 x32 bit vs. Win 7 x64 bit</title><content type='html'>&lt;p&gt;I followed the same steps as TK did in his original post.&amp;#160; I really wanted to see which is better.&amp;#160; So, I set out on the absurd task of formatting my box just to install an O.S. and run tests.&amp;#160; I only call it absurd because all of my settings take forever to get back in place.&lt;/p&gt;  &lt;p&gt;You don’t have to worry, &lt;a href="http://www.symantec.com/norton/ghost" target="_blank"&gt;pc images&lt;/a&gt; are your friend.&amp;#160; After creating a TESTED image, I then formatted my box.&amp;#160; Once I had Vista back on my machine, I realized why I went for Win 7 even though it was still in BETA at the time.&amp;#160; &lt;/p&gt;  &lt;p&gt;I used the same benchmarking tool as did TK: &lt;a href="http://www.passmark.com/products/pt.htm" target="_blank"&gt;Passmark Performance Test&lt;/a&gt;.&amp;#160; Here are the results:&lt;/p&gt; Summary   &lt;ol&gt;   &lt;li&gt;&lt;a href="http://mattbramer.selfip.com/files/benchmark/Vista%20SP2%20x32%20-%20Second%20Pass.txt" target="_blank"&gt;Vista SP2 x32 bit Passmark Rating&lt;/a&gt; - &lt;strong&gt;1259.2&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://mattbramer.selfip.com/files/benchmark/Win7%20x64bit%20-%20Second%20Pass.txt"&gt;Win 7 x64 bit Passmark Rating&lt;/a&gt; - &lt;strong&gt;1352.0&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;It wasn’t even close as I expected.&amp;#160; After all, I am running a x64 bit architecture vs. a x32 bit.&amp;#160; To make things a bit more fair, I’m going to run through the whole process again but this time, I will include: XP SP3 x32 bit, Vista x64 bit, and Win 7 x32 bit.&amp;#160; I know, I know, but what about XP x64 bit… I just wont go there.&lt;/p&gt;  &lt;p&gt;If you clicked the links to view the results, you may have noticed exactly why Win 7 beat Vista here… If not, check the Passmark ratings for Total RAM.&amp;#160; That should give you a clear reason why Win 7 x64 bit won.&amp;#160; If you were wondering, I’ve linked a &lt;a href="http://mattbramer.selfip.com/files/benchmark/belarc.html"&gt;Belarc Report&lt;/a&gt; so you can view the hardware that I am using for these tests.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cb86d3cf-138b-4a9f-b7ef-68f2048fa5d3" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/stress+Test" rel="tag"&gt;stress Test&lt;/a&gt;,&lt;a href="http://technorati.com/tags/benchmarking" rel="tag"&gt;benchmarking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/xp" rel="tag"&gt;xp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/win7" rel="tag"&gt;win7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/vista" rel="tag"&gt;vista&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-9060436903708638286?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/9060436903708638286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2009/07/vista-sp2-x32-bit-vs-win-7-x64-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/9060436903708638286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/9060436903708638286'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2009/07/vista-sp2-x32-bit-vs-win-7-x64-bit.html' title='Vista SP2 x32 bit vs. Win 7 x64 bit'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-6567447367023825067</id><published>2009-07-26T02:55:00.000-04:00</published><updated>2009-07-26T17:20:07.997-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stress Test'/><category scheme='http://www.blogger.com/atom/ns#' term='Benchmarking'/><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>TK posts big!</title><content type='html'>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:550341f3-1ad0-43be-b225-ec6b6f1cdf1e" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Benchmarking" rel="tag"&gt;Benchmarking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Stress+Test" rel="tag"&gt;Stress Test&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Ubuntu" rel="tag"&gt;Ubuntu&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Win7" rel="tag"&gt;Win7&lt;/a&gt;,&lt;a href="http://technorati.com/tags/XP" rel="tag"&gt;XP&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Check out the work a great friend of mine is doing:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://techrepublic.com.com/5208-6230-0.html?forumID=102&amp;amp;threadID=280962&amp;amp;messageID=2659904" href="http://techrepublic.com.com/5208-6230-0.html?forumID=102&amp;amp;threadID=280962&amp;amp;messageID=2659904"&gt;http://techrepublic.com.com/5208-6230-0.html?forumID=102&amp;amp;threadID=280962&amp;amp;messageID=2659904&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Big ups to TK and getting accurate results out to the web.&amp;#160; He also runs tests against the new Win7 and Vista.&amp;#160; You can check out his latest post @&lt;/p&gt;  &lt;p&gt;&lt;a title="http://techrepublic.com.com/5208-6230-0.html?forumID=102&amp;amp;threadID=313863&amp;amp;messageID=3124031" href="http://techrepublic.com.com/5208-6230-0.html?forumID=102&amp;amp;threadID=313863&amp;amp;messageID=3124031"&gt;http://techrepublic.com.com/5208-6230-0.html?forumID=102&amp;amp;threadID=313863&amp;amp;messageID=3124031&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I can’t stress the importance enough about these tests.&amp;#160; Allowing the default O.S. to be tested in this unbiased manner proves valuable for anyone who owns a computer.&amp;#160; If you’d like more details about how these tests were conducted, comment till your fingers bleed.&amp;#160; It’s definitely worth it IMHO&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-6567447367023825067?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/6567447367023825067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2009/07/tk-posts-big.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6567447367023825067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/6567447367023825067'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2009/07/tk-posts-big.html' title='TK posts big!'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4810971256241483630.post-8762475108810130971</id><published>2009-07-08T21:30:00.007-04:00</published><updated>2010-12-01T15:30:53.610-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='self-promotion'/><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>Creating custom background for Twitter using Twitbacks.com</title><content type='html'>&lt;left&gt;&lt;script type="text/javascript"&gt;var addthis_pub="remy20000000000";&lt;/script&gt;&lt;br /&gt;&lt;a href="http://www.addthis.com/bookmark.php?v=20" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0;" width="125" /&gt;&lt;/a&gt;&lt;script src="http://s7.addthis.com/js/200/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/left&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Thanks for the great link &lt;a href="http://twitter.com/stacykinney" target="_blank"&gt;Stacy Kinney&lt;/a&gt;. &lt;a href="http://www.twitbacks.com/"&gt;Twitbacks&lt;/a&gt; looked interesting so I obliged. The whole process took about 2 minutes from start to finish. The outcome was better than what I thought it would be. My Twitter background looks nice now &lt;a href="http://www.twitter.com/remymaza" rel="tag" target="_blank" title="Matt Bramer's Twitter account"&gt;@remymaza&lt;/a&gt;. The ability to create a custom message on the left side is neat. Also, you are able to fill out a message (up to 250 characters) and upload a logo/picture (2 MB limit) of whatever you like. The background you can also customize with your own image or select from one of the templates. This service is completely free unless you want to add more functionality.&lt;/code&gt; &lt;br /&gt;Some of the options that cost money are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Removing the twitbacks logo &lt;/li&gt;&lt;li&gt;Adding promotion services to your Twitter account – &lt;a href="http://www.twitbacks.com/promote.php" target="_blank"&gt;More Info&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;Twitbacks does say that there will always be a free service, let’s see what kind of innovations they can bring to the table. So far I really only see services that are geared towards businesses that are using Twitter as a marketing platform. All in all, this was completely worth my time and yours too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="http://openlike.org/v1/ openlike.js" type="text/javascript"&gt;&lt;/script&gt; &lt;br /&gt;&lt;script type="text/javascript"&gt; OPENLIKE.Widget({ s: ['twitter', 'google', 'digg', 'reddit', 'stumbleupon', 'hunch'], header: 'Like this on other sites:' }) &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4810971256241483630-8762475108810130971?l=mattbramer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mattbramer.blogspot.com/feeds/8762475108810130971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mattbramer.blogspot.com/2009/07/creating-custom-background-for-twitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8762475108810130971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4810971256241483630/posts/default/8762475108810130971'/><link rel='alternate' type='text/html' href='http://mattbramer.blogspot.com/2009/07/creating-custom-background-for-twitter.html' title='Creating custom background for Twitter using Twitbacks.com'/><author><name>Matthew Bramer</name><uri>https://profiles.google.com/110508393702111689597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-kPcHUl6aCC0/AAAAAAAAAAI/AAAAAAAACUk/oLmS8WMwhjI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
