بتاريخ: 29 أكتوبر 20205 سنة comment_301105 السلام عليكم ياجماعة هل يوجد مشكلة في فى iReport-5.6.0 لما ترن علي Studio Edition Version 12.2.1.3.0 JDeveloper انا عامل تقارير من علي iReport-5.6.0 ,ومش عاوز ترن تقديم بلاغ
بتاريخ: 1 نوفمبر 20205 سنة كاتب الموضوع comment_301115 م.ربيع شكرا جدااا ليك ممكن الكود ال بيعمل call report عن طريق Servlet وجزاك الله خيرا تقديم بلاغ
بتاريخ: 1 نوفمبر 20205 سنة comment_301117 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 JasperBean { public JasperBean() { } public String runReportAction() { DCIteratorBinding empIter = (DCIteratorBinding) getBindings().get("EmployeesView1Iterator"); String empId = empIter.getCurrentRow().getAttribute("EmployeeId").toString(); Map m = new HashMap(); m.put("employeeId", empId); try { runReport("empReport.jasper", m); } catch (Exception e) { } return null; } 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("hrDS"); } 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"); 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 close(Connection con) { if (con != null) { try { con.close(); } catch (Exception e) { } } } } تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.