Reports

Overview

Reports feature is responsible for creating two dimensional tables for analysis of your data. Rows conform to accounts, and columns to limit expressions. As one would expect every cell shows a calculated an account amount with transactions limited to main limit and group limit.

Most obvious usage of reports would be to show how the accounts varied thorugh some period of time. Though other things can be done as well. For example you can learn how much you earned from each of your income sources.

Instead of just watching rows of numbers you can pass the data to stdin of any external program. There are supplied filters for plotting programs, so it should be easy to make a graph and/or print the data in a more friendly form.

Preparing a report

Editing accounts axis

To edit accounts axis choose Report->Edit acc-axis from the menu. You will be presented a dialog like the one below.

Figure 3-7. Dialog to edit accounts axis

To include (exclude) accounts in the report use -> (<-) gui button. To change order of accounts in the report use Up and Down buttons. You can set if account's amount is to be reversed with Rev button.

Tip: You can select children of an account in the accounts tree on the left, by clicking it with third (right) mouse button.

Editing groups axis

If you want to edit groups axis please select Report->Edit grp-axis from the menu. You should see a dialog, like shown below.

Figure 3-8. Dialog to edit groups axis

Fill in two text entries at the top of the dialog window and press Add to insert new group. Use Edit to change selected group or Delete to delete one. You can order groups with Up and Down buttons.

The report druid

Instead of just setting everything manually, you can call a druid. It is a simple dialog, which will ask you a few questions, and than will setup the report (well actually only groups axis, but I think it is enough).

FIXME. Now there is no documentation of the druid dialog, but I think that everything should be self-explanatory. Experiment and enjoy.

Using pipes

You can pass the calculated data to any external program of your choice. It will be written to the standard input of the program.

To start playing with that feature, just dive into Report->Export submenu. There are some supplied filters to try out.

Supported programs

gnuplot

grace

Writing a filter

This section will describe how to write a new filter for exporting report to an external program.

Filter is just a external program itself and gets report data on its standard input, which means it can be written in any language of your choice (though python is recomended). It usually serves as a translator between emma and a external program (like chart/graph drawing tool). Yet, it is not limited to that purpose, and can do anything it likes with the received data.

For the impatient there is a data/report_template.py file in the source distribution of Emma. The script is a filter template. It just reads report data and prints it to stdout.

Emma report output format. FIXME - describe the format here.