Skip to main content

Quick and dirty "Portfolio Gantt" report

We all like Project Centre, with its lists of projects and useful fields, but sometimes you just want it to do a little more.  For example:
- what if you could display some key milestones on the gantt
- what if you could easily display colour-coded gantt bar by phases.

The second point above (or variant of)  has been requested so many times and as of yet I have not seen anyone deliver such a report or view, so I decided to give it a go.

Now, before we go ahead, the following is done with no coding and no complex Reporting Services reports.  I am sure (and have seen) some amazing report views in SRS similar to this requirement, but this is a Proof of Concept solution.  Go work out your own way :P

So, a Portfolio Report:

Ingredients:
- Excel
- SP2010 Farm with Excel Services configured
- an ODC
- Some formulas
- Some conditional formatting

Step 1:  Define
This PoC is done working on the following:
- There are 5 Phases for each project
- The Gantt should include coloured bars by each of the 6 phases for the project
- This should update automagically based on current planned dates
- The date periods should be weeks across the columns

Note:  In this scenario I haven't added any other Project Categories into the Table view, or report filters.  I may get onto this later when defining the ODC connection

Step 2:  mockup in excel
- Create a new file
- Create a table to include the following columns.  This will be the basis for the data connection data later:
  1. Project Name (COL B)
  2. Phase 1 Start (COL C)
  3. Phase 1 finish
  4. Phase 2 Start
  5. Phase 2 Finish
  6. ......
  7. Phase 6 Finish (COL N)

Now in adjoining colums to the above table, create the same number of columns (two for each phase), using data formatting of Number, and reference the first set of colums, so:
  1. IF([COL C] = "","",[COL C]
  2. IF([COL D] = "","",[COL D]
  3. etc
  4. IF([COL N] = "","",[COL N]
So now we have

Now we want to set up our timephased column headers.  Initially we will do this manually so:

- on your first available column, enter the date you wish to start from:
- then on the next column, same row, create a formula to add 7d to the previous date
- copy this formula field to the right as far as you wish the report to go.
- once done, create a formula in the cell row above the dates entered (ive done this in Row 2), and convert each date to a number field (as we did before)


Now then.  How do we colour scheme our table by phase?  we are going to write a nested IF Statement that compares the Date Value fields for each phase (created in the second image above) to the column date value created in the step previous to identify whether the formula will result in:
"1" = Phase 1
etc
"5" = Phase 5
or 
NO PHASE

Note: In this example, one phase can only happen in one week.

The formula:
=IF($P7=AB$2,1,IF($P7=AB$2,1,IF($R7=AB$2,2,IF($R7=AB$2,2,IF($T7=AB$2,3,IF($T7=AB$2,3,IF($V7=AB$2,4,IF($V7=AB$2,4,IF($X7=AB$2,5,IF($X7=AB$2,5,IF($Z7=AB$2,6,IF($Z7=AB$2,6))))))))))))))))))

where:  
$P7 = Project Phase 1 Start
$Q7 = Project Phase 1 End
etc
$AA7 = Phase 6 End
and
AB$2 = the timephased period in column AB2 (the first date period)

Now copy this formula down the column to the bottom of the table, and across to the end of the timephased period defined 


Now we will do the conditional formatting on the timephased periods:

Now once this report is published to a SP2010 report library it looks like this:


Next Steps:

- Add a Current Date marker
- Make this a live report by connecting the Excel file to a SP2010 Data Connection and Project Server 2010 Reporting Database
- Improve on formatting

Comments

Popular posts from this blog

TPG Apps Highlights - Risk Matrix #projectonline #projectserver #risk

This post is the first of a series to highlight the apps available for Project Server and Project Online from the SharePoint store  ( https://store.office.com/search.aspx?productgroup=SharePoint&qu=tpg ) and direct via your local TPG office. The first of this series will look at the s imple plug-and-play apps that all users of Project Online can make use of quickly and easily.   T hese are: Risk Matrix  Milestone Trend Analysis (MTA) WBS Chart viewer Next we will focus on the challenge of  Resource Request Supply and Demand by demonstrating our more recent TeamLink and TeamManager apps. Team Manager App is a Resource Manager/Owner app for allocating resource supply to Projects and BAU activities and monitoring demands against commitments Team Link App is a PM tool for monitoring Project demands vs the supply provided by the Resource Managers  Finally I will highlight some of the benefits of our integration tools when used in the context of Project Online

Restoring PWA Site to another Web App in the same Farm

The scenario is this: SharePoint 2016 Farm with Project Server Two Web Apps Development UAT One PWA on Development Web App. I want to copy the PWA Site on Development web app to UAT to support a testing cycle. As far as I knew there were two options: 1) Content Database Restore and Attach Process would be backup your Dev Content Database, Restore to a new Content Database for QA, then mount the database on the appropriate web app and your off.... Problem:  Although you can do this with the -AssignNewDatabaseID switch in Powershell (to avoid two content db's having the same database id) the Site Collection (PWA) in the db still retains its SiteID which means there is a duplicate SiteID in the Configuration Database.  This stops the PWA site being created and alllocated correctly and becomes essentially orphaned. This method is only any good for MOVING not COPYING Back to the drawing board... 2) Backup-SPSite / Restore-SPSite I didn't believe this w

Issues update on #projectserver2013 - Timesheets and Publishing

Reporting Publish ** updated with links to other related discussions, and a VBA macro ** the following issue has been noted on publish since June 13 CU was applied: ReportingProjectChangeMessageFailed (24006) - Object reference not set to an instance of an object.. Details: id='24006' name='ReportingProjectChangeMessageFailed' uid='4d869e56-f625-e311-bb41-005056b90052' QueueMessageBody='Project UID='e3f49977-b2bc-e211-8559-005056b90052'. PublishType='ProjectPublish'' Error='Object reference not set to an instance of an object.'. I have seen this noted previously on a similar issue: http://nearbaseline.com/blog/2013/06/ms-reporting-project-publish-jobs-failed-after-aprilcu/comment-page-1/#comment-14741 This is  caused by Baselined Milestones having NULL Baseline Cost values Original bug note with potential workaround is here: http://blogs.msdn.com/b/brismith/archive/2012/05/23/project-server-2007-reporting-project-pu