gda-report



Carlos Perello Marin <carlos@hispalinux.es> wrote:

> Well, i'm updating the gda-report.c and gda-report.h that i upload into
> gnome-db cvs a few weeks ago to use the new DTD, but this week i start
> my university exams and i will be offline for a couple of days (well, i
> will read all the mail you send me, but i don't promiss nothing...).

Good luck for your university exams!!!

While starting my report-designer, I had to do some more changes at the DTDand
I see the need for some more changes in the near future..


> I think that you must have a CVS account, Some one knows how we could
> get one?, Miguel de Icaza gaves me my account, but i think that he's
>very busy to do this things. Some idea?

To be honest: I don't have much experience with CVS.


> Please tell me more about your work, perhaps we are making the same
> work, at the present i'm preparing a library to create a gtkobject (with
> the Gnome 1.4 it will be a gdkobject and then gnome independent) which
> could create an read XML reports.

AFAIK, the object stuff will be moved from GTK to glib, so we will have gobjects,
not gdkobject in the future. But my app only uses GTK-widgets, which will
remain in GTK.


To give you a short summary of my work:

I defined a hierarchy of widgets (using George Lebl's GOB, which makes live easy):
where GReportSection extends GtkVBox


GReportSection
   |
   +-- GReportReport
   |
   +-- GReportSectionList
   |
   +-- GReportDataSection
   |
   +-- GReportDisplaySection
          |
          +-- GReportReportEnclosure
          |
          +-- GReportPageEnclosure
          |
          +-- GReportDataEnclosure
          |
          +-- GReportGroupEnclosure
          |
          +-- GReportDetailSection


A report (as defined by the DTD) has the following structure:

report                                           ( GReportReport )
  |
  +-- reportheader                               (GReportReportEnclosure )
  |
  +-- pageheaderlist                             ( GReportSectionList )
  |         |
  |         +-- pageheader                       ( GReportPageEnclosure )
  |         |
 ...       ...
  |         |
  |         +-- pageheader                       ( GReportPageEnclosure )
  |
  +-- dataheader                                 ( GReportDataEnclosure )
  |
  +-- reportdata                                 ( GReportDataSection )
  |        |
  |        +-- groupheader                       ( GReportGroupEnclosure )
  |        |
  |        +-- reportdata                        ( GReportDataSection )
  |        |        |
  |        |        +-- groupheader              ( GReportGroupEnclosure )
  |        |        |
  |        |        +-- reportdata               ( GReportDataSection )
  |        |        |        |
  |        |        +        +-- detaildata      ( GReportDetailSection )
  |        |        |
  |        |        +-- groupfooter              ( GReportGroupEnclosure )
  |        |
  |        +-- groupfooter                       ( GReportGroupEnclosure )
  |
  +-- datafooter                                 ( GReportDataEnclosure )
  |
  +-- pagefooterlist                             ( GReportSectionList )
  |         |
  |         +-- pagefooter                       ( GReportPageEnclosure )
  |         |
 ...       ...
  |         |
  |         +-- pagefooter                       ( GReportPageEnclosure )
  |
  +-- reportfooter                              ( GReportReportEnclosure )

Of course the nesting of reportdata can have arbitrary levels.


Next step to do is to define a hierarchy for the DataElements:

GReportDataElement
    |
    +-- GReportTextElement
    |       |
    |       +-- GReportLabel
    |       |
    |       +-- GReportSpecial
    |       |
    |       +-- GReportField
    |
    +-- GReportPicture
    | 
    +-- GReportLine


Each GReportDisplaySection  will contain a GList of GReportDataElements,
but currently I'm not shure, 
- which GTK-widget I should extend to define GReportDataElement
- which GTK-widget I should take, to layout the GReportDataElements.

I tend to distinguish two different report styles:
<!ATTLIST report
        reportstyle ( form | list ) "list"
>

and take a GtkHBox to layout the elements for a list-style report and a GtkTable 
for a form-style report.


Gerhard






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]