Difference between revisions of "Report DSL"

From OS.bee documentation
Jump to: navigation, search
(Report)
 
(84 intermediate revisions by 2 users not shown)
Line 53: Line 53:
 
* "|" between definitions shows different parallel alternatives.
 
* "|" between definitions shows different parallel alternatives.
 
=====Report DSL instance definition=====
 
=====Report DSL instance definition=====
 
+
This is the global syntax of a report DSL instance.<BR>
 
► '''Syntax''':
 
► '''Syntax''':
<syntaxhighlight lang="java">
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">
[import <import models/class name>]
+
  [import <ImportModels/ClassName>]
package <package name>  {
+
  package <PackageName>  {
  ...
+
      [layout-data {
  [layout-data {
+
        [externalCssURI "<ExternalCssURI>" [from bundle "<ExternalCssURIBundle>"]]
      [externalCssURI <URIString> [from bundle <BundleString>]]
+
        formatters {...}
      colors {...}
+
        colors {...}
      formatters {...}
+
        fonts {...}
      fonts {...}
+
        medias {...}
      medias {...}
+
        styles {...}
      styles {...}
+
        [pagetemplate <PagetemplateID> {   
      [pagetemplate <PagetemplateID> {   
+
          ...
 +
        }]
 +
      }]
 +
      [report <ReportID> ... {   
 
       ...
 
       ...
      }]
+
      }]
  ...
+
    ...
   }]
+
   }
+
 
  [report <ReportID> {   
+
 
  ...
+
<span style="color:#a39856;">ExternalCssURI:</span> The definition of the Uniform Resource Identifier (URI) of an external CSS for this specific report.<BR>
  }]
+
<span style="color:#a39856;">ExternalCssURIBundle:</span> The bundle where to search the external CSS.<BR>
...
+
<span style="color:#a39856;">PagetemplateID:</span> A defined identification name for the page template.<BR>
}
+
<span style="color:#a39856;">ReportID:</span> A defined identification name for the report.<BR>
</syntaxhighlight>
+
 
 +
</div>
  
 
'''Notes:'''
 
'''Notes:'''
Line 94: Line 98:
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
 
formatters {
 
formatters {
     <FormatType>
+
     [ <FormatType> ]*
 
}
 
}
  
Line 159: Line 163:
 
/** money in EURO, rounding half-up */
 
/** money in EURO, rounding half-up */
 
currency money_euro {
 
currency money_euro {
ui "###,##0.00 "
+
ui "###,##0.00 "
 
report currency "#,##0.00 EUR{RoundingMode=HALF_UP}"
 
report currency "#,##0.00 EUR{RoundingMode=HALF_UP}"
 
textalign right
 
textalign right
Line 187: Line 191:
  
 
styles {
 
styles {
/** Bootstrap style */
 
style bootstrap {
 
textcolor schwarz
 
backgroundcolor weiss
 
font arial_8pt_regular
 
media big {
 
font arial_12pt_regular
 
}
 
}
 
/** Standardzeile (unterste Ebene) */
 
style defaultrow {
 
extends bootstrap
 
font arial_8pt_regular
 
backgroundcolor weiss alternate hellblau
 
padding-left 2 pt
 
padding-right 2 pt
 
media big {
 
font arial_12pt_regular
 
}
 
}
 
 
/** if a currency has to be rendered */
 
/** if a currency has to be rendered */
style ^currency {
+
style ^currency {  
extends defaultrow
+
 
formatter money_euro
 
formatter money_euro
 
}
 
}
Line 221: Line 204:
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
 
colors {
 
colors {
   [color <ColorID> ["<ColorString>" | <Darkens> | <Lightens> | <Transforms>]]*
+
   [ color <ColorID> "<ColorString>" | <Darkens> | <Lightens> | <Transforms> ]*
 
}
 
}
  
Line 262: Line 245:
 
color orange "#ffcc00"
 
color orange "#ffcc00"
 
color darkblue "#007aff"
 
color darkblue "#007aff"
color white darkens grey_136 by-percent 50
+
color grey_darkens darkens grey_136 by-percent 50
 
color lightblack lightens black by-percent 30  
 
color lightblack lightens black by-percent 30  
 
color lightblue "#52edc7"
 
color lightblue "#52edc7"
Line 271: Line 254:
 
textcolor black
 
textcolor black
 
backgroundcolor white
 
backgroundcolor white
font arial_8pt_regular
 
media big {
 
font arial_12pt_regular
 
}
 
 
}
 
}
 
}
 
}
Line 286: Line 265:
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
 
fonts {
 
fonts {
   [font <FontID> {
+
   [font <FontID> [extends <RefFontID> ] {
      [extends <RefFontID>] [family <BuildInFontFamily> | "<CustomFontFamilyString>"] [<FontStyle>] [bold] [size <UnsignedSizeNumber> <Unit>]
+
        [family <BuildInFontFamily> | "<CustomFontFamilyString>"]  
   }]
+
        [<FontStyle>]  
 +
        [bold]  
 +
        [size <UnsignedSizeNumber> <Unit>]
 +
   }]*
 
}
 
}
  
Line 343: Line 325:
 
/** Bootstrap style */
 
/** Bootstrap style */
 
style bootstrap {
 
style bootstrap {
textcolor schwarz
+
textcolor black
backgroundcolor weiss
+
backgroundcolor white
 
font arial_8pt_regular
 
font arial_8pt_regular
media big {
 
font arial_12pt_regular
 
}
 
 
}
 
}
 
}
 
}
Line 401: Line 380:
 
=====Styles=====
 
=====Styles=====
  
Styles is used to define the report styles in detail. The incorporated media style is an individual overriding style for the corresponding mentioned media. <BR> It is defined as following:
+
Styles is used to define the report styles in detail. <BR>
 +
All the previously documented styling elements as formatters, colors, fonts and medias have to be used here to define different styles. <BR>
 +
The incorporated media style is an individual overriding style for the corresponding mentioned media. <BR>  
 +
It is defined as following:
  
 
► '''Syntax''':
 
► '''Syntax''':
Line 408: Line 390:
 
[style <StyleID> {
 
[style <StyleID> {
 
[extends <RefStyleID>]
 
[extends <RefStyleID>]
[formatter <RefFormatterID>]
+
  [formatter <RefFormatterID>]  
[font <RefFontID>]
+
  [font <RefFontID>]  
[backgroundcolor <RefColorID> [alternate <RefColorID>]]
+
  [backgroundcolor <RefColorID> [alternate <RefColorID>]]  
[textcolor <RefColorID>]
+
  [textcolor <RefColorID>]  
[textalign <TextAlign>]
+
  [textalign <TextAlign>]  
[border-top <BorderStyle>]
+
  [verticalalign <VerticalTextAlign>]
[border-bottom <BorderStyle>]
+
  [border-top <BorderStyle>]  
[border-left <BorderStyle>]
+
  [border-bottom <BorderStyle>]  
[border-right <BorderStyle>]
+
  [border-left <BorderStyle>]  
[padding-top <UnsignedNumber> <Unit>]
+
  [border-right <BorderStyle>]  
[padding-bottom <UnsignedNumber> <Unit>]
+
  [padding-top <UnsignedNumber>]  
[padding-left <UnsignedNumber> <Unit>]
+
  [padding-bottom <UnsignedNumber>]  
[padding-right <UnsignedNumber> <Unit>]
+
  [padding-left <UnsignedNumber>]  
[margin-top <UnsignedNumber> <Unit>]
+
  [padding-right <UnsignedNumber>]  
[margin-bottom <UnsignedNumber> <Unit>]
+
  [margin-top <UnsignedNumber>]  
[margin-left <UnsignedNumber> <Unit>]
+
  [margin-bottom <UnsignedNumber>]  
[margin-right <UnsignedNumber> <Unit>]
+
  [margin-left <UnsignedNumber>]  
 +
  [margin-right <UnsignedNumber>]  
 
[media <RefMediaID> {
 
[media <RefMediaID> {
 
[formatter <RefFormatterID>]
 
[formatter <RefFormatterID>]
Line 431: Line 414:
 
[textcolor <RefColorID>]
 
[textcolor <RefColorID>]
 
[textalign <TextAlign>]
 
[textalign <TextAlign>]
 +
[verticalalign <VerticalTextAlign>]
 
[border-top <BorderStyle>]
 
[border-top <BorderStyle>]
 
[border-bottom <BorderStyle>]
 
[border-bottom <BorderStyle>]
 
[border-left <BorderStyle>]
 
[border-left <BorderStyle>]
 
[border-right <BorderStyle>]
 
[border-right <BorderStyle>]
[padding-top <UnsignedNumber> <Unit>]
+
[padding-top <UnsignedNumber>]
[padding-bottom <UnsignedNumber> <Unit>]
+
[padding-bottom <UnsignedNumber>]
[padding-left <UnsignedNumber> <Unit>]
+
[padding-left <UnsignedNumber>]
[padding-right <UnsignedNumber> <Unit>]
+
[padding-right <UnsignedNumber>]
[margin-top <UnsignedNumber> <Unit>]
+
[margin-top <UnsignedNumber>]
[margin-bottom <UnsignedNumber> <Unit>]
+
[margin-bottom <UnsignedNumber>]
[margin-left <UnsignedNumber> <Unit>]
+
[margin-left <UnsignedNumber>]
[margin-right <UnsignedNumber> <Unit>]
+
[margin-right <UnsignedNumber>]
}]
+
}]*
}]
+
}]*
 
}
 
}
  
Line 453: Line 437:
 
RefColorID: The reference to the previously defined color via its identification name.
 
RefColorID: The reference to the previously defined color via its identification name.
 
TextAlign: left | center | right
 
TextAlign: left | center | right
 
+
VerticalTextAlign: bottom | middle | top
BorderStyle: <BorderType> <WidthNumber> <Unit> <RefColorID>
+
BorderStyle: <BorderType> <WidthNumber> <RefColorID>
 
+
 
BorderType: none | solid | dotted | dashed | double | groove | ridge | inset | outset
 
BorderType: none | solid | dotted | dashed | double | groove | ridge | inset | outset
 
WidthNumber: Unsigned number to define the corresponding border width.
 
WidthNumber: Unsigned number to define the corresponding border width.
Unit: mm | cm | pt | inch | pc | em | ex | px | %
 
 
 
UnsignedNumber: Unsigned number to define the corresponding top, bottom, left and right padding or margin.
 
UnsignedNumber: Unsigned number to define the corresponding top, bottom, left and right padding or margin.
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 506: Line 487:
 
font arial_10pt_bold
 
font arial_10pt_bold
 
backgroundcolor grey_220
 
backgroundcolor grey_220
border-top solid 1 pt black
+
border-top solid 1 black
border-bottom solid 1 pt black
+
border-bottom solid 1 black
border-left solid 1 pt grey_128
+
border-left solid 1 grey_128
border-right solid 1 pt grey_128
+
border-right solid 1 grey_128
 
media big {
 
media big {
 
font arial_12pt_bold
 
font arial_12pt_bold
Line 520: Line 501:
 
font arial_10pt_bold
 
font arial_10pt_bold
 
backgroundcolor grey_235
 
backgroundcolor grey_235
border-top solid 1 pt black
+
border-top solid 1 black
border-bottom solid 1 pt grey_136
+
border-bottom solid 1 grey_136
 
media big {
 
media big {
 
font arial_12pt_bold
 
font arial_12pt_bold
Line 535: Line 516:
 
font arial_10pt_bold
 
font arial_10pt_bold
 
backgroundcolor grey_250
 
backgroundcolor grey_250
border-top solid 1 pt grey_136
+
border-top solid 1 grey_136
 
media big {
 
media big {
 
font arial_12pt_bold
 
font arial_12pt_bold
Line 549: Line 530:
 
font arial_8pt_regular
 
font arial_8pt_regular
 
backgroundcolor white alternate lightblue
 
backgroundcolor white alternate lightblue
padding-left 2 pt
+
padding-left 2
padding-right 2 pt
+
padding-right 2
 
media big {
 
media big {
 
font arial_12pt_regular
 
font arial_12pt_regular
Line 579: Line 560:
 
font arial_10pt_regular
 
font arial_10pt_regular
 
backgroundcolor grau_235
 
backgroundcolor grau_235
border-top solid 1 pt schwarz
+
border-top solid 1 schwarz
border-bottom solid 1 pt schwarz
+
border-bottom solid 1 schwarz
 
media big {
 
media big {
 
font arial_12pt_regular
 
font arial_12pt_regular
Line 594: Line 575:
 
font arial_10pt_regular
 
font arial_10pt_regular
 
backgroundcolor grey_250
 
backgroundcolor grey_250
border-top solid 1 pt grey_136
+
border-top solid 1 grey_136
border-bottom solid 1 pt grey_136
+
border-bottom solid 1 grey_136
 
media big {
 
media big {
 
font arial_12pt_regular
 
font arial_12pt_regular
Line 609: Line 590:
 
font arial_10pt_regular
 
font arial_10pt_regular
 
backgroundcolor white
 
backgroundcolor white
border-top solid 1 pt black
+
border-top solid 1 black
border-bottom solid 1 pt black
+
border-bottom solid 1 black
 
media big {
 
media big {
 
font arial_12pt_regular
 
font arial_12pt_regular
Line 627: Line 608:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=====Pagetemplate=====
+
=====PageTemplate=====
 
Pagetemplete is used to define the basic format for different page layouts, it is defined as following:<BR>
 
Pagetemplete is used to define the basic format for different page layouts, it is defined as following:<BR>
 
'''Notes:'''
 
'''Notes:'''
Line 633: Line 614:
 
*orientation is used to define the page orientation, e.g. portrait or landscape.
 
*orientation is used to define the page orientation, e.g. portrait or landscape.
 
*topmargin, leftmargin, bottommargin and rightmargin are used to define the margin size.
 
*topmargin, leftmargin, bottommargin and rightmargin are used to define the margin size.
*header and footer are used to define the header and footer details, e.g.: height, if it will be show on first, etc.
+
*header and footer are used to define the header and footer details as its height and if the header will be show on first or the footer on last page of the report.
 
► '''Syntax''':
 
► '''Syntax''':
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">pagetemplate &lt;PageTemplateID&gt;{
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">pagetemplate &lt;PageTemplateID&gt;{
 
&emsp;&emsp;&emsp;&emsp;type &lt;PageSize&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;type &lt;PageSize&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;orientation &lt;Orientation&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;orientation &lt;Orientation&gt;<BR>
&emsp;&emsp;&emsp;&emsp;topmargin &lt;UnsignedNumber&gt; &lt;Unit&gt;<BR>
+
&emsp;&emsp;&emsp;&emsp;topmargin &lt;UnsignedNumber&gt;<BR>
&emsp;&emsp;&emsp;&emsp;leftmargin &lt;UnsignedNumber&gt; &lt;Unit&gt;<BR>
+
&emsp;&emsp;&emsp;&emsp;leftmargin &lt;UnsignedNumber&gt;<BR>
&emsp;&emsp;&emsp;&emsp;bottommargin &lt;UnsignedNumber&gt; &lt;Unit&gt;<BR>
+
&emsp;&emsp;&emsp;&emsp;bottommargin &lt;UnsignedNumber&gt;<BR>
&emsp;&emsp;&emsp;&emsp;rightmargin &lt;UnsignedNumber&gt; &lt;Unit&gt;<BR>
+
&emsp;&emsp;&emsp;&emsp;rightmargin &lt;UnsignedNumber&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;[header {<BR>
 
&emsp;&emsp;&emsp;&emsp;[header {<BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[showOnFirst]<br>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[showOnFirst]<br>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;height &lt;UnsignedNumber&gt; &lt;Unit&gt;<BR>
+
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;height &lt;UnsignedNumber&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;Element&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;Element&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;}]<BR>
 
&emsp;&emsp;&emsp;&emsp;}]<BR>
 
&emsp;&emsp;&emsp;&emsp;[footer { <BR>
 
&emsp;&emsp;&emsp;&emsp;[footer { <BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[showOnLast]<BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[showOnLast]<BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;height &lt;UnsignedNumber&gt; &lt;Unit&gt;<BR>
+
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;height &lt;UnsignedNumber&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;Element&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;Element&gt;<BR>
 
&emsp;&emsp;&emsp;&emsp;}]<BR>
 
&emsp;&emsp;&emsp;&emsp;}]<BR>
Line 659: Line 640:
 
<span style="color:#a39856;">Orientation:</span> portrait | landscape<BR>
 
<span style="color:#a39856;">Orientation:</span> portrait | landscape<BR>
 
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the top, left, bottom or right margin and the header or footer height.<BR>
 
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the top, left, bottom or right margin and the header or footer height.<BR>
<span style="color:#a39856;">Unit:</span> mm | cm | pt | inch | pc | em | ex | px | %<BR>
 
<span style="color:#a39856;">showOnFirst:</span> The status to show header on the first page of the report.<BR>
 
<span style="color:#a39856;">showOnLast:</span> The status to show footer on the last page of the report.
 
  
 
+
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#Grid]]&gt;
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#Grid]]&gt; | &lt;[[#DatamartTable]]&gt;
+
 
</div>
 
</div>
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">
 
<span style="color:#a39856;"><div id="Title">Title:</div></span>&emsp;&emsp;title "&lt;TitleText&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 
  
<span style="color:#a39856;">TitleText:</span> A text used for the title element.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="SubTitle">SubTitle:</div></span>&emsp;&emsp;subtitle "&lt;SubTitleText&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 
 
<span style="color:#a39856;">SubTitleText:</span> A text used for the subtitle element.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;">
 
<div id="SubSubTitle">SubSubTitle:</div></span>&emsp;&emsp;subsubtitle "&lt;SubSubTitleText&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 
 
<span style="color:#a39856;">SubSubTitleText:</span> A text used for the subsubtitle element.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Label">Label:</div></span>&emsp;&emsp; label "&lt;LabelText&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 
 
<span style="color:#a39856;">LabelText:</span> A text used for the label element.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Text">Text:</div></span>&emsp;&emsp; text "&lt;Text&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 
 
<span style="color:#a39856;">Text:</span> A text used for the text element.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="AutoText">AutoText:</div></span>&emsp;&emsp; autotext &lt;AutoTextType&gt; [style &lt;RefStyleID&gt;]<BR><BR>
 
 
<span style="color:#a39856;">AutoTextType:</span> page-number | total-page | page-number-unfiltered | total-page-unfiltered | page-variable<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Grid">Grid:</div></span>&emsp;&emsp; grid [as &lt;GridID&gt;] { &lt;[[#GridRow]]&gt;* }<BR><BR>
 
 
<span style="color:#a39856;">GridID:</span> The identification name for the defined grid.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="GridRow">GridRow:</div></span>&emsp;&emsp; row [as &lt;GridRowID&gt;] [style &lt;RefStyleID&gt;] { &lt;[[#GridCell]]&gt;* }<BR><BR>
 
 
<span style="color:#a39856;">GridRowID:</span> The identification name for the defined grid row.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
<BR>
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="GridCell">GridCell:</div></span>&emsp;&emsp; cell [as &lt;GridCellID&gt;]  [columnspan &lt;Integer&gt;] { &lt;[[#Element]]&gt;* }<BR><BR>
 
 
<span style="color:#a39856;">GridCellID:</span> The identification name for the defined grid cell.
 
</div>
 
 
<BR>
 
<BR>
 
► '''Example''':
 
► '''Example''':
Line 726: Line 650:
 
type a4
 
type a4
 
orientation landscape
 
orientation landscape
topmargin 11.5 mm
+
topmargin 11.5  
leftmargin 12 mm
+
leftmargin 12  
bottommargin 13 mm
+
bottommargin 13  
rightmargin 14 mm
+
rightmargin 14  
 
header {
 
header {
 
// showOnFirst
 
// showOnFirst
height 0.6 inch
+
height 0.6  
 
label "a A4 landscape page"
 
label "a A4 landscape page"
 
}
 
}
 
footer {
 
footer {
 
showOnLast
 
showOnLast
height 10 mm
+
height 10  
 
grid {
 
grid {
 
row {
 
row {
Line 745: Line 669:
 
cell {label "page"}
 
cell {label "page"}
 
cell {autotext page-number}
 
cell {autotext page-number}
cell {label "of"
+
cell {label "of"}
 
cell {autotext total-page}
 
cell {autotext total-page}
cell {label "end of the page"
+
cell {label "end of the page"}
 
}
 
}
 
}
 
}
Line 756: Line 680:
 
=====Report=====
 
=====Report=====
 
'''Notes:'''
 
'''Notes:'''
*For <page size> are the following options available: 'a4', 'a3', 'a5', 'us-letter', 'us-legal', "us-ledger" or "us-super-b".
+
*For <PageSize> are the following options available: 'a4', 'a3', 'a5', 'us-letter', 'us-legal', "us-ledger" or "us-super-b".
*For <orientation> are the following options available: 'portrait' or 'landscape'.
+
*For <Orientation> are the following options available: 'portrait' or 'landscape'.
*For <unsigned number> use an usable unsigned number.
+
*For <Unsigned Number> use an usable unsigned number.
*For <unit> are the following options available: 'mm', 'cm', 'pt', 'inch', 'pc', 'em', 'ex', 'px', '%'.
+
*For <Unit> are the following options available: 'mm', 'cm', 'pt', 'inch', 'pc', 'em', 'ex', 'px', '%'.
 
*title, subtitle, subsubtitle, label text, autotext, image, datamarttable, datamarttableproperty and  grid could be defined detailed using/ not using existed style template in this element.
 
*title, subtitle, subsubtitle, label text, autotext, image, datamarttable, datamarttableproperty and  grid could be defined detailed using/ not using existed style template in this element.
 
*All details of report are defined in xx.rptdesign file according to birt report syntax and semantics.
 
*All details of report are defined in xx.rptdesign file according to birt report syntax and semantics.
Line 766: Line 690:
 
*rendering is used to define the output format of report, e.g.: HTML or PDF.
 
*rendering is used to define the output format of report, e.g.: HTML or PDF.
 
*If the existed report should be used, it could be defined with keyword file with <code>path+filename</code> string.
 
*If the existed report should be used, it could be defined with keyword file with <code>path+filename</code> string.
*template is used to define the header, footer and all other specifically detail for the report.
+
*template is used to define the header, footer and all other specifically detail for the report as its height and if the header will be show on first or the footer on last page of the report.
  
  
 
► '''Syntax''':
 
► '''Syntax''':
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">report <reportName> [described by "<descriptionValue>"] [toolbar <RefActionToolbar>] {<BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">report <ReportID> [describedBy "<DescriptionValue>"] [toolbar <RefActionToolbar>] {<BR>
&emsp;&emsp;&emsp;&emsp;dataMart <datamartDefinition> rendering <renderingOption> [externalCssURI "<externalCssURI>" [from bundle "<externalCssURIBundle>"]]<BR>
+
&emsp;&emsp;&emsp;&emsp;datamart <RefDatamartDefinition> <BR>
&emsp;&emsp;&emsp;&emsp;pagetemplate <RefPageTemplate> media <RefMedia><BR>
+
&emsp;&emsp;&emsp;&emsp;[selectById] <BR>
&emsp;&emsp;&emsp;&emsp;<reportDesign><BR>
+
&emsp;&emsp;&emsp;&emsp;rendering <RenderingOption> <BR>
 +
&emsp;&emsp;&emsp;&emsp;[externalCssURI "<ExternalCssURI>" [fromBundle "<ExternalCssURIBundle>"]]<BR>
 +
&emsp;&emsp;&emsp;&emsp;[defaultUnit <Unit>]<BR>
 +
&emsp;&emsp;&emsp;&emsp;pagetemplate <RefPageTemplate><BR>
 +
&emsp;&emsp;&emsp;&emsp;media <RefMedia><BR>
 +
&emsp;&emsp;&emsp;&emsp;<ReportDesign><BR>
 
}
 
}
  
  
  
<span style="color:#a39856;">reportName:</span> A defined identification name for the report.<BR>
+
<span style="color:#a39856;">ReportID:</span> A defined identification name for the report.<BR>
<span style="color:#a39856;">descriptionValue:</span> A description text used in the automated documentation via MDD (model driven documentation).<BR>
+
<span style="color:#a39856;">DescriptionValue:</span> A description text used in the automated documentation via MDD (model driven documentation).<BR>
 
<span style="color:#a39856;">RefActionToolbar:</span> A selected toolbar reference from the previously defined action toolbars in an ActionDSL model via its identification name.<BR>
 
<span style="color:#a39856;">RefActionToolbar:</span> A selected toolbar reference from the previously defined action toolbars in an ActionDSL model via its identification name.<BR>
 
<span style="color:#a39856;">RefDatamartDefinition:</span> A selected datamart reference from the previously defined datamart definitions in an DatamartDSL model via its identification name.<BR>
 
<span style="color:#a39856;">RefDatamartDefinition:</span> A selected datamart reference from the previously defined datamart definitions in an DatamartDSL model via its identification name.<BR>
<span style="color:#a39856;">renderingOption:</span> html | pdf<BR>
+
<span style="color:#a39856;">RenderingOption:</span> html | pdf<BR>
<span style="color:#a39856;">externalCssURI:</span> The definition of the Uniform Resource Identifier (URI) of an external CSS for this specific report.<BR>
+
<span style="color:#a39856;">ExternalCssURI:</span> The definition of the Uniform Resource Identifier (URI) of an external CSS for this specific report.<BR>
<span style="color:#a39856;">externalCssURIBundle:</span> The bundle where to search the external CSS.<BR>
+
<span style="color:#a39856;">ExternalCssURIBundle:</span> The bundle where to search the external CSS.<BR>
 +
<span style="color:#a39856;">Unit:</span> mm | cm | pt | inch | pc | em | ex | px | %<BR>
 
<span style="color:#a39856;">RefPageTemplate:</span> A selected page template reference from the previously defined templates in the layout-data as described above via its identification name.<BR>
 
<span style="color:#a39856;">RefPageTemplate:</span> A selected page template reference from the previously defined templates in the layout-data as described above via its identification name.<BR>
 
<span style="color:#a39856;">RefMedia:</span> A selected media reference from the previously defined medias in the layout-data as described above via its identification name.<BR>
 
<span style="color:#a39856;">RefMedia:</span> A selected media reference from the previously defined medias in the layout-data as described above via its identification name.<BR>
<span style="color:#a39856;">reportDesign:</span> file "<reportDesignFile>" | <[[#ReportDesignTemplate]]><BR>
+
<span style="color:#a39856;">ReportDesign:</span> file "<ReportDesignFile>" | <[[#ReportDesignTemplate]]><BR>
<span style="color:#a39856;">reportDesignFile:</span> The name of a report design file
+
<span style="color:#a39856;">ReportDesignFile:</span> The name of a report design file
 
</div>
 
</div>
 
<BR>
 
<BR>
Line 797: Line 727:
 
&emsp;&emsp;&emsp;&emsp;[describedBy "<description>"]<BR>
 
&emsp;&emsp;&emsp;&emsp;[describedBy "<description>"]<BR>
 
&emsp;&emsp;&emsp;&emsp;[<[[#PageHeader]]>]<BR>
 
&emsp;&emsp;&emsp;&emsp;[<[[#PageHeader]]>]<BR>
&emsp;&emsp;&emsp;&emsp;[<[[#PageDetail]]>]<BR>
+
&emsp;&emsp;&emsp;&emsp; <[[#PageDetail]]> <BR>
 
&emsp;&emsp;&emsp;&emsp;[<[[#PageFooter]]>]<BR>
 
&emsp;&emsp;&emsp;&emsp;[<[[#PageFooter]]>]<BR>
 
}<BR>
 
}<BR>
Line 807: Line 737:
 
header {<BR>
 
header {<BR>
 
&emsp;&emsp;&emsp;&emsp;[showOnFirst]<BR>
 
&emsp;&emsp;&emsp;&emsp;[showOnFirst]<BR>
&emsp;&emsp;&emsp;&emsp;height <UnsignedNumber> <UnitEnum><BR>
+
&emsp;&emsp;&emsp;&emsp;height <UnsignedNumber><BR>
 
&emsp;&emsp;&emsp;&emsp;<Element>*
 
&emsp;&emsp;&emsp;&emsp;<Element>*
 
}<BR>
 
}<BR>
<span style="color:#a39856;">showOnFirst:</span> The status to show header on the first page of the report.<BR>
 
  
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#DatamartTable]]&gt; | &lt;[[#DatamartTableAttribute]]&gt; | &lt;[[#Grid]]&gt;
+
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the header height.<BR>
 +
 
 +
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#NonTranslatableText]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#StringBinder]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#DatamartTable]]&gt; | &lt;[[#DatamartTableAttribute]]&gt; <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span> | &lt;[[#Grid]]&gt;
 
</div>
 
</div>
 
<BR>
 
<BR>
Line 823: Line 754:
 
}<BR>
 
}<BR>
  
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#DatamartTable]]&gt; | &lt;[[#DatamartTableAttribute]]&gt; | &lt;[[#Grid]]&gt;
+
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#NonTranslatableText]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#StringBinder]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#DatamartTable]]&gt; | &lt;[[#DatamartTableAttribute]]&gt; | &lt;[[#Grid]]&gt;
 
</div>
 
</div>
 
<BR>
 
<BR>
Line 831: Line 762:
 
footer {<BR>
 
footer {<BR>
 
&emsp;&emsp;&emsp;&emsp;[showOnLast]<BR>
 
&emsp;&emsp;&emsp;&emsp;[showOnLast]<BR>
&emsp;&emsp;&emsp;&emsp;height <UnsignedNumber> <UnitEnum><BR>
+
&emsp;&emsp;&emsp;&emsp;height <UnsignedNumber><BR>
 
&emsp;&emsp;&emsp;&emsp;<Element>*
 
&emsp;&emsp;&emsp;&emsp;<Element>*
 
}<BR>
 
}<BR>
  
<span style="color:#a39856;">showOnLast:</span> The status to show footer on the last page of the report. <BR>
+
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the footer height.<BR>
  
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#DatamartTable]]&gt; | &lt;[[#DatamartTableAttribute]]&gt; | &lt;[[#Grid]]&gt;
+
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#NonTranslatableText]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#StringBinder]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#DatamartTable]]&gt; | &lt;[[#DatamartTableAttribute]]&gt; <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span> | &lt;[[#Grid]]&gt;
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTable">DatamartTable:</div></span>&emsp;&emsp; table [style &lt;RefStyleID&gt;] {<BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[detailheader [style &lt;RefStyleID&gt;]]<BR>
+
<span style="color:#a39856;"><div id="Title">Title:</div></span>&emsp;&emsp;title "&lt;TitleTextString&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[detailfooter [style &lt;RefStyleID&gt;]] <BR>
+
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;[[#DatamartTableGroup]]&gt;* <span style="color:#630a69;"><b><i> --> Not available in page template!</i></b></span><BR>
+
<span style="color:#a39856;">TitleTextString:</span> A text used for the title element.<BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;[[#DatamartTableDetail]]&gt;<BR>
+
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="SubTitle">SubTitle:</div></span>&emsp;&emsp;subtitle "&lt;SubTitleTextString&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 +
 
 +
<span style="color:#a39856;">SubTitleTextString:</span> A text used for the subtitle element.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;">
 +
<div id="SubSubTitle">SubSubTitle:</div></span>&emsp;&emsp;subsubtitle "&lt;SubSubTitleTextString&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 +
 
 +
<span style="color:#a39856;">SubSubTitleTextString:</span> A text used for the subsubtitle element.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Label">Label:</div></span>&emsp;&emsp; label "&lt;LabelTextString&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 +
 
 +
<span style="color:#a39856;">LabelTextString:</span> A text used for the label element.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Text">Text:</div></span>&emsp;&emsp; text [&lt;TextContentType&gt;] "&lt;TextString&gt;" [style &lt;RefStyleID&gt;]<BR><BR>
 +
 
 +
<span style="color:#a39856;">TextContentType:</span> auto | plain | html <BR>
 +
<span style="color:#a39856;">TextString:</span> A text used for the text element.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="NontranslatableText">NontranslatableText:</div></span>&emsp;&emsp; nontranslatable  "&lt;NontranslatableTextString&gt;" <BR><BR>
 +
 
 +
<span style="color:#a39856;">NontranslatableTextString:</span> A text used for the nontranslatable element.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="AutoText">AutoText:</div></span>&emsp;&emsp; autotext <AutoTextType> [style <RefStyleID>]<BR><BR>
 +
 
 +
<span style="color:#a39856;">AutoTextType:</span> page-number | total-page | page-number-unfiltered | total-page-unfiltered | page-variable | actual-date | actual-time | report-name<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="StringBinder">StringBinder:</div></span>&emsp;&emsp; stringBinder ( <[[#StringBinderValue]]>* ) [style <RefStyleID>]<BR><BR>
 +
 
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="StringBinderValue">StringBinderValue:</div></span>&emsp;&emsp; attribute <RefDatamartAttributeID> | translatable "<TranslatableTextString>" | &lt;[[#NonTranslatableText]]&gt;<BR><BR>
 +
 
 +
<span style="color:#a39856;">RefDatamartAttributeID:</span> A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name. <BR>
 +
<span style="color:#a39856;">TranslatableTextString:</span> A text used for the translatable element.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Image">Image:</div></span>&emsp;&emsp; image <ImageSizeEnum> [scale <UnsignedNumber>] [height <UnsignedNumber> <Unit>] [width <UnsignedNumber> <Unit>] <ImageSourceEnum> "<FilePath>"<BR><BR>
 +
 
 +
<span style="color:#a39856;">ImageSizeEnum:</span> size-to-image | scale-to-item | clip.<BR>
 +
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the corresponding scaling/height/width factor for the image.<BR>
 +
<span style="color:#a39856;">Unit:</span> mm | cm | pt | inch | pc | em | ex | px | %<BR>
 +
<span style="color:#a39856;">ImageSourceEnum:</span> url | embed.<BR>
 +
<span style="color:#a39856;">FilePath:</span> The content is depending of the previously defined image source. Using 'embed' it has to be a full qualified local path. Using 'url' it has to be a Uniform Resource Locator path. But only as HTTP-path (http://...).
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Grid">Grid:</div></span>&emsp;&emsp; grid [as &lt;GridID&gt;] [style  &lt;RefStyleID&gt;] [width &lt;UnsignedNumber&gt;] [&lt;[[#Visibility]]&gt;] { &lt;[[#GridRow]]&gt;* }<BR><BR>
 +
 
 +
<span style="color:#a39856;">GridID:</span> The identification name for the defined grid.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.<BR>
 +
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the corresponding width factor for the grid.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="GridRow">GridRow:</div></span>&emsp;&emsp; row [as &lt;GridRowID&gt;] [style &lt;RefStyleID&gt;] [height &lt;UnsignedNumber&gt;] [&lt;[[#Visibility]]&gt;] { &lt;[[#GridCell]]&gt;* }<BR><BR>
 +
 
 +
<span style="color:#a39856;">GridRowID:</span> The identification name for the defined grid row.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.<BR>
 +
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the corresponding height factor for the grid row.
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="GridCell">GridCell:</div></span>&emsp;&emsp; cell [as &lt;GridCellID&gt;] [style  &lt;RefStyleID&gt;] [width &lt;UnsignedNumber&gt;] [columnspan &lt;Integer&gt;] [&lt;[[#Visibility]]&gt;] { &lt;Element&gt;* }<BR><BR>
 +
 
 +
<span style="color:#a39856;">GridCellID:</span> The identification name for the defined grid cell.<BR>
 +
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.<BR>
 +
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the corresponding width factor for the grid cell.<BR>
 +
<span style="color:#a39856;">Integer:</span> Integer number to define the corresponding column span factor for the grid cell.<BR>
 +
<span style="color:#a39856;">Element:</span> &lt;[[#Title]]&gt; | &lt;[[#SubTitle]]&gt; | &lt;[[#SubSubTitle]]&gt; | &lt;[[#Label]]&gt; | &lt;[[#Text]]&gt; | &lt;[[#NonTranslatableText]]&gt; | &lt;[[#AutoText]]&gt; | &lt;[[#StringBinder]]&gt; | &lt;[[#Image]]&gt; | &lt;[[#Grid]]&gt; | &lt;[[#DatamartTable]]&gt; <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span>
 +
</div>
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTable">DatamartTable:</div></span>&emsp;&emsp; table [datamart &lt;RefDatamartDefinition&gt;] [as &lt;TableID&gt;] [style &lt;RefStyleID&gt;] [&lt;[[#Visibility]]&gt;]] [&lt;[[#PageBreak]]&gt;]] {<BR>
 +
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[header [style &lt;RefStyleID&gt;] [&lt;[[#PageBreak]]&gt;] [{&lt;[[#GridRow]]&gt;*}]]<BR>
 +
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[footer [style &lt;RefStyleID&gt;] [&lt;[[#PageBreak]]&gt;] [{&lt;[[#GridRow]]&gt;*}]]<BR>
 +
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;[[#DatamartTableGroup]]&gt;* <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span><BR>
 +
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&lt;[[#DatamartTableDetail]]&gt;<BR>
 
&emsp;&emsp;}<BR><BR>
 
&emsp;&emsp;}<BR><BR>
  
 +
 +
<span style="color:#a39856;">RefDatamartDefinition:</span> A selected datamart reference from the previously defined datamart definitions in an DatamartDSL model via its identification name.<BR>
 +
<span style="color:#a39856;">TableID:</span> The identification name for the defined table.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableGroup">DatamartTableGroup:</div></span>&emsp;&emsp; group &lt;GroupID&gt; by &lt;RefDatamartAttributeID&gt; {<BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableGroup">DatamartTableGroup:</div></span>&emsp;&emsp; group &lt;GroupID&gt; by &lt;RefDatamartAttributeID&gt; [&lt;[[#Visibility]]&gt;]] [&lt;[[#PageBreak]]&gt;] {<BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[&lt;[[#DatamartTableGroupHeader]]&gt;]<BR>
+
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[header [style &lt;RefStyleID&gt;] [&lt;[[#PageBreak]]&gt;] [{&lt;[[#GridRow]]&gt;*}]]<BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[detailheader [style &lt;RefStyleID&gt;]]<BR>
+
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[footer [style &lt;RefStyleID&gt;] [&lt;[[#PageBreak]]&gt;] [{&lt;[[#GridRow]]&gt;*}]]<BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[detailfooter [style &lt;RefStyleID&gt;]]<BR>
+
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[&lt;[[#DatamartTableGroupFooter]]&gt;]<BR>
+
 
&emsp;&emsp;}<BR><BR>
 
&emsp;&emsp;}<BR><BR>
  
Line 861: Line 880:
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableGroupHeader">DatamartTableGroupHeader:</div></span>&emsp;&emsp; header [style &lt;RefStyleID&gt;] { &lt;[[#GridRow]]&gt;* }<BR><BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="Visibility">Visibility:</div></span>&emsp;&emsp; visibility &lt;RefDatamartAttributeID&gt;<BR><BR>
  
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
+
<span style="color:#a39856;">RefDatamartAttributeID:</span> A reference to one of the previously in the DatamartDSL defined boolean datamart attributes via its identification name. That boolean value decides the visibility.
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableGroupFooter">DatamartTableGroupFooter:</div></span>&emsp;&emsp; footer [style &lt;RefStyleID&gt;] { &lt;[[#GridRow]]&gt;* }<BR><BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="PageBreak">PageBreak:</div></span>&emsp;&emsp; pageBreak ( [before &lt;BeforeAfterPageBreak&gt;] [after &lt;BeforeAfterPageBreak&gt;] [inside &lt;InsidePageBreak&gt;] )<BR><BR>
  
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
+
<span style="color:#a39856;">BeforeAfterPageBreak:</span> auto | always | avoid <BR>
 +
<span style="color:#a39856;">InsidePageBreak:</span> auto | avoid
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableDetail">DatamartTableDetail:</div></span>&emsp;&emsp; details [style &lt;RefStyleID&gt;] [all | [{ &lt;[[#DatamartTableAttribute]]&gt;* }]]<BR><BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableDetail">DatamartTableDetail:</div></span>&emsp;&emsp; details [style &lt;RefStyleID&gt;] all | { &lt;[[#DatamartTableAttribute]]&gt;* } <BR><BR>
  
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableAttribute">DatamartTableAttribute:</div></span>&emsp;&emsp; &lt;TableValueElement&gt; [style &lt;RefStyleID&gt;] <BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="DatamartTableAttribute">DatamartTableAttribute:</div></span>&emsp;&emsp; &lt;TableValueElement&gt; <BR>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[image &lt;[[#TableImage]]&gt;] <BR>
+
 
 +
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[width &lt;UnsignedNumber&gt;] [style &lt;RefStyleID&gt;] <BR>
 +
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[style  &lt;RefStyleID&gt;] <BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[intervals [hidelabel] { &lt;TableInterval&gt;* }] <BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[intervals [hidelabel] { &lt;TableInterval&gt;* }] <BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[lookups [hidelabel] { &lt;TableLookup&gt;* }]<BR><BR>
 
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[lookups [hidelabel] { &lt;TableLookup&gt;* }]<BR><BR>
  
<span style="color:#a39856;">TableValueElement:</span> <[[#TableAttribute]]> <span style="color:#630a69;"><b><i> --> Not available in page template!</i></b></span> | <[[#TableAggregation]]><BR>
+
<span style="color:#a39856;">TableValueElement:</span> <[[#TableAttribute]]> <span style="color:#630a69;"><b><i> --> ([[#2]])</i></b></span> | <[[#TableAggregation]]><BR>
 +
<span style="color:#a39856;">UnsignedNumber:</span> Unsigned number to define the corresponding width factor for the datamart table attribute.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.<BR>
 
<span style="color:#a39856;">RefStyleID:</span> A reference to one of the previously defined styles in the layout-data as described above via its identification name.<BR>
 
<span style="color:#a39856;">TableInterval:</span> <[[#TableNumberInterval]]> | <[[#TableDateDayInterval]]><BR>
 
<span style="color:#a39856;">TableInterval:</span> <[[#TableNumberInterval]]> | <[[#TableDateDayInterval]]><BR>
Line 892: Line 915:
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableAggregation">TableAggregation:</div></span>&emsp;&emsp; aggregate &lt;TableBaseAggregation&gt; [on-group &lt;RefDatamartTableGroupID&gt; <span style="color:#630a69;"><b><i> --> Not available in page template!</i></b></span>] [title "&lt;TitelText&gt;"]<BR><BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableAggregation">TableAggregation:</div></span>&emsp;&emsp; aggregate &lt;TableBaseAggregation&gt; [on-group &lt;RefDatamartTableGroupID&gt; <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span>] [title "&lt;TitleString&gt;"]<BR><BR>
  
<span style="color:#a39856;">TableBaseAggregation:</span> <[[#TablePureAggregation]]> | <[[#TableUnaryAggregation]]> <span style="color:#630a69;"><b><i> --> Not available in page template!</i></b></span> | <[[#TableMultipleAggregation]]> <span style="color:#630a69;"><b><i> --> Not available in page template!</i></b></span> | <[[#TableBinaryAggregation]]> <span style="color:#630a69;"><b><i> --> Not available in page template!</i></b></span>.<BR>
+
<span style="color:#a39856;">TableBaseAggregation:</span> <[[#TablePureAggregation]]> | <[[#TableUnaryAggregation]]> <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span> | <[[#TableMultipleAggregation]]> <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span> | <[[#TableBinaryAggregation]]> <span style="color:#630a69;"><b><i> --> ([[#1]])</i></b></span>.<BR>
 
<span style="color:#a39856;">RefDatamartTableGroupID:</span> A reference to one of the previously defined datamart table groups via its identification name.<BR>
 
<span style="color:#a39856;">RefDatamartTableGroupID:</span> A reference to one of the previously defined datamart table groups via its identification name.<BR>
<span style="color:#a39856;">TitelText:</span> The title text as String.
+
<span style="color:#a39856;">TitleString:</span> The title text as String.
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableImage">TableImage:</div></span>&emsp;&emsp; path "&lt;ImagePathPattern&gt;" [dynamic] [hidelabel] [resize] ["&lt;ResizeString&gt;"]<BR><BR>
+
<!--<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableImage">TableImage:</div></span>&emsp;&emsp; path "&lt;ImagePathPattern&gt;" [dynamic] [hidelabel] [resize] ["&lt;ResizeString&gt;"]<BR><BR>
  
 
<span style="color:#a39856;">ImagePathPattern:</span> XXXX.<BR>
 
<span style="color:#a39856;">ImagePathPattern:</span> XXXX.<BR>
 
<span style="color:#a39856;">ResizeString:</span> XXXX.
 
<span style="color:#a39856;">ResizeString:</span> XXXX.
 
</div>
 
</div>
<BR>
+
<BR> NOT IMPLEMENTED AT THIS MOMENT-->
 +
 
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TablePureAggregation">TablePureAggregation:</div></span>&emsp;&emsp; count | running-countpath  
 
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TablePureAggregation">TablePureAggregation:</div></span>&emsp;&emsp; count | running-countpath  
 
</div>
 
</div>
Line 913: Line 937:
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableMultipleAggregation">TableMultipleAggregation:</div></span>&emsp;&emsp; concat of &lt;RefDatamartAttributeID&gt;*<BR><BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableMultipleAggregation">TableMultipleAggregation:</div></span>&emsp;&emsp; concat ( &lt;RefDatamartAttributeID&gt;* )<BR><BR>
  
 
<span style="color:#a39856;">RefDatamartAttributeID:</span> A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.
 
<span style="color:#a39856;">RefDatamartAttributeID:</span> A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.
 
</div>
 
</div>
 
<BR>
 
<BR>
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableBinaryAggregation">TableBinaryAggregation:</div></span>&emsp;&emsp; divide of &lt;RefDatamartAttributeID&gt;*<BR><BR>
+
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;"><span style="color:#a39856;"><div id="TableBinaryAggregation">TableBinaryAggregation:</div></span>&emsp;&emsp; divide ( &lt;RefDatamartAttributeID&gt; &lt;RefDatamartAttributeID&gt;) <BR><BR>
  
 
<span style="color:#a39856;">RefDatamartAttributeID:</span> A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.
 
<span style="color:#a39856;">RefDatamartAttributeID:</span> A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.
Line 953: Line 977:
 
</div>
 
</div>
  
 +
<BR>
 +
<div style="border: 1px solid #dbdcdd; background-color: #f9f9f9; padding: 15px; font-family: 'Courier New', Courier, serif; font-size: 15px; line-height: normal;">
 +
<span style="color:#630a69;"><b><i><div id="1">(1): Not available for a page template!</div></i></b></span><BR>
 +
<span style="color:#630a69;"><b><i><div id="2">(2): Neither for a page template nor for a header or footer template F#2definition available!</div></i></b></span>
 +
</div>
 
► '''Example''':
 
► '''Example''':
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
Line 1,037: Line 1,066:
 
rendering html
 
rendering html
 
/** an optional external Css URI */
 
/** an optional external Css URI */
externalCssURI "css/html/ccng-birt2.css" from bundle "FoodMartReportDSLPlugin2"
+
externalCssURI "css/html/osbp-birt.css" from bundle "My1AppReportDSLPlugin"
 
pagetemplate A4_Portrait
 
pagetemplate A4_Portrait
 
media big
 
media big
Line 1,045: Line 1,074:
 
label "with the logo via url..."
 
label "with the logo via url..."
 
image size-to-image url "http://www.compex-commerce.com/export/system/modules/de.compex.internet/resources/img/logo/logo_compex-commerce.gif"
 
image size-to-image url "http://www.compex-commerce.com/export/system/modules/de.compex.internet/resources/img/logo/logo_compex-commerce.gif"
label "now the logo via file..."
 
image size-to-image file "platform:/plugin/de.compex.utils/img/ccngdesign/compexlogo.png"
 
 
label "and what about the logo embedded?"
 
label "and what about the logo embedded?"
image size-to-image embed "platform:/plugin/de.compex.utils/img/ccngdesign/compexlogo.png"
+
image size-to-image embed "C:/plugin/de.compex.utils/img/osbpdesign/compexlogo.png"
 
subtitle "sub title #1"
 
subtitle "sub title #1"
 
label "it's me again, but hopefully running, and modified too :/"
 
label "it's me again, but hopefully running, and modified too :/"

Latest revision as of 13:47, 25 October 2018


Documentation

Introduction

Vaadin

Vaadin is a web application framework for Java. In contrast to Javascript libraries and browser-plugin based solutions, Vaadin features a complete stack that includes a robust server-side programming model as well as client-side development tools based on GWT and HTML5.

More information:

https://vaadin.com/home

Birt Report

The Business Intelligence and Reporting Tools (BIRT) Project is an open source software project that provides reporting and business intelligence capabilities for rich client and web applications, especially those based on Java and Java EE. BIRT is a top-level software project within the Eclipse Foundation, an independent not-for-profit consortium of software industry vendors and an open source community.

The project's stated goals are to address a wide range of reporting needs within a typical application, ranging from operational or enterprise reporting to multi-dimensional online analytical processing (OLAP). Initially, the project has focused on and delivered capabilities that allow application developers to easily design and integrate reports into applications. The project is supported by an active community of users at BIRT Developer Center and developers at the Eclipse.org BIRT Project page.

BIRT has two main components: a visual report designer within the Eclipse IDE for creating BIRT Reports, and a runtime component for generating reports that can be deployed to any Java environment. The BIRT project also includes a charting engine that is both fully integrated into the report designer and can be used standalone to integrate charts into an application.

BIRT Report designs are persisted as XML and can access a number of different data sources including JDO datastores, JFire Scripting Objects, POJOs, SQL databases, Web Services and XML.

https://en.wikipedia.org/wiki/BIRT_Project

http://developer.actuate.com/about/

Report DSL

ReportDSL generates the vaddin s ui and birt report.

The main semantic elements of the ReportDSL are:

  • “import” declarations – used to import external models or even Java classes.
  • “package” – the root element that contains all the other elements. A model can contain multiple packages.
  • “layout-data” – the container element that contains all the following layout elements.
    • “externalCssURI” – define the optional external CSS URI for all reports.
    • “formatters” – define the formatter types for all report.
    • “colors” – define the color types for all report.
    • “fonts” – define the font types for all report.
    • “medias” – define the media types for all report.
    • “styles” – define the style types for all report.
    • “pagetemplate” – define the report page template, e.g. page size, orientation, margin, header, footer, etc.
  • “report” – define the data source details for the report, e.g. row/column configurations, legend details and tooltips configurations.

Syntax

All the syntax definitions in this document are described according to the following rules:

  • Definitions in this brackets "<...>" are placeholder.
  • Definitions in this brackets "[...]" are optional.
  • Definitions ending with "*" means they are 0 to n available.
  • "|" between definitions shows different parallel alternatives.
Report DSL instance definition

This is the global syntax of a report DSL instance.
Syntax:

  [import <ImportModels/ClassName>]
  package <PackageName>  {
     [layout-data {
        [externalCssURI "<ExternalCssURI>" [from bundle "<ExternalCssURIBundle>"]]
        formatters {...}
        colors {...}
        fonts {...}
        medias {...}
        styles {...}
        [pagetemplate <PagetemplateID> {    	
         ...
        }]
     }]	
     [report <ReportID> ... {    	
      ...
     }]
   ...
  }


ExternalCssURI: The definition of the Uniform Resource Identifier (URI) of an external CSS for this specific report.
ExternalCssURIBundle: The bundle where to search the external CSS.
PagetemplateID: A defined identification name for the page template.
ReportID: A defined identification name for the report.

Notes:

  • externalCssURI is used to define the external CSS for all reports in this package.
  • User can also define different formatters, colors, fonts, medias and styles template for all reports in this package. All these definitions could be defined in a separated package and import to other report-packages as well.
  • pagetemplate is used to define the page template format for all reports in this package.
  • For each report definition, a <reportname>+Report.java file will be generated, in which a java class named <reportname>+Report extended from java class CCBaseReport is defined. In this class, report and report configurations are defined. Additionally a <reportname>.rptdesign file will be also gererated, in which a birt report is defined.
Figure 1 - Example birt report layout
Formatters

Formatters is used to define the report format in detail, it is defined as following:

Syntax:

formatters {
    [ <FormatType> ]*
}

FormatType: <UomoFormat> | <NumberFormat> | <CurrencyFormat> | <DateFormat> | <DateTimeFormat> | <TimeFormat>

Notes:

  • The defined formatters are usually used in the definition for styles.
UomoFormat:	uomo <UomoID> {
		    ui "<UiPattern>" report "<ReportPattern>" textalign <TextAlign> 
		}

NumberFormat:	number <NumberID> { 
		    ui "<UiPattern>" report <NumberFormatCategory> "<ReportPattern>" textalign <TextAlign> 
		}

CurrencyFormat:	currency <CurrencyID> { 
		    ui "<UiPattern>" report <CurrencyFormatCategory> "<ReportPattern>" textalign <TextAlign> 
		}

DateFormat:	date <DateID> { 
		    ui "<UiPattern>" report custom "<ReportPattern>" textalign <TextAlign> 
		}

DateTimeFormat:	date+time <DateAndTimeID> { 
		    ui "<UiPattern>" report custom "<ReportPattern>" textalign <TextAlign> 
		}

TimeFormat:	time <TimeID> { 
		    ui "<UiPattern>" report custom "<ReportPattern>" textalign <TextAlign> 
		}

UomoID: The identification name for the defined uomo format type.
NumberID: The identification name for the number format type.
CurrencyID: The identification name for the currency format type.
DateID: The identification name for the date format type.
DateAndTimeID: The identification name for the date and time format type.
TimeID: The identification name for the time format type.
UiPattern: A text that will be used as pattern for the visualization of the report (actually not used). 
ReportPattern: A text that will be used as format pattern for the corresponding style within the report. 
TextAlign: left | center | right
NumberFormatCategory: unformatted | general-number | fixed | percent | scientific | custom
CurrencyFormatCategory: unformatted | currency | custom

Notes:

  • ui and report defines the layout format in ui and report.
  • textalign defines the text align definition on page.

Example:

formatters {
	/** empty UOMO format */
	uomo uomo_test {
		ui "test"
		report "test"
		textalign left
	}
		
	/** money in EURO, rounding half-up */
	currency money_euro {
		ui "###,##0.00 €"
		report currency "#,##0.00 EUR{RoundingMode=HALF_UP}"
		textalign right
	}
		
	/** date without time with weekday */
	date+time shortdate {
		ui "SHORTDATE"
		report custom "dd.MM.yyyy"
		textalign left
	}
		
	/** integer */
	number integer {
		ui "##0"
		report percent "##0"
		textalign right
	}
		
	/** percent */
	number ^percent {
		ui "##0.0'%'"
		report percent "##0.0'%'"
		textalign right
	}
}

styles {
	/** if a currency has to be rendered */
	style ^currency { 
		formatter money_euro
	}
}
Colors

Colors is used to define the report colors in detail, it is defined as following:

Syntax:

colors {
  [ color <ColorID> "<ColorString>" | <Darkens> | <Lightens> | <Transforms> ]*
}

ColorID: The identification name of the defined color.
ColorString: The hexadecimal color code.

Darkens: darkens <RefColorID> by-percent <Number>
Lightens: lightens <RefColorID> by-percent <Number>
Transforms: transforms <RefColorID> by-percent <Number> towards <RefColorID>

RefColorID: The reference to the previously defined color via its identification name.
Number: A number to define the value in percentage for darkens, lightens and transforms.

Notes:

  • The defined colors are usually used in the definition for styles.
  • color is defined with the RGB string.
  • darkens, lightens, and transforms could be used to defined the different color darkness of existed color type.

Example:

colors {
	/** the basic text color: BLACK */
	color black "#000000"
	/** grey rgb(128,128,128) */
	color grey_128 "#808080"
	/** grey rgb(136,136,136) */
	color grey_136 "#888888"
	/** grey rgb(220,220,220) */
	color grey_220 "#dcdcdc"
	/** grey rgb(235,235,235) */
	color grey_235 "#ebebeb"
	/** grey rgb(250,250,250) */
	color grey_250 "#fafafa"
	/** white */
	color white "#ffffff"
	/** light grey, according to the style guide rather rgb(244,252,255) but it is to weak on screen! */
	color lightgrey "#e4ecff"
	color red "#ff3b30"
	color orange "#ffcc00"
	color darkblue "#007aff"
	color grey_darkens darkens grey_136 by-percent 50
	color lightblack lightens black by-percent 30 
	color lightblue "#52edc7"
}
styles {
	/** Bootstrap style */
	style bootstrap {
		textcolor black
		backgroundcolor white
	}
}
Fonts

Fonts is used to define the report fonts in detail, it is defined as following:

Syntax:

fonts {
   [font <FontID> [extends <RefFontID> ] {
         [family <BuildInFontFamily> | "<CustomFontFamilyString>"] 
         [<FontStyle>] 
         [bold] 
         [size <UnsignedSizeNumber> <Unit>]
   }]*
}

FontID: The identification name for the defined font.
RefFontID: The reference to the previously defined font via its identification name.
BuildInFontFamily: monospace | sans-serif | serif
CustomFontFamilyString: A free available text that should be equal to an existing font family.
FontStyle: normal | italic | oblique
UnsignedSizeNumber: An unsigned number to define the the corresponding font size.
Unit: mm | cm | pt | inch | pc | em | ex | px | %

Notes:

  • The defined fonts are usually used in the definition for styles.
  • New font could be defined based on existed font type using extends.
  • family is used to define type of font and if it is monospace or sans-serif or serif.
  • If it is normal or italic or oblique or bold could be also defined directly.
  • size is used to define the font size.

Example:

fonts {
	font arial_14pt_bold {
		family "Arial"
		bold
		size 14 pt
	}
		
	font arial_12pt_regular {
		family "Arial"
		normal
		size 12 pt
	}
		
	font arial_12pt_bold {
		family "Arial"
		bold
		size 12 pt
	}

	font arial_8pt_regular {
		family "Arial"
		normal
		size 8 pt
	}
			
	font arial_7pt_bold {
		family "Arial"
		bold
		size 7 pt
	}
}
styles {
	/** Bootstrap style */
	style bootstrap {
		textcolor black
		backgroundcolor white
		font arial_8pt_regular
	}
}
Medias

Medias is used to define different report media categories which were used in the style definitions (further documented) to define individual media styles overriding the base style.
It is defined as following:

Syntax:

medias {
	[media <MediaID>]*
}

MediaID: The identification name of the defined media.


Example:

medias {
	/** Format for tabular reports e.g. for the use at the office */
	media middle
	/** Format for tabular reports e.g. for the use at the warehouse */
	media big
	/** Format for tabular reports e.g. for the use at the office and for the storage */
	media small
	/** Format for tabular reports as invoices, delivery orders, etc. */
	media ^report
}
styles {
	/** Bootstrap style */
	style bootstrap {
		textcolor black
		backgroundcolor white
		font arial_8pt_regular
		media big {font arial_12pt_regular}
	}
		
	/** header */
	style headerarea {
		extends bootstrap
		font arial_10pt_regular
		media big {font arial_12pt_regular}
		media small {font arial_8pt_regular}
	}
}
Styles

Styles is used to define the report styles in detail.
All the previously documented styling elements as formatters, colors, fonts and medias have to be used here to define different styles.
The incorporated media style is an individual overriding style for the corresponding mentioned media.
It is defined as following:

Syntax:

styles {
	[style <StyleID> {
		[extends <RefStyleID>]
		  [formatter <RefFormatterID>] 
		  [font <RefFontID>] 
		  [backgroundcolor <RefColorID> [alternate <RefColorID>]] 
		  [textcolor <RefColorID>] 
		  [textalign <TextAlign>] 
		  [verticalalign <VerticalTextAlign>] 
		  [border-top <BorderStyle>] 
		  [border-bottom <BorderStyle>] 
		  [border-left <BorderStyle>] 
		  [border-right <BorderStyle>] 
		  [padding-top <UnsignedNumber>] 
		  [padding-bottom <UnsignedNumber>] 
		  [padding-left <UnsignedNumber>] 
		  [padding-right <UnsignedNumber>] 
		  [margin-top <UnsignedNumber>] 
		  [margin-bottom <UnsignedNumber>] 
		  [margin-left <UnsignedNumber>] 
		  [margin-right <UnsignedNumber>] 
		[media <RefMediaID> {
			[formatter <RefFormatterID>]
			[font <RefFontID>]
			[backgroundcolor <RefColorID> [alternate <RefColorID>]]
			[textcolor <RefColorID>]
			[textalign <TextAlign>]
			[verticalalign <VerticalTextAlign>]
			[border-top <BorderStyle>]
			[border-bottom <BorderStyle>]
			[border-left <BorderStyle>]
			[border-right <BorderStyle>]
			[padding-top <UnsignedNumber>]
			[padding-bottom <UnsignedNumber>]
			[padding-left <UnsignedNumber>]
			[padding-right <UnsignedNumber>]
			[margin-top <UnsignedNumber>]
			[margin-bottom <UnsignedNumber>]
			[margin-left <UnsignedNumber>]
			[margin-right <UnsignedNumber>]
		}]*
	}]*
}

StyleID: The identification name for the defined style.
RefStyleID: The reference to the previously defined style via its identification name.
RefFormatterID: The reference to the previously defined formatter via its identification name.
RefFontID: The reference to the previously defined font via its identification name.
RefColorID: The reference to the previously defined color via its identification name.
TextAlign: left | center | right
VerticalTextAlign: bottom | middle | top
BorderStyle: <BorderType> <WidthNumber> <RefColorID>
BorderType: none | solid | dotted | dashed | double | groove | ridge | inset | outset
WidthNumber: Unsigned number to define the corresponding border width.
UnsignedNumber: Unsigned number to define the corresponding top, bottom, left and right padding or margin.

Notes:

  • New style could be defined based on existed style type using extends.
  • formatter, font, backgroundcolor, textcolor could be defined using existed definitions.
  • Textalign, border details, padding details and margin details could be also defined in detail.
  • Formatter, font, color, textalign, border details, padding details and margin details are redefinedable for existed media.


Example:

styles {
	/** Bootstrap style */
	style bootstrap {
		textcolor black
		backgroundcolor white
		font arial_8pt_regular
		media big {
			font arial_12pt_regular
		}
	}
		
	/** Headline */
	style headline {
		extends bootstrap
		font arial_14pt_bold
	}
		
	/** Header */
	style headerarea {
		extends bootstrap
		font arial_10pt_regular
		media big {
			font arial_12pt_regular
		}
		media small {
			font arial_8pt_regular
		}
	}
		
	/** Table header */
	style tableheader {
		extends bootstrap
		font arial_10pt_bold
		backgroundcolor grey_220
		border-top solid 1 black
		border-bottom solid 1 black
		border-left solid 1 grey_128
		border-right solid 1 grey_128
		media big {
			font arial_12pt_bold
		}
	}

	/** 1. header grouping level */
	style grouping_1_head {
		extends bootstrap
		font arial_10pt_bold
		backgroundcolor grey_235
		border-top solid 1 black
		border-bottom solid 1 grey_136
		media big {
			font arial_12pt_bold
		}
		media small {
			font arial_8pt_bold
		}
	}

	/** 2. and more header grouping levels */
	style grouping_2_head {
		extends bootstrap
		font arial_10pt_bold
		backgroundcolor grey_250
		border-top solid 1 grey_136
		media big {
			font arial_12pt_bold
		}
		media small {
			font arial_8pt_bold
		}
	}
		
	/** Standard line (lowest level) */
	style defaultrow {
		extends bootstrap
		font arial_8pt_regular
		backgroundcolor white alternate lightblue
		padding-left 2
		padding-right 2
		media big {
			font arial_12pt_regular
		}
	}
		
	/** If a currency has to be rendered */
	style ^currency {
		extends defaultrow 
		formatter money_euro
	}
		
	/** If a date with weekday has to be rendered */
	style ^date {
		extends defaultrow
		formatter shortdate
	}
		
	/** A pure integer value */
	style integer {
		extends defaultrow
		formatter integer
	}

	/** 1. footer grouping level */
	style grouping_1_foot {
		extends bootstrap
		font arial_10pt_regular
		backgroundcolor grau_235
		border-top solid 1 schwarz
		border-bottom solid 1 schwarz
		media big {
			font arial_12pt_regular
		}
		media small {
			font arial_8pt_regular
		}
	}
		
	/** 2. and more footer grouping levels */
	style grouping_2_foot {
		extends bootstrap
		font arial_10pt_regular
		backgroundcolor grey_250
		border-top solid 1 grey_136
		border-bottom solid 1 grey_136
		media big {
			font arial_12pt_regular
		}
		media small {
			font arial_8pt_regular
		}
	}

	/** Table bottom */
	style table_bottom {
		extends bootstrap
		font arial_10pt_regular
		backgroundcolor white
		border-top solid 1 black
		border-bottom solid 1 black
		media big {
			font arial_12pt_regular
		}
		media small {
			font arial_8pt_regular
		}
	}
		
	/** Footer */
	style footer {
		extends bootstrap
		font arial_7pt_bold
	}
}
PageTemplate

Pagetemplete is used to define the basic format for different page layouts, it is defined as following:
Notes:

  • type is used to define the page size, e.g. a4, a3, ect.
  • orientation is used to define the page orientation, e.g. portrait or landscape.
  • topmargin, leftmargin, bottommargin and rightmargin are used to define the margin size.
  • header and footer are used to define the header and footer details as its height and if the header will be show on first or the footer on last page of the report.

Syntax:

pagetemplate <PageTemplateID>{

    type <PageSize>
    orientation <Orientation>
    topmargin <UnsignedNumber>
    leftmargin <UnsignedNumber>
    bottommargin <UnsignedNumber>
    rightmargin <UnsignedNumber>
    [header {
       [showOnFirst]
       height <UnsignedNumber>
       <Element>
    }]
    [footer {
       [showOnLast]
       height <UnsignedNumber>
       <Element>
    }]
}


PageTemplateID: The identification name for the defined page template.
PageSize: a4 | a3 | a5 | us-letter | us-legal | us-ledger | us-super-b
Orientation: portrait | landscape
UnsignedNumber: Unsigned number to define the top, left, bottom or right margin and the header or footer height.

Element: <#Title> | <#SubTitle> | <#SubSubTitle> | <#Label> | <#Text> | <#AutoText> | <#Image> | <#Grid>


Example:

pagetemplate A4_Landscape {
	type a4
	orientation landscape
	topmargin 11.5 
	leftmargin 12 
	bottommargin 13 
	rightmargin 14 
	header {
		// showOnFirst
		height 0.6 
		label "a A4 landscape page"
	}
	footer {
		showOnLast
		height 10 
		grid {
			row {
				cell {label "empty"}
			}
			row {
				cell {label "page"}
				cell {autotext page-number}
				cell {label "of"}
				cell {autotext total-page}
				cell {label "end of the page"}
			}
		}
	}
}
Report

Notes:

  • For <PageSize> are the following options available: 'a4', 'a3', 'a5', 'us-letter', 'us-legal', "us-ledger" or "us-super-b".
  • For <Orientation> are the following options available: 'portrait' or 'landscape'.
  • For <Unsigned Number> use an usable unsigned number.
  • For <Unit> are the following options available: 'mm', 'cm', 'pt', 'inch', 'pc', 'em', 'ex', 'px', '%'.
  • title, subtitle, subsubtitle, label text, autotext, image, datamarttable, datamarttableproperty and grid could be defined detailed using/ not using existed style template in this element.
  • All details of report are defined in xx.rptdesign file according to birt report syntax and semantics.
  • Generate a <reportname>+Report.java file, in which a java class named <reportname>+Report extended from java class BaseReport is defined. In this class, report and report configurations are defined.
  • Generate a <reportname>.rptdesign file, in which a birt report is defined.
  • rendering is used to define the output format of report, e.g.: HTML or PDF.
  • If the existed report should be used, it could be defined with keyword file with path+filename string.
  • template is used to define the header, footer and all other specifically detail for the report as its height and if the header will be show on first or the footer on last page of the report.


Syntax:

report <ReportID> [describedBy "<DescriptionValue>"] [toolbar <RefActionToolbar>] {

    datamart <RefDatamartDefinition>
    [selectById]
    rendering <RenderingOption>
    [externalCssURI "<ExternalCssURI>" [fromBundle "<ExternalCssURIBundle>"]]
    [defaultUnit <Unit>]
    pagetemplate <RefPageTemplate>
    media <RefMedia>
    <ReportDesign>
}


ReportID: A defined identification name for the report.
DescriptionValue: A description text used in the automated documentation via MDD (model driven documentation).
RefActionToolbar: A selected toolbar reference from the previously defined action toolbars in an ActionDSL model via its identification name.
RefDatamartDefinition: A selected datamart reference from the previously defined datamart definitions in an DatamartDSL model via its identification name.
RenderingOption: html | pdf
ExternalCssURI: The definition of the Uniform Resource Identifier (URI) of an external CSS for this specific report.
ExternalCssURIBundle: The bundle where to search the external CSS.
Unit: mm | cm | pt | inch | pc | em | ex | px | %
RefPageTemplate: A selected page template reference from the previously defined templates in the layout-data as described above via its identification name.
RefMedia: A selected media reference from the previously defined medias in the layout-data as described above via its identification name.
ReportDesign: file "<ReportDesignFile>" | <#ReportDesignTemplate>
ReportDesignFile: The name of a report design file


ReportDesignTemplate:

template {
    [describedBy "<description>"]
    [<#PageHeader>]
     <#PageDetail>
    [<#PageFooter>]
}


header {
    [showOnFirst]
    height <UnsignedNumber>
    <Element>* }

UnsignedNumber: Unsigned number to define the header height.

Element: <#Title> | <#SubTitle> | <#SubSubTitle> | <#Label> | <#Text> | <#NonTranslatableText> | <#AutoText> | <#StringBinder> | <#Image> | <#DatamartTable> | <#DatamartTableAttribute> --> (#1) | <#Grid>


PageDetail:

detail {
    <Element>* }

Element: <#Title> | <#SubTitle> | <#SubSubTitle> | <#Label> | <#Text> | <#NonTranslatableText> | <#AutoText> | <#StringBinder> | <#Image> | <#DatamartTable> | <#DatamartTableAttribute> | <#Grid>


footer {
    [showOnLast]
    height <UnsignedNumber>
    <Element>* }

UnsignedNumber: Unsigned number to define the footer height.

Element: <#Title> | <#SubTitle> | <#SubSubTitle> | <#Label> | <#Text> | <#NonTranslatableText> | <#AutoText> | <#StringBinder> | <#Image> | <#DatamartTable> | <#DatamartTableAttribute> --> (#1) | <#Grid>


Title:
  title "<TitleTextString>" [style <RefStyleID>]

TitleTextString: A text used for the title element.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


SubTitle:
  subtitle "<SubTitleTextString>" [style <RefStyleID>]

SubTitleTextString: A text used for the subtitle element.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


SubSubTitle:
  subsubtitle "<SubSubTitleTextString>" [style <RefStyleID>]

SubSubTitleTextString: A text used for the subsubtitle element.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


Label:
   label "<LabelTextString>" [style <RefStyleID>]

LabelTextString: A text used for the label element.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


Text:
   text [<TextContentType>] "<TextString>" [style <RefStyleID>]

TextContentType: auto | plain | html
TextString: A text used for the text element.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


NontranslatableText:
   nontranslatable "<NontranslatableTextString>"

NontranslatableTextString: A text used for the nontranslatable element.


AutoText:
   autotext <AutoTextType> [style <RefStyleID>]

AutoTextType: page-number | total-page | page-number-unfiltered | total-page-unfiltered | page-variable | actual-date | actual-time | report-name
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


StringBinder:
   stringBinder ( <#StringBinderValue>* ) [style <RefStyleID>]

RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


StringBinderValue:
   attribute <RefDatamartAttributeID> | translatable "<TranslatableTextString>" | <#NonTranslatableText>

RefDatamartAttributeID: A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.
TranslatableTextString: A text used for the translatable element.


Image:
   image <ImageSizeEnum> [scale <UnsignedNumber>] [height <UnsignedNumber> <Unit>] [width <UnsignedNumber> <Unit>] <ImageSourceEnum> "<FilePath>"

ImageSizeEnum: size-to-image | scale-to-item | clip.
UnsignedNumber: Unsigned number to define the corresponding scaling/height/width factor for the image.
Unit: mm | cm | pt | inch | pc | em | ex | px | %
ImageSourceEnum: url | embed.
FilePath: The content is depending of the previously defined image source. Using 'embed' it has to be a full qualified local path. Using 'url' it has to be a Uniform Resource Locator path. But only as HTTP-path (http://...).


Grid:
   grid [as <GridID>] [style <RefStyleID>] [width <UnsignedNumber>] [<#Visibility>] { <#GridRow>* }

GridID: The identification name for the defined grid.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.
UnsignedNumber: Unsigned number to define the corresponding width factor for the grid.


GridRow:
   row [as <GridRowID>] [style <RefStyleID>] [height <UnsignedNumber>] [<#Visibility>] { <#GridCell>* }

GridRowID: The identification name for the defined grid row.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.
UnsignedNumber: Unsigned number to define the corresponding height factor for the grid row.


GridCell:
   cell [as <GridCellID>] [style <RefStyleID>] [width <UnsignedNumber>] [columnspan <Integer>] [<#Visibility>] { <Element>* }

GridCellID: The identification name for the defined grid cell.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.
UnsignedNumber: Unsigned number to define the corresponding width factor for the grid cell.
Integer: Integer number to define the corresponding column span factor for the grid cell.
Element: <#Title> | <#SubTitle> | <#SubSubTitle> | <#Label> | <#Text> | <#NonTranslatableText> | <#AutoText> | <#StringBinder> | <#Image> | <#Grid> | <#DatamartTable> --> (#1)


DatamartTable:
   table [datamart <RefDatamartDefinition>] [as <TableID>] [style <RefStyleID>] [<#Visibility>]] [<#PageBreak>]] {

      [header [style <RefStyleID>] [<#PageBreak>] [{<#GridRow>*}]]
      [footer [style <RefStyleID>] [<#PageBreak>] [{<#GridRow>*}]]
      <#DatamartTableGroup>* --> (#1)
      <#DatamartTableDetail>
  }


RefDatamartDefinition: A selected datamart reference from the previously defined datamart definitions in an DatamartDSL model via its identification name.
TableID: The identification name for the defined table.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


DatamartTableGroup:
   group <GroupID> by <RefDatamartAttributeID> [<#Visibility>]] [<#PageBreak>] {

      [header [style <RefStyleID>] [<#PageBreak>] [{<#GridRow>*}]]
      [footer [style <RefStyleID>] [<#PageBreak>] [{<#GridRow>*}]]
  }

RefDatamartAttributeID: A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


Visibility:
   visibility <RefDatamartAttributeID>

RefDatamartAttributeID: A reference to one of the previously in the DatamartDSL defined boolean datamart attributes via its identification name. That boolean value decides the visibility.


PageBreak:
   pageBreak ( [before <BeforeAfterPageBreak>] [after <BeforeAfterPageBreak>] [inside <InsidePageBreak>] )

BeforeAfterPageBreak: auto | always | avoid
InsidePageBreak: auto | avoid


DatamartTableDetail:
   details [style <RefStyleID>] all | { <#DatamartTableAttribute>* }

RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.


DatamartTableAttribute:
   <TableValueElement>

      [width <UnsignedNumber>] [style <RefStyleID>]
      [style <RefStyleID>]
      [intervals [hidelabel] { <TableInterval>* }]
      [lookups [hidelabel] { <TableLookup>* }]

TableValueElement: <#TableAttribute> --> (#2) | <#TableAggregation>
UnsignedNumber: Unsigned number to define the corresponding width factor for the datamart table attribute.
RefStyleID: A reference to one of the previously defined styles in the layout-data as described above via its identification name.
TableInterval: <#TableNumberInterval> | <#TableDateDayInterval>
TableLookup: <#TableNumberLookup> | <#TableStringLookup> | <#TableDateDayLookup>.


TableAttribute:
   attribute <RefDatamartAttributeID>

RefDatamartAttributeID: A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.


TableAggregation:
   aggregate <TableBaseAggregation> [on-group <RefDatamartTableGroupID> --> (#1)] [title "<TitleString>"]

TableBaseAggregation: <#TablePureAggregation> | <#TableUnaryAggregation> --> (#1) | <#TableMultipleAggregation> --> (#1) | <#TableBinaryAggregation> --> (#1).
RefDatamartTableGroupID: A reference to one of the previously defined datamart table groups via its identification name.
TitleString: The title text as String.


TablePureAggregation:
   count | running-countpath


TableUnaryAggregation:
   sum | average | minimum | maximum | running-sum of <RefDatamartAttributeID>*

RefDatamartAttributeID: The reference to the previously in the DatamartDSL defined datamart attribute via its identification name.


TableMultipleAggregation:
   concat ( <RefDatamartAttributeID>* )

RefDatamartAttributeID: A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.


TableBinaryAggregation:
   divide ( <RefDatamartAttributeID> <RefDatamartAttributeID>)

RefDatamartAttributeID: A reference to one of the previously in the DatamartDSL defined datamart attributes via its identification name.


TableNumberInterval:
   upTo <SignedNumber> <#TableRangeElement>

SignedNumber: A signed number to define the number interval.


TableNumberLookup:
   number <SignedNumber> <#TableRangeElement>

SignedNumber: A signed number to define the number lookup.


TableStringLookup:
   string "<String>" <#TableRangeElement>

String: XXXXXXXXXXXXXXXX string lookup.


TableDateDayLookup:
   daysInPast <SignedNumber> "<#TableRangeElement>

SignedNumber: A signed number to define the days in past.


TableRangeElement:
   textcolor <RefColorID> | cellcolor <RefColorID> | icon "<IconString>" | trend <TrendIcon>

RefColorID: A reference to one of the previously defined colors via its identification name.
IconString: XXXX.
TrendIcon: rising | bad-rising | sloping | good-sloping | stagnating.


(1): Not available for a page template!

(2): Neither for a page template nor for a header or footer template F#2definition available!

Example:

report EmployeeSalaryViaFile {
	/** datamart Employee Salary */
	datamart EmployeeSalary
	/** rendering as HTML, PDF also available */
	rendering html
	pagetemplate A4_Landscape
	media small
	/** use the rpt design file */
	file "rptdesign/CCReportFile.rptdesign"
}

report EmployeeSalaryViaTable {
	/** datamart Employee Salary */
	datamart EmployeeSalary
	/** rendering as HTML, PDF also available */
	rendering html
	pagetemplate A4_Landscape
	media small
	/** use table template*/
	template {
		header {
table style bootstrap {
	detailheader style grouping_1_head
	group byEducationLevel by education_level {
		header style grouping_1_head {
			row {
				cell columnspan 7 {property education_level}
			}
		}
		footer style grouping_1_foot { row {} }
	}
	group byPositionTitle by position_title {
		header style grouping_2_head {
			row {
				cell {}
			      cell {property position_title}
			}
		}
		detailheader style grouping_2_head 
		footer style grouping_2_foot {
			row {
		       	cell columnspan 4 {label "sum"}
		            cell {aggregate count style integer}
		            cell {}
		      }
			row {
		      	cell columnspan 5 {label "average"}
		            cell {aggregate average of min_scale style ^currency}
		            cell {aggregate average of salary style ^currency}
		            cell {aggregate average of max_scale style ^currency}
			}
		      row style defaultrow { cell {} }
		}
	}
	details style defaultrow {
		property full_name
		property gender lookups hidelabel {
			string "M" icon "gender_male"
			string "F" icon "gender_female"
		}
		property marital_status lookups hidelabel {
			string "M" icon "marital_married"
			string "S" icon "marital_single"
		}
		property min_scale style ^currency
		property salary style ^currency intervals {
			up to 2000 textcolor red
			up to 2500 cellcolor orange
			up to 2500 textcolor darkblue
			up to 3000 cellcolor white
			up to 100000 cellcolor black
			up to 100000 textcolor lightblue
		}
		property max_scale style ^currency
		property hire_date style ^date
	}
}}

report PlainText {
	datamart EmployeeSalary
	rendering html
	/** an optional external Css URI */
	externalCssURI "css/html/osbp-birt.css" from bundle "My1AppReportDSLPlugin"
	pagetemplate A4_Portrait
	media big 		
	template {
		detail {
			title "it's not me"
			label "with the logo via url..."
			image size-to-image url "http://www.compex-commerce.com/export/system/modules/de.compex.internet/resources/img/logo/logo_compex-commerce.gif"
			label "and what about the logo embedded?"
			image size-to-image embed "C:/plugin/de.compex.utils/img/osbpdesign/compexlogo.png"
			subtitle "sub title #1"
			label "it's me again, but hopefully running, and modified too :/"
			subtitle "sub title #2"
			label "this label has more to say or what?.."
			text "a text will be used to display some data!"
		}
		footer {
			showOnLast
			height 20 mm
			label "there is no page number here, sorry!"
		}
	}
}

Copyright Notice

All rights are reserved by Compex Systemhaus GmbH. In particular, duplications, translations, microfilming, saving and processing in electronic systems are protected by copyright. Use of this manual is only authorized with the permission of Compex Systemhaus GmbH. Infringements of the law shall be punished in accordance with civil and penal laws. We have taken utmost care in putting together texts and images. Nevertheless, the possibility of errors cannot be completely ruled out. The Figures and information in this manual are only given as approximations unless expressly indicated as binding. Amendments to the manual due to amendments to the standard software remain reserved. Please note that the latest amendments to the manual can be accessed through our helpdesk at any time. The contractually agreed regulations of the licensing and maintenance of the standard software shall apply with regard to liability for any errors in the documentation. Guarantees, particularly guarantees of quality or durability can only be assumed for the manual insofar as its quality or durability are expressly stipulated as guaranteed. If you would like to make a suggestion, the Compex Team would be very pleased to hear from you.

(c) 2016-2024 Compex Systemhaus GmbH