بتاريخ: 1 نوفمبر 20178 سنة comment_291220 المشكلة انا عامل برنامج والمفروض انه بضغط على ايقونة تفتح التقرير من نوع الجاسبر بس بتظهر الرسالة دى Error 404--Not Found From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 10.4.5 404 Not Found The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent. If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address. غير الملف servelt وده فولدر بتاع البرنامح والداتيا الفولدر مساره c:/ تم تعديل 1 نوفمبر 20178 سنة بواسطة series_1981 تقديم بلاغ
بتاريخ: 1 نوفمبر 20178 سنة comment_291221 لم أفهم هذه الجملة غير الملف servelt وده فولدر بتاع البرنامح والداتيا الفولدر مساره c:/ تقديم بلاغ
بتاريخ: 1 نوفمبر 20178 سنة كاتب الموضوع comment_291234 يعنى شيلت الملف القديم وعملت ملف جديد من الاول ......انا حملت الفولدر بتاع البرنامج والداتيا بيز وده كان المسار بتاعه البرنامح والداتيا الفولدر مساره c:/....بس مش عارف ليه مش ظاهر تقديم بلاغ
بتاريخ: 1 نوفمبر 20178 سنة كاتب الموضوع comment_291246 ان الريبوت نفسه اللى انا عمله يفتح على الصفحة قدامى ..... يعنى البرنامج بستدعى تقرير عن الموظفين ..المفروض انه لم اضعط على الايقونة بتاعته يطلع شكل الريبورت على الصفحة قدامى تقديم بلاغ
بتاريخ: 2 نوفمبر 20178 سنة كاتب الموضوع comment_291276 ده منقول من الباشمنهندس حاتم نصار ... وهو عبارة عن ملفين الملف الاول اسمه reports.java وفيه package reports; import Servlet.ReportsServlet; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.sql.Connection; 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.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum; import net.sf.jasperreports.engine.util.JRLoader; import oracle.adf.model.BindingContext; import oracle.binding.BindingContainer; import oracle.jbo.ViewObject; import org.apache.myfaces.trinidad.render.ExtendedRenderKitService; import org.apache.myfaces.trinidad.util.Service; import util.JSFUtils; import org.apache.myfaces.trinidad.render.ExtendedRenderKitService; import org.apache.myfaces.trinidad.util.Service; import util.ADFUtils; public class reports { private String reportFormat; public static String userId; public void openUserActionsReport(ActionEvent actionEvent) { userId =ADFUtils.findIterator("UsersView1Iterator").getCurrentRow().getAttribute("UserId").toString(); String surl ="/reportsservlet?reportFile=RInfoEmpAlData"; surl += "&outputFormat=" + reportFormat; openDateReport(surl); } private void openDateReport(String repUrl) { FacesContext context = JSFUtils.getFacesContext(); String url = JSFUtils.getServerURL() + "" + repUrl; ExtendedRenderKitService erkService = Service.getService(context.getRenderKit(), ExtendedRenderKitService.class); erkService.addScript(context, "window.open('" + url + "','_blank')"); } public void setReportFormat(String reportFormat) { this.reportFormat = reportFormat; } public String getReportFormat() { return reportFormat; } public static void setUserId(String userId) { reports.userId = userId; } public static String getUserId() { return userId; } } والملف االثانى تقديم بلاغ
بتاريخ: 2 نوفمبر 20178 سنة كاتب الموضوع comment_291277 الملف الثانى ReportsServlet وفيه package Servlet; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter; import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter; import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum; import net.sf.jasperreports.engine.util.JRLoader; import reports.reports; @WebServlet(name = "ReportsServlet", urlPatterns = { "/reportsservlet" }) public class ReportsServlet extends HttpServlet { @SuppressWarnings("compatibility:-263305903787633402") private static final long serialVersionUID = 1L; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Object chkLoginStatus= request.getSession().getAttribute("loginStatus")==null?false:request.getSession().getAttribute("loginStatus"); if(chkLoginStatus.equals(true)){ String reportIs = request.getParameter("reportFile"); if(reportIs.equals("RInfoEmpAlData")){ RInfoEmpAlData(request,response); } }else{ try { response.sendRedirect("http://"+request.getServerName()+":"+request.getServerPort()+"/faces/Login.jsf"); } catch (IOException e) { } } } public void RInfoEmpAlData(HttpServletRequest request, HttpServletResponse response){ Map reportParams = new HashMap(); try { String checkValue=null; checkValue=reports.getUserId(); if( checkValue.equalsIgnoreCase("null")){checkValue="";} reportParams.put("P_userId",checkValue); } catch (NumberFormatException ex) { ex.printStackTrace(); } openReport(reportParams, request, response); } private void openReport(Map params, HttpServletRequest request, HttpServletResponse response) { Connection conn = getConnection(); if (conn == null) { return; } String reportFile = request.getParameter("reportFile"); String reportOutputFormat = request.getParameter("outputFormat"); if (reportOutputFormat == null) reportOutputFormat = "pdf"; if (reportOutputFormat.equalsIgnoreCase("pdf")) { response.setContentType("application/pdf"); response.setHeader("Content-disposition", "inline;filename=" + reportFile + ".pdf"); try { InputStream jasperStream = getServletConfig().getServletContext().getResourceAsStream("/Reports/" + reportFile +".jasper"); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperStream, params, conn); JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); exporter.exportReport(); jasperStream.close(); } catch (Exception ex) { ex.printStackTrace(); } } else if (reportOutputFormat.equalsIgnoreCase("xlsx")) { try { response.addHeader("Content-disposition", "attachment; filename=" + reportFile + ".xlsx"); InputStream jasperStream = getServletConfig().getServletContext().getResourceAsStream("/Reports/" + reportFile +".jasper"); JasperReport template = (JasperReport) JRLoader.loadObject(jasperStream); template.setWhenNoDataType(WhenNoDataTypeEnum.NO_DATA_SECTION); JasperPrint print = JasperFillManager.fillReport(template, params, conn); JRXlsxExporter xlsxExporter = new JRXlsxExporter(); xlsxExporter.setParameter(JRExporterParameter.JASPER_PRINT, print); xlsxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); xlsxExporter.exportReport(); jasperStream.close(); } catch (Exception ex) { ex.printStackTrace(); } } else if (reportOutputFormat.equalsIgnoreCase("docx")) { try { ServletOutputStream out = response.getOutputStream(); response.addHeader("Content-disposition", "attachment; filename=" + reportFile + ".docx"); InputStream jasperStream = getServletConfig().getServletContext().getResourceAsStream("/Reports/" + reportFile +".jasper"); JasperReport template = (JasperReport) JRLoader.loadObject(jasperStream); template.setWhenNoDataType(WhenNoDataTypeEnum.NO_DATA_SECTION); JasperPrint print = JasperFillManager.fillReport(template, params, conn); JRDocxExporter docxExporter = new JRDocxExporter(); docxExporter.setParameter(JRExporterParameter.JASPER_PRINT, print); docxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out); docxExporter.exportReport(); jasperStream.close(); } catch (Exception ex) { ex.printStackTrace(); } } closeConnection(conn); } private Connection getConnection() { try { Context ctx = new InitialContext(); Connection conn = ((DataSource) ctx.lookup("java:comp/env/jdbc/Connection1DS")).getConnection(); return conn; } catch (NamingException ne) { ne.printStackTrace(); } catch (SQLException sqle) { sqle.printStackTrace(); } return null; } private void closeConnection(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException sqle1) { sqle1.printStackTrace(); } } } } تقديم بلاغ
بتاريخ: 2 نوفمبر 20178 سنة كاتب الموضوع comment_291278 وانا عديلت فيهم بناءا على اسم التقرير واسم الباراميتر تقديم بلاغ
بتاريخ: 2 نوفمبر 20178 سنة كاتب الموضوع comment_291279 والفولدر بتاع التقرير ... المسار بتاعه Reports/ تقديم بلاغ
بتاريخ: 3 نوفمبر 20178 سنة كاتب الموضوع comment_291299 C: ده كنت بقول لحضرتك على مكان الفولدر بتاع البرنامج ... وجزالك الله خيرا تقديم بلاغ
بتاريخ: 4 نوفمبر 20178 سنة كاتب الموضوع comment_291354 معلشى مش واضح مسار اللى فيه التقرير...نفسه ولا مسار اللى فيه البرنامج....انا مدخل التقريركلها على /Report/ تقديم بلاغ
بتاريخ: 4 نوفمبر 20178 سنة كاتب الموضوع comment_291359 InputStream jasperStream = getServletConfig().getServletContext().getResourceAsStream("/Reports/" + reportFile +".jasper"); تقديم بلاغ
بتاريخ: 5 نوفمبر 20178 سنة comment_291362 حسناً هذا المسار في النظام مرة أخرى ، ما دخل المسار c: في الكود؟ تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.