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

عندما يصدر تقرير jasper البيانات لإكسل الخانة المكونة من 10 ارقام تصبح 9

بدأه rohaili في 18 ديسمبر 2010 · 19 رد · 1,317 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عملت تقرير jasper يقوم بتصدير البيانات من جدول mysql إلى ملف إكسل ، ويوجد في هذا الجدول بعض الخانات المكونة من 10 أرقام ومحفوظة في الجدول كنص ، وعند تجربة التقرير على جهازي يعمل بشكل صحيح لكن عند رفعه على الموقع وتجربته فإن

ملف الإكسل الناتج تظهر فيه الخانة مكونة من 9 أرقام فقط ، أي ناقصة رقم .

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

300_130.gif

#2

أظن لو وضعت الكود ستجد من يساعدك

#3

في ملف الاكسل الناتج من برنامجك

هل يعتبر العمود الذي فيه المشكله رقم أو نص ،

لو اضفت الكود سيكون معرفة المشكله اسرع .

#4

هذه أوامر ال servlet

String fileName = this.getServletContext().getRealPath("reports/exstda.jasper");

        Map<String, String> hm;
        hm = new HashMap<String, String>();

        hm.put("schid", request.getParameter("schid"));        
        Connection conn;
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "user", "pass");
            JasperPrint print = JasperFillManager.fillReport(fileName, hm, conn);

            JRXlsExporter exxls = new JRXlsExporter();

            exxls.setParameter(JRExporterParameter.JASPER_PRINT, print);

            response.setContentType("application/vnd.ms-excel");

            exxls.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());

            exxls.exportReport();

        } catch (JRException ex) {
        } catch (SQLException ex) {
        }

ومرفق ملف التقرير بهيئة jrxml وملف الاكسل الناتج عند تطبيق البرنامج على جهازي أما تطبيق البرنامج على الانترنت فإنه يقتص رقما من اليمين أي رقم الآحاد من الاعمدة التي تتكون من عشرة أرقام فقط

أما تنسيق البيانات في العمود فأظنه عام أو نص كما ترون في الصورة

post-63809-088681600 1292785579_thumb.jp

ملاحظة : عند التصدير في الموقع باستخدام phpmyadmin لملف اكسل يحفظ العمود الاول كما هو عشرة ارقام بدون أخطاء .

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

exstda.zip

exstdae8d80835.zip

المرفقات
2.jpg

تم تعديل هذه المشاركة بواسطة rohaili في 19 ديسمبر 2010 في 22:22

300_130.gif

#5

في الملفات المرفقه ما فيه شيء واضح ..

بالنسبه لملف xls الحقل الاول "رقم الطلب" يحتوي على 10 ارقام.

في الملف xls الذي ترى في المشكله تأكد من ان نوع (انه ليس رقم ) ، ثم اخبرنا

#6

النوع عام

post-63809-014680300 1292942104_thumb.jp

ملاحظة : تنسيق العود في المصدر mysql هو نص

لكن عند التصدير لاكسل أجد أنه حفظ بتنسيق عام

post-63809-013351300 1292942251_thumb.jp

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

المرفقات
3.jpg4.jpg

300_130.gif

#7

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

صدرت التقرير الى pdf وظهرت نفس المشكلة في الموقع لكنها لا تظهر في جهازي

ما زالت الخانة التي تحتوي على عشرة ارقام تظهر تسعة ارقام منها فقط

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

تم تعديل هذه المشاركة بواسطة rohaili في 22 فبراير 2011 في 22:07

300_130.gif

#8

المشكلة تحصل مع الأرقام فقط؟

إن كان كذلك اتوقع أن تكون مشكلة في الـ API الخاصة بهم وغالبية ما تكون مشكلة في النوع المستخدم int أو long

بالطبع قد أكون أغرد خارج السرب لأني لا أعرف شيء عن Jasper

لكني رأيت هذه المشكلة تحدث مع الكثير من ضمنهم محترفون حقيقيون

ولا أظن أن محاولة الاستكشاف قد تضر

تحياتي

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

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

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

728x90.png

#9

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

المشكلة تحصل مع الارقام فقط المحفوظة كرقم أو كنص ، حيث عندي عمود رقم int unsigned احفظ فيه عشرة ارقام ، وكذلك عندي عمود نص احفظ فيه عشرة ارقام وفي كلاهما يظهر التقرير ناقص رقم الاحاد سواء xls أو pdf

وما يزيد الطين بلة أن التقريران يعملان بشكل صحيح على جهازي أي أن المشكلة في الموقع وكذلك عندما استخدم phpmyadmin لا تظهر المشكلة اي ان الارقام تظهر عشرة ارقام صحيحة

هل يمكن ان تدلني على المكان الذي يمكن البحث فيه عن حل لهذه المشكلة التي أرقتني كثيرا

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

300_130.gif

#10

لو كنت تستطيع فتح الشيفرة التي تقوم بإنشاء الملف فقم بذلك

لكني أستعجب موضوع النص هذا

على كل هل VM الموجودة على موقعك قديمة نوعاً ما؟

أحياناً يكون هناك bugs في الإصدارات القديمة

تعالج فيما بعد على الإصدارات الجديدة وهذا يفسر لماذا تعمل على جهازك ولا تعمل على الخادم

بالنسبة لمكان يعالج هذه الأمور

أرشح الدعم الفني لهؤلاء القوم

ربما لو كان لديهم منتديات فيمكنك التواصل هناك

لكن حاول أن لا تعطيهم أشياء خادعة

أقصد جرب كل شيء قبل الذهاب إليهم حتى تكون قادر على وصفها بشكل جيد

تحياتي

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 24 فبراير 2011 في 06:39

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

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

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

728x90.png

#11

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

هل تقصد بالشفرة ملف xml الخاص بالتقرير فهذا يمكن فتحه ولم أجد فيه ما يشير الى هذه المشكلة

أما الجافا على الموقع فهي 1.6 و tomcat 6

الدعم لم يرد حتى الآن

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

300_130.gif

#12

أقصد الشيفرة التي تنفذ ملف الـ xml :)

تأكد من الـ minor بمعنى 1.6 update رقم ؟؟؟

تحياتي

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

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

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

728x90.png

#13

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

أين أجد ال minor

الدعم يقول ليس الامر متعلق بهم وهذا ردهم

It is not related to EATJ hosting. You may config jasper to reslove the problem

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

300_130.gif

#14

فعلا اظنها من التقرير jasper او من الاكسيل

جارى الاطلاع


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

الأنفال ۳۳                                  
 

#15

جزاك الله خير

ليست من إكسل لانها حدثت مع تقرير pdf أيضا

كما يمكن تصدير جدول من قاعدة البيانات باستخدام myphpadmin لملف إكسل دون حدوث هذه المشكلة

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

300_130.gif

#16

عزيزى رحيلى

جرب التقرير بعد التعديل عليه وهو فى المرفقات

exstda.zip

تحياتى


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

الأنفال ۳۳                                  
 

#17

جزاك الله خير

هذه النتيجة

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Servlet execution threw an exception


root cause 

java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/StandardClassLoader) previously initiated loading for a different type with name "groovy/lang/GroovyObject"
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:621)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	java.net.URLClassLoader.access$000(URLClassLoader.java:56)
	java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	java.security.AccessController.doPrivileged(Native Method)
	java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	java.lang.ClassLoader.defineClass1(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:621)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	java.net.URLClassLoader.access$000(URLClassLoader.java:56)
	java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	java.security.AccessController.doPrivileged(Native Method)
	java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallCurrentSite(CallSiteArray.java:84)
	org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
	org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
	org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
	exstda_1298822707286_968524.customizedInit(calculator_exstda_1298822707286_968524:115)
	net.sf.jasperreports.engine.fill.JREvaluator.init(JREvaluator.java:83)
	net.sf.jasperreports.engine.fill.JRCalculator.init(JRCalculator.java:109)
	net.sf.jasperreports.engine.fill.JRFillDataset.initCalculator(JRFillDataset.java:433)
	net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:585)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:76)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:86)
	net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:56)
	net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
	net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:52)
	net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
	net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
	bean.exstda.processRequest(exstda.java:34)
	bean.exstda.doPost(exstda.java:80)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.14

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

300_130.gif

#18

ما هذا

انا قمت بتغيير السعة او width للحقل "رقم الطالب" فقط فلماذا هذا الاستثناء

على كل اترك التقرير الخاص بى

افتح التقرير الذى يعمل معك الان على جهازك وبه المشكلة

تأكد من ان نوع الحقل java.lang.String فى نافذة الخصائص properties

ثم قم بالضغط على الخلية التى يعرض فيها رقم الطالب id

واذهب الى properties وقم بتغيير الخاصية width الى 68 على الاقل وليس اقل من ذلك

واعد تنسيق التقرير واحفظ التغييرات وجرب التقرير

بانتظار ردك

تحياتى


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

الأنفال ۳۳                                  
 

#19

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

حلت المشكلة حيث جعلت عرض العمود 70 !!!!!!!!!!!!!!!

وسأجرب مع البقية .

الاستثناء السابق كان بسبب اصدار groovy حيث نسيت تغيير الاصدار حيث جربت اصدار اقدم .

ماذ أفعل مع الحقول التي تحتوي على نص طويل هل يجب أن أجعل عرض العمود في التقرير عريضا بما يكفي لاظهار جميع النص مع العلم أني أريد التصدير لإكسل ؟!

الحقيقة أن هذه المشكلة أرقتني كثيرا واستغرقت من وقتي عدة أشهر فجزاك الله خيرا على هذا الحل .

300_130.gif

#20

الحمد لله

لابد من تغيير عرض او اتساع الحقل ليظهر النص كاملا

حتى لايسبب مشكلة عند التصدير الى اى نوع سواء xls, pdf , html او غيرهم

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

موفق اخى رحيلى


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

الأنفال ۳۳                                  
 

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…