Class 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 Detail

      • PDF

        public static java.lang.String PDF
      • EXCEL

        public static java.lang.String EXCEL
      • RTF

        public static java.lang.String RTF
      • ODT

        public static java.lang.String ODT
    • Constructor Detail

      • JasperMultipleReportBaseAction

        public JasperMultipleReportBaseAction()
    • Method Detail

      • getDataSources

        protected abstract net.sf.jasperreports.engine.JRDataSource[] getDataSources()
                                                                              throws java.lang.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:
        java.lang.Exception
      • getJRXMLs

        protected abstract java.lang.String[] getJRXMLs()
                                                 throws java.lang.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:
        java.lang.Exception
      • getParameters

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

        protected java.util.Map getParameters​(int i)
                                       throws java.lang.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:
        java.lang.Exception
        Since:
        4.5
      • getFormat

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

        Throws:
        java.lang.Exception
      • setFormat

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

        Throws:
        java.lang.Exception
      • execute

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

        public java.lang.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​(java.lang.String modelName)
        Specified by:
        setModel in interface IModelAction
      • setParametersList

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

        Allows setting the parameter list outside this code.

        Since:
        4.5
      • getParametersList

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

        public void addParameters​(java.util.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,
                                  java.util.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