We’ve been involved with several different reporting systems over the last few years, and all have had their shortcomings. It is instructive to run through some of their lessons.
Project A involved a database of packaging designs, which could be understood only with diagrams showing the box designs laid out flat and semifolded. Reporting was left until the last minute because the developers were not really interested; when time and budget pressures arose, customers got something very unsatisfactory thrown together with a database reporting tool. They were told that the tools just did not support the graphics and layout they really wanted. This situation is all too common.
Project B involved extracting database data to produce 100-page medical statistical analyses; the reports were examples of a word-processor model and could include numerous multipage tables with precise formatting. A collection of scripts assembled chunks of rich text format (RTF) to build the document, inserting them into Word. It became clear that Python was the right tool to extract and organize all the data; however, RTF is complex to work with and isn’t really a page-description language.
Project C was a scientific application that captured and analyzed data from a device and produced a family of reports, including charts and statistical tables. The reports needed to be viewed onscreen and printable. They were written using Windows graphics calls. Previewing accurately ...