Class JasperConcatReportBaseAction

  • All Implemented Interfaces:
    IAction, IChangeModeAction, IModelAction, IModuleContextAction, IMultipleForwardAction, IRequestAction

    public abstract class JasperConcatReportBaseAction
    extends JasperMultipleReportBaseAction
    To generate a custom report concatenating simple reports.

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

    1. If all the reports 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

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

    Option 2 for parameters

     
      @Override
             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

     
      @Override 
             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:
    Jeromy Altuna
    • Constructor Detail

      • JasperConcatReportBaseAction

        public JasperConcatReportBaseAction()
    • Method Detail

      • getDataSources

        protected abstract net.sf.jasperreports.engine.JRDataSource[] getDataSources()
                                                                              throws java.lang.Exception
        Description copied from class: JasperMultipleReportBaseAction
        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.

        Specified by:
        getDataSources in class JasperMultipleReportBaseAction
        Throws:
        java.lang.Exception
      • getJRXMLs

        protected abstract java.lang.String[] getJRXMLs()
                                                 throws java.lang.Exception
        XML list JasperReports designed that will be concatenated into a single report
        Specified by:
        getJRXMLs in class JasperMultipleReportBaseAction
        Returns:
        String[] jrxml list
        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
        Overrides:
        getForwardURIs in class JasperMultipleReportBaseAction
      • getFilename

        public java.lang.String getFilename()
      • setFilename

        public void setFilename​(java.lang.String filename)