[reportlab-users] Advice on switching from XSL-FO (FOP) to ReportLabs

Dinu Gherman reportlab-users@reportlab.com
Fri, 31 Oct 2003 15:21:54 +0100


Felix McAllister:

> Our main areas of concern are:
>
> * Reducing development time.

One, and maybe "the" principle "drawback" with RL solutions is that
there are almost no GUIs for developping templates etc. although
there are some (more or less commercial ones) for developping charts
and/or widgets. So, it's largely a matter of Python/programming ex-
perience and exposure to the "ReportLab way of doing it" which is
the most significant factor in determining development time.

Then, it's more or less an iterative process of finding the code de-
tails you need for getting the desired report, much like finding the
one regular expression to match on your input data (for which a GUI
tool can be incredibly useful, too). Once you found it you start the
batch.

> * Increasing re-use among reports.

Again, that's mostly a matter of one's own capabilities in apply-
ing the right methods to structure the problem domain into reusable
components. The RL libraries certainly won't stand in your way when
you'll be doing this, but reuse of your own code is entirely up to
you! ;-) But, yes, you can also write incredibly convoluted RL code
(ermm, I've just looked at the barcharts again... ;-)

As a funny aside: I'm using RL graphics for directly drawing on-
screen now, sort of instead of a primitive GUI widget set like QT
or wxPython! See some fancy barcharts of some site usage monitoring
and reporting widgets (left sample screenshot):

   http://python.net/~gherman/UnreleasedStuff.html

Ok, this is an example of reuse coming to you for free since the
same code can also create print and online charts (now onscreen,
too), but anyway. You get the idea.

> * Increasing speed for batch processing ( although I don't think
>   this will be an issue from what we've seen)

Well, there can't be any general guidelines here. If your Python
code is "optimal" and you don't get the performance you need, you
probably need to rewrite some critical bits in C. If these are in
the RLTK itself then you need to convince RL of doing it. So far,
I think there was no real need for that.

Regards,

Dinu

--
Dinu C. Gherman - http://python.net/~gherman
......................................................................
"I once asked Ivan, 'How is it possible for you to have invented
computer graphics, done the first object oriented software system
and the first real time constraint solver all by yourself in one
year?' And he said 'I didn't know it was hard.'"
(Alan Kay on Ivan Sutherland)