← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 4117: Made constants available for jasper/ireport as report parameters. Included all constants as param...

 

------------------------------------------------------------
revno: 4117
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2011-07-12 14:15:23 +0200
message:
  Made constants available for jasper/ireport as report parameters. Included all constants as parameters in the report table export to jrxml template
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/constant/ConstantService.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/constant/DefaultConstantService.java
  dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java
  dhis-2/dhis-support/dhis-support-system/src/main/resources/grid.vm
  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJasperResult.java
  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJrxmlResult.java
  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/util/JRExportUtils.java
  dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/RenderReportAction.java
  dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/ExportTableAction.java
  dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/constant/ConstantService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/constant/ConstantService.java	2011-06-29 15:25:19 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/constant/ConstantService.java	2011-07-12 12:15:23 +0000
@@ -56,6 +56,8 @@
     
     Map<Integer, Double> getConstantMap();
     
+    Map<String, Double> getConstantParameterMap();
+    
     // -------------------------------------------------------------------------
     // Constant expanding
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/constant/DefaultConstantService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/constant/DefaultConstantService.java	2011-06-29 15:25:19 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/constant/DefaultConstantService.java	2011-07-12 12:15:23 +0000
@@ -97,6 +97,18 @@
         
         return map;
     }
+    
+    public Map<String, Double> getConstantParameterMap()
+    {
+        Map<String, Double> map = new HashMap<String, Double>();
+        
+        for ( Constant constant : getAllConstants() )
+        {
+            map.put( constant.getName(), constant.getValue() );
+        }
+        
+        return map;
+    }
 
     // -------------------------------------------------------------------------
     // Constant expanding

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java	2011-06-26 10:15:36 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/grid/GridUtils.java	2011-07-12 12:15:23 +0000
@@ -45,6 +45,7 @@
 import java.io.Writer;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import jxl.Workbook;
 import jxl.write.Label;
@@ -96,6 +97,7 @@
     
     private static final String KEY_GRID = "grid";
     private static final String KEY_ENCODER = "encoder";
+    private static final String KEY_PARAMS = "params";
     private static final String TEMPLATE = "grid.vm";
     private static final String RESOURCE_LOADER_NAME = "class";
 
@@ -281,18 +283,18 @@
     /**
      * Writes a Jasper Reports representation of the given Grid to the given OutputStream.
      */
-    public static void toJasperReport( Grid grid, OutputStream out )
+    public static void toJasperReport( Grid grid, Map<?, ?> params, OutputStream out )
         throws Exception
     {
         final StringWriter writer = new StringWriter();
         
-        render( grid, writer );
+        render( grid, params, writer );
         
         String report = writer.toString();
 
         JasperReport jasperReport = JasperCompileManager.compileReport( StreamUtils.getInputStream( report ) );
         
-        JasperPrint print = JasperFillManager.fillReport( jasperReport, null, grid );
+        JasperPrint print = JasperFillManager.fillReport( jasperReport, params, grid );
         
         JasperExportManager.exportReportToPdfStream( print, out );
     }
@@ -300,16 +302,20 @@
     /**
      * Writes a JRXML (Jasper Reports XML) representation of the given Grid to the given Writer.
      */
-    public static void toJrxml( Grid grid, Writer writer )
+    public static void toJrxml( Grid grid, Map<?, ?> params, Writer writer )
         throws Exception
     {
-        render( grid, writer );
+        render( grid, params, writer );
     }
-    
+
+    // -------------------------------------------------------------------------
+    // Supportive methods
+    // -------------------------------------------------------------------------
+
     /**
      * Render using Velocity.
      */
-    private static void render( Grid grid, Writer writer )
+    private static void render( Grid grid, Map<?, ?> params, Writer writer )
         throws Exception
     {
         final VelocityEngine velocity = new VelocityEngine();
@@ -322,6 +328,7 @@
         
         context.put( KEY_GRID, grid );
         context.put( KEY_ENCODER, ENCODER );
+        context.put( KEY_PARAMS, params );
         
         velocity.getTemplate( TEMPLATE ).merge( context, writer );
     }

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/resources/grid.vm'
--- dhis-2/dhis-support/dhis-support-system/src/main/resources/grid.vm	2011-06-26 10:15:36 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/resources/grid.vm	2011-07-12 12:15:23 +0000
@@ -1,6 +1,9 @@
 #set( $dollar = '$' ) 
 <?xml version="1.0" encoding="UTF-8"?>
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"; name="dpt" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
+	#foreach ( $key in $params.keySet() )
+	<parameter name="${encoder.xmlEncode( ${key} )}" class="java.lang.Double"/>
+	#end
 	#foreach( $header in $grid.getHeaders() )
 	<field name="${encoder.xmlEncode( ${header.column} )}" class="${header.type}"/>
 	#end

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJasperResult.java'
--- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJasperResult.java	2011-05-05 21:15:45 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJasperResult.java	2011-07-12 12:15:23 +0000
@@ -27,6 +27,8 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import java.util.Map;
+
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang.StringUtils;
@@ -62,6 +64,13 @@
     {
         this.grid = grid;
     }
+    
+    private Map<?, ?> params;
+
+    public void setParams( Map<?, ?> params )
+    {
+        this.params = params;
+    }
 
     // -------------------------------------------------------------------------
     // Result implementation
@@ -77,8 +86,12 @@
 
         Grid _grid = (Grid) invocation.getStack().findValue( "grid" );
         
-        grid = _grid != null ? _grid : grid; 
+        grid = _grid != null ? _grid : grid;
+        
+        Map<?, ?> _params = (Map<?, ?>) invocation.getStack().findValue( "params" );
 
+        params = _params != null ? _params : params;
+        
         // ---------------------------------------------------------------------
         // Configure response
         // ---------------------------------------------------------------------
@@ -93,6 +106,6 @@
         // Write jrxml based on Velocity template
         // ---------------------------------------------------------------------
 
-        GridUtils.toJasperReport( grid, response.getOutputStream() );
+        GridUtils.toJasperReport( grid, params, response.getOutputStream() );
     }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJrxmlResult.java'
--- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJrxmlResult.java	2011-05-05 21:15:45 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/result/GridJrxmlResult.java	2011-07-12 12:15:23 +0000
@@ -1,6 +1,7 @@
 package org.hisp.dhis.result;
 
 import java.io.Writer;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -65,6 +66,13 @@
         this.grid = grid;
     }
 
+    private Map<?, ?> params;
+
+    public void setParams( Map<?, ?> params )
+    {
+        this.params = params;
+    }
+
     // -------------------------------------------------------------------------
     // Result implementation
     // -------------------------------------------------------------------------
@@ -80,6 +88,10 @@
         Grid _grid = (Grid) invocation.getStack().findValue( "grid" );
         
         grid = _grid != null ? _grid : grid; 
+
+        Map<?, ?> _params = (Map<?, ?>) invocation.getStack().findValue( "params" );
+
+        params = _params != null ? _params : params;
         
         // ---------------------------------------------------------------------
         // Configure response
@@ -97,6 +109,6 @@
         // Write jrxml based on Velocity template
         // ---------------------------------------------------------------------
 
-        GridUtils.toJrxml( grid, writer );
+        GridUtils.toJrxml( grid, params, writer );
     }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/util/JRExportUtils.java'
--- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/util/JRExportUtils.java	2011-05-05 21:15:45 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/util/JRExportUtils.java	2011-07-12 12:15:23 +0000
@@ -49,11 +49,7 @@
     public static final String TYPE_XLS = "xls";
     public static final String TYPE_PDF = "pdf";
     
-    private static final Map<String, JRExportProvider> exporters = new HashMap<String, JRExportProvider>() {
-        /**
-         * Determines if a de-serialized file is compatible with this class.
-         */
-        private static final long serialVersionUID = 6662444011214507874L;
+    private static final Map<String, JRExportProvider> exporters = new HashMap<String, JRExportProvider>() {    
     {
         put( TYPE_XLS, new JRXlsExportProvider() );
         put( TYPE_PDF, new JRPdfExportProvider() );

=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/RenderReportAction.java'
--- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/RenderReportAction.java	2011-03-08 01:55:01 +0000
+++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/reportviewer/action/RenderReportAction.java	2011-07-12 12:15:23 +0000
@@ -31,6 +31,7 @@
 
 import java.io.OutputStream;
 import java.sql.Connection;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -41,6 +42,7 @@
 
 import org.amplecode.quick.StatementManager;
 import org.hisp.dhis.common.Grid;
+import org.hisp.dhis.constant.ConstantService;
 import org.hisp.dhis.i18n.I18nFormat;
 import org.hisp.dhis.report.Report;
 import org.hisp.dhis.report.ReportService;
@@ -79,6 +81,13 @@
         this.reportTableService = reportTableService;
     }
     
+    private ConstantService constantService;
+    
+    public void setConstantService( ConstantService constantService )
+    {
+        this.constantService = constantService;
+    }
+
     private StatementManager statementManager;
 
     public void setStatementManager( StatementManager statementManager )
@@ -137,6 +146,8 @@
         
         Report report = reportService.getReport( id );
         
+        Map<String, Double> constantMap = constantService.getConstantParameterMap();
+        
         JasperReport jasperReport = JasperCompileManager.compileReport( StreamUtils.getInputStream( report.getDesignContent() ) );
         
         JasperPrint print = null;
@@ -147,7 +158,7 @@
             
             Grid grid = reportTableService.getReportTableGrid( reportTable.getId(), format, reportingPeriod, organisationUnitId );
             
-            print = JasperFillManager.fillReport( jasperReport, null, grid );
+            print = JasperFillManager.fillReport( jasperReport, constantMap, grid );
         }
         else // Assume SQL report and provide JDBC connection
         {
@@ -155,7 +166,7 @@
             
             try
             {
-                print = JasperFillManager.fillReport( jasperReport, null, connection );
+                print = JasperFillManager.fillReport( jasperReport, constantMap, connection );
             }
             finally
             {        

=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/ExportTableAction.java'
--- dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/ExportTableAction.java	2011-01-17 16:17:06 +0000
+++ dhis-2/dhis-web/dhis-web-reporting/src/main/java/org/hisp/dhis/reporting/tablecreator/action/ExportTableAction.java	2011-07-12 12:15:23 +0000
@@ -27,7 +27,10 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import java.util.Map;
+
 import org.hisp.dhis.common.Grid;
+import org.hisp.dhis.constant.ConstantService;
 import org.hisp.dhis.i18n.I18nFormat;
 import org.hisp.dhis.reporttable.ReportTableService;
 import org.hisp.dhis.util.SessionUtils;
@@ -53,6 +56,13 @@
         this.reportTableService = reportTableService;
     }
     
+    private ConstantService constantService;
+    
+    public void setConstantService( ConstantService constantService )
+    {
+        this.constantService = constantService;
+    }
+
     private I18nFormat format;
 
     public void setFormat( I18nFormat format )
@@ -110,6 +120,13 @@
         return grid;
     }
 
+    private Map<?, ?> params;
+
+    public Map<?, ?> getParams()
+    {
+        return params;
+    }
+
     // -------------------------------------------------------------------------
     // Result implementation
     // -------------------------------------------------------------------------
@@ -126,6 +143,8 @@
         {
             grid = reportTableService.getReportTableGrid( id, format, reportingPeriod, organisationUnitId );            
         }
+
+        params = constantService.getConstantParameterMap();
         
         SessionUtils.setSessionVar( SessionUtils.KEY_REPORT_TABLE_GRID, grid );
         

=== modified file 'dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml	2011-06-07 16:12:23 +0000
+++ dhis-2/dhis-web/dhis-web-reporting/src/main/resources/META-INF/dhis/beans.xml	2011-07-12 12:15:23 +0000
@@ -165,6 +165,7 @@
   <bean id="org.hisp.dhis.reporting.tablecreator.action.ExportTableAction" class="org.hisp.dhis.reporting.tablecreator.action.ExportTableAction"
     scope="prototype">
     <property name="reportTableService" ref="org.hisp.dhis.reporttable.ReportTableService" />
+	<property name="constantService" ref="org.hisp.dhis.constant.ConstantService" />
   </bean>
 
   <bean id="org.hisp.dhis.reporting.tablecreator.action.GetCategoryComboDataElementsAction" class="org.hisp.dhis.reporting.tablecreator.action.GetCategoryComboDataElementsAction"
@@ -213,6 +214,7 @@
     scope="prototype">
     <property name="reportService" ref="org.hisp.dhis.report.ReportService" />
     <property name="reportTableService" ref="org.hisp.dhis.reporttable.ReportTableService" />
+	<property name="constantService" ref="org.hisp.dhis.constant.ConstantService" />
     <property name="statementManager" ref="statementManager" />
   </bean>