Class JasperMultipleReportBaseAction

java.lang.Object
org.openxava.actions.BaseAction
org.openxava.actions.ViewBaseAction
org.openxava.actions.JasperMultipleReportBaseAction
All Implemented Interfaces:
IAction, IChangeModeAction, IModelAction, IModuleContextAction, IMultipleForwardAction, IRequestAction
Direct Known Subclasses:
JasperConcatReportBaseAction

public abstract class JasperMultipleReportBaseAction extends ViewBaseAction implements IMultipleForwardAction, IModelAction
To generate several custom Jasper Reports with the same action.

You only need to overwrite the abstract methods.
To send parameters to the reports you have 3 options.

  1. If all the repors use the same parameters just overwrite getParameters().
  2. If each report has different parameter overwrite getParameters(int i), or well
  3. overwrite execute() and before calling to super.execute() call to addParameters() method.

Option 1 for parameters

public Map getParameters() throws Exception { Map parameters = new HashMap(); parameters.put("param1", value1); parameters.put("param2", value2); return parameters; }

Option 2 for parameters

protected Map getParameters(int index) throws Exception { Map parameters = new HashMap(); switch (index) { case 0: parameters.put("param1", value1); parameters.put("param2", value2); return parameters; case 1: parameters.put("param3", value3); parameters.put("param4", value4); return parameters; } return null; }

Option 3 for parameters

public void execute() throws Exception { Map parameters1 = new HashMap(); parameters1.put("param1", value1); parameters1.put("param2", value2); addParameters(parameters1); Map parameters2 = new HashMap(); parameters1.put("param3", value3); parameters1.put("param4", value4); addParameters(parameters2); super.execute(); }
Author:
Oscar Caro, Franklin Alier : Added a parameters list to allow separate parameters per report
  • Field Details

    • PDF

      public static String PDF
    • EXCEL

      public static String EXCEL
    • RTF

      public static String RTF
    • ODT

      public static String ODT
  • Constructor Details

    • JasperMultipleReportBaseAction

      public JasperMultipleReportBaseAction()
  • Method Details

    • getDataSources

      protected abstract net.sf.jasperreports.engine.JRDataSource[] getDataSources() throws Exception
      Data to print.

      If return null then a JDBC connection is sent to JasperReport, this is for the case of a SQL inside JasperReport design.

      Throws:
      Exception
    • getJRXMLs

      protected abstract String[] getJRXMLs() throws Exception
      The name of the XML with the JasperReports design.

      If it is a relative path (as reports/myreport.jrxml has to be in classpath. If it is a absolute path (as /home/java/reports/myreport.xml or C:\\JAVA\\REPORTS\MYREPORT.JRXML then it look at the file system.

      Throws:
      Exception
    • getParameters

      protected Map getParameters() throws Exception
      Parameters to send to report.
      Throws:
      Exception
    • getParameters

      protected Map getParameters(int i) throws Exception
      Retrieve parameters for the specified report index.

      Maintains backward compatibility by calling getParameters() if parameters list is empty or not enough parameter sets defined.

      Throws:
      Exception
      Since:
      4.5
    • getFormat

      public String getFormat() throws Exception
      Output report format, it can be 'pdf' or 'excel'.

      Throws:
      Exception
    • setFormat

      public void setFormat(String format) throws Exception
      Output report format, it can be 'pdf', 'excel' or 'rtf'.

      Throws:
      Exception
    • execute

      public void execute() throws Exception
      Specified by:
      execute in interface IAction
      Throws:
      Exception
    • getForwardURIs

      public String[] getForwardURIs()
      Description copied from interface: IMultipleForwardAction
      The URIs to go.

      If it starts with "http://" or "http://" the action will forward to the absolute URL in internet, if it starts with "javascript:" the corresponding code will executed by the browser, otherwise it will forward to a resource inside this application.

      Specified by:
      getForwardURIs in interface IMultipleForwardAction
    • inNewWindow

      public boolean inNewWindow()
    • setModel

      public void setModel(String modelName)
      Specified by:
      setModel in interface IModelAction
    • setParametersList

      public void setParametersList(List<Map> parametersList)
      Set parameter list.

      Allows setting the parameter list outside this code.

      Since:
      4.5
    • getParametersList

      public List<Map> getParametersList()
      Retrieve the current parameter list.
      Since:
      4.5
    • addParameters

      public void addParameters(Map parameters)
      Add a parameter set to the current list.

      Appends the parameter set to the parameter list.

      Since:
      4.5
    • addParameters

      public void addParameters(int index, Map parameters)
      Add a parameter set at a specified index.

      Inserts the parameter set into the parameter list at the specified index.

      Parameters:
      index - - The index to insert into.
      parameter - - The parameter set to insert.
      Since:
      4.5