بتاريخ: 10 أكتوبر 20178 سنة comment_290697 السلام عليكم: استخدمت الكود التالي من اجل استدعاء تقرير وقد نجح في صفحة jsf وكن عندما قمت باستخدامه في jsff لم ينجح الاستدعاء ويحدث تحديث للصفحة ........................................................................................................................................................................................................... package view.backing; 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.faces.event.ActionEvent; 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.JRExporterParameter; 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.export.JRCsvExporter; import net.sf.jasperreports.engine.export.oasis.JROdtExporter; import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter; import net.sf.jasperreports.engine.export.ooxml.JRPptxExporter; import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter; 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 JasperForamt { } public String runmyreport() { try { runDocx("myreport.jasper", null); } catch (Exception e) { e.printStackTrace(); } return null; } } public String runReportPpt() { public void runPdf(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"); ServletContext context = getContext(); InputStream fs = context.getResourceAsStream("/Reports/" + repPath); 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) { jex.printStackTrace(); } finally { close(conn); } } public void runDocx(String repPath, java.util.Map param) throws Exception { Connection conn = null; try { HttpServletResponse response = getResponse(); ServletOutputStream out = response.getOutputStream(); response.addHeader("Content-disposition", "attachment; filename=UserReport.docx"); ServletContext context = getContext(); InputStream fs = context.getResourceAsStream("/Reports/" + repPath); JasperReport template = (JasperReport)JRLoader.loadObject(fs); template.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL); conn = getConnection(); JasperPrint print = JasperFillManager.fillReport(template, param, conn); JRDocxExporter docxExporter = new JRDocxExporter(); docxExporter.setParameter(JRExporterParameter.JASPER_PRINT, print); docxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out); docxExporter.exportReport(); FacesContext.getCurrentInstance().responseComplete(); } catch (Exception jex) { jex.printStackTrace(); } finally { close(conn); } } 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("java:comp/env/jdbc/Connection1DS"); } public ServletContext getContext() { return (ServletContext)getFacesContext().getExternalContext().getContext(); } public HttpServletResponse getResponse() { return (HttpServletResponse)getFacesContext().getExternalContext().getResponse(); } public static FacesContext getFacesContext() { return FacesContext.getCurrentInstance(); } public BindingContainer getBindings() { return BindingContext.getCurrent().getCurrentBindingsEntry(); } public void close(Connection con) { if (con != null) { try { con.close(); } catch (Exception e) { e.printStackTrace(); } } } } /////////////// تقديم بلاغ
بتاريخ: 11 أكتوبر 20178 سنة كاتب الموضوع comment_290768 نعم في المسار .. لقد تم حل المشكلة بوضع المكون File Download Action listener شكرا لك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.