net.sf.jasperreports.engine.design
Class JasperDesign

java.lang.Object
  extended by net.sf.jasperreports.engine.base.JRBaseReport
      extended by net.sf.jasperreports.engine.design.JasperDesign
All Implemented Interfaces:
java.io.Serializable, JRDefaultFontProvider, JRDefaultStyleProvider, JRReport

public class JasperDesign
extends JRBaseReport

JasperDesign is used for in-memory representation of a report design. Instances of this class can be easily created from an XML template and viceversa. It contains all report properties and report elements in their design time state.

The main reason for using this class is for modifying report templates at run time. Although using compiled reports is usually recommended, sometimes people need to dinamically change a report design.

Version:
$Id: JasperDesign.java 1485 2006-11-14 20:23:17 +0200 (Tue, 14 Nov 2006) teodord $
Author:
Teodor Danciu (teodord@users.sourceforge.net)
See Also:
JRXmlLoader, Serialized Form

Field Summary
 
Fields inherited from class net.sf.jasperreports.engine.base.JRBaseReport
background, bottomMargin, columnCount, columnFooter, columnHeader, columnSpacing, columnWidth, datasets, defaultFont, defaultStyle, detail, fonts, formatFactoryClass, ignorePagination, importsSet, isFloatColumnFooter, isSummaryNewPage, isTitleNewPage, language, lastPageFooter, leftMargin, mainDataset, name, orientation, pageFooter, pageHeader, pageHeight, pageWidth, printOrder, rightMargin, styles, summary, title, topMargin, whenNoDataType
 
Fields inherited from interface net.sf.jasperreports.engine.JRReport
LANGUAGE_GROOVY, LANGUAGE_JAVA, ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT, PRINT_ORDER_HORIZONTAL, PRINT_ORDER_VERTICAL, WHEN_NO_DATA_TYPE_ALL_SECTIONS_NO_DETAIL, WHEN_NO_DATA_TYPE_BLANK_PAGE, WHEN_NO_DATA_TYPE_NO_PAGES, WHEN_RESOURCE_MISSING_TYPE_EMPTY, WHEN_RESOURCE_MISSING_TYPE_ERROR, WHEN_RESOURCE_MISSING_TYPE_KEY, WHEN_RESOURCE_MISSING_TYPE_NULL
 
Constructor Summary
JasperDesign()
          Constructs a JasperDesign object and fills it with the default variables and parameters.
 
Method Summary
 void addDataset(JRDesignDataset dataset)
          Adds a sub dataset to the report.
 void addField(JRField field)
           
 void addFont(JRReportFont reportFont)
          Deprecated.  
 void addGroup(JRDesignGroup group)
          Gets a map of report groups.
 void addImport(java.lang.String value)
          Adds an import (needed if report expression require additional classes in order to compile).
 void addParameter(JRParameter parameter)
          Adds a report parameter.
 void addSortField(JRSortField sortField)
           
 void addStyle(JRStyle style)
          Adds a report style, that can be referenced by report elements.
 void addVariable(JRDesignVariable variable)
           
protected  java.util.List collectCrosstabs()
           
protected  void collectCrosstabs(JRBand band)
           
protected  void collectCrosstabs(JRElement[] elements)
           
protected  java.util.List getCrosstabs()
           
 java.util.Map getDatasetMap()
          Returns the sub datasets of the report indexed by name.
 JRDataset[] getDatasets()
          Returns the datasets of this report.
 java.util.List getDatasetsList()
          Returns the list of report sub datasets.
 java.util.Collection getExpressions()
          Returns a collection of all report expressions.
 java.util.List getFieldsList()
          Gets a list of report fields.
 java.util.Map getFieldsMap()
          Gets a map of report fields.
 JRExpression getFilterExpression()
          Returns the main dataset filter expression.
 JRReportFont[] getFonts()
          Deprecated.  
 java.util.List getFontsList()
          Deprecated.  
 java.util.Map getFontsMap()
          Deprecated.  
 java.util.List getGroupsList()
          Gets an array of report groups.
 java.util.Map getGroupsMap()
          Gets a list of report groups.
 JRDesignDataset getMainDesignDataset()
          Returns the main report dataset.
 java.util.List getParametersList()
          Gets a list of report parameters (including built-in ones).
 java.util.Map getParametersMap()
          Gets a map of report parameters (including built-in ones).
 java.util.List getSortFieldsList()
          Gets a list of sort report fields.
 JRStyle[] getStyles()
          Gets an array of report level styles.
 java.util.List getStylesList()
          Gets a list of report level styles.
 java.util.Map getStylesMap()
           
 java.util.List getVariablesList()
          Gets a list of report variables.
 java.util.Map getVariablesMap()
          Gets a map of report variables.
 void preprocess()
          Performs preliminary processing and calculations prior to compilation.
 JRDataset removeDataset(JRDataset dataset)
          Removes a sub dataset from the report.
 JRDataset removeDataset(java.lang.String datasetName)
          Removes a sub dataset from the report.
 JRField removeField(JRField field)
           
 JRField removeField(java.lang.String fieldName)
           
 JRReportFont removeFont(JRReportFont reportFont)
          Deprecated.  
 JRReportFont removeFont(java.lang.String propName)
          Deprecated.  
 JRGroup removeGroup(JRGroup group)
           
 JRGroup removeGroup(java.lang.String groupName)
          Adds a new group to the report design.
 void removeImport(java.lang.String value)
          Removes an import.
 JRParameter removeParameter(JRParameter parameter)
          Removes a report parameter.
 JRParameter removeParameter(java.lang.String parameterName)
          Removes a report parameter, based on its name.
 JRSortField removeSortField(JRSortField sortField)
           
 JRSortField removeSortField(java.lang.String fieldName)
           
 JRStyle removeStyle(JRStyle style)
          Removes a report style from the list.
 JRStyle removeStyle(java.lang.String styleName)
          Removes a report style from the list, based on the style name.
 JRVariable removeVariable(JRVariable variable)
           
 JRVariable removeVariable(java.lang.String variableName)
           
 void setBackground(JRBand background)
          Sets the background band.
 void setBottomMargin(int bottomMargin)
          Sets the top margin.
 void setColumnCount(int columnCount)
          Specifies the number of report columns.
 void setColumnFooter(JRBand columnFooter)
          Sets the column footer band.
 void setColumnHeader(JRBand columnHeader)
          Sets the column header band.
 void setColumnSpacing(int columnSpacing)
          Sets the spacing between columns.
 void setColumnWidth(int columnWidth)
          Sets the column width.
 void setDefaultFont(JRReportFont font)
          Deprecated.  
 void setDefaultStyle(JRStyle style)
           
 void setDetail(JRBand detail)
          Sets the detail band.
 void setFilterExpression(JRExpression expression)
          Sets the main dataset filter expression.
 void setFloatColumnFooter(boolean isFloatColumnFooter)
          Flag used to specify if the column footer section should be printed at the bottom of the column or if it should immediately follow the last detail or group footer printed on the current column.
 void setFormatFactoryClass(java.lang.String formatFactoryClass)
           
 void setIgnorePagination(boolean ignorePagination)
          Sets the value of the ignore pagination flag.
 void setLanguage(java.lang.String language)
          Specifies the language used for report expressions (Java or Groovy).
 void setLastPageFooter(JRBand lastPageFooter)
          Sets the last page footer band.
 void setLeftMargin(int leftMargin)
          Sets the left margin.
 void setMainDataset(JRDesignDataset dataset)
          Sets the main report dataset.
 void setName(java.lang.String name)
          Sets the report name.
 void setOrientation(byte orientation)
          Sets the report orientation.
 void setPageFooter(JRBand pageFooter)
          Sets the page footer band.
 void setPageHeader(JRBand pageHeader)
          Sets the page header band.
 void setPageHeight(int pageHeight)
          Sets page height (including margins etc.).
 void setPageWidth(int pageWidth)
          Sets page width (including margins etc.).
 void setPrintOrder(byte printOrder)
          Sets the print order.
 void setQuery(JRDesignQuery query)
          Specifies the report query.
 void setResourceBundle(java.lang.String resourceBundle)
          Sets the base name of the report associated resource bundle.
 void setRightMargin(int rightMargin)
          Sets the right margin.
 void setScriptletClass(java.lang.String scriptletClass)
           
 void setSummary(JRBand summary)
          Sets the summary band.
 void setSummaryNewPage(boolean isSummaryNewPage)
          Flag used to specify if the summary section should be printed on a separate last page.
 void setTitle(JRBand title)
          Sets the title band.
 void setTitleNewPage(boolean isTitleNewPage)
          Flag used to specify if the title section should be printed on a separate initial page.
 void setTopMargin(int topMargin)
          Sets the top margin.
 
Methods inherited from class net.sf.jasperreports.engine.base.JRBaseReport
getBackground, getBottomMargin, getColumnCount, getColumnFooter, getColumnHeader, getColumnSpacing, getColumnWidth, getDefaultFont, getDefaultStyle, getDetail, getFields, getFormatFactoryClass, getGroups, getImports, getLanguage, getLastPageFooter, getLeftMargin, getMainDataset, getName, getOrientation, getPageFooter, getPageHeader, getPageHeight, getPageWidth, getParameters, getPrintOrder, getPropertiesMap, getProperty, getPropertyNames, getQuery, getResourceBundle, getRightMargin, getScriptletClass, getSortFields, getSummary, getTitle, getTopMargin, getVariables, getWhenNoDataType, getWhenResourceMissingType, isFloatColumnFooter, isIgnorePagination, isSummaryNewPage, isTitleNewPage, removeProperty, setProperty, setWhenNoDataType, setWhenResourceMissingType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JasperDesign

public JasperDesign()
Constructs a JasperDesign object and fills it with the default variables and parameters.

Method Detail

setName

public void setName(java.lang.String name)
Sets the report name. It is strongly recommended that the report name matches the .jrxml file name, since report compilers usually use this name for the compiled .jasper file.


setLanguage

public void setLanguage(java.lang.String language)
Specifies the language used for report expressions (Java or Groovy). The default is Java.


setColumnCount

public void setColumnCount(int columnCount)
Specifies the number of report columns.


setPrintOrder

public void setPrintOrder(byte printOrder)
Sets the print order. In case of multiple column reports, the engine can perform vertical or horizontal fill.

See Also:
PRINT_ORDER_VERTICAL,, PRINT_ORDER_HORIZONTAL

setPageWidth

public void setPageWidth(int pageWidth)
Sets page width (including margins etc.). Default is 595.


setPageHeight

public void setPageHeight(int pageHeight)
Sets page height (including margins etc.). Default is 842.


setOrientation

public void setOrientation(byte orientation)
Sets the report orientation.

See Also:
ORIENTATION_PORTRAIT,, ORIENTATION_LANDSCAPE

setColumnWidth

public void setColumnWidth(int columnWidth)
Sets the column width.


setColumnSpacing

public void setColumnSpacing(int columnSpacing)
Sets the spacing between columns.


setLeftMargin

public void setLeftMargin(int leftMargin)
Sets the left margin. The working space is calculated by subtracting the margins from the page width.


setRightMargin

public void setRightMargin(int rightMargin)
Sets the right margin. The working space is calculated by subtracting the margins from the page width.


setTopMargin

public void setTopMargin(int topMargin)
Sets the top margin. The working space is calculated by subtracting the margins from the page height.


setBottomMargin

public void setBottomMargin(int bottomMargin)
Sets the top margin. The working space is calculated by subtracting the margins from the page height.


setBackground

public void setBackground(JRBand background)
Sets the background band.


setTitle

public void setTitle(JRBand title)
Sets the title band.


setTitleNewPage

public void setTitleNewPage(boolean isTitleNewPage)
Flag used to specify if the title section should be printed on a separate initial page.

Parameters:
isTitleNewPage - true if the title section should be displayed on a separate initial page, false if it will be displayed on the first page along with other sections.

setSummary

public void setSummary(JRBand summary)
Sets the summary band.


setSummaryNewPage

public void setSummaryNewPage(boolean isSummaryNewPage)
Flag used to specify if the summary section should be printed on a separate last page.

Parameters:
isSummaryNewPage - true if the summary section should be displayed on a separate last page, false if it will be displayed on the last page along with other sections, if there is enough space.

setFloatColumnFooter

public void setFloatColumnFooter(boolean isFloatColumnFooter)
Flag used to specify if the column footer section should be printed at the bottom of the column or if it should immediately follow the last detail or group footer printed on the current column.


setPageHeader

public void setPageHeader(JRBand pageHeader)
Sets the page header band.


setPageFooter

public void setPageFooter(JRBand pageFooter)
Sets the page footer band.


setLastPageFooter

public void setLastPageFooter(JRBand lastPageFooter)
Sets the last page footer band.


setColumnHeader

public void setColumnHeader(JRBand columnHeader)
Sets the column header band.


setColumnFooter

public void setColumnFooter(JRBand columnFooter)
Sets the column footer band.


setDetail

public void setDetail(JRBand detail)
Sets the detail band.


setScriptletClass

public void setScriptletClass(java.lang.String scriptletClass)

setFormatFactoryClass

public void setFormatFactoryClass(java.lang.String formatFactoryClass)

setResourceBundle

public void setResourceBundle(java.lang.String resourceBundle)
Sets the base name of the report associated resource bundle.


addImport

public void addImport(java.lang.String value)
Adds an import (needed if report expression require additional classes in order to compile).


removeImport

public void removeImport(java.lang.String value)
Removes an import.


setDefaultFont

public void setDefaultFont(JRReportFont font)
Deprecated. 


getFonts

public JRReportFont[] getFonts()
Deprecated. 

Gets an array of report level fonts. These fonts can be referenced by text elements.

Specified by:
getFonts in interface JRReport
Overrides:
getFonts in class JRBaseReport

getFontsList

public java.util.List getFontsList()
Deprecated. 

Gets a list of report level fonts. These fonts can be referenced by text elements.


getFontsMap

public java.util.Map getFontsMap()
Deprecated. 


addFont

public void addFont(JRReportFont reportFont)
             throws JRException
Deprecated. 

Adds a report font, that can be referenced by text elements.

Throws:
JRException

removeFont

public JRReportFont removeFont(java.lang.String propName)
Deprecated. 

Removes a report font from the list, based on the font name.


removeFont

public JRReportFont removeFont(JRReportFont reportFont)
Deprecated. 

Removes a report font from the list.


setDefaultStyle

public void setDefaultStyle(JRStyle style)

getStyles

public JRStyle[] getStyles()
Gets an array of report level styles. These styles can be referenced by report elements.

Specified by:
getStyles in interface JRReport
Overrides:
getStyles in class JRBaseReport

getStylesList

public java.util.List getStylesList()
Gets a list of report level styles. These styles can be referenced by report elements.


getStylesMap

public java.util.Map getStylesMap()

addStyle

public void addStyle(JRStyle style)
              throws JRException
Adds a report style, that can be referenced by report elements.

Throws:
JRException

removeStyle

public JRStyle removeStyle(java.lang.String styleName)
Removes a report style from the list, based on the style name.


removeStyle

public JRStyle removeStyle(JRStyle style)
Removes a report style from the list.


getParametersList

public java.util.List getParametersList()
Gets a list of report parameters (including built-in ones).


getParametersMap

public java.util.Map getParametersMap()
Gets a map of report parameters (including built-in ones).


addParameter

public void addParameter(JRParameter parameter)
                  throws JRException
Adds a report parameter.

Throws:
JRException

removeParameter

public JRParameter removeParameter(java.lang.String parameterName)
Removes a report parameter, based on its name.


removeParameter

public JRParameter removeParameter(JRParameter parameter)
Removes a report parameter.


setQuery

public void setQuery(JRDesignQuery query)
Specifies the report query. This is used only when datasource type is JDBC (a java.sql.Connection).


getFieldsList

public java.util.List getFieldsList()
Gets a list of report fields.


getFieldsMap

public java.util.Map getFieldsMap()
Gets a map of report fields.


addField

public void addField(JRField field)
              throws JRException
Throws:
JRException

removeField

public JRField removeField(java.lang.String fieldName)

removeField

public JRField removeField(JRField field)

getSortFieldsList

public java.util.List getSortFieldsList()
Gets a list of sort report fields.


addSortField

public void addSortField(JRSortField sortField)
                  throws JRException
Throws:
JRException

removeSortField

public JRSortField removeSortField(java.lang.String fieldName)

removeSortField

public JRSortField removeSortField(JRSortField sortField)

getVariablesList

public java.util.List getVariablesList()
Gets a list of report variables.


getVariablesMap

public java.util.Map getVariablesMap()
Gets a map of report variables.


addVariable

public void addVariable(JRDesignVariable variable)
                 throws JRException
Throws:
JRException

removeVariable

public JRVariable removeVariable(java.lang.String variableName)

removeVariable

public JRVariable removeVariable(JRVariable variable)

getGroupsList

public java.util.List getGroupsList()
Gets an array of report groups.


getGroupsMap

public java.util.Map getGroupsMap()
Gets a list of report groups.


addGroup

public void addGroup(JRDesignGroup group)
              throws JRException
Gets a map of report groups.

Throws:
JRException

removeGroup

public JRGroup removeGroup(java.lang.String groupName)
Adds a new group to the report design. Groups are nested.


removeGroup

public JRGroup removeGroup(JRGroup group)

getExpressions

public java.util.Collection getExpressions()
Returns a collection of all report expressions.


getDatasets

public JRDataset[] getDatasets()
Description copied from interface: JRReport
Returns the datasets of this report.

Specified by:
getDatasets in interface JRReport
Overrides:
getDatasets in class JRBaseReport
Returns:
the datasets of this report

getDatasetsList

public java.util.List getDatasetsList()
Returns the list of report sub datasets.

Returns:
list of JRDesignDataset objects

getDatasetMap

public java.util.Map getDatasetMap()
Returns the sub datasets of the report indexed by name.

Returns:
the sub datasets of the report indexed by name

addDataset

public void addDataset(JRDesignDataset dataset)
                throws JRException
Adds a sub dataset to the report.

Parameters:
dataset - the dataset
Throws:
JRException

removeDataset

public JRDataset removeDataset(java.lang.String datasetName)
Removes a sub dataset from the report.

Parameters:
datasetName - the dataset name
Returns:
the removed dataset

removeDataset

public JRDataset removeDataset(JRDataset dataset)
Removes a sub dataset from the report.

Parameters:
dataset - the dataset to be removed
Returns:
the dataset

getMainDesignDataset

public JRDesignDataset getMainDesignDataset()
Returns the main report dataset.

Returns:
the main report dataset

setMainDataset

public void setMainDataset(JRDesignDataset dataset)
Sets the main report dataset.

This method can be used as an alternative to setting the parameters, fields, etc directly on the report.

Parameters:
dataset - the dataset

preprocess

public void preprocess()
Performs preliminary processing and calculations prior to compilation.


getCrosstabs

protected java.util.List getCrosstabs()

collectCrosstabs

protected java.util.List collectCrosstabs()

collectCrosstabs

protected void collectCrosstabs(JRBand band)

collectCrosstabs

protected void collectCrosstabs(JRElement[] elements)

setIgnorePagination

public void setIgnorePagination(boolean ignorePagination)
Sets the value of the ignore pagination flag.

Parameters:
ignorePagination - whether to ignore pagination when generating the report
See Also:
JRReport.isIgnorePagination()

getFilterExpression

public JRExpression getFilterExpression()
Returns the main dataset filter expression.

Returns:
the main dataset filter expression
See Also:
JRDataset.getFilterExpression()

setFilterExpression

public void setFilterExpression(JRExpression expression)
Sets the main dataset filter expression.

Parameters:
expression - the boolean expression to use as main dataset filter expression
See Also:
JRDesignDataset.setFilterExpression(JRExpression), JRDataset.getFilterExpression()


© 2001-2006 JasperSoft Corporation www.jaspersoft.com