I don't have any tips or resources for you, but I had to do this same thing about a year ago. It started out as a simple app where the user would select the data tables and columns to see, then the users wanted the ability to write custom filters (custom where clauses for the select statements), and reorder the data, and group the data, and have embedded sub reports, and have static page headers and footers, etc, etc. It turned into a huge project. Good luck!
Don't blame me. I voted for Chuck Norris.