As you want to publish static views of information you could look at implementing BusinessObjects as the report generator. BusinessObjects will give you flexibility in report formatting and is a great tool for reporting over Data warehouses/ data marts, It is extremly powerful at query/ reporting. You could then look at a complementory tool for BusinessObjects focussed on web publishing or use BusinessObjects Web Intelligence, third party may be a cheaper alternative.
The problem with writing your own code is that its a maintenance headache, needs a code change for extra reports/users personalisation of reports is code based too. A package solution would provide many benefits for the future.