Friday, November 16, 2012

ARE YOU HIRING? :: How do you Get your SharePoint Project Done well DON'T until you have seen the BEST ALTERNATIVE that we now implement called PODIO from Citrix

Steve2010
nb. I WAS a leading SharePoint 2007, 2010 and 2013 Architect…NOW I am a PODIO fanatic... READ WHY....

Steve Shepherd from New Zealand

PS. I travel all over the world but call the Bay of Islands and Whangarei home..

What to Look for?

I always try to look at projects from the clients point of view and add my experience of tools, techniques and knowledge to help guide the development of a solution that adapts to the requirements of a diverse user audience.

Many times when I started SharePoint projects the time and costs had spiralled out of control.
I thought there MUST BE A BETTER way. Email me on steve.shepherd@100rails.com
Have a read of a COMPARISON I did with Sharepoint and Podio at www.100rails.com

After searching hundreds of INTRANET solutions I discovered PODIO and I am NOW the Asia Pacific Podio Preferred Partner.

Podio is a Citrix cloud product and is backed by this huge company. I am now a convert to this amazing solution.
Most Intranets are just content management systems. Podio takes things to a whole
 new level.

I utilise AGILE practices that work on refining the key goals and looking to solve 80% of the problem and discovering the other 20% from usage of the solution.
I have worked with the following platforms and tools to ensure the projects completed are the best available:

Who is Steve?

An energetic, motivated and highly dynamic modern thinking SHAREPOINT ARCHITECT with excellent management, strategic and operational skills with extensive experience in developing solutions in Podio, SharePoint 2007 & 2010 (testing 2013).

With a proven track record in designing great solutions and implementing efficient changes on time and within budget.
A proactive leader who is in midlife with 20 years business experience in development, sales, marketing, operational and managerial roles with a focus on project management and Microsoft solutions. I thrive on designing and implementing solutions, developing teams and managing diverse personalities.
An innovative and resourceful results-oriented professional who is able to work in teams or in a self directed position.
A proven ability to capitalise on business opportunities, forging and consolidating openings in the competitive New Zealand and Australian Markets..

Career and Achievements to Date

100Rails - Content Architects for Podio Nov 2012 – Present

Lead Podio Architect and General Manager (Implementation of Work Platform Intranets based on PODIO) from Citrix for hundreds of users through out the APAC region)
Key Objective:
Manage a project team of 5 members comprising in-house staff and external developers to rollout Podio implementation services and addon solutions that plug straight into Podio data via their publicly published API.
Provided technical leadership for the deployment of the Intranets.
Specifically selling Internationally.
Job Role:
o PODIO Architect
o PODIO Development Services
o PODIO Implementation Services

Advanced Data Centres Apr 2011 – Oct 2012


Lead Technology Architect and General Manager (Implementation of Multi tenanted SharePoint, Lync and Exchange 2010 solution for hundreds of users through out Northland and Auckland)
Key Objective:
Manage a project team of 6 members comprising in-house staff and external developers to rollout SharePoint, Lync and Exchange in a multi tenanted development.
Provided technical leadership for the deployment of all these Microsoft solutions.
Specifically providing SharePoint webparts and add-ons that extended the Document Library and Workflow abilities of the solution. Also added a Storage tiering solution to extract BLOB file storage using RBS and an add-on product called Storage Edge to completely revolutionise the Document storage tiering of key files.
I was hand picked for this role and with 1 interview based on my previous experience.
I have been assessing the deployment of SharePoint 2013 with my team of contractors for a number of potential clients. I have written a 100 page guide to deployment of these Microsoft solutions in a multi tenant configuration.
Job Role:
o SharePoint Architect
o General Management Roles
o Project Management Roles

NorthTec Dec 2010 – Mar 2011


Project Manager (Large Print/Copy/Scan installation project involving 300 staff and 15,000 students)
Key Objective:
Manage a project team of 15 members comprising in-house staff from multiple departments and external vendors. Coordinating the communication, tasks lists and milestone plans to ensure seamless transition from current vendor technology to the newly selected vendor. Develop fast efficient ways of managing issues & decisions.
I was hand picked for this role with 2 days notice based on my previous experience and was asked to name my hourly rate as the project needed to be done well and on time.
Job Role:
o Interviewed all Team members
o Utilisation of SharePoint skills to design workflow and forms required.
o Reviewed previous project documentation
o Coordinate Vendor deliveries and rollouts
o Coordinate Communication with in-house staff
o Set Tasks, Assign Staff and Monitor progress
o Manage Milestones that must be hit
o Juggle technology and terminology from various fields that were new to a number of team members and staff
o Managed both onsite and remotely over 7 different sites.

Amundson & Amundson Dec 09


General Manager (Whangarei based but servicing New Zealand, Australia and the USA)
Key Objective:
Transformed the Operations of a Call Centre with 280 Clients into an organised, lean and quality focused organisation, increasing revenue by 26 per cent in 10 months, decreasing costs by 8 per cent and decreasing staff turnover by 15 per cent.
Utilised SharePoint design skills to implement Forms and Workflow to streamline the business.
Job Role:
o Strategic Planning and Direction Setting
o Directing Marketing and business development using Direct and Advertising based channels
o Building efficient Operational Systems
o Forging Executive level relationships with Clients and Partners for Service Delivery
Key Achievements - Marketing:
o Systems deployment of SharePoint Solutions.
o Spearheaded Marketing Project using Direct Mail and Outbound Cold Calling to Businesses across New Zealand and Australia gaining 26% increases in sales
o Developed comprehensive Website Marketing Plan and Review involving automated marketing responses and opt in systems
o Conducted a Customer Acquisition Plan allowing an increase in client development of 14%
o Developed a Database Marketing Plan to current Clients using industry segmentation and targeted offers increasing repeat sales by 15%
o Managed the Implementation and Development of a CRM (Customer Relationship Management) system for managing Leads to Clients.
o Developed Standardised Sales Process for Sales Account Managers
o Created additional Resources and relationships with Australian Clients.
Key Achievements - Operations:
o Managed the Implementation of a Streamlined billing process which reduced the time from 4 days to 4 hours.
o Managed Project for Rostering 20 staff in a 24x7 operation using online tools gaining a saving of 9% in admin time.
o Conducted full review of "How to Improve Rostering of the right skilled staff to various Job and Positional requirements for Clients".
o Developed detailed metric reports for monitoring Labour to Work volumes to ensure profitable call centre running
o Developed Operations Manual for Financial, Operational and Marketing systems within the call centre
o Current Projects include developing Training Program for Staff to ensure compliance with new Operations Manuals
o Operational Manuals were developed using a Checklists and Standards approach to ensure high quality, consistent result throughout the organisation.
Key Achievements - Financial:
o Implemented New Accounting Systems including new management reporting.
o Managed Integration Project between various billing systems and the Accounting System selected. (Which was Xero)
o Reviewed the Accounting Reporting Structure and Chart of Accounts

UIT Jul 10

General Manager
Key Objective:
In 6 months have orchestrated the redesign of the Operations and Marketing of an IT High Tech Engineering company with 360 Clients into an efficient LABOUR and MATERIALS billing organisation.
Also developed a new business model that involves migrating current clients to a Managed Services billing arrangement where FIXED monthly amounts are charged to clients and then extensive reporting and monitoring have been put in place to ensure profitable provision of Labour and Materials.
Job Role:
o Strategic Planning and Direction Setting
o Directing Marketing and Business development using Direct and Advertising based channels
o Building efficient Operational Systems
o Forging Executive level relationships with Clients and Partners for Service Delivery
Key Achievements - Marketing:
o Full review of all inbound channels of communications including Emails, 0800, Direct Line, Fax, Website, Social Media
o Developed a Mapping Process for all Marketing Communications so a consistent approach would be followed.
o Put in place a "NO CALL missed" policy so that every communication was answered with a SLA (Service Level Agreement) which ensured top quality service to prospects and clients.
o Developing a Market Segmentation Report to target various offers, products and service to current clients.
o Currently developing strategic plans for future growth of the company
o Reviewing Partnership plans with various key businesses to grow business in accordance with the Strategic Plan.
Key Achievements - Operations:
o Managed a 360 degree staff review
o Managed project to collate staff findings and incorporate in business strategic direction
o Managed LABOUR and MATERIAL budgets and tracking systems for ensuring Jobs were profitable for the organisation
o Implemented AUTOMATED system to warn when jobs were close to or over budget
o Installed and Managed new Job tracking solution and Help Desk solution that was fully integrated with a CRM solution and new accounting solution (which was Quickbooks).
o Changed Timesheeting processes for all LABOUR staff so that every hour was accounted for
o Developed 3 Operational Manuals for the Staff that Laboured on the Work (Technicians), the Supervisors who managed the allocation of work and the Admin Staff that ensured Accounts Payable and Accounts Receivable were tracked accurately.
o Provided mentor role for senior management

Northtec Jan 06 – Dec 09

Project Leader and Business Analyst
Key Objectives:
Lead the implementation of a number of large scale organisational change projects. These included financial projects and operational workflow projects.
I was also made responsible for a new organisation wide procurement process that involved rationalising suppliers and implementing new systems to cut thousands of dollars from the expense lines of all departments costs.
Job Role:
o Team Leader on multi-skills and multi-departmental projects
o Business Analysis of key supplier accounts
o Extensive Accounting role in Budget and Forecast setting for a $30 million dollar budget
o Reviewing the budgets of all departments and cost centres using advanced spreadsheet skills
o Development of Intranet solutions to improve workflow across the Polytechnic
Key Achievements:
o Migrated the entire Polytechnic of 300+ staff to a new Financial System. This required liaison and planning with hundreds of staff and external contractors and suppliers. The whole project was financially managed by myself and included developing user training and adoption across the organisation. Tight budgeting and time constraints were observed in this large organisational upgrade project.
o Developed an Internal Intranet system utilising Sharepoint 2007 for managing policies and managing workflows. Mainly in the area of Project development, budgeting and tracking across the Polytechnic. From Design, Financial, Quality, Regulatory and relevant support department signoffs.
o Implemented a Polytechnic wide e-procurement system for streamlining requisitioning of material, approval of materials with Hierarchy based spending limits and multiple approval personnel and final purchase order consolidation and integration to the Financial system. I also Developed Training material for Trainers to take out to 6 different campuses. Rationalised the total supplier numbers at the Polytechnic from 2500+ down to less than 900 which allowed over $270,000 in savings in the first 6 months alone. Bulk buying benefits then came from consolidated Ordering with other staff and other Polytechnics through joint buying partnerships.
o Implemented a comprehensive budgeting solution for multidepartment reporting down to individual educational course level. Worked on cost accounting principles for some areas of the budget. Refer to my experience at the Northland DHB for more in-depth skills in Cost Accounting.
o Successfully reviewed the entire General Ledger Accounting Structure for the Polytechnic. This rationalised the reporting for various department heads so better management decision were made.
o Negotiated large vendor purchasing arrangements with OfficeMax and Orbit Travel.
o Instrumental in developing a mini tendering process for supplier pricing and savings of close to 15% on many lines of products and travel.
o Successfully developed Supplier Service Level Agreements with major Polytechnic vendors.
o Created User Survey's to ensure staff compliance with new system implementations

Northland District Health Board Jan 04 – Jan 06

Business Analyst
Managed the Cost Accounting section of the DHB where utilisation of various resources across the DHB were used in calculating Patient service costs. Monitoring of every patient episode across the full health spectrum to monitor Hours worked and Resources utilised.
I was appointed as the Team Leader on multi departmental projects consolidating various skilled staff and personalities into a highly effective working team.

OBM Jan 02 – Dec 03

General Manager
As a senior manager in charge of Sales, Marketing and Operations I worked in building sales in 18 months from nothing to annualised income of $1.2 million dollars.
I personally planned the implementation of 5 major projects that spread across New Zealand and Australia. During my time as the General Manager we established a 30% market share in the health industry sector that I was overseeing.
During this time I also was sent on a Japanese Study tour for 4 weeks which greatly increased my knowledge of International Business requirements.

DataPulse Sep 97 – Dec 01

General Manager

As the General Manager and Owner of Datapulse I ran a 5 person team developing software for the healthcare industry.
We dominated the healthcare sector we supplied software to by achieving over 45% of the userbase in New Zealand.

Various Roles Jan 88 to Aug 97

Various Roles as Business Analyst and Database Programmer

Education

1987
Diploma in Computing and Admin at AUT (A level pass) (1yr)
1983High School with Pass in all Sixth Form Certificate Subjects.

Reference Summary

Justin Gillion
Product Manager at Unimarket Online Procurement (justin.gillion@unimarket.co.nz)
I worked with Steve during our Northtec implementation and on an ongoing basis. Steve was excellent to work with and tightly managed the Northtec project with the minimum of fuss. He also had a good grasp of the technology which made the job that much easier. Highly Recommended. -
Robyn Lilley
Director at Magic Music FM (email: robyn@magicmusicfm.co.nz)
I have known Steve Shepherd and his family for about ten years. During this time I have developed a great deal of respect for Steve, and see him as an excellent example of a father, a husband and a friend. Steve is a born leader and whatever he sets his mind to he applies one hundred percent dedication to reach the ultimate goal. I have had the pleasure of working with him in several leadership positions involving the care of the individual and leadership administration. Not only has he been a mentor but Steve often found a better way to get an improved result from a task. Steve can only be admired for his calm and controlled approach to all duties, and his ability to make firm decisions when required. I would take every opportunity to work with him if the opportunity came. I therefore recommend him for any position he may choose to apply for.
Brad Bell
President of Campana Systems (email: bgb@campana.com)
Steve worked with our company as a Project Leader on a number of large important implementations.
Our company is based in Waterloo, Toronto, Canada so communication over that sort of distance is important and something that Steve facilitated easily.
He provided our company with a major presence in the New Zealand healthcare industry and developed a number of new large sales.
I would recommend his skills at developing new products and also his ability to implement large projects with diverse team members.
Michele Siefe
Vendor Analyst at NorthTec (email: msiefe@northtec.ac.nz)
I have had the good fortune of working with Steve and getting to know him. Steve and I worked together on NorthTec’s e-purchasing system (www.unimarket.com) and on a number of Sharepoint Projects . Steve worked on the technical and systems requirements whilst I was responsible for the training for the system.
Steve also assisted me on the systems aspects of other smaller projects. I found him very innovative and his ideas worked. Steve comes up with very practical and non-complex solutions that are easy to implement.
Steve has a great sense of humour, an easy going personality and a strong upright character. His presence in the office after 6 months is still being missed.
Mark Stratton
Managing Director at Ramsys Point of Sale (email: mark@ramsys.co.nz)
Steve is an extremely clever guy - He was instrumental in the initial development of the Ramsys Retail Management System at Michael Hill Jewellers where we worked in the early 90’s.

Peter Bruce
Author & Tutor at Northland Polytech (email: iribruce@xnet.co.nz)
My main contact with Steve has been as a mentor. He impressed with his willingness to take on suggestions and try things out. Steve has a wide-ranging knowledge of information systems and databases, that, combined with his analytical skills enable him to deliver innovative solutions for businesses

Referees

Justine Amundson
Owner
Amundson & Amundson – Call Centre
Northland
P: 09 4701555
E: justine@amundson.co.nz
Bryce Moffat
Owner
Advanced Data Centres Limited
P: 09 4355541,
E: bmoffat@spireca.co.nz


















































































































































Thursday, November 8, 2012

Tiering of BLOB data in SharePoint – StorageEdge is the BOMB

So recently I completed a FANTASTIC project for a cloud based provider I was managing projects for.

We were looking at tiering data storage at the SAN level using technology like the 3PAR from HP or a V7000 from IBM.

We even considered using a product called SAN SYMPHONY (we may still use this) to create our own SAN auto tiering solution with Bring Your Own Disk type setups.

BUT

We decided to do the tiering at the application level within SharePoint and provide an even more granular approach to charging out the varying tiering of storage.

We picked StorageEdge from Alachisoft and it is BRILLIANT. This almost completes the Document Library abilities of SharePoint.

Below is a copy of the info from the main website which can be found at :

Optimize SharePoint Storage & Performance

image

StorageEdge optimizes SharePoint storage by moving all docs/BLOBs out of the database with EBS/RBS and therefore reducing the database size to manageable levels. And, it lowers your storage cost by archiving SharePoint docs to cheaper storage. And, it significantly improves SharePoint performance by caching its BLOBs and lists.

BLOB Externalization (EBS / RBS)

  • File system, SAN, NAS, & Cloud
  • Filters on BLOB externalization
  • Scheduling & Throttling
  • Preserve file & folder structure
  • Gzip compression
  • 64bit and 128bit encryptions

Read more

In-Memory Distributed Caching

  • Cache BLOBs & Lists
  • Cache ASP.NET sessions
  • Cache View State
  • Minify & Merge JavaScript

Read more

Document Library Sharing

  • Link external doc libraries
  • No document copying needed
  • Share docs with non-SP users

Archiving to Multi-Tier Storage

  • Specify multiple storage tiers
  • Archive docs to cheaper tiers
  • Version & age based archiving

Read more

Downloads

Articles & Whitepapers

Product Videos

Product Details

Guides & Documentation

Thursday, November 1, 2012

SharePoint calendars: color coding, hover effects, etc.



Two months ago, I introduced a method to display html in list views. The purpose of this post is to extend it to calendar views.
To learn more about the method itself, please refer to the post from September 1st. And of course, I recommend that you read the whole series about the “HTML calculated column“. You may find the following posts particularly useful:
- some simple but useful examples to get started
- a troubleshooting section
- how to apply the method to the DispForm.aspx page (as this is the page your calendar items will link to)
The script
You can use this module alone, or combined with the ones for list views. The scripts are very similar, but I had to make some adjustments to deal with the specificities of ”a” tags.
view plaincopy to clipboardprint?

<script type="text/javascript">  

// 

// Text to HTML - Calendar views 

// Questions and comments: Christophe@PathToSharePoint.com 

// 

var theAs = document.getElementsByTagName("a");  

var i=0;  

var AContent = "";  

while (i < theAs.length)  

{  

try 

{  

AContent = theAs[i].innerText || theAs[i].textContent;  

if ((AContent.indexOf("<DIV") >= 0) && (AContent.indexOf("</DIV>") >= 0)) {  

var tempDIV = document.createElement ("DIV");  

tempDIV.style.cursor = "pointer";  

tempDIV.innerHTML = AContent;  

theAs[i].innerHTML = "";  

theAs[i].appendChild(tempDIV);  

}  

}  

catch(err){}  

i=i+1;  

}  

</script> 

<script type="text/javascript">
//
// Text to HTML - Calendar views
// Questions and comments: Christophe@PathToSharePoint.com
//
var theAs = document.getElementsByTagName("a");
var i=0;
var AContent = "";
while (i < theAs.length)
{
try
{
AContent = theAs[i].innerText || theAs[i].textContent;
if ((AContent.indexOf("<DIV") >= 0) && (AContent.indexOf("</DIV>") >= 0)) {
var tempDIV = document.createElement ("DIV");
tempDIV.style.cursor = "pointer";
tempDIV.innerHTML = AContent;
theAs[i].innerHTML = "";
theAs[i].appendChild(tempDIV);
}
}
catch(err){}
i=i+1;
}
</script>
A simple example
For my example (see above screenshot), I have chosen a variation of this post,  as I wanted a printable calendar. For each task, the color depends on the % complete. Here is the formula for the calculated column:
view plaincopy to clipboardprint?

="<DIV style='position:relative;'><DIV style='font-size:0px; border-top: 14px solid "&CHOOSE(INT([%]*10)+1,"red","red","OrangeRed","OrangeRed","DarkOrange","Orange","Gold","yellow","GreenYellow","LawnGreen","Lime")&";width:100%;'> </DIV><DIV style='position:absolute; top:0px;'>"&TEXT([%],"0%")&"</DIV></DIV>" 

="<DIV style='position:relative;'><DIV style='font-size:0px; border-top: 14px solid "&CHOOSE(INT([%]*10)+1,"red","red","OrangeRed","OrangeRed","DarkOrange","Orange","Gold","yellow","GreenYellow","LawnGreen","Lime")&";width:100%;'> </DIV><DIV style='position:absolute; top:0px;'>"&TEXT([%],"0%")&"</DIV></DIV>"
Most of the examples I have already published for list views will also apply to calendar views. I have already shared a couple screenshots here.
My demo site also features a US holiday calendar with hover effects based on this method.
Important notes
- if you combine the scripts for list views and calendar views, you’ll need to put the script for calendar views first.
- During my tests, I have uncovered several issues with SharePoint calendars. I am keeping an ongoing list here.
- As the method is based on calculated columns, it has some limitations (see here for more details). For example you cannot include a lookup field in a formula.
- In SharePoint calendar views, items are displayed as hyperlinks to the display form (DispForm.aspx). The hyperlink will take precedence over hyperlinks you include in your formula.
- for short events (30 min or less), SharePoint provides limited space in the day and week views. Take this into account in your design.
Special thanks to Peter and Greg who sent me a detailed report of their tests to validate the script.
The next step will be to apply the method to preview panes.

Tuesday, October 30, 2012

A Tiny cute SharePoint calendar

(Part I)



Have you noticed these cute month calendars that people sometimes put on the homepage of their Website?
Now, have you tried to drop a SharePoint month calendar on the home page of your SharePoint site? The result… not so cute: the calendar eats up half of the screen.
In this post I am going to show how with the help of CSS you can shrink your SharePoint calendar and make it fit in the right column of a SharePoint page. The picture shows you the expected result.
So let’s start by dropping on our right column a monthly view of the calendar and a hidden Content Editor Web Part.

 

In the source editor of the CEWP, paste the code below:
<style type="text/css">
/* Tiny Calendar */
/* Christophe@PathToSharePoint.com */
/* Remove week blocks */
.ms-cal-weekempty {display:none;}
.ms-cal-week {display:none;}
.ms-cal-weekB {display:none;}
.ms-cal-weekB {display:none;}
/* Shrink cells */
.ms-cal-workitem2B {display:none;}
.ms-cal-noworkitem2B {display:none;}
.ms-cal-nodataBtm2 {display:none;}
.ms-cal-todayitem2B {display:none;}
.ms-cal-workitem {font-size:0px;}
.ms-cal-muworkitem {font-size:0px;}
.ms-cal-noworkitem {font-size:0px;}
.ms-cal-nodataMid {font-size:0px;}
.ms-cal-todayitem {font-size:0px;}
/* thin out header */
.ms-cal-nav {display:none;}
.ms-cal-nav-buttonsltr {display:none;}
.ms-cal-navheader {padding:0px;spacing:0px;}
.ms-calheader IMG {width:15px;}
/* Abbreviate weekdays */
.ms-cal-weekday {letter-spacing:6px; width:22px; overflow: hidden;}
</style>
What this CSS does:

height:
- Reduce the height of the calendar cells
- Reduce the height of the header

width:
- Only keep the first letter of the weekday names
- Simplify the header options to just keep previous and next month
- Reduce the “bone” that forces the width of the header
- Remove the week boxes to the left of the calendar

Note that if you click on a day, SharePoint will open a full size day view of your calendar – I have chosen to keep this as the expected behavior. If you don’t like it you can simply deactivate the JavaScript that triggers the day view.
We now have our cute calendar that tells us that today is October 6 and that October 28th is a Tuesday.
The next step is to display the list items, so that I know for example that Halloween is on October 31st. This will be the object of part II. Of course, we’ll have to accept some constraints because of the reduced size of the calendar.
Update [Feb 6, 2009]: several people asked about the bottom border. To get it, in the Web Part settings select:
Appearance | Chrome type | border only.
Update [Jan 22, 2009]: the above stylesheet is for SharePoint 2007. For SharePoint 2003, you can try this:
<style type="text/css">
/* Tiny Calendar - SharePoint 2003 */
/* Christophe@PathToSharePoint.com */
.ms-calMid {height:0px;}
.ms-CalSpacer {height:0px;}
.ms-calhead {padding:0px;spacing:0px;}
</style>

(Part II)

October 11, 2008 in Content Editor Web Part, SharePoint 2007, Styles/CSS


In part I, we saw how to adjust the size of an empty SharePoint month calendar to fit in the right column of our home page. Now our next step is to display the events.
As you can expect, the default display will be too big for our tiny calendar. So here are two tricks to work around this issue.
Method 1: no title display
In SharePoint 2007, you can choose which column to display in the month view. So let’s create an additional column:
- name: “Display”
- required: yes
- default value: “*”
In the view settings, choose [Display] as month view title. The result: for each event, SharePoint will display a simple “*” that will fit into the day cell.
This works fine, but the user has to click on the item to actually see the event. This may be an issue, especially if several events happen on the same day.
Method 2: shrink the title
So another option is to keep the title and use some CSS magic. Here is the deal: a title will be displayed in small fonts by default (unreadable), but will get back to normal size when the user hovers over it (see the screenshot at the beginning of this post).
To achieve this we’ll just add a few rules to the CSS from part I:
<style type="text/css">
/* Tiny Calendar */
/* Christophe@PathToSharePoint.com */
/* Remove week blocks */
.ms-cal-weekempty {display:none;}
.ms-cal-week {display:none;}
.ms-cal-weekB {display:none;}
.ms-cal-weekB {display:none;}
/* Shrink cells */
.ms-cal-workitem2B {display:none;}
.ms-cal-noworkitem2B {display:none;}
.ms-cal-nodataBtm2 {display:none;}
.ms-cal-todayitem2B {display:none;}
.ms-cal-workitem {font-size:0px;}
.ms-cal-muworkitem {font-size:0px;}
.ms-cal-noworkitem {font-size:0px;}
.ms-cal-nodataMid {font-size:0px;}
.ms-cal-todayitem {font-size:0px;}
/* thin out header */
.ms-cal-nav {display:none;}
.ms-cal-nav-buttonsltr {display:none;}
.ms-cal-navheader {padding:0px;spacing:0px;}
.ms-calheader IMG {width:15px;}
/* Abbreviate weekdays */
.ms-cal-weekday {letter-spacing:6px; width:22px; overflow: hidden;}
/* events display */
.ms-cal-defaultbgcolor {padding:0;}
.ms-cal-defaultbgcolor a {font-size:3px;}
.ms-cal-monthitem a {font-size:3px;}
.ms-cal-monthitem a:hover {font-size:10px;}
</style>
This second method is more user-friendly, if your titles are not too long.
There are of course many variations around these two methods, here are for example some other text adjustments you can use:
http://www.w3schools.com/Css/css_text.asp
And remember: all of this was done using CSS only, no harm was done to the structure itself. The SharePoint calendar remains fully operational (recurring events, alerts, filters, etc.).

Friday, October 26, 2012

Apply colour coding to your SharePoint lists

Color coding is very useful to highlight key items in a list. For example in an issues list, you may want to draw the users’ attention on items with high priority.
In the picture below, I have aggregated 4 different ways to do it:


This customization was entirely done through the SharePoint UI. Let’s see how.


The method
I am simply going to apply my post about using calculated columns to write HTML. For each example, we need to figure out the formula that will create the HTML string. Then the script, included in a CEWP, will make it behave as real HTML.

The formulas
In my example, I am applying color coding based on the priority of each issue: red for high, yellow for normal and green for low. Note that the formulas below were built for an issues list, formulas for other lists or libraries may be slightly different.
So here we go, please refer to the above picture to see the result:
- Traffic light (actually a big bullet!):
=”<DIV style=’font-weight:bold; font-size:24px; color:”&CHOOSE(RIGHT(LEFT(Priority,2),1),”red”,”orange”,”green”)&”;’>•</DIV>”
ALSO, instead of CHOOSE you can use IF statements. For example:
IF( [status]=”open”, “red”, IF([status]=”in progress”, “orange”, “green”))
- Indicator (reusing the default SharePoint KPI images):
=”<DIV><IMG src=’/_layouts/images/KPIDefault-”&(3-RIGHT(LEFT(Priority,2),1))&”.gif’ /></DIV>”
- Font color:
=”<DIV style=’font-weight:bold; font-size:12px; color:”&CHOOSE(RIGHT(LEFT(Priority,2),1),”red”,”orange”,”green”)&”;’>”&Priority&”</DIV>”
- Background color:
=”<DIV style=’font-size:12px; background-color:”&CHOOSE(RIGHT(LEFT(Priority,2),1),”red”,”orange”,”green”)&”;’>”&Priority&”</DIV>”
Simply paste your preferred formula in a calculated column, add the script on the Web page as explained here, and voila!

Tuesday, October 16, 2012

SharePoint Calculated Columns :: Using calculated columns to write HTML.. by Christophe (Reposted)

Updates
I am now expanding the scope of this method:
- list views (flat views and expanded grouping): this article
- list views (collapsed grouping): this article
- display forms (DispForm.aspx): published on 10/01/2008
- calendar views: published on 11/15/2008
- using calculated columns to write scripts: published on 2/26/2009
- preview panes: not published yet
- filters: not published yet
Also note the troubleshooting section.
Update [09/10/2008]


I have added a few lines to the initial script to address the case of collapsed views. Also, see my note at the end of this post.
Your feedback is important to me. Big thanks to Fernando, Jeff and the others who reported the limitations of the initial version!
A technical note: considering that 1/ the script is generic and 2/ it may still evolve in the future, a good practice is to store it in a separate text file on your site. You can then link to it from any Content Editor Web Part by using the “Content link” box.
I have already introduced calculated columns in a previous post.
One of their limitations is that the output is just text. Sometimes your browser will be smart enough to interpret the text as a hyperlink – when you calculate an e-mail address or a URL for example. Nevertheless in this case the display is usually not user-friendly. This will never allow you to get what a “Hyperlink or Picture” column does, for example.
To extend the possibilities of calculated columns, my idea is to use them to write HTML instead of just text, thus allowing some additional formatting. In this post I am going to show how to achieve this result through a generic method, combining calculated columns and the Content Editor Web Part.
Let’s start with a simple example based on a contacts list (I’ll provide more advanced examples in my next posts). For each team member, I store the first name, last name and job title. On my site home page, I want to display the list of contacts as “First name Last name”, and display the managers’ name in bold. It would look like the first column below:

A calculated column will easily give me the display name:
=CONCATENATE([First Name],” “,[Last Name])
But I have no option in the SharePoint UI to highlight the managers’ name.
So let’s apply my idea, and use calculated columns to write HTML instead of simple text.
The initial formula becomes:
=CONCATENATE(”<DIV>”,[First Name],” “,[Last Name],”</DIV>”)
I can now add my condition: if the job title contains the word “manager”, add bold style. In SharePoint, this translates as:
IF(ISERROR(SEARCH(”manager”,[Job Title],1)),”style=’font-weight:bold;’”,” “)
So here is my complete formula:
=CONCATENATE(”<DIV”,IF(ISERROR(SEARCH(”manager”,[Job Title],1)),” “,” style=’font-weight:bold;’”),”>”,[First Name],” “,[Last Name],”</DIV>”)
Let’s take a look at our list:

We now have the correct HTML…except that SharePoint is displaying it as simple text. We need to add a short script to change it into HTML.
So let’s add a CEWP to the bottom of our Web Page (how?), and paste the following script in the source editor:
view plaincopy to clipboardprint?

<script type="text/javascript">  

// 

// Text to HTML 

// Feedback and questions: Christophe@PathToSharePoint.com 

// 

var theTDs = document.getElementsByTagName("TD");  

var i=0;  

var TDContent = " ";  

while (i < theTDs.length) {  

try {  

TDContent = theTDs[i].innerText || theTDs[i].textContent;  

if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {  

theTDs[i].innerHTML = TDContent;  

}  

}  

catch(err){}  

i=i+1;  

}  

// 

// ExpGroupRenderData overwrites the default SharePoint function 

// This part is needed for collapsed groupings 

// 

function ExpGroupRenderData(htmlToRender, groupName, isLoaded) {  

var tbody=document.getElementById("tbod"+groupName+"_");  

var wrapDiv=document.createElement("DIV");  

wrapDiv.innerHTML="<TABLE><TBODY id=\"tbod"+ groupName+"_\" isLoaded=\""+isLoaded+ "\">"+htmlToRender+"</TBODY></TABLE>";  

var theTBODYTDs = wrapDiv.getElementsByTagName("TD"); var j=0; var TDContent = " ";  

while (j < theTBODYTDs.length) {  

try {  

TDContent = theTBODYTDs[j].innerText || theTBODYTDs[j].textContent;  

if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {  

theTBODYTDs[j].innerHTML = TDContent;  

}  

}  

catch(err){}  

j=j+1;  

}  

tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild,tbody);  

}  

</script> 

<script type="text/javascript">
//
// Text to HTML
// Feedback and questions: Christophe@PathToSharePoint.com
//
var theTDs = document.getElementsByTagName("TD");
var i=0;
var TDContent = " ";
while (i < theTDs.length) {
try {
TDContent = theTDs[i].innerText || theTDs[i].textContent;
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {
theTDs[i].innerHTML = TDContent;
}
}
catch(err){}
i=i+1;
}
//
// ExpGroupRenderData overwrites the default SharePoint function
// This part is needed for collapsed groupings
//
function ExpGroupRenderData(htmlToRender, groupName, isLoaded) {
var tbody=document.getElementById("tbod"+groupName+"_");
var wrapDiv=document.createElement("DIV");
wrapDiv.innerHTML="<TABLE><TBODY id=\"tbod"+ groupName+"_\" isLoaded=\""+isLoaded+ "\">"+htmlToRender+"</TBODY></TABLE>";
var theTBODYTDs = wrapDiv.getElementsByTagName("TD"); var j=0; var TDContent = " ";
while (j < theTBODYTDs.length) {
try {
TDContent = theTBODYTDs[j].innerText || theTBODYTDs[j].textContent;
if ((TDContent.indexOf("<DIV") == 0) && (TDContent.indexOf("</DIV>") >= 0)) {
theTBODYTDs[j].innerHTML = TDContent;
}
}
catch(err){}
j=j+1;
}
tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild,tbody);
}
</script>


Now the browser displays the strings as HTML, and my list looks like the initial screenshot at the top of the page!
A couple notes:
- The script identifies the to-be HTML by the opening tag <DIV and the closing tag </DIV>.
- I have tested the script in Internet Explorer and Firefox.
- Remember to drop the CEWP after all the views you want to change. You can for example put it at the bottom of the page.
In my next posts, I’ll show various examples involving styles, pictures and links. If you have a specific issue, feel free to submit it!
How about the Data View Web Part?
Of course such customizations could also be done through the DVWP. I am not going to detail this here, feel free to contact me for specific questions.
As I already mentioned, if I can reach the same result with either the CEWP or the DVWP, I’ll favor the CEWP as 1/it is a safer approach 2/the changes can easierly be undone and 3/it doesn’t require SharePoint Designer.
A note for the SharePoint experts
On SharePoint pages, scripts can be called by a function named “_spBodyOnLoadFunctionNames”. This allows for a timely execution of the script, on page load.
In this case, I am not using it, as we want the script to run before the page can be viewed by the users. Are there any side effects of not using _spBodyOnLoadFunctionNames? Advice on this is welcome!
For more examples using this method, see the “Calculated Columns” category.
I would be especially interested in your feedback if you have tested the script in one of the following situations:
- browser other than IE or Firefox on Windows
- non-Windows environment
- scalability (long lists, use across multiple lists)
- specific use cases, with formulas you have written yourself
- coexistence with other code or customizations (DVWP, etc.)
Feel free to leave a comment or contact me: Christophe@PathToSharePoint.com

Wednesday, October 10, 2012

SharePoint Calendar Colourification

One of the ways we use SharePoint is to track events and their status, "Completed", "Pending", or "Rescheduled". It's a pretty common use of SharePoint and depending on how it's put into practice you can simply filter out events that you don't want to see. For example, if you wanted to see only the events that were "Pending" displayed on a calendar, you simply had to filter out events that "do not contain" = "Pending" and presto!


Here's where it gets (got) challenging: The users of this system wanted to display all events, regardless of status, but wanted them colour coded based on their status. Sounds easy enough, but SharePoint doesn't provide a way to do it so I had to figure it out.
After pounding on Google for about an hour and following links to pages that were asking me to pay for a solution that "might" be what I was looking for, I was about to call it quits and tell them that we'll just have to have separate calendars for each status. Then I found that tiny gold nugget I was looking for!
This site described how to include dynamic HTML code into a calculated column. In itself that's not a challenging task, the problem is that SharePoint displays the HTML in the calculated column as text and doesn't execute it as a part of the page. Thankfully, that same page described how to translate displayed HTML into executed HTML using a bit of JavaScript called "innerText" and "innerHTML".


This was a great breakthrough, except that it only applied to the list view, not the calendar view. I decided that it was time to dust off my old dev skills and hack the code up to make it do what I wanted it to do and here's what I came up with.


Calculated Column code: (cleaned up on 14 November 2008)
=CONCATENATE(" <nobr title='",[Status],": ",[Short Description],"' style='font-weight:lighter;color:",IF(ISERROR(SEARCH("Completed",Status,1)),(IF(ISERROR(SEARCH("Pending",Status,1)),(IF(ISERROR(SEARCH("Rescheduled",Status,1)),,"blue")),"red")),"green"),"'> #",[Title],"</nobr><tag>")
Yes, I know it looks like a lot of garble-dy-gook and I'm sorry for that.


Everything you see that is between the square brackets is a column from my list that I want to use in building the HTML. You'll need to change these to match your list.
The most confusing part of this is easily the "IF(ISERROR(..." block. I'll try to clear that up here using standard code formatting instead of the single line of text. The core functionality revolves around this line:

IF(ISERROR(SEARCH("variable", [Column],1)), false, true)

The "variable" - the value you're trying to find. [Column] - the column that you're looking in. false - what to do if the "variable" isn't found in the [Column]. This can be an output string or more code. true - what to do if the "variable" is found.
If you're like me, you may need a bit of a visual clue to help understand this:

 


SharePoint makes you put it all in one line like Excel. It basically creates the HTML that needs to get translated from displayed code to executed code.
This part is where the magic happens. The original JavaScript code was designed to work on the List view in SharePoint, but I needed it to work on the Calendar view. Here's the code I used: (updated 14 November 2008)
<script type="text/javascript">
var theTags = document.getElementsByTagName("A");
var i=0;
while (i < theTags.length)
{
try
{
TagContent = theTags[i].innerText || theTags[i].textContent;
if (TagContent.indexOf("<tag>") >= 0)
{
theTags[i].innerHTML = TagContent;
}
}
catch(err){}
i=i+1;
}
</script>
This bit of JavaScript is placed into a Content Editor Web Part and placed below the Calendar.
Freely I have received this code, and freely I give it away. If you'd like help hacking this up to make it work on your SharePoint site just drop me an email and I'll help where I can.

Thursday, September 27, 2012

A progress bar for your tasks list and Printing

Today, let’s see how to show the progress of your tasks in SharePoint:

We’ll rely on this method: using calculated columns to write HTML. Easy, and entirely done through the SharePoint UI.
The [% Complete] is a default column in tasks lists. We just need to add - in a calculated column - the formulas for this specific use case. Here they are:
- Progress Bar:
=”<DIV style=’background-color:blue; width:”&([% Complete]*100)&”%;’> </DIV>”
- Progress Bar 2:
=”<DIV style=’background-color:red;’><DIV style=’background-color:LimeGreen; width:”&([% Complete]*100)&”%;’> </DIV></DIV>”
Note: the   character is mandatory to make this work in Firefox.
If you are looking for other colours, here is a very good reference:
http://www.w3schools.com/html/html_colornames.asp


Printable progress bars

You may have noticed that when you print lists including my examples of progress bars, the colours are not rendered. This is actually the expected behaviour: when printing Web pages, background colours are usually ignored by the browser.
So what can you do if you want to print your progress bars?
A first possibility is to modify your browser settings to print backgrounds. In Internet Explorer for example, follow this path:
Tools | Internet Options | Advanced | Printing.
A second option is to modify the formula and use colors instead of background colors, or use images. Here is an example of workaround for the above screenshot, where I used border colors (instead of background colors in the original post):
view plaincopy to clipboardprint?

="<DIV style='position:relative;'><DIV style='font-size:0px; border-top: 14px solid "&CHOOSE(INT([%]*10) +1,"red","red","OrangeRed","OrangeRed","DarkOrange","Orange","Gold","yellow","GreenYellow","LawnGreen","Lime")&"; width:"&([%]*100)&"%;'> </DIV><DIV style='position:absolute; top:0px;'>"&TEXT([%],"0%")&"</DIV></DIV>" 

="<DIV style='position:relative;'><DIV style='font-size:0px; border-top: 14px solid "&CHOOSE(INT([%]*10) +1,"red","red","OrangeRed","OrangeRed","DarkOrange","Orange","Gold","yellow","GreenYellow","LawnGreen","Lime")&"; width:"&([%]*100)&"%;'> </DIV><DIV style='position:absolute; top:0px;'>"&TEXT([%],"0%")&"</DIV></DIV>"
As usual, feel free to share your own solutions!
This behaviour was first reported to me by Peter Allen

Tuesday, September 4, 2012

SharePoint Calculated Columns :: Complex String Field Calculations


This formula uses some xfields generated with the Workflow engine. Beware of Content approval and workflow as the new xfields will continue to set approval back to Pending.

="Room: "&xRoom&" at "&TEXT([Start Time],"h:mmam/pm")&" for "&TEXT(Length,"#0.00")&"hrs ["&TRIM([Whats Happening])&"] "&IF([Number of Students]>0,"Capacity: "&[Number of Students]&"People. This is a ","")&IF(xRecur="True","Repeating Booking-"," ONEOFF Booking")&" and is "&MID(xApproval,4,10)
=IF(xRoom="@COMMON",[Whats Happening],UPPER(MID(xRoom,1,5))&" | "&LOWER(MID(xWho,11,15))&" | "&UPPER([Booking Status])&" | "&TEXT([Start Time],"h:mmam/pm")&" | "&TEXT(Length,"#0.00")&" hrs | "&TRIM([Whats Happening])&" | "&IF([Number of Students]>0,[Number of Students]&" Pple.","")&IF(xRecur="True","| REPEATS"," | ONEOFF"))

Friday, August 24, 2012

How to Install SharePoint 2013… for the first time…by Todd Klindt (Reposted here)

Hey everyone,

Todd Klindt is like the guru of SharePoint and he is at the leading edge of all this stuff.

If you have a lab or test environment with some VM’s somewhere not doing anything then have a go at doing what Todd recommends in his blog.

Its a really long URL so I shortened it with Bitly but I swear I don’t get anything for sending you Todd’s way he is just a great teacher.

image

http://bit.ly/X2e24j

Wednesday, August 22, 2012

Visualization – calculated color gradients..by Mark Milner

CalcGradientIf you need dynamically generated visualizations for your SharePoint data, have you considered leveraging the power of the Calculated Column? This Tuesday at 1:00pm EST, Mark Miller and I will give you all the keys to master this simple yet powerful technique. At the end of the two hour entry level workshop, you’ll be able to add color coding, KPIs and other effects – like the one described in this post – to your SharePoint lists.

 

Green/Yellow/Red is a standard color palette for dashboards. You can just use 3 colors to visualize discrete states, for example the status of a project (on track – drifting - late). But if your purpose is to communicate progress, or a measure on a scale, you need a larger color palette. This is for example the case in my screenshot, where the color reflects the level of completion (in %), in a tasks list.

So, how can I do this in SharePoint? Of course, my plan is to use a calculated column that will determine the color, based on the value in the [% Completed] column.

Method 1: nested IFs

This is the most basic approach:
if [% Completed]>90, select green
else if [% Completed]>80, etc.
I am not going to detail it, as we can do much better.

Method 2: CHOOSE function

The CHOOSE function is more elegant than nested IFs, and is a natural choice when dealing with multiple options. You’ll find all the explanations to achieve a color gradient in this post.

Method 3: pure calculation

So, how can we go even further? Well, colors can be identified by their name, but also by theirrgb code, as each color can be generated from a combination of red, green and blue. For example:
red: rgb(255,0,0)
green: rgb(0,255,0)
blue: rgb(0,0,255)
yellow: rgb(255,255,0)
white: rgb(255,255,255)

Using these values, we can “easily” create our red/yellow/green gradient:
rgb(255,0,0) –> rgb(255,255,0) –> rgb(0,255,0)

The following formula, entered in a calculated column, will give you the rgb value for each value of the [% Completed] column:
=”rgb(“&INT(MIN(510-[% Complete]*255*2,255))&”,”&INT(MIN([% Complete]*255*2,255))&”,0)”

To obtain the visual effect as in the screenshot, use the HTML Calculated Column method, with the following formula:

1
="<span style='display:inline-block;position:relative; width:60px; height:14px;border:1px solid;'><span style='display:inline-block;position:relative;background-color:rgb("&INT(MIN(510-[% Complete]*255*2,255))&","&INT(MIN([% Complete]*255*2,255))&",0); width:"&([% Complete]*100)&"%;height:14px;'><span style='position:absolute; top:0px;'> "&TEXT([% Complete],"0%")&"</span></span></span>"

Tuesday, July 10, 2012

SharePoint Calculated Columns :: Start and End Times



My custom CT (content type) is called Process Step. (The parent CT is Issue.) The purpose of the list is to allow loading of a series of steps (the same set for each month) and track the time it takes to complete each step, focusing on those identified as "key steps."
As I said, I added "start time," "end time" and "duration" to my content type. Start time is a date/time field which populates off a WF that uses "set list item" action to drop the date/time corresponding to "modified" which occurs when the item status changes from "not started" to "in progress." The same thing happens when status changes from "in progress" to "completed" - another WF updates "end time" to copy over whatever was the "modified" date/time matching that change.
"Duration" is a calculated column derived from end time minus start time, single line of text type, using this formula:
=TEXT([End time]-[Start time],"h:mm:ss")
The result of the calculation appears in the hours:minutes:seconds format
I want to provide a way to measure the duration against a target duration; therefore, the values I enter for each step as my target duration must also be in the hours:minutes:seconds format- correct?
Assuming that can be created, I then want one more calculated column )"duration comparison") which will compare the actual duration with the target duration. I am fuzzy on how to display this, however... I'm not sure what the best comparison format would be (a difference, a ratio, not sure). So I don't know what type of field to use. I think it will depend on how the target duration field is formatted.
Finally, I will create a view to display only the "key steps" and set up a KPI that lets me see the key steps' duration comparison values.
Is that the info you need?


Ok, starting to make sense now.
Everything sounds good so far...the "Duration" column should be returning a value in the "h:mm:ss" format (which it sounds like it is).
So, to add in a "Target Duration", you can just create a new "Single line of text" column and literally enter in the values in the same "h:mm:ss" format (i.e. 2.5 hrs would be 2:30:00). Do this for each step you want to track. (Q: are there any issues with manually entering in this data?)
For the "Duration Comparison" column, just use a Calculated column with a return type of "Single line of text" and a formula something like:
=IF(TEXT([Actual Duration],"HH:MM:SS")<TEXT([Target Duration],"HH:MM:SS"),TEXT([Target Duration]-[Actual Duration],"HH:MM:SS")&" Under",TEXT([Actual Duration]-[Target Duration],"HH:MM:SS")&" Over")
This formula would be read as: "If the text of the 'Actual Duration' column formatted as a standard 'hh:mm:ss' time format is less than the text of the 'Target Duration' column formatted as a standard 'hh:mm:ss' time format, subtract the 'Actual Duration' column from the 'Target Duration' column formatted as a standard 'hh:mm:ss' time format, followed by the text 'Under'. If not, subtract the 'Target Duration' column from the 'Actual Duration' column formatted as a standard 'hh:mm:ss' time format, followed by the text 'Over'."
This would display (using example data):
Start Time: 9:00:00
End Time: 9:45:00
Actual Duration: 00:45:00
Target Duration: 1:30:00
Duration Comparison: 00:45:00 Under
Getting a bit trickier, you could use an alternate formula of:

=IF(TEXT([Actual Duration],"HH:MM:SS")<TEXT([Target Duration],"HH:MM:SS"),HOUR([Target Duration]-[Actual Duration])&" hrs "&MINUTE([Target Duration]-[Actual Duration])&" min "&SECOND([Target Duration]-[Actual Duration])&" sec Under",HOUR([Actual Duration]-[Target Duration])&" hrs "&MINUTE([Actual Duration]-[Target Duration])&" min "&SECOND([Actual Duration]-[Target Duration])&" sec Over")
This would display it as:
Start Time: 9:00:00
End Time: 9:45:00
Actual Duration: 00:45:00
Target Duration: 1:30:00
Duration Comparison: 0 hrs 45 min 0 sec Under
This one parses out the individual hours/minutes/seconds into a more "textual" display rather than the "hh:mm:ss" style display, but either version would work.
The custom view portion should be pretty straight-forward, but does this help with the rest?

Wednesday, June 13, 2012

SharePoint Calculated Columns :: Getting TODAY as a Calculated Column in a Custom List

You can trick SharePoint into creating a column for today’s date which you can then compare today’s date to another date (in this case revised date).

As a result, I created a column for “Today”, with single line of text and then created another calculated column “CalcToday” and set it equal to the “Today” column.

Once I was done I deleted the “Today” column and voila! You have a column which is set to the current date!

Then I just created the “Days Overdue” column which compares date information from certain items to be addressed/completed (a.k.a”Revised Date”) to “CalcToday”.

Monday, May 14, 2012

Free SharePoint Website for trying stuff out

I know there is now Office 365 accounts but sometimes you don’t want all the clutter of that product.

So here is a free website you can play with. Enjoy Smile

image

http://www.freesharepoint.com/

Saturday, April 21, 2012

SharePoint HTML Calculated Column and Unicode Graphics

The number one application of the ”HTML Calculated Column” method is the display of visual indicators in SharePoint lists. You’ll find many examples on my blog:
- KPIs
- Progress bars
- Color gradients
- etc.

If you haven’t used this method yet, you’ll need to learn it to take advantage of these tutorials. For the latest information on the HTML Calculated Column, start with this post… or attend one of our live online workshops.

Most examples are about color coding backgrounds or text. But what if you want to take it a little further? For example display:
- up/down arrows ➘➙➚
- check marks ✗✓
- star ratings ✭✭✭✭✭
- traffic lights ✹✹✹ ✹✹✹ ✹✹✹
- etc. ✉☎☀☁

What immediately comes to mind is to use a set of icons. But the above examples offer a lighter solution: welcome to the world of unicode graphics!

Unicode is an international standard that references character sets. This includes some graphics, see for example the page below:
http://www.alanwood.net/unicode/index.html
For the graphics, scroll down to the “Symbols” category.

Some benefits of unicode, compared to icons:
- unlimited choice of colors, for both the graphic and the background.
- the rendering is not bound to an external image. This means better performance. Also, it makes it easier to save the SharePoint list as template for reuse in other environments (I’ll provide such a template in an upcoming post).

An example: traffic lights

As an example, here is the formula I used in a calculated column to generate the above traffic lights:

1
="<span style='background-color:black;font-size:24px;'><span style='padding:-10px;color:"&IF([Color]="Green","green;'>✹","gray;'>✹")&"</span><span style='padding:-10px;color:"&IF([Color]="Amber","RGB(255, 191, 0);'>✹","gray;'>✹")&"</span><span style='padding:-10px;color:"&IF([Color]="Red","red;'>✹","gray;'>✹")&"</span></span>"

Where the [Color] column can take the values Green, Amber or Red.

How about Wingdings?

Why use unicode characters, and not simply fonts like Webdings, Wingdings, or Zapf Dingbats? Those too offer graphics, but there is a downside: these fonts are not standard, and they don’t work cross-browser (and never will, from what I read). Such graphic fonts could still work for you if you are in a corporate environment where your internal policy enforces the use of Internet Explorer.

Unicode seems to work in all modern browsers. I tested it in IE7, IE8, Firefox, Chrome and Safari.

Friday, March 23, 2012

SharePoint Calculated Column :: Set default date to first day of the current month


This is small requirement I received to make a date column in a list and make it to
default to the first day of the current month.
I'm sure that for most of you it will not be something difficult to do, but for those struggling here are the steps:
1. create a date type column.
2. In the default value of this column to the following formula
=DATE(YEAR(Today),MONTH(Today),DAY("1-Apr-2008"))
instead of "1-Apr-2008" you might want to use any date that reflects the first day of the month, DAY() function will extract the needed number 1.

Monday, March 5, 2012

A Great Video on SharePoint 2013

Hey everyone, no doubt you have heard that SharePoint is getting a facelift as the RTM version of SharePoint 2013 is now in production.

Here is a great YouTube video on what is coming…

http://www.youtube.com/watch?v=yD6ebRtjn5M 

Whats new in Sharepoint 2013 Preview

Tuesday, February 21, 2012

Mapping a local drive letter to a SharePoint Document Library

Drive mapping can be created to any SharePoint document library to facilitate document management using the standard Windows Explorer applet (rather than the more cumbersome Internet Explorer (IE) interface.

Prerequisites:

Windows XP is required (or a WEBDEV updated Windows 2000) operating system.

Mapping Procedure:

1. Use Internet Explorer (IE) to navigate to the desired SharePoint Library. The screen below shows an example library:
image
a. Note the URL for the SharePoint library; the one for the above is:
 https://companyweb.alleycat.org/ACA/admin/NetAdmin/Shared%20Documents/Forms/AllItems.aspx
b. The critical portion of the URL is the part up to the /Forms…; that is;
https://companyweb.alleycat.org/ACA/admin/NetAdmin/Shared%20Documents
c. Also note the “%20” characters – these characters represent a “space” character for WEB browser text strings. We will replace these characters with the actual space character for the mapping operation.


2. Open up Windows Explorer (WE)
and select the Tools menu and then “Map Network Drive…” item. You will see the Map drive dialogue box shown below:
image

3. Next select the drop-down menu arrow

to the right of the Drive entry box and select an available drive letter of your choice:
image
image
Drive letter W: has been selected as shown above.

4. Now TYPE (do not cut and past) the SharePoint folder URL as shown below:

 http://companyweb.alleycat.org/ACA/admin/NetAdmin/Shared Documents
image
a. Note: http: is used instead of https:; this seems to work more reliably for this procedure.
b. Note: the “Reconnect at logon” checkbox is checked so this mapping will be retained until you decide to disconnect the drive mapping at some future date.

5. Click the Finish button to complete the mapping process.

a. After a brief period of time an Explorer window will pop-up showing the new mapped SharePoint folder:
image
b. Close the Window and return to the main WE window; you should now see the newly mapped drive as shown below
image
c. You can now right-click on the new mapping and select the “Rename” entry from the pop-up menu. Rename the mapping to better identify its SharePoint folder location:
image

6. Removing the SharePoint mapping.


a. Right-click on the drive mapping in WE and select the “Disconnect” entry
image
image
That’s it! However, if you have problems, refer to the trouble=shooting tips that follow.

Trouble-Shooting Tips

Various Windows setup issues might interfere with the mapping process. Here are several things to consider if you experience problems.
Remote Users
1. Remote users should be connected to the main office system with a VPN connection for the most consistent behavior. This is actually not necessary, but it VPN connectivity sets up a complete environment that includes finding network resources and WEB access.
2. Make sure you have the Proxy settings set up for the VPN connection:
a. Open IE and select the Tool/Internet Options menu item:
image
b. Select the Connections tab; you will see the “Dial-up and Virtual Private Network settings box as shown below. Highlight you VPN connection entry and click the Settings button to the right of the box.
image
c. Note the Proxy server section shown below: Make sure you have the same entries as show below.
image
d. Next, click the Advanced button to see the following screen:
image
e. Note the entry in the Exceptions box. This entry provides direct internal access to the CompanyWeb site.
f. OK out of the windows to complete the process.

Internet Security Settings

The SharePoint WEB site uses authentication security to allow access to the site and to various documents in Libraries. You can avoid the need to enter you user name and password repeatedly by making the following settings to the Security settings in IE.
1. Select the Tools/Internet Options menu item as shown below:
image
2. Select the Security tab and Trusted sites item. Click the Sites… button.
image
3. Enter the https://Companyweb.alleycat.org address as shown below and click the Add button:
image
4. Click OK to return to the previous screen. Next click the Custom level… button to see the following screen:
image
5. Scroll to the bottom of the list of options to the User Authentication/Logon section. Make sure the third Logon option is selected: “Automatic logon with current username and password.”
a. Note: This assumes that you have used your domain user name and password for your local system profile.
image

WEB Client (WEBDev) Service


The WEB Client service provides the support necessary for mapping SharePoint WEB sites and libraries. Occasionally, this service may become disabled. If you obtain “network cannot be found” messages when trying to map SharePoint resources, check to see if the WEB Client service has been disabled as follows:
1. Open Control Panel from the Start menu and double-click the Administration Tools item.
image
2. From the Administrative Tools screen; double-click the “Services” entry:
image
3. Scroll down the services list and find the WebClient entry:
image
4. It’s Status should be “Started.” If it is not, double-click the entry and set the Startup Type: to “Automatic.” You can then click the Start button to start the service.
image
5. Close all the Windows and try the Mapping procedure again.