Hi,
If you are using Sql Server for the database engine you can try Sql Reporting Services. It's free (at least with some editions of Sql Server), and I believe you can pass data set objects into local reports (sounds like you'll want to use local reports, not server reports, if you go this route). The designer isn't as good as Crystal's (yet), but it's pretty good otherwise. It also has a way of approaching report building, where you effectively use 'controls' to build the report like a form instead of having 'detail' and 'header' sections etc, and that means you get a lot more control over the layout (or at least it's easier to do some layouts).