Home > Work > Showing the Version column in Office as a Quick Part (Office 2007 & 2010 / Document Field (Office 2003)

Showing the Version column in Office as a Quick Part (Office 2007 & 2010 / Document Field (Office 2003)

Recently in a project I have had the requirement to show the Version column within the Word document to aid document management at the company.

Why this isn’t standard functionality is anyone’s guess but this has been a “feature” of SharePoint since the beginning.

This post is going to concentrate on the various different methods available to solve this issue:

1. Use SharePoint Designer to copy the Version to a separate column

Although this works, when you open the document, the list data and the document version will be out of sync by one iteration.  This is fine if you are opening the document in read-only, but will give the impression that you are overwriting the current version in editing mode.

Issues with this approach:

  • The version will increase as the metadata gets updated via SharePoint Designer
  • Unless you have “require checkout for editing turned off” you will run into problems in the logic around check in and check out.  Ultimately it will also artificially increase the version of the document and if document approval is turned on you will never be able to publish the document.  (Constant Draft state)

2. Using the Labels feature of SharePoint.

A blog post I have found suggests using the labels feature of SharePoint.  This works but have limited formatting capabilities within the document template.

In particular, formatting must be set at the creation of the label on the server.  This results in no formatting capabilities in the Word client apart from location of the label.  It essentially creates an image on the fly when a user opens the document.

Unlike option 1 in this post, this does however work and doesn’t have adverse affects on the Version or Approval states.

Issues with this approach:

  • Word 2007 or 2010 only (Office 2003 is not supported)
    How to achieve this result (taken from the blog post linked above:
    • Enable versioning and content types on your document library.
    • Go into document library settings and select the content types you want the version to appear in.
    • Select Information management policies settings from the content type menu.
    • Select define a policy and click .
    • Click on the ‘Enable Label’ Check box
    • Do not Check the other two boxes in the Labels section.
    • In the Label Format field, enter the metadata fields in the following format:
       Version : {Version} \n
    • Set the label appearance and click on preview.
    • Click at the bottom of the page.
    • Go back to the library and create a new document using the content type you have modified.
    • Save the file as a Word 2007 format.
    • Select the insert tab
    • Select Quick Parts from the Ribbon menu and hover over document property
    • Select Label from the properties list
    • This should display the metadata defined in your label as a field in your word document. The field will update automatically when you next open the document.
    • Save.

3. Event handler to copy the version to a separate field

Using the object model, to copy the version value on Check Out of the document and upon Check In of the document.

The object model allows you to check in using the existing version number, thus getting over the artificial creation of new versions, but you will need to take into account the end users version comments when you do this. as well as the approval process.

Luckily for use someone has created a solution for us and has made it open source.  The solution is available for WSS 3.0, MOSS 2007 as well as SharePoint 2010 (Foundation and Server).

Compatibility is also available within all likely versions of Microsoft Office (2003, 2007 and 2010).

  • Quick Parts (Office 2007, 2010)
  • Fields (Office 2003)
    The solution handles Major and Minor Versioning as well as Content Approval within Document Libraries by adding the fields Current Version, Approval Version, Approval Date & Approval User.
    The only downside to this solution is that the above columns cannot be set to hidden within the content type as they will not appear in the Quick Part / Field options if this property is set.
    This results in extra fields in the Document Information Panel that end users can fill in if they desire.  However this does not affect operation since the event handler overwrites the values when they fire on Check Out and Check In.
    So basically this solution is 99% perfect and I am not sure the only downside can be fixed without client side development (in Microsoft Word).  This would cause its own headaches anyway.

As a result, this appears to be the best solution available and definitely recommend it to clients.

  1. James Foxlee
    November 25, 2010 at 23:59

    Hi Giles –

    Hoping you can help. This has come up as a request from our guys, we are using SP2010 and all have Word 2010 deployed on our machines.

    I think the root of the problem is that I have set up a Content Type syndication hub for our CTs, rather than setting up info policy on a specific library. When I try to apply the policy in the CT Hub, I get the error message:

    “There were errors on the page:
    •The label reference, Version, could not be found.”

    I presume because the CT isn’t associated with a specific library? I can try setting up a new CT local to the site, but would much prefer to keep all CTs on the Hub. If you can shed some inisght as to a fix would be very grateful as it’s driving me nuts. Totally agree with you comment that it should be standard functionality!!!

    Thanks for the informative post – many other posts list the Information Policy workaround but it’s the first time I’ve seen the event handler solution. I’m non-technical (I run SharePoint as am in charge of regulatory – been a learning curve!!!) so will have to get our guys to implement this if I can’t find a way to get the Info Mgmt Policy workaround to work.

    James

  2. December 1, 2010 at 17:52

    Hi James,

    I have emailed you directly regarding this…

    Kind Regards

    Giles

    • Neil Phillips
      February 15, 2011 at 04:33

      I’m having exactly the same problem as James – is there a solution other than un-syndicated content types?

      Cheers, Neil

      • February 15, 2011 at 15:41

        Hi Neil,

        I haven’t come across a solution yet without using un-syndicated content types mainly because I am on a long term project which doesn’t use this functionality. As a result I haven’t had a chance to play.

        When I eventually get a chance to take a look, I will update this blog post.

        This will likely be later in the year however.

        Kind Regards

        Giles

  3. November 1, 2011 at 10:59

    Option 2 is also possible for Office 2003.

    Insert > Field > Category: Document properties > Field name: DocProperty > Field property: DLCPolicyLabelValue

  1. No trackbacks yet.

Leave a comment