Data is the basis of knowledge. But it isn't enough to just have a collection of individual facts : you have to track and compare these items to learn more and interpret the raw data.
Collecting data into meaningful reports creates information. And this information allows decision makers to analyse trends, draw conclusions and act accordingly.
Today it is more important than ever to have the right information at hand. This information will be spread over different databases, multiple computer systems and several websites and services. So if it's your job to put it all together into a comprehensive report, you'd better have the right tools at hand.
Data can come from many sources : a stack, local or remote databases, a web-page somewhere on the internet, the result of a SOAP-call -- LiveCode is an excellent tool to obtain data from various sources, and prepare them for printing in complex, integrated reports.
Relational databases like MySQL, Oracle, PostgreSQL, SQLite and Valentina, are the most common way of storing significant amounts of structured data in an easily retrievable way. SQL-queries are generally quite readable, just like LiveCode commands and expressions they are English-like. LiveCode 2.0 introduced an easy way to connect to databases : you use the Database Query Builder to create a query, and then you link fields, checkboxes, menus and buttons.
Nevertheless, these relational database management systems (RDBMS) present a certain overhead, such as the need to install server software, and limitations in the supported platforms. That is why many LiveCode programmers prefer to store data right in stacks, as these are flexible and can be read by standalones, cross-platform and without additional software.
But in the days of the Information Age, data is everywhere and can be stored as a static web-page or a dynamic LAMP-driven website. With the advent of XML-RPC and SOAP computers can connect with one another more easily than ever to exchange information with barely more intervention from the user than making sure that the computer is connected.
Quartam Reports provides you with a simple yet powerful library to connect the dots : with a single command you can print data from a stack or an automated query -- and when you need more control, you can script your own data broker which fetches related information from a local file, a remote website, through Web Services, etc.
We've said it before, but it bears repeating : data requires presentation to become information -- information allows decision makers to analyse trends, draw conclusions and act accordingly. You want to group data into logical sets, providing subtotals and statistical information on the data. To improve the look of your reports, you apply colors and inks, combining images graphics and data with interesting visual effects that make the important data stand out.
The Quartam Reports Layout Builder is used to prepare the look of your reports and label sets. Modeled after traditional report layout tools as found in FoxPro, FileMaker Pro and Access, it allows you to create the layouts in an intuitive manner, and save them as external files. You create the look by placing graphics, labels, images and setting the font, size, style and format of fields. Like you would expect, data fields form the corner stone of your report : you can use valid LiveCode expressions such as
field "First name"
det_amount * det_price
to determine what is printed inside the report fields.
At the heart of Quartam Reports is a flexible and powerful printing engine -- a single cross-platform library that doesn't require additional software, as it was written entirely in LiveCode.
It reads the report layout file, and uses this as a template to build the individual pages, working closely together with the data broker, which evaluates the expressions that define the data in the report fields. The printing engine keeps track of variable data and offers an arsenal of statistical functions (sum, variance, etc.) so you can attain the insight you need.
The printing engine provides convenient commands for printing the content of stacks or automated database queries without the need for additional scripting. However, we didn't stop there, but worked hard to provide you with a system of data brokers : objects that handle a well-defined set of callback messages, allowing your reports to integrate data from different sources in a flexible way. In effect, you can combine data from a stack, a database query, an Internet URL, an XML-file, a SOAP-call, with only a modest script, without having to worry about how to place the data onto the right spot on the paper.