details:   https://code.openbravo.com/erp/devel/pi/rev/814a9e2ca8ce
changeset: 26835:814a9e2ca8ce
user:      Carlos Aristu <carlos.aristu <at> openbravo.com>
date:      Wed Jun 03 09:43:20 2015 +0200
summary:   Fixes issue 29745: Add on the renderJr method the option to print on 
plain text

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/report/ReportingUtils.java
 |  116 ++++++++++
 src/org/openbravo/base/secureApp/HttpSecureAppServlet.java                     
                          |    3 +-
 src/org/openbravo/erpCommon/utility/DownloadReport.java                        
                          |    2 +
 3 files changed, 120 insertions(+), 1 deletions(-)

diffs (200 lines):

diff -r 8fff038cc32e -r 814a9e2ca8ce 
modules/org.openbravo.client.application/src/org/openbravo/client/application/report/ReportingUtils.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/report/ReportingUtils.java
  Tue Jun 02 19:07:56 2015 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/report/ReportingUtils.java
  Wed Jun 03 09:43:20 2015 +0200
@@ -48,6 +48,7 @@
 import net.sf.jasperreports.engine.export.HtmlExporter;
 import net.sf.jasperreports.engine.export.JRCsvExporter;
 import net.sf.jasperreports.engine.export.JRPdfExporter;
+import net.sf.jasperreports.engine.export.JRTextExporter;
 import net.sf.jasperreports.engine.export.JRXlsExporter;
 import net.sf.jasperreports.engine.fill.JRSwapFileVirtualizer;
 import net.sf.jasperreports.engine.util.JRSwapFile;
@@ -58,6 +59,8 @@
 import net.sf.jasperreports.export.SimpleHtmlReportConfiguration;
 import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
 import net.sf.jasperreports.export.SimplePdfExporterConfiguration;
+import net.sf.jasperreports.export.SimpleTextExporterConfiguration;
+import net.sf.jasperreports.export.SimpleTextReportConfiguration;
 import net.sf.jasperreports.export.SimpleWriterExporterOutput;
 import net.sf.jasperreports.export.SimpleXlsReportConfiguration;
 import net.sf.jasperreports.export.type.HtmlSizeUnitEnum;
@@ -97,6 +100,9 @@
    * Used to set the parameter with the URI to retrieve images in HTML reports.
    */
   public static final String IMAGES_URI = "Images URI";
+
+  private static final double TEXT_CHAR_HEIGHT = 10;
+  private static final double TEXT_CHAR_WIDTH = 10;
   private static final Logger log = 
LoggerFactory.getLogger(ReportingUtils.class);
 
   /**
@@ -332,6 +338,9 @@
     case PDF:
       JasperExportManager.exportReportToPdfFile(jasperPrint, 
target.getAbsolutePath());
       break;
+    case TXT:
+      saveTxtReportToFile(jasperPrint, target);
+      break;
     case XLS:
       saveExcelReportToFile(jasperPrint, exportParameters, target);
       break;
@@ -370,6 +379,9 @@
     case PDF:
       JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
       break;
+    case TXT:
+      saveTxtReportToOutputStream(jasperPrint, outputStream);
+      break;
     case XLS:
       saveExcelReportToOutputStream(jasperPrint, exportParameters, 
outputStream);
       break;
@@ -643,6 +655,99 @@
   }
 
   /**
+   * Generates a plain text report from a pre-compiled report and returns it 
into a file.
+   * 
+   * @param jasperPrint
+   *          JasperPrint object which contains a compiled report.
+   * @param file
+   *          The file used to return the report.
+   * @throws JRException
+   *           In case there is any error generating the report an exception 
is thrown with the
+   *           error message.
+   */
+  private static void saveTxtReportToFile(JasperPrint jasperPrint, File file) 
throws JRException {
+    final JRTextExporter textExporter = new JRTextExporter();
+    SimpleExporterInput exporterInput = new SimpleExporterInput(jasperPrint);
+    SimpleWriterExporterOutput exporterOutput = new 
SimpleWriterExporterOutput(file);
+
+    // Default text configuration that can be overridden in the .jrxml 
template itself
+    SimpleTextExporterConfiguration textExporterConfiguration = new 
SimpleTextExporterConfiguration();
+    textExporterConfiguration.setOverrideHints(false);
+    textExporter.setConfiguration(textExporterConfiguration);
+    // Default item text configuration that can be overridden in the .jrxml 
template itself
+    SimpleTextReportConfiguration textReportConfiguration = new 
SimpleTextReportConfiguration();
+    textReportConfiguration.setCharHeight(new Float(TEXT_CHAR_HEIGHT));
+    textReportConfiguration.setCharWidth(new Float(TEXT_CHAR_WIDTH));
+    textReportConfiguration.setOverrideHints(false);
+    textExporter.setConfiguration(textReportConfiguration);
+
+    textExporter.setExporterInput(exporterInput);
+    textExporter.setExporterOutput(exporterOutput);
+    textExporter.exportReport();
+  }
+
+  /**
+   * Generates a plain text report from a pre-compiled report and returns it 
into an output stream.
+   * 
+   * @param jasperPrint
+   *          JasperPrint object which contains a compiled report.
+   * @param outputStream
+   *          The output stream used to return the report.
+   * @throws JRException
+   *           In case there is any error generating the report an exception 
is thrown with the
+   *           error message.
+   */
+  private static void saveTxtReportToOutputStream(JasperPrint jasperPrint, 
OutputStream outputStream)
+      throws JRException {
+    final JRTextExporter textExporter = new JRTextExporter();
+    SimpleExporterInput exporterInput = new SimpleExporterInput(jasperPrint);
+    SimpleWriterExporterOutput exporterOutput = new 
SimpleWriterExporterOutput(outputStream);
+
+    // Default text configuration that can be overridden in the .jrxml 
template itself
+    SimpleTextExporterConfiguration textExporterConfiguration = new 
SimpleTextExporterConfiguration();
+    textExporterConfiguration.setOverrideHints(false);
+    textExporter.setConfiguration(textExporterConfiguration);
+    // Default item text configuration that can be overridden in the .jrxml 
template itself
+    SimpleTextReportConfiguration textReportConfiguration = new 
SimpleTextReportConfiguration();
+    textReportConfiguration.setCharHeight(new Float(TEXT_CHAR_HEIGHT));
+    textReportConfiguration.setCharWidth(new Float(TEXT_CHAR_WIDTH));
+    textReportConfiguration.setOverrideHints(false);
+    textExporter.setConfiguration(textReportConfiguration);
+
+    textExporter.setExporterInput(exporterInput);
+    textExporter.setExporterOutput(exporterOutput);
+    textExporter.exportReport();
+  }
+
+  /**
+   * Generates a plain text report using the SimpleExporterInput, 
SimpleWriterExporterOutput,
+   * SimpleTextExporterConfiguration and SimpleTextReportConfiguration 
received as parameters.
+   * 
+   * @param exporterInput
+   *          SimpleExporterInput object with the input data.
+   * @param exporterOutput
+   *          SimpleWriterExporterOutput object with the output data.
+   * @param textExporterConfiguration
+   *          SimpleTextExporterConfiguration with the configuration data.
+   * @param textReportConfiguration
+   *          SimpleTextReportConfiguration with the item configuration data.
+   * @throws JRException
+   *           In case there is any error generating the report an exception 
is thrown with the
+   *           error message.
+   */
+  public static void saveTxtReport(SimpleExporterInput exporterInput,
+      SimpleWriterExporterOutput exporterOutput,
+      SimpleTextExporterConfiguration textExporterConfiguration,
+      SimpleTextReportConfiguration textReportConfiguration) throws 
JRException {
+    final JRTextExporter textExporter = new JRTextExporter();
+    textExporter.setExporterInput(exporterInput);
+    textExporter.setExporterOutput(exporterOutput);
+    textExporter.setConfiguration(textExporterConfiguration);
+    textExporter.setConfiguration(textReportConfiguration);
+    textExporter.exportReport();
+  }
+
+  /**
    * Generates a SimpleXlsReportConfiguration from a parameter map.
    * 
    * This method allows backwards compatibility when generating XLS reports by 
using a parameter map
@@ -1181,6 +1286,15 @@
       }
     }), //
     /**
+     * TXT export type
+     */
+    @SuppressWarnings("serial")
+    TXT("txt", "100", new HashMap<String, Object>() {
+      {
+        put("IS_IGNORE_PAGINATION", false);
+      }
+    }), //
+    /**
      * XLS export type
      */
     @SuppressWarnings("serial")
@@ -1263,6 +1377,8 @@
         return ExportType.HTML;
       } else if ("PDF".equals(action)) {
         return ExportType.PDF;
+      } else if ("TXT".equals(action)) {
+        return ExportType.TXT;
       } else if ("XLS".equals(action)) {
         return ExportType.XLS;
       } else if ("XML".equals(action)) {
diff -r 8fff038cc32e -r 814a9e2ca8ce 
src/org/openbravo/base/secureApp/HttpSecureAppServlet.java
--- a/src/org/openbravo/base/secureApp/HttpSecureAppServlet.java        Tue Jun 
02 19:07:56 2015 +0200
+++ b/src/org/openbravo/base/secureApp/HttpSecureAppServlet.java        Wed Jun 
03 09:43:20 2015 +0200
@@ -1285,7 +1285,8 @@
         exportParameters.put(ReportingUtils.IMAGES_URI, localAddress + 
"/servlets/image?image={0}");
         ReportingUtils.exportJR(strReportName, expType, designParameters, os, 
false, this, data,
             exportParameters);
-      } else if (strOutputType.equals("pdf") || 
strOutputType.equalsIgnoreCase("xls")) {
+      } else if (strOutputType.equals("pdf") || 
strOutputType.equalsIgnoreCase("xls")
+          || strOutputType.equalsIgnoreCase("txt") || 
strOutputType.equalsIgnoreCase("csv")) {
         reportId = UUID.randomUUID();
         File outputFile = new File(globalParameters.strFTPDirectory + "/" + 
strFileName + "-"
             + (reportId) + "." + strOutputType);
diff -r 8fff038cc32e -r 814a9e2ca8ce 
src/org/openbravo/erpCommon/utility/DownloadReport.java
--- a/src/org/openbravo/erpCommon/utility/DownloadReport.java   Tue Jun 02 
19:07:56 2015 +0200
+++ b/src/org/openbravo/erpCommon/utility/DownloadReport.java   Wed Jun 03 
09:43:20 2015 +0200
@@ -57,6 +57,8 @@
       response.setContentType("application/pdf");
     } else if (extension.equalsIgnoreCase(".csv")) {
       response.setContentType("text/csv");
+    } else if (extension.equalsIgnoreCase(".txt")) {
+      response.setContentType("text/plain");
     } else if (extension.equalsIgnoreCase(".xls")) {
       response.setContentType("application/vnd.ms-excel");
     } else {

------------------------------------------------------------------------------
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to