Re: New gda-report
- From: Carlos Perelló Marín <carpema hispalinux es>
- To: Rodrigo Moya <rodrigo linuxave net>
- Cc: gnome-db-list gnome org
- Subject: Re: New gda-report
- Date: Tue, 11 Jul 2000 00:12:13 -0100
Rodrigo Moya escribió:
>
> Carlos Perelló Marín wrote:
> >
> > I have one problem before i can start to implement some thing useable.
> > What i can do to refer in my DTD the "Field" as an XML-QUERY? i mean,
> > when in a report i refer to a database field, or query i want (well i
> > MUST do it) use a gda-xml-query object. I suppose that it will be at the
> > XML tree like a node and when i find it i will call the gda-xml-query to
> > work with it, but how i could represent it at gda-report's DTD?
> >
> I don't know about how to represent it in the DTD. Maybe there is a way
> for refering to an external DTD, and have some nodes be the root node of
> those DTDs? There is a mailing list about the libxml lib, so you may ask
> all these questions there.
Ok, i will do it :-D
>
> > P.S.: Well i have in my hands a book about Crystal Reports, do you thing
> > that in this summer we could implement the gda-report with almost the
> > 50% of the functionality that Crystal Reports have?. Please help!!!!!
> >
> Well, if I'm not wrong, these are the steps you may take:
>
> * report-desing: there should be complete programmatic control for this
> Gda_Report object, so that the GnomeDbReport widget can be easily coded
> to let design the report visually. Thus, other 'viewers' could be
> implemented easily (for example a non-GNOME-dependant one).
>
Well this is an special draw program that generates the .report files
(xml) that the gda-report will use to represent the database contents,
isn't it?
> * execute the report: for this, I would create a set of GTK signals, so
> that the Gda_Report can notify a possible report output viewer (the
> GnomeDbReport widget we talked about) about what is being done. So, for
> example:
> "start_document" -> initialize printer, ...
> "end_document" -> to finish the document
> "print_line"
> "print_field"
> "new_line"
> ... and many more
> thus, the Gda_Report only knows about the organization of the report,
> and it is the viewer that 'actually' represents the output.
> When you execute the report, you must use the gda-client lib API. So, I
> would add a gda_report_run function, to which you pass a Gda_Connection
> object from which to take the data.
>
> * get the data from the database: this is quite easy. Vivien has added
> some useful methods to the Gda_XmlQuery object, The first one is
> gda_xml_query_new_from_node(), which lets you create a Gda_XmlQuery from
> a node in your report file (although as I said, I don't know how you
> reference this in the DTD). Then, you can call
> gda_xml_query_get_standard_sql if the provider supports SQL (you can ask
> about this with the gda_connection_supports() function), or send the
> query in plain XML to the provider if it does not support SQL. As Vivien
> says in the gda-xml-query.h file, every provider should implement its
> own gda_*_connection_xml_query_to_sql(), so this will be one of the
> first new additions to the IDL files.
> Coding this will just be:
> Gda_Report* report;
> Gda_Recordset* recset;
> gchar* command;
> Gda_XmlQuery* query;
> ......
> query = gda_xml_query_new_from_node(...);
> if (gda_connection_supports(report->cnc, GDA_Connection_FEATURE_SQL))
> {
> command = gda_xml_query_get_standard_sql(query); // or call
> provider's specific
> recset = gda_connection_execute(report->cnc, command, NULL, 0);
> }
> else
> {
> recset = gda_connection_execute_xml_query(report->cnc, query);
> }
> if (recset)
> {
> /* traverse the recordset, and emit signals as needed */
> ....
> }
> You can start by implementing the case where the provider supports SQL
> (which right now is always TRUE) since you need nothing added to the
> current CVS sources.
>
> So, to make all this work, things to do:
> * code the GnomeDbReport widget at the same time we go further with
> Gda_Report. This widget will be the part talking directly with
> gnome-print. Carlos, if you know GTK/GNOME programming and want to do
> it, just say it, but if not, I'll do it myself.
He,he i'm learning this kind of programming. At the moment i have
programed the hispafuentes's application to proces the facturation with
the gnome-libs and the gnome-print, i hope i will make it :-), but i
will tell you if i have some trouble.
> * add xml_query related methods to the IDL files: again, I prefer to
> wait until the postgres provider is ported to the gda-server lib. This
> includes xml_query_to_sql, exec_xml_query, and (maybe?) sql_to_xml_query
>
> i am right now busy on making the debian packages work (BTW, thanks
> publicly to Akira TAGOH, who has done all the work), but as soon as
> they're ok, I'll make a release and we'll concentrate on making all the
> XML stuff work (Gda_XmlQuery, Gda_Report/GnomeDbReport, and
> Gda_XmlDatabase, for the database designer and import/export stuff).
>
> I've added your code to the gda-clnt directory, since I haven't seen the
> point in including it in gda-common. What use may providers make of the
> Gda_Report class?
>
I don't know i have use this location because Vivien use it.
> And Carlos, from now on, as you've got already a CVS account, just
> commit directly instead of sending the code. But as I've said other
> times, don't touch in a place you are not sure about, please!
>
Ok. I have send it here because i don't know the gnome-db's developers
procedures.
> Cheers
--
Carlos Perelló Marín
carpema@hispalinux.es
http://TorresQuevedo.hispalinux.es
http://nulies.hispalinux.es
http://www.Hispalinux.es
Valencia - España
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]