|
| Title | Approver Comments | Body | # Comments | Category | CategoryID | Published | Approval Status | Stale | ID | Content Type | Modified | Created | Created By | Modified By | Version | Attachments | LinkTitleNoMenu | LinkTitle | URL Path | Path | Item Type | ProgId | ScopeId | DocIcon | MetaInfo | Permalink | PostedByWithDate | CategoryWithLink | NumCommentsWithLink | EmailPostLink |
|---|
| Using MindManager for IBIS Analysis | |
So instead of retweeting the usual, "hey great post--did you know you could also do that in...", I thought it better to quickly throw together an actual map so that people can actually visualize it within MindManager.
| | Mind Mapping | | 4/7/2009 10:21 AM | Approved | No | 3 | Post | 4/7/2009 10:59 AM | 4/7/2009 9:58 AM | Jim Parker | Jim Parker | 1.0 | No | Using MindManager for IBIS Analysis | Using MindManager for IBIS Analysis | blog/Lists/Posts/3_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 3 | Jim Parker | Mind Mapping | 1 | 3 | | Why On Earth Would a Company Choose to Be a “Microsoft-only Shop!?” | |
This is in response to a post I came across on Linked-In where the question was posed, "Can someone define exactly what the meaning " We're a Microsoft Shop / House" really means in today's world & benefits of this given so much open source products available today ?"
One of the responses was: "It means bound to proprietary software, corporate dogma and being a marketing vehicle for Microsoft...."
That's one way to look at it for sure, but I'll also offer my 2 cents. It could also mean that they recognize the value of choosing a strategic partner and dedicating their resources to one platform, avoiding the "jack of all trades, master of none" syndrome.
I know several senior level architects that have taken a similar approach to the development platforms in which they invest. They chose to focus and specialize rather than attempt to provide broader and perhaps more flexible skills, and from what I have witnessed it pays off big-time. The value comes not from the high level architecture designs that they're able to form, but when the rubber meets the road in implementation, they have the deep-level knowledge and experience to build robust, reliable, and proven solutions, and have the ability solve that really, really odd behavior in the system that nobody else can seem to figure out.
The fact that a company chooses to be a "Microsoft shop", is simply just that...a choice. Is there a downside? Sure, you can't deny that you're limiting your options, but it's probably only a short-term loss. Microsoft (or Sun, IBM, etc.) will eventually always provide equivalent functionality to other popular or mainstream platforms, so you'll never really be far behind. However, if your company wishes to live on the bleeding edge of technology every waking minute of the day, then you've already chosen not to have a particular strategic platform. Again, that's a choice. Few companies can pull that off, but if yours is one of them, great. If not, making a strategic choice, forming strong partnerships, and being committed to a particular platform can yield great long-term results.
It's an interesting topic though, so what are your thoughts? Why not leave a comment or two? | | Misc-Posts | | 4/8/2009 7:31 AM | Approved | No | 5 | Post | 4/8/2009 10:40 AM | 4/8/2009 10:31 AM | Jim Parker | Jim Parker | 1.0 | No | Why On Earth Would a Company Choose to Be a “Microsoft-only Shop!?” | Why On Earth Would a Company Choose to Be a “Microsoft-only Shop!?” | blog/Lists/Posts/5_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 5 | Jim Parker | Misc-Posts | 0 | 5 | | Using MindManager for Scenario Analysis | | I came across another post in Linked-In asking for opinions on using MindManager, a killer mind mapping tool from Mindjet, to document and analyze scenarios as part of the SDLC for a project. Here are some of my quick thoughts:
I've always thought that scenarios should be kept very simple, as that is from where their true power comes. Simple scenarios are easily digested and understood by all stakeholders of a project (executives, architects, PM's, BA's, coders, testers, etc.), and as such, you have a much greater chance of catching and fulfilling all the right requirements.
If you subscribe to that idea, I would also suggest then that your MindManager map template should also stay simple and at a high-level. It would probably prove more valuable if you didn't have to link 50+ maps together to get the full vision of your project scenarios. Try to keep it to one map if possible and within reason.
Use a brainstorming/mapping session to fill in the high-level detail with the appropriate stakeholders. That, in of itself, will generate a lot of valuable conversation and also likely spawn questions that may reveal additional scenarios you hadn't thought of yet.
Once the initial brainstorming session is complete, you can then take each of the scenarios and add the appropriate detail needed to fully test and implement each scenario as part of your project. That kind of detail is not easily conveyed via a map, in my opinion, so I would instead simply link to the detailed document from your map such that the document could be viewed in the embedded explorer window within MindManager, right alongside your high-level map.
Different people approach scenario analysis and development in many different and constructive ways so explore some more and find the methodology that fits best for you and your team. Just my 2 ¢ | | Mind Mapping | | 4/9/2009 1:40 PM | Approved | No | 7 | Post | 4/9/2009 3:06 PM | 4/9/2009 1:40 PM | Jim Parker | Jim Parker | 1.0 | No | Using MindManager for Scenario Analysis | Using MindManager for Scenario Analysis | blog/Lists/Posts/7_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 7 | Jim Parker | Mind Mapping | 0 | 7 | | Cold-Calling Staff Agency Just Emailed Me Worst PowerPoint Ever | |
If you're a manager at a sizeable company, you probably get at least 3-4 cold calls a day from staff augmentation agencies trying to load you up with resources. What a terrible job that must be during a business recession. Anyway, this particular gentleman emailed me this PowerPoint as part of his calling card. I opened it, saw 4 or 5 slides of nothing but paragraphs followed by more paragraphs of text.
No short, meaningful bullets.
No engaging graphics.
No compelling statements… Just paragraphs of text!
Are you kidding me?! DELETE! Just terrible… | | Misc-Posts | | 4/9/2009 12:34 PM | Approved | No | 8 | Post | 4/9/2009 2:38 PM | 4/9/2009 2:34 PM | Jim Parker | Jim Parker | 1.0 | No | Cold-Calling Staff Agency Just Emailed Me Worst PowerPoint Ever | Cold-Calling Staff Agency Just Emailed Me Worst PowerPoint Ever | blog/Lists/Posts/8_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 8 | Jim Parker | Misc-Posts | 0 | 8 | | The Problem with Twitter Backgrounds? Side Dockers | |
If you're like me (at least in this context) and you like to have your Windows start bar side docked, then sadly, most Twitter backgrounds are going to be cut off and not look right. You can try to accommodate for this by just using more "white space" between your background content and the Twitter border, but the amount of space you'll need to compensate for depends on how wide the side-docking user chose to use.
See pic to see what I mean. If anybody has a fix--let me know!

| | Twitter | | 4/17/2009 11:12 AM | Approved | No | 9 | Post | 4/20/2009 11:00 AM | 4/17/2009 11:09 AM | Jim Parker | Jim Parker | 1.0 | No | The Problem with Twitter Backgrounds? Side Dockers | The Problem with Twitter Backgrounds? Side Dockers | blog/Lists/Posts/9_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 9 | Jim Parker | Twitter | 0 | 9 | | Another Great SharePoint Branding Blog | |
Found another great information resource for SharePoint branding with this blog from Michelle Pakron. In her blog, Michelle goes to what certainly appears like great lengths to visually breakdown the various CSS elements/styles of an actual SharePoint page. If you're s SharePoint designer, then of course you already have come to rely on Heather Solomon's CSS Guide for WSSv3, but I also really like Michelle's contextual break-down. It's worth your time to check it out. Here's an example of what I'm talking about:

| | SharePoint | | 4/24/2009 6:42 AM | Approved | No | 11 | Post | 5/18/2009 8:07 PM | 4/24/2009 3:42 PM | Jim Parker | Jim Parker | 1.0 | No | Another Great SharePoint Branding Blog | Another Great SharePoint Branding Blog | blog/Lists/Posts/11_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 11 | Jim Parker | SharePoint | 1 | 11 | | Little Known Fact about a McDonald’s Coke | | Ever wonder why a Coca-Cola tastes better at McDonald's than other fast food restaurants?
The answer: McDonald's has put a tremendous amount of research and technology into how they serve their sodas. They actually have a fairly sophisticated machine that determines the precise amount of carbonation, water, and refrigeration to apply to each and every dispensing of soda. It was called a Multi-Plex (or something like that) back when I worked there about 15 years ago, but I'm sure today all of that is programmed from a thumb drive or an embedded microchip in Ronald's tooth. ;-)
Now, don't you just feel like a Coke and a Smile? Cheers.
| | Misc-Posts | | 4/27/2009 1:42 PM | Approved | No | 12 | Post | 4/27/2009 1:50 PM | 4/27/2009 1:42 PM | Jim Parker | Jim Parker | 1.0 | No | Little Known Fact about a McDonald’s Coke | Little Known Fact about a McDonald’s Coke | blog/Lists/Posts/12_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 12 | Jim Parker | Misc-Posts | 0 | 12 | | How to Hide (not delete) SharePoint Site Title in Header | |
Ever wonder how to hide the site title without deleting the text under Site Title/Description setting, or even worse, using SharePoint Designer (SPD) to just completely zap it from existence?
This quick and easy tip from the Tech Training Notes Blog will show you how to simply hide it using a couple quick lines of CSS. Head over to Mike Smith's site and check out this link to see how it's done.
| | SharePoint | | 4/30/2009 6:20 AM | Approved | No | 13 | Post | 4/30/2009 3:36 PM | 4/30/2009 2:20 PM | Jim Parker | Jim Parker | 1.0 | No | How to Hide (not delete) SharePoint Site Title in Header | How to Hide (not delete) SharePoint Site Title in Header | blog/Lists/Posts/13_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 13 | Jim Parker | SharePoint | 0 | 13 | | Mac or PC? | | | | Misc-Posts | | 4/30/2009 10:04 PM | Approved | No | 15 | Post | 5/1/2009 11:11 PM | 4/30/2009 10:04 PM | Jim Parker | Jim Parker | 1.0 | No | Mac or PC? | Mac or PC? | blog/Lists/Posts/15_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 15 | Jim Parker | Misc-Posts | 0 | 15 | | Fixing Microsoft Word 2007 crashing feature – an Easy Fix! | | A short while ago, I started noticing that every time I would close Microsoft Word, it would crash. Very annoying, but I figured that maybe a recent automatic update caused the problem and was hopeful that soon another automatic update would fix it J Well, after about a month of it I finally got frustrated, particularly since I was observing additional behavior that was the last straw—it was preventing me from posting blog posts to my SharePoint Blog via MS Word (which btw is far better than the rich text editor on SharePoint).
I finally did a search to see if I could find someone else that was having the same problem and came across this awesome quick fix from Ruth Ellison on her blog, http://www.RuthEllison.com. She discovered a knowledgebase article that instructed her to simply delete a registry key, and viola…Fixed! Check out her post and get your MS Word healthy again.
| | Misc Tech Support | | 5/2/2009 12:29 PM | Approved | No | 16 | Post | 5/3/2009 6:08 PM | 5/2/2009 12:29 PM | Jim Parker | Jim Parker | 1.0 | No | Fixing Microsoft Word 2007 crashing feature – an Easy Fix! | Fixing Microsoft Word 2007 crashing feature – an Easy Fix! | blog/Lists/Posts/16_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 16 | Jim Parker | Misc Tech Support | 0 | 16 | | Protect Yourself from the Twitter Bird Flu! | |
After reading a thousand or so tweets about Swine Flu, I felt compelled to create this badge. This is not meant to offend anyone, just trying to keep things light hearted in a mad world. If necessary, flame on…heck, the blog participation would be nice for a change ;-)
Feel free to link to the source picture located here for your blog, or let me know if you'd like a different size.
By the way, if anybody knows the original creator of the pre-modified version of this blue bird, please let me know so I can give credit where it's due. I downloaded the image from this blog. | | Twitter | | 5/4/2009 12:19 AM | Approved | No | 31 | Post | 5/12/2009 2:03 PM | 5/4/2009 12:19 AM | Jim Parker | Jim Parker | 1.0 | Yes | Protect Yourself from the Twitter Bird Flu! | Protect Yourself from the Twitter Bird Flu! | blog/Lists/Posts/31_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 31 | Jim Parker | Twitter | 0 | 31 | | Get Your Own Money-Back Tweet Guarantee! | |
Inspired by my last badge and how many followers I gained as a result, I created another fun badge to show off on your blog or twitter background. In this new era of customer-service is king, you can now back your tweets with a solid, iron-clad, no if's, and's, or but's guarantee that shows your followers you are committed to their satisfaction. Well, okay, maybe not their satisfaction, but you can sure point out that they didn't actually pay a single dime for your awesome and witty tweets, so quit complaining! ;-)
Feel free to link to the source picture located here for your blog, or let me know if you'd like a different size. Also, you can find the badge version here on my Badges page! | | Twitter | | 5/12/2009 6:15 AM | Approved | No | 34 | Post | 5/15/2009 5:43 PM | 5/12/2009 12:15 PM | Jim Parker | Jim Parker | 1.0 | No | Get Your Own Money-Back Tweet Guarantee! | Get Your Own Money-Back Tweet Guarantee! | blog/Lists/Posts/34_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 34 | Jim Parker | Twitter | 0 | 34 | | My tweetie bird flu badge got Effed!! | |
If you haven't checked out this website yet, hit it now. It takes any picture you've got and blends it into a variety of scenes that look REAL! Very clever. | | Misc-Posts | | 5/20/2009 11:26 PM | Approved | No | 35 | Post | 5/20/2009 11:29 PM | 5/20/2009 11:29 PM | Jim Parker | Jim Parker | 1.0 | No | My tweetie bird flu badge got Effed!! | My tweetie bird flu badge got Effed!! | blog/Lists/Posts/35_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 35 | Jim Parker | Misc-Posts | 0 | 35 | | SharePoint Data View: Dynamically Grouping People Columns | |
Okay, so hopefully you've found this post quickly and with minimal effort, because I couldn't imagine anyone going through the pure XSL hell that I just did these last 2 days. Yes, that's correct—two days I spent trying to figure out how to get a data view to dynamically group on a people-type column. When I say dynamically, I mean not by applying a static grouping through SharePoint Designer (although that too has its own issues), I'm talking about the nifty toolbar you can add to your data view to allow users to perform sorting, grouping, and filtering of your custom view. This is absolutely critical unless you want to spend you days and nights copying and modifying individual views to accommodate every possible sort and grouping scenario your users might come up with. At any rate, it sounds like it should be really simply, huh? Perhaps a built-in feature even, eh? Or at a minimum just using the sorting and grouping dialog correctly, right? Pffftt…yeah, I thought so too. 
(diagram above shows normal behavior when working with views within SharePoint’s end-user interface)
Here's what happens: In SharePoint designer, you first try to apply static grouping to your data view. Sure, it adds the need grouping headers, but unfortunately every entry is displayed within its own "group", which is obviously completely pointless. Here’s what it looks like:
Through some quick research you'll find that these people columns actually output a whole slew of data that's not actually rendered on the screen. Here's an example:
You see this: Doe, John
Sharepoint is hiding this: "<nobr><span><A HREF="/cl/XY/XYpeople/_layouts/userdisp.aspx?ID=231">Doe, John</A><img border="0" height="1" width="3" src="/_layouts/images/blank.gif"/><a href='javascript:' onclick='IMNImageOnClick();return false;' class='ms-imnlink'><img name='imnmark' title='' border='0' height='12' width='12' src='/_layouts/images/blank.gif' alt='No presence information' sip='John.Doe@Anycorp.com' id='imn_522,type=sip'/></a></span></nobr>"
Aside from being information overload for most purposes, it creates the very thing hated by the Group function: Uniqueness. If you look closely at the information, you see that there is a unique number embedded. What does it do? I have no idea, nor do I care. All I know is that by making each individual entry unique, my grouping won't work. So yes, don't worry, there is an easy way to truncate it so that you end up with a value that will not necessarily be unique, so you can get some grouping action going on.
No, it's not the usual "disable-output-escaping" statement…UGH!! That only fixes the display of the field in your html—it does nothing to fix the grouping problem.
Okay, so it's actually a really easy substring statement that you may have already found in your Google searches because you're better than me. If not, it looks like this:
<xsl:value-of select="substring-before(substring-after(substring-after(@ContactPerson, '?ID='), '>'), '<')" />
Which returns this:
"<nobr><span><A HREF="/cl/XY/XYpeople/_layouts/userdisp.aspx?ID=231">Doe, John
Notice that the id=imn_522 isn't there, only repeatable data that can easily be grouped together now. Sure, you can substring it even more to get just "Doe, John" returned, but after two days of banging my head against the keyboard trying to solve the grouping problem, I didn't bother. I'm fairly certain you could find about 2,000 other blogs with this information if you're interested.
Okay, so we have unique values and we're ready to watch SharePoint do some killer grouping, right!?? BUZZZ Wrong. This next part is really the key, and was the thing that eluded me for two days because it's just not documented anywhere that I could find. Now I'm sure as soon as I say that, I'll get 30 comments with links to everyone's blog with clear and easy instructions that have been out there for 2 years. Sure, maybe's it's out there. Heck, with as little sleep I've gotten lately, I'd probably miss it in my searches even if my wife posted a note on the fridge with the code. Okay, just in case you DON'T have the answer, Smarty-Pants, here it is:
Within your xsl, there is a section that deals specifically with evaluating the row data and grouping it. The problem, is that for some wholly ungodly reason, there is nothing in the code to deal with the people data type, so it just treats it as regular data and and it reads the entire string of the people column, which means that unique identifier slips in an ruins our grouping.
So in order to fix it, we need to tell the XSL to do something differently when we encounted this particular people field so that we can strip out the uniqueness part, before the grouping happens. To do this, you simply add an xsl:choose branch to tell it to deal with people columns in the fashion mentioned above (substringing it to remove the unique identifier). The section of code you need to find is the dvt_1.body template section. In it, you'll find this block of code:
<xsl:variable name="NewGroup_adhoc">
<xsl:choose>
<xsl:when test="$dvt_groupfield">
<xsl:value-of select="ddwrt:NameChanged(string(*[name()=$dvt_groupfield] | @*[name()=$dvt_groupfield] | current()[name(.) = $dvt_groupfield]), 0)" /></xsl:otherwise>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
Replace it with this block:
<xsl:variable name="NewGroup_adhoc">
<xsl:choose>
<xsl:when test="$dvt_groupfield">
<xsl:choose>
<xsl:when test="contains($dvt_groupfield, 'ContactPerson')"> <xsl:value-of select="ddwrt:NameChanged(string(substring-before(@ContactPerson,'</A>')), 0)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="ddwrt:NameChanged(string(*[name()=$dvt_groupfield] | @*[name()=$dvt_groupfield] | current()[name(.) = $dvt_groupfield]), 0)" /></xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
WAIT!! There's one little tweak you need to make, and it's only because I'm a hack. Yes, that's right, I had to hard-code <crowd gasp> the contains criteria to distinguish the specific people field from other normal fields. I'm certain there is a way around this to make it more generic and reusable, and I actually intend to track that down later, so I'll certainly pass it along when I figure it out. For now though, in hopes that I can save you some frustration, just replace the word 'IT' in the code above with something that resembles the people field name that you're trying to group on. In my case, the actual field name was @ContactPerson. Okay, okay, it's a hack…I already said that…geez. But, it works for now, and that's all that matters.
Okay, I'm done here—just wanted to pass this along while it was fresh in my mind (and before I got too lazy to bother posting it). Hope it helps.
| | SharePoint | | 7/24/2009 4:11 PM | Approved | No | 42 | Post | 11/24/2009 11:06 PM | 7/24/2009 4:11 PM | Jim Parker | Jim Parker | 1.0 | Yes | SharePoint Data View: Dynamically Grouping People Columns | SharePoint Data View: Dynamically Grouping People Columns | blog/Lists/Posts/42_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 42 | Jim Parker | SharePoint | 6 | 42 | | Create a VisiFire Stacked Chart from a SharePoint List | |
UPDATED: I have updated this post with a little more information on how to achieve this, since on my original post I was being a bit...well, lazy :-)
Okay, so @jpowell490 was asking on the VisiFire forums about how to create a stacked column/bar chart with VisiFire, but pulling the data from a SharePoint list instead of hard-coded XML. So I quickly threw together a demo which illustrated his exact needs, and provided source code, but I failed to show how to implement the code. It's funny how I can remember reading posts where someone had dumped a bit of code on there, and feeling very frustrated because they didn't specifically tell me where in the heck to put the code. How easy we forget :-)
So anyway, let me try to step through this for folks who are interested.
Step 1: I'm assuming you already know how to create a SharePoint list with the necessary fields highlighted in this demo, so I won't cover that.
Step 2: Open SharePoint designer and create a new web part page (or do it through SharePoint and then open designer to edit it).
Step 3: Add a data view to any web part zone, and base it off the custom list you created. Add at least one field to the data view.
Step 4: Look at the code view through SPD of your page, and find the code related to the data view web part you just created. In that section of code you need to find and highlight the following code…and DELETE IT!
<xsl:template match="/"> <xsl:call-template name="dvt_1"/> </xsl:template> <xsl:template name="dvt_1"> <xsl:variable name="dvt_StyleName">Table</xsl:variable> <xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/> <table border="0" width="100%" cellpadding="2" cellspacing="0"> <tr valign="top"> <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1"> <th class="ms-vh" width="1%" nowrap="nowrap"></th> </xsl:if> <th class="ms-vh" nowrap="nowrap">Month</th> <th class="ms-vh" nowrap="nowrap">New Help Tickets</th> <th class="ms-vh" nowrap="nowrap">Closed Help Tickets</th> </tr> <xsl:call-template name="dvt_1.body"> <xsl:with-param name="Rows" select="$Rows"/> </xsl:call-template> </table> </xsl:template> <xsl:template name="dvt_1.body"> <xsl:param name="Rows"/> <xsl:for-each select="$Rows"> <xsl:call-template name="dvt_1.rowview"/> </xsl:for-each> </xsl:template> <xsl:template name="dvt_1.rowview"> <tr> <xsl:if test="position() mod 2 = 1"> <xsl:attribute name="class">ms-alternating</xsl:attribute> </xsl:if> <xsl:if test="$dvt_1_automode = '1'" ddwrt:cf_ignore="1"> <td class="ms-vb" width="1%" nowrap="nowrap"> <span ddwrt:amkeyfield="ID" ddwrt:amkeyvalue="ddwrt:EscapeDelims(string(@ID))" ddwrt:ammode="view"></span> </td> </xsl:if> <td class="ms-vb"> <xsl:value-of select="@Title"/> </td> <td class="ms-vb"> <xsl:value-of select="format-number(@NewHelpTickets, '#,##0.00;-#,##0.00')"/> </td> <td class="ms-vb"> <xsl:value-of select="format-number(@ClosedHelpTickets, '#,##0.00;-#,##0.00')"/> </td> </tr> </xsl:template>
Yes, delete it! Don't worry--we're going to add some other code instead.
Step 5: Paste the following code into the section you just deleted--naturally, placement is key, so make sure you put it in the right spot:
<!-- Load the chart tools -->
<script type="text/javascript" src="Visifire2.js"></script> <!-- Create the JavaScript variable that holds the data to plot. -->
<!-- Note the xsl:for-each statement which loops over all the list items and creates the necessary DataPoint entries in the Chart XML. -->
<xsl:text disable-output-escaping="yes"><![CDATA[<script type="text/javascript">
var xmlString =
' <vc:Chart xmlns:vc="clr-namespace:Visifire.Charts;assembly=SLVisifire.Charts"'
+ ' Width="600" Height="400" BorderThickness="1" CornerRadius="15" Theme="Theme3" View3D="False" AnimationEnabled="True" Watermark="False" Bevel="False" LightingEnabled="True" >'
+ ' <vc:Chart.AxesX>'
+ ' </vc:Chart.AxesX>'
+ ' <vc:Chart.AxesY>'
+ ' <vc:Axis Interval="50" />'
+ ' </vc:Chart.AxesY>'
+ ' <vc:Chart.Titles><vc:Title Text="Closed Tickets vs. New Tickets" FontSize="24" FontColor="#33CCFF" Enabled="True" FontFamily="Arial"/></vc:Chart.Titles>'
+ ' <vc:Chart.Series>'
+ ' <vc:DataSeries LegendText="Closed Tickets" RenderAs="StackedColumn" ShowInLegend="True" Bevel="True" LabelEnabled="True" LabelFontSize="14">'
+ ' <vc:DataSeries.DataPoints>'
]]></xsl:text>
<xsl:for-each select="/dsQueryResponse/Rows/Row">
<xsl:text disable-output-escaping="yes"><![CDATA[ + ' <vc:DataPoint AxisXLabel="]]></xsl:text><xsl:value-of select="@Title" />
<xsl:text disable-output-escaping="yes"><![CDATA[" YValue="]]></xsl:text><xsl:value-of select="@ClosedHelpTickets" />
<xsl:text disable-output-escaping="yes"><![CDATA["/>']]></xsl:text> </xsl:for-each>
<xsl:text disable-output-escaping="yes">
<![CDATA[
+ ' </vc:DataSeries.DataPoints>'
+ ' </vc:DataSeries>'
+ ' <vc:DataSeries LegendText="New Tickets" RenderAs="StackedColumn" ShowInLegend="True" Bevel="True" LabelEnabled="True" LabelFontSize="14">'
+ ' <vc:DataSeries.DataPoints>'
]]></xsl:text>
<xsl:for-each select="/dsQueryResponse/Rows/Row">
<xsl:text disable-output-escaping="yes"><![CDATA[ + ' <vc:DataPoint AxisXLabel="]]></xsl:text><xsl:value-of select="@Title" />
<xsl:text disable-output-escaping="yes"><![CDATA[" YValue="]]></xsl:text><xsl:value-of select="@NewHelpTickets" />
<xsl:text disable-output-escaping="yes"><![CDATA["/>']]></xsl:text>
</xsl:for-each>
<xsl:text disable-output-escaping="yes">
<![CDATA[
+ ' </vc:DataSeries.DataPoints>'
+ ' </vc:DataSeries>'
+ ' </vc:Chart.Series>'
+ ' </vc:Chart>';
</script> ]]></xsl:text>
<!-- Create the div to hold the chart and then run -->
<!-- the JavaScript code to actually show the chart. -->
<div id="VisifireChart1">
<script language="javascript" type="text/javascript">
var vChart = new Visifire2("SL.Visifire.Charts.xap",600,400);
vChart.setDataXml(xmlString);
vChart.render("VisifireChart1");
</script> </div> </xsl:template>
Step 6: The code I have provided refers to specific list fields which I created in my custom list. If your fields are different, then obviously replace those within the code. @Title refers to the "Month" column, and the other two columns (@NewHelpTickets and @ClosedHelpTickets) are self-explanatory.
Step 7: Fire away! You're done.
So here's is a live example for you to view as well, which implements the exact code mentioned above. I hope this helps--enjoy!
| | SharePoint | | 9/16/2009 5:57 PM | Approved | No | 43 | Post | 9/16/2009 10:10 PM | 9/16/2009 5:59 PM | Jim Parker | Jim Parker | 1.0 | No | Create a VisiFire Stacked Chart from a SharePoint List | Create a VisiFire Stacked Chart from a SharePoint List | blog/Lists/Posts/43_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 43 | Jim Parker | SharePoint | 1 | 43 | | How to Solve Your SharePoint Rich Text Editor Blues | |
The Problem
So if you’ve ever tried to walk someone through the process of creating a custom web part page filled with nicely styled text and pictures, you know what a poor experience SharePoint WSS 3.0 provides. It involves navigating all of SharePoint land, hunting for URL’s, and battling with a lame Rich Text Editor with the formatting of your content.
It goes something like this:
Step 1: Open any custom web part page for editing, and drop a Content Editor Web Part (CEWP) onto the page.
Step 2: Put the CEWP web part into edit mode, and click on the Rich Text Editor button
Step 3: You now get a rich text box to start typing away. But the box is really small, so you widen it. You start typing text and realize you want a cool picture or two to spice up the content. So you click on the little picture button and expect to be able to browse and insert a picture. Wrong. You get a tiny dialog box asking for the URL to the picture.
Ah huh…so then you realize that you have to actually upload the picture to your picture library ahead of time (which you didn’t because you weren’t even sure what you were going to put in your article or content until you started writing it out).
Step 4: So you save your current work (which looks terribly incomplete), and navigate over to your picture library so you can upload a picture or two. You don’t know which picture is going to look just right yet, so you upload 4 or 5 just in case because you don’t want to have to do this all over again and interrupt your creative thought.
Step 5: So after uploading the pics to a library (which takes entirely too long) you then need to go grab the URL for the picture you want to use, so you view the properties of the picture and copy the URL to the clipboard.
Step 6: Then you wander back to your custom web part page, click edit a few times, and jump back into the rich text editor. You then find a good spot within your text to drop a picture, and click on the picture button again. This time, you’re armed with that pesky little URL, and wah-la! You’ve got a picture displayed inside your CEWP. Hooray!…except…you decide it’s not really aligned well within the flow of the content. So you play around with cutting and re-pasting the picture into the rich text editor, but can’t quite figure out how to get it exactly where you want it. You then decide that the picture needs to be a little smaller, or larger. You select it and drag the corners to resize it of course, only to find out that it doesn’t retain the proportional width to height. How nifty! After fussing with it, you decide to leave it alone and move onto the rest of the content.
Step 7: You type happily along again until you decide you need another picture. Oh yes, you need to go grab that new URL now… So you go back to the picture library again to grab another picture URL. Then a return trip to your page, edit, rich text box…okay, ready to go. You insert the new picture, and briefly entertain the thought of moving it around, but dismiss the idea realizing how much of a PITA it was and you didn’t even get the results you like, so you forget it. But, then you think….hmmmm…is that really the right picture…
Step 8: Ugh, back to the picture library to grab a different picture URL, copy it, then back to web part page, edit, rinse, spin, and repeat, and paste.
Done! So, now you have an article with a couple of pics which are not exactly placed where you’d like them or proportionately sized, and you ended up with a few pictures uploaded into your picture library that you didn’t even end up using after all. But oh well, it only took 20 MINUTES!!!
Now, try training an end-user to do this on their new, spiffy SharePoint website that you created for their Glee club. Then watch their expression as they realize they will need to go through this hoop-jumping, uploading, URL hunting, content formatting HELL, over and over and over again… every time they want to create content with pictures (which is most of time). I can tell you, the Glee club won’t be singing your praises.
The Solution
Okay, so how do we solve this problem? Better rich text editor web parts you say? Maybe, but if you’re like me and in a shared hosting environment—no luck. But there is a way you can make this whole process a TON better, faster, and easier.
The secret is two key ingredients: A SharePoint Blog template, and Windows Live Writer
…and 3 simple steps: Create, Publish, and Copy
Step 1 – Create: Windows Live Writer (WLW) now integrates seamlessly with SharePoint sites based on the Blog template style. This means you can use WLW to create “posts” (aka content) which you can then publish to your SP blog. The beauty here is that WLW is a far better rich text editor, which allows you to easily draft content, import pictures (or even screen captures), links, etc., with perfect alignment, boxing, columns, or whatever you want.
Step 2 – Publish: Once you’ve put the finishing touches on the content and pictures within WLW, you simply press the publish button, and WLW takes care of not only posting the content, but also upload all of the pictures to your SP site, correctly linked and all ready to go. How cool is that!?!

Step 3 - Copy: So, once you’ve published the post to your SP blog, the only thing you need to do is visit the blog post, edit it, and steal the source code that SP embedded for you as part of the posting.Once you’ve got it, then simply edit a CEWP in source code mode (no stinky rich text editor!), and paste the code.

Click save and WAH-LA!!! NOW you’re cookin’ with gas! :-)
The Result
Tip: If you already have an existing SP site which was not based on the blog template, just create a sub-site using the blog template. You can then choose to hide it or use it as a great blogging feature for your existing site, complete with RSS feeds. | | SharePoint | | 1/13/2010 1:24 AM | Approved | No | 46 | Post | 1/13/2010 2:09 AM | 1/13/2010 1:24 AM | Jim Parker | Jim Parker | 1.0 | Yes | How to Solve Your SharePoint Rich Text Editor Blues | How to Solve Your SharePoint Rich Text Editor Blues | blog/Lists/Posts/46_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 46 | Jim Parker | SharePoint | 1 | 46 | | All About Tools | |
All About Tools
A broad definition of a tool is an entity used to interface between two or more domains that facilitates more effective action of one domain upon the other. The most basic
tools are simple machines. For example, a crowbar simply functions as a lever. The further out from the pivot point, the more force is transmitted along the lever. A hammer typically interfaces between the operator's hand and the nail the operator wishes to strike.
Tools are the most important items that the ancient humans used to climb to the top of the food chain; by inventing tools, they were able to accomplish tasks that their bodies could not, such as using a spear or bow and arrow to kill prey, since their teeth were not sharp enough to pierce many animals' skins.
A telephone is a communication tool that interfaces between two people engaged in conversation at one level. And between each user and the communication network at another. It is in the domain of media and communications technology that a counter-intuitive aspect of our relationships with our tools first began to gain popular recognition. Marshall McLuhan famously said "We shape our tools. And then our tools shape us." McLuhan was referring to the fact that our social practices co-evolve with our use of new tools and the refinements we make to existing tools.
Tools that have evolved for use in particular domains can be given different assignations. For example, tools designed for domestic use are often called utensils. | | | | 1/13/2010 1:31 AM | Approved | Yes | 47 | Post | 1/13/2010 1:36 AM | 1/13/2010 1:31 AM | Jim Parker | Jim Parker | 1.0 | Yes | All About Tools | All About Tools | blog/Lists/Posts/47_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 47 | Jim Parker | | 0 | 47 | | Cascading Drop-downs in SharePoint WSS/Foundation | |  Using SharePoint WSS or Foundation 2010? Well then you already know that there is no "feature" that allows you to provide cascading drop-downs in your list forms.
Cascading drop-downs allow the user to select a value from one drop-down list, and have it then auto-magically filter a subsequent drop-down, thus providing a parent-child drop-down combination. This functionality is indeed provided to users of InfoPath in the Server/Enterprise versions of SharePoint, but you're out of luck on WSS/Foundation.
Alas no worries, because I found a great solution provided by Boris Gomiunik on his blog here: http://www.sharepointboris.net/js/spcd. You can download the source from CodePlex here: http://spcd.codeplex.com. It’s a GREAT solution to a big gap in delivering business solutions in WSS/Foundation. The configuration is a bit fragile, in that renaming columns easily breaks the code, and it takes a bit of thinking to figure out where to make the changes so that it still works (well, at least for me, but perhaps I'm slow  …) | | SharePoint | | 5/4/2011 9:46 AM | Approved | No | 54 | Post | 6/19/2011 8:30 PM | 5/4/2011 9:51 AM | Jim Parker | Jim Parker | 1.0 | Yes | Cascading Drop-downs in SharePoint WSS/Foundation | Cascading Drop-downs in SharePoint WSS/Foundation | blog/Lists/Posts/54_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 54 | Jim Parker | SharePoint | 0 | 54 | | How to Expose a Printable View of a SharePoint List Item | | In a world of digital, I'm continually amazed by the need for many people to get something into paper form. It's almost like it's not tangible to them until they can zip something out of their printer. Just the other day, we created a list on SharePoint to take the place of an existing paper form which tracks incidents related to system outages. Creation of the list is easy of course, but soon afterwards a requirement came make it easy for someone to click on one of the list items and be able to print out the detail. So we've gone full circle now by taking a paper form, making it electronic, just so we can convert it back to paper. J And they pay us to do this?!
At any rate, the solution is easy, and comes in true end-user deliverable fashion. The answer lies in showing the list item via the display form, but in a special dialog mode. Not the cool pop-up, shadow box dialog that you may be thinking of, however. What I'm talking about is the display form for a list item, but without any SharePoint navigational elements, quick launch, etc. Just nothin' but list item.
The can see this in action for yourself by simply appending "&IsDlg=1" to the end of your list item display form URL path. As you can see, all of the SharePoint navigational elements are gone, leaving a nice printable view via the browser Print button.
Now, while that solves the problem of creating a printable view of your list item, certainly you don't expect your end-users to append "&IsDlg=1" to the URL everytime they open an item!? Of course not.
So one way to make this easy to access is to leverage a slick solution from Christophe called the HTML Calculated Column. Essentially, this will expose a new column in your SharePoint list view that has an icon for the end-user to click when they want a printable view of that list item. It can look like this:
Cool, eh? So here's how you do it.
Step 1.
Upload an icon of your choice to your sites' Site Assets library (or anywhere that your users have read access), and then get the URL to that uploaded file.
Here's what I chose to use à
Step 2.
Create a new column on your SharePoint list, of calculated column type. In the formula for that new column, paste this string: ="<DIV><A href='<enter URL to your list item display form>?ID="&ID&"&IsDlg=1'><img src='<replace with URL to your uploaded icon>' border=0></img></a></DIV>". Be sure to replace the sections in yellow with your target list item URL and icon URL.
Here's an example of a finshed formula: ="<DIV><A href='http://myServer/mySite/Lists/myList/DispForm.aspx?ID="&ID&"&IsDlg=1'><img src='http://myServer/SiteAssets/printpreview.PNG' border=0></img></a></DIV>"
Step 3.
Follow Christophe's instructions for adding his HTML Calculated Column web part to your target list view page, and you're done!
Now you should have something that looks like this:
Go here for a live action view of this solution.
Hope this helps anyone needing an easy printable view.
| | | | 9/10/2011 5:12 PM | Approved | No | 55 | Post | 9/17/2011 8:36 AM | 9/10/2011 5:12 PM | Jim Parker | Jim Parker | 1.0 | No | How to Expose a Printable View of a SharePoint List Item | How to Expose a Printable View of a SharePoint List Item | blog/Lists/Posts/55_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 55 | Jim Parker | | 0 | 55 | | How to Create Hyperlinks to a Pop-Up Dialog in SharePoint 2010 | | Do you like those cool SharePoint 2010 shadowbox pop-up dialogs? So do I, since it means less page navigation and general confusion for end-users. The problem is when you want to create your own custom hyperlinks from quick launch or throughout your own pages. There are several blogs out there that show how to accomplish this using JavaScript snippets in CEWPs, etc. But there is actually a much easier way to do it using a built-in JavaScript feature of SharePoint. (Note: I have only tested this in SharePoint 2010 Foundation) To do this from Quick Launch: 1. Create a new navigation link from the Quick Launch (under Site Settings) 2. Use this format for the URL—> javascript:OpenPopUpPage('http://bing.com');
To do this from HTML: 1. Use this format for your anchor reference—> <a href="javascript:OpenPopUpPage('http://bing.com');">Test Link</a> Note: Obviously, replace the Bing URL with your own. 
| | SharePoint | | 2/2/2012 1:07 AM | Approved | No | 56 | Post | 2/2/2012 1:08 AM | 2/2/2012 1:07 AM | Jim Parker | Jim Parker | 1.0 | Yes | How to Create Hyperlinks to a Pop-Up Dialog in SharePoint 2010 | How to Create Hyperlinks to a Pop-Up Dialog in SharePoint 2010 | blog/Lists/Posts/56_.000 | blog/Lists/Posts | 0 | | {A10098AF-BE8F-4BF7-8158-CF55B751CB8D} | | | 56 | Jim Parker | SharePoint | 0 | 56 |
|
|
|