Have a look at myDBR. It allows you to easily generate reports and also takes care of the report layout.
To make a report you just write a stored procedure (either with the included SQL editor or with your preferred DB tool). The data generated by the stored procedure is then interpreted by myDBR. For example to create a chart of your monthly sales you would write the following code:
select 'dbr.chart', 'Column', '2D Column';
select Name, SUM(Items)
FROM demo.TestTable
GROUP BY Name;
There are plenty of chart types and configuration options available.
myDBR community version is free of charge, and the premium version is only 129 EUR / year.