بتاريخ: 2 أبريل 20196 سنة comment_298166 ودا الكود الل فى لbean package view; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.sql.Connection; import java.util.HashMap; import java.util.Map; import javax.faces.context.FacesContext; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletContext; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum; import net.sf.jasperreports.engine.util.JRLoader; import oracle.adf.model.BindingContext; import oracle.adf.model.binding.DCIteratorBinding; import oracle.binding.BindingContainer; public class beanmawred { public beanmawred() { } public BindingContainer getBindings() { return BindingContext.getCurrent().getCurrentBindingsEntry(); } public Connection getDataSourceConnection(String dataSourceName) throws Exception { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup(dataSourceName); return ds.getConnection(); } private Connection getConnection() throws Exception { return getDataSourceConnection("jdbc/HrXEDSak"); // use datasourse in your application } public ServletContext getContext() { return (ServletContext) getFacesContext().getExternalContext().getContext(); } public HttpServletResponse getResponse() { return (HttpServletResponse) getFacesContext().getExternalContext().getResponse(); } public static FacesContext getFacesContext() { return FacesContext.getCurrentInstance(); } public void runReport(String repPath, java.util.Map param) throws Exception { Connection conn = null; try { HttpServletResponse response = getResponse(); ServletOutputStream out = response.getOutputStream(); response.setHeader("Cache-Control", "max-age=0"); response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachement; filename=\"ReportFile.pdf\""); ServletContext context = getContext(); InputStream fs = context.getResourceAsStream("/reports/" + repPath); //we will put the report under folder "reports" under Web Content // System.err.println("fs:"+fs); JasperReport template = (JasperReport) JRLoader.loadObject(fs); template.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL); conn = getConnection(); JasperPrint print = JasperFillManager.fillReport(template, param, conn); ByteArrayOutputStream baos = new ByteArrayOutputStream(); JasperExportManager.exportReportToPdfStream(print, baos); out.write(baos.toByteArray()); out.flush(); out.close(); FacesContext.getCurrentInstance().responseComplete(); } catch (Exception jex) { System.out.println(jex.toString()); jex.printStackTrace(); } finally { close(conn); } } //@SuppressWarnings("oracle.jdeveloper.java.insufficient-catch-block") public void close(Connection con) { if (con != null) { try { con.close(); } catch (Exception e) { } } } public String mawred_print_action() { // Add event code here... DCIteratorBinding empIter = (DCIteratorBinding) getBindings().get("collection1Iterator"); String empId = empIter.getCurrentRow().getAttribute("EmpConstantNo").toString(); Map m = new HashMap(); m.put("id", empId); try { runReport("report1.jasper", m); System.err.println("ConstantNo "+empId); } catch (Exception e) { System.out.println(e.toString()); } return null; } } تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.