Here at Tallan, we are excited to announce our recognition as one of Hartford Business Journal’s Best Places to Work in Connecticut!
While the award is a new one for us, we have been celebrating our uniqueness for many years. Our focus on talent has been a leading driver of innovation and year over year growth, but has also lead to increased employee retention and satisfaction in the process. We are committed to bringing out the best in our team, giving them the tools and guidance to deliver innovative software applications and expand their career.
With an eye on expansion to Dallas/Ft. Worth this year, Tallan will continue its accelerated growth, bringing on 45 new team members this year in various regions.
“We have been lucky enough to recruit and retain truly talented technologists and business leaders over the past 30 years,” says…
Navigating through a list or library with dozens or hundreds of items or folders can be a tedious task. There are a few ways to make it easier to find the information you are looking for. One unique way is to build a rolodex to filter the list items conveniently.
The rolodex is configured by using a Query String Web Part and Content Editor Web Part to filter a list or library. The high-level steps to accomplish this are:
Create an “Index” field in the list or library.
Add a Query String Filter Web Part, a Content Editor Web Part, and the web part for the list to a site page.
Add code to the Content Editor Web Part with links that reload the page with the query string value.
Configure the Query String Filter Web Part to send data to the list web part.
I first want to mention that I learned how to do this by following the four part workshop written by Robert Shelton. This is a very comprehensive workshop that gives you access to all of the source code and documentation. Where Robert’s workshop walked you through building a complete workflow in Visual Studio including the Association and Initiation, my particular needs at the time were focused solely on an Initiation form. In this post, I will attempt to condense this lesson as concisely as possible.
I recently stumbled upon this little bug by accident. If you create a folder called “Forms” in a document library, you won’t be able to re-name it or delete it directly. Backing up for a second, you can’t create a folder called “Forms” directly as a top-level folder in the library – the name conflicts with the hidden “Forms” folder that is inherit in any document library. However, SharePoint will allow you to create such a folder as a sub-folder to another folder.
Let’s say, for example, that you create a folder called “HR Documents,” inside which you create folders called “Policies,” “Procedures,” and “Forms.” If you try to delete or rename the “Forms” folder, SharePoint spits back an error message. This, apparently, is a known bug, but I have not come across a fix, as of yet.
The only way to…
I had a situation where I needed to compare a query string parameter to a value in a list inside a data view web part in SharePoint Designer. If the two values matched in regards to the text, but did not match in regards to case (for example: SomeWord vs. someword), they would not match when compared in the XSLT. It appears that the version of XSLT used in a data view web parts doesn’t support the lower-case() and upper-case() functions.
Luckily, I discovered a workaround. Originally, I had the following code:
<xsl:variable name=”Rows” select=/dsQueryResponse/MyList/Rows/Row[normalize-space(@MyField) = $myQueryStringVar]”/>
At first, I tried this:
<xsl:variable name=”Rows” select=/dsQueryResponse/MyList/Rows/Row[normalize-space(lower-case(@MyField)) = lower-case($myQueryStringVar)]”/>
But I received an error that the function was not supported. The workaround is as follows:
<xsl:variable name=”Rows” select=”/dsQueryResponse/MyList/Rows/Row[normalize-space(translate(@MyField,$upper,$lower)) = translate($myQueryStringVar,$upper,$lower)]”/>
Have you ever thought to yourself that the development experience in SharePoint is quite frankly a pain? That there are no real best practices or guidance about how to conduct application development or how to use an Application Lifecycle Management (ALM) process?
I was introduced today to the link below on msdn that offers a series of articles whose goal is to define some best practices and offer guidance on how to conduct an ALM process using tools such as Visual Studio and Team Foundation Server.
Most of the articles are still under construction, but this definitely looks like a link to keep handy.
The link is http://msdn.microsoft.com/en-us/sharepoint/cc990283.aspx.
This little trick is something that should have struck me long ago, but I just recently hit upon it. I had a situation where I needed to create a column in a list that looked up data from another list. Normally, lookup columns use the Title field as the text displayed in the lookup dropdown. In my case, this wouldn’t work because the Title field wasn’t unique in the lookup list.
Using a little bit of database design thinking, I decided that the combination of the Title and a Date field presented a unique business key. In the lookup list, I created a calculated field using the following formula (assume field names of Title and Date):
=TEXT([Date],”yyyy-mm-dd”)&” – “&Title
I then created the lookup column in the other list to point to this calculated column instead of the Title column.
The beauty of calculated…
I was recently working on an excel pivot table report that pulls its data from a SharePoint list. One of the business requirements was to be able to sort, filter, and/or group by a “Week Ending” date. The list has a column called Action Date which could be any day/date. The solution turned out to be quite simple.
Create a new column in the list called, for example, “Week Ending.” Make this column a calculated column with the following formula:
=TEXT([Action Date]+(7-WEEKDAY([Action Date])),”mm/dd/yyyy”)
Replace [Action Date] with the column off which you are basing the week ending date.
This particular formula assumes that Saturday (7) is the week ending date. Adjust accordingly.