الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

محاولة تحتاج لتصحيح بالنسبة لإضافة تقرير لصفحة jsf

بدأه rohaili في 21 أغسطس 2010 · 16 رد · 1,947 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

بعد قرائتي للصفحتان التاليتان

http://jasperreportjsf.sourceforge.net/web/getting_started.html

http://jasperreportjsf.sourceforge.net/web/rendering_reports.html

حاولت تطبيق ما فهمته ولكن لم تنجح محاولتي فما هو الخطأ فيها .

المحاولة :

1 - أضفت لل html tag

xmlns:jr="http://jasperreportjsf.sf.net/tld/jasperreports-jsf-1_0.tld"

2 - أضفت لل body

<jr:report path="/reports/report1.jasper" format="pdf" />

3 - أضفت

jasperreports-jsf-1.0-beta-3.jar

لمجلد library

4 - أضفت المجلد reports في المجلد web pages

وعند تنفيذ المشروع يتم تحميل ملف بدون امتداد وعند محاولة فتحه بال adobe reader لايفتح .

الصفحة index.xhtml



<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:jr="http://jasperreportjsf.sf.net/tld/jasperreports-jsf-1_0.tld"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<jr:report path="/reports/report1.jasper" format="pdf" />
</h:body>
</html>
<?xml version='1.0' encoding='UTF-8' ?>

مرفق المشروع بهيئة net beans والمكتبة المستخدمة

jasperreports-jsf-1.0-beta-3.jar.zip

jsfireport.zip

300_130.gif

#2

مرحبا اخى رحيلى

أعجبتنى هذه الفكرة الجميلة وهى عرض التقرير كصفحة pdf داخل صفحة الويب نفسها

وقد قمت بعمل مشروع بسيط لتنفيذ هذه الفكرة

طبعا واجهتنى عدة اخطاء ولكن الحمد لله نجحت فى حلها

ومنها توفير المكتبات اللازمة لعرض التقرير

واظهار الكلمات العربية فى تقرير ال pdf وهذه اصعب مشكلة مع التقارير jasper report

عموما الحل بسيط جدا وهو فى servlet class وليس jsp or jsf

وكود هذا السيرفلت كما يلى

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;

/**
 * Servlet implementation class Report1
 */
public class Report1 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
     * Default constructor.
     */
	public Report1() {
		// TODO Auto-generated constructor stub
	}

	/**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *  	response)
     */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		process(request, response);
	}

	/**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *  	response)
     */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		process(request, response);
	}

	private void process(HttpServletRequest request,
			HttpServletResponse response) {
		try {

			request.setCharacterEncoding("UTF-8");
			response.setCharacterEncoding("UTF-8");

			String dbsurl = this.getServletContext().getRealPath(
					"dbs/Database1.mdb");

			Connection conn = DriverManager
					.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="
							+ dbsurl);
			net.sf.jasperreports.engine.JasperPrint jsp = JasperFillManager
					.fillReport(this.getServletContext().getRealPath(
							"reps/report1.jasper"), null, conn);

			response.setContentType("application/pdf");
			JRPdfExporter exporter = new JRPdfExporter();
			exporter.setParameter(JRExporterParameter.JASPER_PRINT, jsp);
			exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response
					.getOutputStream());
			exporter.exportReport();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

المشروع بحجم 9 ميجا

لذلك لم استطع ارفاقه فى المشاركة

ولكننى فى اثناء كتابة هذا الرد اقوم برفعه على ال4shared

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

المشروع يحتوى على التقرير وعلى قاعدة البيانات

وهوبسيط جدا كما ذكرت

كل ماعليك فعله هو تحميل المشروع ووضعه فى السيرفر الخاص بك ثم تشغيل السيرفر

ثم استدعاء التطبيق بالمسار التالى

http://localhost:1818/reportspro/

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

اضغط عليه ليقوم باعادة توجيهك الى الصفحة Report1

والتى تحتوى على التقرير بصيغة pdf

الان اكتمل الرفع وهذا هو الرابط http://www.4shared.c...reportspro.html

اتمنى ان تستفيدوا من المشروع

بالتوفيق

تحياتى

تم تعديل هذه المشاركة بواسطة Oracle_Java في 25 أغسطس 2010 في 16:23

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#3

السلام عليكم

اخى الكريم

انا نزلت المشروع

لكن كان بالصيغه هذه .war

ولا اعرف كيف اشغله

ما هذه الصيغه وكيفيه تشغليه

حيث اننى لم اتطرق الى JavaEE

post-217802-078046000 1284571545_thumb.p

كيف اتعامل معه ؟؟؟

وجزاكم الله خيرا :)

المرفقات
reportst.png

Software Developer
Mahmoudkelany.com


 

#4

يجب أن يكون لديك خادم server

تقوم بعمل نشر deploy لهذا الملف عليه

(عملية النشر على غالبية الخوادم هي وضع الملف في مجلد ما)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#5

السلام عليكم

بالنسبة لتشغيل الملف اخ محمود

يجب عليك اولا تحميل الخادم server وليكن apache

من هذا الرابط http://mirrors.axint...omcat-7.0.2.zip

ثم ضع هذا الملف المضغوط على القرص d:

ثم اضغط عليه كليك يمين واختار extract here

وبهذا فلديك خادم على جهازك ولكن هناك شروط بسيطة للتشغيل

اذهب الى مكان تنصيب ال jdk لديك وليكن مثلا C:\Program Files\Java\jdk1.6.0_21

لاحظ المسار بالضبط واننى لم ادخل الى المجلد bin

انسخ هذا المسار ثم اذهب الى سطح المكتب

واضغط على رمز my computer

ثم اضغط على properties

ثم advanced

ثم Environment Variables

ثم زر new السفلى الموجود فوق الزر ok مباشرة

ثم اكتب التالى

فى الخانة variable name اكتب JAVA_HOME

وفى الخانة variable value الصق المسار الذى نسخته وليكن C:\Program Files\Java\jdk1.6.0_21

ثم اضغط ok ثم ok ثم ok

وكده انت عندك خادم وصالح للاستخدام :haha:

الان طريقة نشر التطبيقات عليه

قم بنسخ الملف الذى قمت بتحميله والمسمى reportspro.war

واذهب الى المجلد الذى يحتوى على الخادم على القرص d:

وهيكون مساره D:\apache-tomcat-7.0.2

ثم ادخل الى المجلد المسمى webapps

والصق الملف reportspro.war

ثم اذهب الى المجلد bin داخل السيرفر وهيكون مساره D:\apache-tomcat-7.0.2\bin

ثم قم بتشغيل الباتش startup.bat واتركه يعمل لا تغلقه

وهذا للتشغيل اما للاغلاق فاستخدم الملف shutdown.bat

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

http://localhost:808...spro/index.html

سيبدأ التطبيق فى العمل وتظهر امامك الصفحة الرئيسية (مبرووووووووووووووووك :D)

ثم اضغط على الرابط اعرض تقرير الموظفين

سيتم اعادة توجيهك الى الصفحة التى تحتوى على التقرير

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

ملحوظة :

طريقة النشر هذه تستخدم لنشر اى تطبيق انترنت web application وليس لهذا التطبيق فقط

شوفت العملية سهلة إذاى؟ ههههههههه

عايزك تورينا الشغل الصح فى الويب javaEE

بالتوفيق يامحمود

تحياتى

تم تعديل هذه المشاركة بواسطة Oracle_Java في 16 سبتمبر 2010 في 13:39

2


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#6

ربنا يعطيك العافية يا أخي :)

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7
علاء الصالحي كتب:

ربنا يعطيك العافية يا أخي :)

واياكم يارب

مشكور اخ علاء

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#8

تمام شكرا اخى Oracle_Java

وصلت اليها الحمدلله :)

واشتغلت

لكن تقريبا العربى مش شغال

Software Developer
Mahmoudkelany.com


 

#9

جزاك الله خيرا أخي Oracle_Java

هل يمكن أن ترفع مجلد المشروع بدون المكتبات وبدون الملف war

حيث أني لم استطع استخدام المسار النسبي للملف jasper في تطبيقات web app

حاولت بـ getServletContext().getRealPath()

وكذلك بـ JRLoader.loadObject()

JasperReport report = (JasperReport) JRLoader.loadObject("/WEB-INF/report1.jasper");
JasperPrint print = JasperFillManager.fillReport(report, hm, conn);

وباءت كل محاولاتي بالفشل

300_130.gif

#10

اخى رحيلى

قمت بضغط المشروع على هيئة ارشيف

ورفعه الى سيرفر خاص

وهذا هو الرابط http://www.mediafire.com/?1ct1o8p36pek7ao

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

وهذا هو الكود المسئول عن ملأ التقرير وعرضه

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;

/**
* Servlet implementation class Report1
*/
public class Report1 extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
  * Default constructor.
  */
public Report1() {
  // TODO Auto-generated constructor stub
}

/**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
  *  	response)
  */
protected void doGet(HttpServletRequest request,
   HttpServletResponse response) throws ServletException, IOException {
  process(request, response);
}

/**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
  *  	response)
  */
protected void doPost(HttpServletRequest request,
   HttpServletResponse response) throws ServletException, IOException {
  process(request, response);
}

private void process(HttpServletRequest request,
   HttpServletResponse response) {
  try {

   request.setCharacterEncoding("UTF-8");
   response.setCharacterEncoding("UTF-8");

   String dbsurl = this.getServletContext().getRealPath(
 	"dbs/Database1.mdb");

   Connection conn = DriverManager
 	.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="
   	+ dbsurl);
   net.sf.jasperreports.engine.JasperPrint jsp = JasperFillManager
 	.fillReport(this.getServletContext().getRealPath(
   	"reps/report1.jasper"), null, conn);

   response.setContentType("application/pdf");
   JRPdfExporter exporter = new JRPdfExporter();
   exporter.setParameter(JRExporterParameter.JASPER_PRINT, jsp);
   exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response
 	.getOutputStream());
   exporter.exportReport();
  } catch (Exception e) {
   e.printStackTrace();
  }
}

}

بالتوفيق

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 5 أكتوبر 2010 في 17:35


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#11

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

300_130.gif

#12

السلام عليكم ورحمة الله وبركاته

جزاك الله خيرا أخي ORACLE_JAVA على البرنامج

وقد حولته لهيئة netbeans تسهيلا لمن يريد دراسته ممن يعمل على netbeans

وقد حذفت المكتبات غير الضرورية واقتصرت فقط على المكتبات اللازمة لعمل البرنامج

كما يظهر في الصورة التالية

post-63809-019990300 1286818449_thumb.jp

وقد وجدت أن حلك لمشكلة اللغة العربية يكمن في إضافة الخط arial.ttf ، لكن عندما أضيف الخط إلى package لا يعمل البرنامج

بل يلزم إضافته إلى دليل ال package مباشرة بحيث يكون بعد تجميع البرنامج في الملف war في المجلد classes ،

وسؤالي : هل يمكن وضعه في package ؟

مرفق المشروع بهيئة netbeans بدون مكتبات وبدون الملف war

تنبيه : يوجد مشكلة في المكتبة jasperreports-3.7.5 فلا تستخدموها واقتصروا على jasperreports-3.7.4

JasperJsp.zip

المرفقات
oracle_java.jpg

تم تعديل هذه المشاركة بواسطة rohaili في 11 أكتوبر 2010 في 20:41

1

300_130.gif

#13
rohaili كتب:

وقد وجدت أن حلك لمشكلة اللغة العربية يكمن في إضافة الخط arial.ttf ، لكن عندما أضيف الخط إلى package لا يعمل البرنامج

بل يلزم إضافته إلى دليل ال package مباشرة بحيث يكون بعد تجميع البرنامج في الملف war في المجلد classes ،

وسؤالي : هل يمكن وضعه في package ؟

مرفق المشروع بهيئة netbeans بدون مكتبات وبدون الملف war

تنبيه : يوجد مشكلة في المكتبة jasperreports-3.7.5 فلا تستخدموها واقتصروا على jasperreports-3.7.4

شكرا لك اخى رحيلى

بالنسبة لحل مشكلة اللغة العربية فى ال pdf فى التقرير

لاحظ كود التقرير واستخدام الخط arial.ttf

post-165385-074084500 1287050667_thumb.p

ملحوظة :

يمكنك وضع الملف arial.ttf فى المسار c:\program files\java\jdk1_6_0_21\jre\lib\ext

وبهذا تستطيع استخدامه فى اى تطبيق على نفس الجهاز

ولكن اظنها طريقة سيئة ولا اؤيد استخدامها

اما بالنسبة للغة العربية مع قواعد البيانات access

فهى تمثل مشكلة ولحلها يجب كتابة الكود التالى فى بداية المشروع

ٍٍSystem.setProperty("file.encoding","windows-1256");

عموما مرفق ملف نصى مع المشروع به بعض الملحوظات

وهذا رابط التحميل

http://www.mediafire.com/?wjh9jv2a999b25r

تحياتى

المرفقات
untitled.PNG

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 14 أكتوبر 2010 في 13:13

1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#14

السلام عليكم ورحمة الله وبركاته

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

فعلا كما قلت ويمكن عمل ذلك في برنامج ireport كالتالي

حدد العناصر التي سوف تعرض النص العربي ثم غير الخصائص الثلاث التالية كما ترى في الصورة التالية (المحاطة بالمستطيل الأسود )

post-63809-087038000 1287583241_thumb.jp

المرفقات
arial.jpg

300_130.gif

#15

يا شباب الرجاء عدم الرفع على خوادم غير خادم الفريق

لا نريد أن نفقد هذه الملفات

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#16
Oracle_Java كتب:

المشروع بحجم 9 ميجا

لذلك لم استطع ارفاقه فى المشاركة

ولكننى فى اثناء كتابة هذا الرد اقوم برفعه على ال4shared

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

مرحبا اخى علاء

كنا نتمنى لو نستطيع الرفع على المنتدى

لكن كما ترى فى الاقتباس الحجم 9 ميجا

نورت الموضوع

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#17

لماذا كل هذا الحجم؟

هل هناك مكتبات كثيرة

يمكننا أن نقوم برفع المشروع بدون المكتبات ونشير إلى مكان يستطيع منه الأخ تحميل المكتبات

على كل شكراً على الاستجابة :) الآخرين حسابهم معي عسير ph34r.gif

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة