On Tue, 2004-04-13 at 11:44 -0400, Loren Bandiera wrote:
Hey Rodrigo,
Hi
[Forwarding your mail to the gnome-db-list]
I'm still working on my XSLT stuff for the libgda report API. Right now
this is how I see things working:
1. Create a GdaReportDocument (gda_report_document_new)
2. Load the report result into memory (gda_report_result_new_to_memory)
3. Dynamically build XSL stylesheet
4. Apply the XSL stylesheet and generate output.fo from report results
5. Convert from XSL-FO (output.fo) into XHTML, RTF, PDF
yes, that's the basic idea.
I'm thinking for an API:
xmlDocPtr gda_report_result_apply_style (GdaReportResult *report)
This function would take the results and build an XSL stylesheet and then
apply it. The resulting XML document would be returned as xmlDocPtr.
gda_report_result_transform (xmlDocPtr doc, gchar *uri, gchar *format)
it would pretty nice if this API had some progress reporting. That is,
GdaReportDocument could have signals that warn about progress, so that
apps can display status messages, for instance, while the conversion
process is being run.
This would take the XML document after the XSL has been applied and
transform it into <format> and save it as <uri>.
There are some problems however:
1) I don't have a valid report. I've got GdaReportDocument before it's
been processed by gda_report_result_new_to_memory() but I don't have the
final results.
I noticed test #9 in libgda/report/testing/gda-report-test.c should create
one but it doesn't work for me. That is to be expected. The
valid-example.xml defines queries for the report, but I don't have that
database setup.
So far I'm been working with XSL by hand (as mentioned in my last message)
assuming the formats are not too different. It would be helpful though to
get a complete GdaReportResult. Do you have one?
no, don't have one, this has to be filled up on the fly, from the DB,
isn't it?
2) Converting from the XSL-FO into XHTML, PDF, RTF, etc. requires a FO
processor. I haven't been able to confirm libxslt supports this.
I know there is FOP from Apache (http://xml.apache.org/fop/index.html) but
that is Java based.
There is xmlroff from Sun (http://xmlroff.sourceforge.net/). That is C
based and under a BSD license.
Thoughts? Comments?
I guess Andru would have things to say, since he is working on papyrus,
which offers similar stuff. I guess the best way to integrate
libgda-report and papyrus would be to offer the report API in libgda and
have papyrus be a frontend for it. Andru, what do you think?