Have you thought about using crystal reports... or maybe the google charts api?