February 2012


Lists in SharePoint are a very convenient way to store and share information. Now with SharePoint 2010, InfoPath form customization has made it much easier to create tailor-made forms for input and display of SharePoint list data. But when it comes to printing an individual list item in a manner which many companies still require, SharePoint 2010 does not have the tools available out-of-the-box. But with a little bit of work using Word and InfoPath a very user-friendly but powerful solution can be created. Here are the steps you will need to follow.

  1. Your starting point is the list which contains your information in SharePoint. In this example, it is a simple list called costs with four columns.

    Name (a simple text column, which was the default Title column of the list),

    Country of Origin (a choice column providing a list of countries),

    Family (a numeric column constrained to values between 0 and 5),

    Signed-Off (a Yes/No column).

  2. Next step is to create a Site Content Type, (Site Settings, Site Content Types, Create) based on the Document content type. In this example, the new Content Type is called Print-Item.

  3. You will need to create New Site Columns which match the names of columns in your list and add them to the Print-Item content type.
  4. Next up, design a Word template laid out in a manner that you would like to use for printing your list information. This could take the form of the example below:
  5. Save this Word file as a template somewhere (e.g. mydemotemplate.dotx) and then upload it to your new Print-Item content type under Advanced settings.

  6. Now create a new document library called Print and add your new Print-Item content type, after changing the Advanced settings to allow for the management of content types.

    Once the Print-Item content type is available, you can hide the default Document content type, by clicking on the Change new button order and default content type link and unchecking the Visible check-box.

  7. Now when you create a new document in the document library, you should see your Word template as designed earlier. If you display the Document Information Panel (File, Info, Properties, Show Document Panel), you will see your site columns associated with the content type:

  8. Now you can insert these into the document using Insert, Quick Parts, Document Properties and chose the appropriate document property for each column in your list:


    Then save your Word file again as .dotx template and upload it to your Print-Item content type once more.

  9. You are now in a position to edit the Document Information Panel which is associated with the Print-Item content type and link it to your list rather than the document library. Fire up InfoPath and choose the Document Information Panel template:

    Then enter the URL for your SharePoint site and choose the Print-Item content type:

  10. Next right-click the Title field and Change Control to a Drop-Down List Box. Then right click Title again and choose Drop-Down List Box Properties. Select Get Choices from an external data source, then Add and create a new connection to Receive data from a SharePoint list. Then select your list.

  11. Then select the columns you require from your SharePoint list.

    Once you have finished your Drop-Down List Box properties should appear as follows:

  12. Check using the Preview in InfoPath that the Drop-Down is picking up the items from your list.
  13. Next you will need to create as Rule for each of the other columns that you want to display in your Word file for printing. You do this by right-clicking the Drop-Down List Box, Rules, Manage Rules and add a new rule as an Action. The required action is to Set a field’s value:

    Choose from the Main data source, under properties, document management, in this case the first of our additional fields, Country of Origin.

    For the value of the field, click the browse button and select Insert Field or Group and switch to the Secondary data source, which in our example is our list called Costs:

    Then select the appropriate data field, in this case Country of Origin, and then click on the Filter Data… button.

    Click Add and then select the Name field as follows:

    making it is equal to the title field in the coreProperties of the Main data connection.

  14. This is probably a good point to make sure you have saved your InfoPath form and then click Preview to check that when you select from your Drop-Down List, the next field is populated correctly according the information in your SharePoint list.
  15. Repeat the procedure and create a new rule in exactly the same fashion as described above for each additional field you require. It may seem cumbersome at first, but once you get into the swing of it, you will race through the process. Just make sure you get the right data connections each time. It is a good idea to preview after each field to verify that all is correctly configured.
  16. When done, publish the newly customized document information panel to SharePoint and when you create a new document from in the Print library, you should be able to choose the item you want to print from your list, and see the information appear, as if by magic in your Word file:

  17. As my example shows, it is also worth checking the format of your display information too, as you could be forgiven for thinking I have several thousand children if you do not notice the decimal point.
Advertisement

SharePoint only shows users the links to which they have access. Correct? Well, kind of.

When you create a list or document library in SharePoint, one option at creation is to display a link in the Quick Launch menu to the left.

The default is “Yes” and your list, in this example, will appear under the Lists heading in the Quick Launch menu.

If you then restrict access to a list, as I have done in the case of the For Admins list above, when logged in as a normal user, the link to For Admins will be security trimmed, that is, it will simply not be visible to users other than those with Admin (Owner) permissions.

However, imagine that you want to customize the Quick Launch menu and remove the default headings, such as Lists and Libraries? You can just create the links again and due to the permissions which have already been set, the security trimming will come into play, right?

So for Owners, they will see links to both lists.

And for normal users? Oops, unfortunately security trimming has not been applied:

The security trimming has been lost along the way. Users now see links that they cannot access. Though security is in no way compromised, as ordinary users will get an Access Denied error if they click the link, this is not good design or practical from a usability point of view.

So what is the solution? In a normal SharePoint site with Quick Launch navigation, it is possible to re-establish security trimmed links, by deleting the links from the Quick Launch and then re-establishing the Quick Launch display in the settings of each list (found under Title, description and navigation of the List Settings page).

But then you will be back at square one!

The only workaround is to enable the SharePoint Server Publishing Infrastructure feature, which allows for more fine-grained management of navigation and will retain security trimming when links are re-organized.

You can then use the Navigation Settings page. But wait a minute, as the Navigation Settings page is just a standard system page on the SharePoint server and it does not actually use any of the other things that form part of the SharePoint Publishing Infrastructure, perhaps we can just call the page directly and get to use it without enabling the Publishing Infrastructure.

Try putting a link to the page somewhere on a standard site with the following syntax:

http://yourserver/yoursite/_layouts/AreaNavigationSettings.aspx

You should then be able to re-organize your navigation to your heart’s content without losing any security trimming.

SharePoint allows the overlay of up to 10 calendars to produce a kind of stacked view of events:


 

Though these may often be different calendars, there is nothing to prevent the use of several views from the same calendar in an overlay. This would normally not be useful, but there is one context in which it neatly solves a common problem. How can deadlines before events be clearly shown in a calendar? For example, for many large events such as conferences, there are deadlines for the preparation of materials and the dispatch of documents. It is possible to produce an overlay of SharePoint views from the same calendar which show these deadlines clearly.

First, create two calculated fields in the base calendar you will be using and name them Materials Deadline – 60 days and Dispatch Deadline – 30 days. In these calculated fields, use the event Start Time and subtract respectively 60 and 30 from it, as described below:

 


 

Make sure the columns are formatted as Date and Time.

Next you will need to create two calendar views which display events but which use only the Material Deadline – 60 days and the Document Dispatch – 30 days columns.

Choose your calculated fields for the Begin and End columns. Then create two overlay calendars based on the Materials and Dispatch views, as per below:

If you colour-code the two overlay views to contrast with your base calendar, then the meaning of the deadlines should be clear.