الانتقال إلى المحتوى
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

بتاريخ:

 

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

 

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

ودى ملف الservlet

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

package view.servlets;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import java.util.HashMap;
import java.util.Map;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.servlet.*;
import javax.servlet.http.*;

import javax.sql.DataSource;

import model.service.am.AppModuleServiceImpl;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.xml.JRXmlLoader;

import oracle.jbo.client.Configuration;

import oracle.jdbc.OracleConnection;

public class RunReportServlet extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       /*
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>RunReportServlet</title></head>");
        out.println("<body>");
        out.println("<p>The servlet has received a GET. This is the reply.</p>");
        out.println("</body></html>");
        out.close();
*/
       doPost(request, response);
    }

    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException, IOException {
        
        PreparedStatement st = null;

        String amDef = "model.service.am.AppModuleService";
        String config = "AppModuleServiceLocal";

        AppModuleServiceImpl am = (AppModuleServiceImpl)Configuration.createRootApplicationModule(amDef, config);
        st = am.getDBTransaction().createPreparedStatement("select 1 from dual", 0);
        Connection conn = null;

        String reportName = request.getParameter("rn");
        String id = request.getParameter("id");
        
        try {
            conn = st.getConnection();
        } catch (SQLException e) {
            // TODO: Add catch code
            System.out.println("error 1 getDBTransaction jasper : " + e.getMessage());
        }

     
        // InputStream input = new FileInputStream(new File(getServletConfig().getServletContext().getRealPath("/Reports/" + reportName +".jrxml")));
        InputStream input = new FileInputStream("c:/Reports/" + reportName +".jrxml");
        JasperDesign design = null;

        try {
            design = JRXmlLoader.load(input);
        } catch (JRException e) {
            // TODO: Add catch code
            System.out.println("error 2 JasperDesign JRXmlLoader : " + e.getMessage());
        }

        JasperReport report = null;

        try {
            report = JasperCompileManager.compileReport(design);
            report = (JasperReport)JRLoader.loadObject(input);
            report.setWhenNoDataType(WhenNoDataTypeEnum.NO_DATA_SECTION);
        } catch (JRException e) {
            // TODO: Add catch code
            System.out.println("error 3 JasperReport JasperCompileManager.compileReport No Data : " + e.getMessage());
        }

        // Set Parm
        Map parm = new HashMap();
        parm.put("pDept", id); // DeptNo Name Parm Jasper Report

        JasperPrint jasperPrint = null;

        try {
          //  jasperPrint = JasperFillManager.fillReport(report, parm, conn);
          jasperPrint = JasperFillManager.fillReport(report, parm, conn);
            
        } catch (JRException e) {
            // TODO: Add catch code
            System.out.println("error 4 JasperPrint JasperFillManager.fillReport : " + e.getMessage());
        }

        // System.out.println("Report Created...");
        OutputStream ouputStream = response.getOutputStream();

        // Report PDF Format
        response.setContentType("application/pdf");
        response.setHeader("Cache-Control", "max-age=0");

        JRExporter exporter = new JRPdfExporter();
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);

        try {
            exporter.exportReport();
        } catch (JRException e) {
            System.out.println("error 6 JRExporter exporter formats : " + e.getMessage());
            throw new ServletException(e);
        } finally {
            if (ouputStream != null) {
                try {
                    ouputStream.flush();
                    ouputStream.close();

                } catch (IOException ex) {
                    System.out.println(ex.getMessage());
                    throw (ex);
                }
            }
        }
        // /jasperservlet?rn=allData&id=0
        // /jasperservlet?rn=parm&id=value
        // /jasperservlet?rn=#{requestContext.rightToLeft ? 'report arabic' : 'report english'}&id=0
        //super.doPost(httpServletRequest, httpServletResponse);
    }
}

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

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

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

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

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

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.