الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مشكلة فى فتح تقرير جاسبر ريبورت

Featured Replies

بتاريخ:

المشكلة انا عامل برنامج والمفروض انه بضغط على ايقونة  تفتح التقرير من نوع الجاسبر

بس بتظهر  الرسالة دى

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:/

تم تعديل بواسطة series_1981

  • الردود 28
  • المشاهدات 2.9k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

بتاريخ:

لم أفهم هذه الجملة

غير الملف servelt 

وده فولدر بتاع  البرنامح والداتيا 

الفولدر مساره c:/

بتاريخ:
  • كاتب الموضوع

يعنى شيلت الملف القديم وعملت ملف جديد من الاول ......انا حملت الفولدر بتاع البرنامج  والداتيا بيز وده كان المسار بتاعه البرنامح والداتيا 

الفولدر مساره c:/....بس مش عارف ليه مش ظاهر

بتاريخ:

ما هو الذي ليس ظاهر؟

بتاريخ:
  • كاتب الموضوع

ان الريبوت نفسه اللى انا عمله يفتح على الصفحة قدامى ..... يعنى البرنامج بستدعى تقرير عن الموظفين ..المفروض انه لم اضعط على الايقونة بتاعته يطلع شكل الريبورت على الصفحة قدامى

بتاريخ:

ما log الذي يظهر؟

بتاريخ:
  • كاتب الموضوع

الرسالة الى كتبها فوق...

بتاريخ:

أقصد الذي يظهر في JDEVELOPER

بتاريخ:
  • كاتب الموضوع

لا يوجد مشكلة فى الجى ديفلبر نهائى 

بتاريخ:

كيف كتبت الكود؟

بتاريخ:
  • كاتب الموضوع

 

ده منقول من الباشمنهندس حاتم نصار ...

وهو عبارة عن ملفين

الملف الاول اسمه 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;

    }

}

 

 

 

والملف االثانى 

 

بتاريخ:
  • كاتب الموضوع

 

الملف الثانى

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();

               }

           }

       }

    

   

   

    

    

   

}

 

بتاريخ:
  • كاتب الموضوع

وانا عديلت فيهم بناءا على اسم التقرير واسم الباراميتر 

بتاريخ:
  • كاتب الموضوع

والفولدر بتاع التقرير ...  المسار بتاعه Reports/

بتاريخ:

ضع الكود بعد التعديل

بتاريخ:
  • كاتب الموضوع

ده بعد التعديل ...

بتاريخ:

حسناً أنت تقرأ من /Reports/

ما علاقة c: بهذا؟

بتاريخ:
  • كاتب الموضوع

C:

ده  كنت بقول لحضرتك على مكان الفولدر بتاع البرنامج

... وجزالك الله خيرا

بتاريخ:

هكذا المسار خطأ وغير متوافق مع الكود الذي كتبته

بتاريخ:
  • كاتب الموضوع

معلشى مش واضح مسار اللى فيه التقرير...نفسه ولا مسار اللى فيه البرنامج....انا مدخل التقريركلها على /Report/

بتاريخ:

وأين هذا المسار؟

بتاريخ:
  • كاتب الموضوع

                InputStream jasperStream = getServletConfig().getServletContext().getResourceAsStream("/Reports/" + reportFile +".jasper");

بتاريخ:

حسناً هذا المسار في النظام

مرة أخرى ، ما دخل المسار c: في الكود؟

بتاريخ:
  • كاتب الموضوع

لا يوجد اى مسار c  داخل الكود

بتاريخ:

حسناَ أين وضعت التقارير؟

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.