Re: Antw: New gda-report's DTD



Carlos Perelló Marín wrote (in several mails):
> Ok
>
> as i have see it seems all right. I think that need another revision,
> but it's much more better that my DTD, i will upload it into the gnome's
> CVS. Well, if you don't have write access, of course.

I don't have write access.

> > <!ATTLIST pageheader  [or pagefooter]
> >   height        NMTOKEN   #REQUIRED
> >   positionfrequency  (%positionfrequency;)   "all"
> >   pagenumfrequency (%numberfrequency;)    "all"
> >  >
> ....
> But, then if you want print to headers in the same page?

I a user defines one pageheader with  pagenumfrequency="all" and the second with pagenumfrequency="even" then of course the even pages have two page headers and the odd pages have one.


> Well, i think that a "repfield" should have a label.

I don't see the need to distinguish repfield-labels and other labels, but maybe I'm wrong.


> I think that yours opinios are equal or even better than my opinions.

Nice to hear.


> Well, as i tell you in another mail, i think that we must connect this
> option with the options at /etc/paper.conf

I don't have this file on my GNU/Linux-box (SuSE 6.3). 


> > 3.) They distinguish fields and calculated fields where the last actually are SQL aggregates and they allow them only in the report footer. I think both
> > points don't make too much sense because:
> > a) a field gets a calculated field, if the corresponding query delivers a aggrgate function
> > b) calculated (aggregate) fields are sometime usefully in the detail section on a report.
> > 
> 
> Well, this could change, couldn't it?

I don't understand your question. what could change?


> > A report designer - or another application that wants to output a report - generates a xml-report-template. This is send to a transformation engine that
> > takes the contained queries, sends them to Vivien's gda-xml-query for processing and inserts the results into the xml-report. The results should be put
> > into label elements, that replace the repfield elements.

> I don't know if this should be correct. Why you want to save the report
> query in a XML file? Why not save it only in RAM ?

IMO, I should be possible to save both -- the report template with the queries inside and the resulting report with the data inside -- into a file.
Then you can process the report again, with changed data in the DB or reprint the report with the old data, if needed.


> Yes, i want develop one report designer, but i think that we must
> develop before a report viewer. What do you think?


IMO the report designer should be developed first -- or parallel to the viewer, because
- the viewer needs some input, that actually is the output of the designer
- the report should be populated with some data from gda-xml-query, that is not ready now.


> I'm trying to port a Crystal Report's application to Linux, then i'm
> looking at Crystal reports structure, but it isn't the unique thing i
> will see!!!

I don't know Crystal Report


I also attached a new enhanced version of the DTD with some new elements: dataheader, datafooter, picture. The dataheader and data footer are similar to the group header and footer, but for an imaginary group, that contains all the data. The purpose of the picture element should be obvious.



Gerhard


PS Please reply to GDieringer@compuserve.com because I will be on holiday for two weeks.

<!-- gda-xml-report.dtd
-->

<!ENTITY % query SYSTEM "/home/gmd/xml/dtd/gda-xml-query.dtd">
%query;


<!ENTITY % reportelement   "line|label|special|repfield|picture">
<!ENTITY % positionfreq    "first|inside|last|allbutfirst|allbutlast|firstandlast|all">
<!ENTITY % pagefreq        "even|odd|all">
<!ENTITY % linestyle       "none|solid|dash|dot|dashdot|dashdotdot">
<!ENTITY % fontweight      "light|normal|semibold|bold|black">
<!ENTITY % halignment      "standard|left|center|right">
<!ENTITY % valignment      "top|center|bottom">


<!ELEMENT report (reportheader?, pageheader*, dataheader?,  reportdata?, 
                  datafooter?,   pagefooter*, reportfooter?)>
<!ATTLIST report
  pagesize        (A3|A4|A5|A6|B3|B4|B5|B6|letter|legal|executive) "A4"
  orientation     (portrait|landscape) "portrait"
  units           (inch|cm|pt)      "cm"
  topmargin       NMTOKEN           "2.5"
  bottommargin    NMTOKEN           "2.5"
  leftmargin      NMTOKEN           "2.5"
  rightmargin     NMTOKEN           "2.5"
  bgcolor         NMTOKENS          "255 255 255"
  fgcolor         NMTOKENS          "0 0 0"
  bordercolor     NMTOKENS          "0 0 0"
  borderwidth     NMTOKEN           "1"
  borderstyle     (%linestyle;)     "none"
  fontfamily      NMTOKEN           "Helvetica"
  fontsize        NMTOKEN           "10"
  fontweight      (%fontweight;)    "normal"
  fontitalic      (yes|no)          "no"
  halignment      (%halignment;)    "standard"
  valignment      (%valignment;)    "center"
  wordwrap        (yes|no)          "no"
  negvaluecolor   NMTOKENS          "255 0 0"
  dateformat      CDATA             "dd.mm.yyyy"
  precision       NMTOKEN           "2"
  currency        CDATA             "EUR"
  commaseparator  (yes|no)          "no"
  linewidth       NMTOKEN           "1"
  linecolor       NMTOKENS          "0 0 0"
  linestyle       (%linestyle;)     "solid"
>


<!ELEMENT reportheader (query?,(%reportelement;)*)>
<!ATTLIST reportheader 
  height          NMTOKEN           "2.0"
  newpage         (yes|no)          "no"
>

	
<!ELEMENT reportfooter (query?,(%reportelement;)*)>
<!ATTLIST reportfooter 
  height          NMTOKEN           "2.0"
  newpage         (yes|no)          "no"
>

<!-- the pageheader/-footer are only printed, if both frequency conditions are true
     If the report has only one page, then first and last are both true
     The combination positionfreq="first" pagefreq="even" is never true
-->

<!ELEMENT pageheader (query?,(%reportelement;)*)>
<!ATTLIST pageheader 
  height          NMTOKEN           "2.0"
  positionfreq   (%positionfreq;)   "all"
  pagefreq       (%pagefreq;)       "all"
>


<!ELEMENT pagefooter (query?,(%reportelement;)*)>
<!ATTLIST pagefooter 
  height          NMTOKEN           "2.0"
  positionfreq   (%positionfreq;)   "all"
  pagefreq       (%pagefreq;)       "all"
>


<!-- the dataheader/-footer ist like a groupheader/-footer for a virtuell group,
     that contains all the data
-->

<!ELEMENT dataheader (query?,(%reportelement;)*)>
<!ATTLIST dataheader 
  height          NMTOKEN           "2.0"
>


<!ELEMENT datafooter (query?,(%reportelement;)*)>
<!ATTLIST datafooter 
  height          NMTOKEN           "2.0"
>


<!ELEMENT reportdata (detail|(groupheader?,reportdata,groupfooter?))>


<!ELEMENT detail (query?,(%reportelement;)*)>
<!ATTLIST detail 
  height          NMTOKEN           "2.0"
>


<!ELEMENT groupheader (query?,(%reportelement;)*)>
<!ATTLIST groupheader 
  height          NMTOKEN           "2.0"
  newpage         (yes|no)          "no"
>


<!ELEMENT groupfooter (query?,(%reportelement;)*)>
<!ATTLIST groupfooter 
  height        NMTOKEN             "2.0"
  newpage       (yes|no)            "no"
>


<!ELEMENT picture EMPTY>
<!ATTLIST picture 
  x             NMTOKEN            #REQUIRED
  y             NMTOKEN            #REQUIRED
  width         NMTOKEN            #REQUIRED
  height        NMTOKEN            #REQUIRED
  size          (cut|scale)        "scale"
  aspectratio   (fixed|float)      "fixed"
  format        NMTOKEN            #REQUIRED
  source        (intern|extern)    #REQUIRED
  data          CDATA              #REQUIRED
>


<!ELEMENT line EMPTY>
<!ATTLIST line 
  x1   		NMTOKEN            #REQUIRED
  y1            NMTOKEN            #REQUIRED
  x2            NMTOKEN            #REQUIRED
  y2            NMTOKEN            #REQUIRED
  linewidth     NMTOKEN            #IMPLIED
  linecolor     NMTOKENS           #IMPLIED
  linestyle     (%linestyle;)      #IMPLIED
>


<!ELEMENT label EMPTY>
<!ATTLIST label 
  text          CDATA              #REQUIRED
  x             NMTOKEN            #REQUIRED
  y             NMTOKEN            #REQUIRED
  width         NMTOKEN            #REQUIRED
  height        NMTOKEN            #REQUIRED
  bgcolor       NMTOKENS           #IMPLIED
  fgcolor       NMTOKENS           #IMPLIED
  bordercolor   NMTOKENS           #IMPLIED
  borderwidth   NMTOKEN            #IMPLIED
  borderstyle   (%linestyle;)      #IMPLIED
  fontfamily    NMTOKEN            #IMPLIED
  fontsize      NMTOKEN            #IMPLIED
  fontweight    (%fontweight;)     #IMPLIED
  fontitalic    (yes|no)           #IMPLIED
  halignment    (%halignment;)     #IMPLIED
  valignment    (%valignment;)     #IMPLIED
  wordwrap      (yes|no)           #IMPLIED
>


<!ELEMENT repfield EMPTY>
<!ATTLIST repfield
  query           IDREF            #REQUIRED 
  value           IDREF            #REQUIRED 
  x               NMTOKEN          #REQUIRED
  y               NMTOKEN          #REQUIRED
  width           NMTOKEN          #REQUIRED
  height          NMTOKEN          #REQUIRED
  datatype        NMTOKEN          #REQUIRED
  bgcolor         NMTOKENS         #IMPLIED
  fgcolor         NMTOKENS         #IMPLIED
  bordercolor     NMTOKENS         #IMPLIED
  borderwidth     NMTOKEN          #IMPLIED
  borderstyle     (%linestyle;)    #IMPLIED
  fontfamily      NMTOKEN          #IMPLIED
  fontsize        NMTOKEN          #IMPLIED
  fontweight      (%fontweight;)   #IMPLIED
  fontitalic      (yes|no)         #IMPLIED
  halignment      (%halignment;)   #IMPLIED
  valignment      (%halignment;)   #IMPLIED
  wordwrap        (yes|no)         #IMPLIED
  dateformat      CDATA            #IMPLIED
  precision       NMTOKEN          #IMPLIED
  currency        CDATA            #IMPLIED
  negvaluecolor   NMTOKENS         #IMPLIED
  commaseparator  (yes|no)         #IMPLIED
>


<!--
  The text attribute of element special is a format string which may contain some
  of the following functions:
  \D  date in format dateformat
  \d  day
  \m  month
  \y  year (yy)
  \Y  year (yyyy)
  \p  page number
  \t  total number of pages
-->

<!ELEMENT special EMPTY>
<!ATTLIST special
  text            CDATA               #REQUIRED 
  x               NMTOKEN             #REQUIRED
  y               NMTOKEN             #REQUIRED
  width           NMTOKEN             #REQUIRED
  height          NMTOKEN             #REQUIRED
  bgcolor         NMTOKENS            #IMPLIED
  fgcolor         NMTOKENS            #IMPLIED
  bordercolor     NMTOKENS            #IMPLIED
  borderwidth     NMTOKEN             #IMPLIED
  borderstyle     (%linestyle;)       #IMPLIED
  fontfamily      NMTOKEN             #IMPLIED
  fontsize        NMTOKEN             #IMPLIED
  fontweight      (%fontweight;)      #IMPLIED
  fontitalic      (yes|no)            #IMPLIED
  halignment      (%halignment;)      #IMPLIED
  valignment      (%halignment;)      #IMPLIED
  wordwrap        (yes|no)            #IMPLIED
  dateformat      CDATA               #IMPLIED
>


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