Refactored.
Fixed whitespace.
Refactoring for blog post.
Final version to match blog post. http://blog.zerosharp.com/making-xaf-reports-even-better-part-1/