Report wrapper to call python scripts?

John Ralls jralls at ceridwen.us
Wed Dec 24 11:54:38 EST 2014


> On Dec 24, 2014, at 12:22 AM, Dmitry Pavlov <zeldigas at gmail.com> wrote:
> 
> A brief search through list did not bring any results, so I decided to
> start a new one.
> 
> First of all: no offence but most gnucash reports are poorly implemented.
> It's not because they useless or looks not pretty (most of them are useful
> and good, calm down :)) . The reason is that a model (i.e. data of the
> report) is completely messed up with the view (html tags) in report
> generation code + html creation tag by tag is really outdated now, there
> are more proper tools like templates for that.
> 
> Of course it's a really huge work to rewrite that completely in more
> model-view style or rewrite that in different language.

Not only no offense, no kidding!

> 
> So I have idea: Gnucash already have an infrustructure of invoking scheme
> reports, saving settings, etc.
> What about implementing some "wrapper" report that can just invoke some
> script (for example that use python bindings). In it's settings we can
> point to specific script and all guile invocation would just
> 1. include execution of that script with passing parameters from options
> 2. grab output that is supposed to be report content (html for now) and
> include that as it's own result

Isn't our report system already too complicated? 

Geert has already mentioned that we're going to re-engineer GnuCash to use a SQL database internally; this is our plan for implementing concurrent multi-user access. That alone will vastly simplify the reporting architecture. It will also mean that SQLite3 rather than XML will be the preferred file format for most users and MySql or PostgresQL for those who need multi-user capabilities or who like running a DB Server. That in turn moves the preferred mechanism for custom reporting entirely out of GnuCash: Simply fire up your SQL report generator of choice, write your query, and run the report.

You can actually do that now, as long as you don't trip over one of the corners where GnuCash writes to KVP without doing an edit-commit on the object owning the KVP. I can't say that it's the recommended approach for all custom reporting because of those corners, but if you can satisfy yourself that the SQL backend works correctly for your usage it's certainly easier and more future-resistant that writing a custom report in Scheme.

Regards,
John Ralls




More information about the gnucash-devel mailing list