Log in / create account
View source | Discuss page | Page history | Printable version   
ADVERTISEMENT
Accounting eLearning Courses
Partnerships
SourceForge.net Logo
Openbravo ERP at SourceForge

SourceForge.net Logo
Openbravo POS at SourceForge

Open Solution Alliance Logo
Openbravo at Open Solution Alliance

PrintButtonExample

Code snippet

Name: Print Button
Version: Openbravo 2.35
Author: Victor Gaspar



Rating :
5.00/5
(1 votes cast)
You have to be registered to be able to vote

Create a process:

HEADER
Id: RptC_Tiquet
Name: RptC_Tiquet
Data access: Entity/Organization
Report checkbox: Checked

(Image IiP.png)

PROCESS CLASS
Action: Process
Default value checkbox: Checked
Java class name: org.openbravo.erpReports.RptC_Tiquet

(Image PC.png)

PROCESS MAPPING
Mapping name: /RptC_Tiquet
Default value checkbox: Checked

(Image PM.png)


Use as a model the following code in java.

package org.openbravo.erpReports;
import org.openbravo.erpCommon.utility.*;
import org.openbravo.erpCommon.businessUtility.Tree;
import org.openbravo.erpCommon.businessUtility.TreeData;
import org.openbravo.erpCommon.businessUtility.WindowTabs;
import org.openbravo.base.secureApp.HttpSecureAppServlet;
import org.openbravo.base.secureApp.VariablesSecureApp;
import org.openbravo.xmlEngine.XmlDocument;
import java.io.*;
import java.util.HashMap;
import java.util.Date;
import java.text.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.openbravo.utils.Replace;
import org.openbravo.erpCommon.ad_combos.OrganizationComboData;
import org.openbravo.erpCommon.utility.DateTimeData;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.JasperDesign;
import java.sql.Connection;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
public class RptC_Tiquet extends HttpSecureAppServlet {  
 public void init (ServletConfig config) {
   super.init(config);
   boolHist = false;
 }
 public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException {
   VariablesSecureApp vars = new VariablesSecureApp(request);
   if (vars.commandIn("DEFAULT")) {
     String strcOrderId = vars.getSessionValue("RptC_Tiquet.inpcOrderId_R");      
     if (strcOrderId.equals("")) strcOrderId = vars.getSessionValue("RptC_Tiquet.inpcOrderId");
     if (log4j.isDebugEnabled()) log4j.debug("strcOrderId: "+ strcOrderId);
     printPagePartePDF(response, vars, strcOrderId);
   } else pageError(response);
 }
  void printPagePartePDF(HttpServletResponse response, VariablesSecureApp vars, String strcOrderId) throws IOException,ServletException{
   if (log4j.isDebugEnabled()) log4j.debug("Output: RptC_TiquetJR - pdf");
   JasperPrint jasperPrint;    
   String strReportName = "@basedesign@/org/openbravo/erpReports/C_TiquetJR.jrxml";
   response.setHeader("Content-disposition", "inline; filename=SalesOrderJR.pdf");
   strcOrderId=strcOrderId.replace("(", "");
   strcOrderId=strcOrderId.replace(")", "");
   strcOrderId=strcOrderId.replace("\'", "");
   HashMap<String, Object> parameters = new HashMap<String, Object>();
   parameters.put("C_ORDER_ID", strcOrderId);    
   renderJR(vars, response, strReportName, "pdf", parameters, null, null );    
 }
 public String getServletInfo() {
   return "Servlet that presents the RptCOrders seeker";
 } // End of getServletInfo() method}


Copy it into /home/openbravo/OpenbravoERP/AppsOpenbravo/src/org/openbravo/erpReports


In your .jrxml file you get the parameter C_ORDER_ID from the .java writing your SQL so:

SELECT DOCUMENTNO FROM C_ORDER_ID WHERE C_ORDER_ID=$P{C_ORDER_ID}

Copy your jasper template (.jrxml file) into /home/openbravo/OpenbravoERP/AppsOpenbravo/src/org/openbravo/erpReports

Then compile the changes using:

ant compile.development -Dtab=xxx


Now, you should change the current process that the print button from (i.e.) Sales Order windows executes. Go to Windows, Tab and Fields. Then look for the windows Sales Order and in the Header tab, locate the Process field. Change the value for your newly created RptC_Tiquet.

Then, compile the windows

ant compile.development -Dtab="Sales Order"

If you want to see your changes, restart apache-tomcat.

Retrieved from "http://wiki.openbravo.com/wiki/PrintButtonExample"

This page has been accessed 767 times. This page was last modified 10:01, 14 June 2008. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.


Category: Code Snippets