انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: إنشاء التقارير JasperReports مع iReport
صفحة 1 من اصل 1 • شاطر
انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.
أهلا وسهلا بكم إخواني الكرام
بالإضافة إلى إستخدام قواعد البيانات و الجدوال #JTable لملئ التقارير بالبيانات، يتيح لنا المكتبة #JasperReports استخدام كائنات الـ Java القديمة _ (POJOs) أختصارا Plain Old Java Objects_ كمصادر بيانات ويتم إنشاء تلك الكائنات فى فئة تسمي #JavaBeans وهى فئة مخصصة تتيح للمستخدم الوصول للكائنات التى تحتويها من خلال عدد من أساليب "getter" و "setter"
لنقم بإنشاء كائن Java يمكن استخدامه كمصدر بيانات لمثالنا باتباع الخطوات التالية :
1_إنشاء الفئة JavaBeans بإسم Student بها ثلاث كائنات id,name,job كما هو موضح :
2_ إفتح قالب التقرير JRXML لانشاء الحقول كما يلي:
3_ثم إنشاء مربعات النصوص :
ملحوظة :
يمكنك الاستغناء عن كتابة الشفرات فى الخطوة الثانية و الثالثة اعلاه و إستخدام الواجهة الرسومية لإنشاء حقول البيانات في ملف xml تلقائا بدون كتابة اى شفرات على النحو التالى :
_استدعاء نافذة Report query
_ويتم إستدعاء تلك النافذة أما من خلال النقر على ايقونة query أو من خلال تحديد ايقونة التقرير وبالنقر على رز الفارة الايمن تظهر قائمة فاختر منها Edit Query...لتظهر لك نافذة Report query
_ من نافذة Report query قم بتحديد التويب JavaBeans Datasource ومن خلال مربع النص class Name قم بكتابة اسم ملف JavaBeans ثم قم بالنقر على زر الامر read Attrbutes ليقوم بقراءة الحقول بالملف ثم أضف تلك الحقول للتقرير من خلال النقر على زر الامر add select filde ثم النقر ok كما فى الصورة التالية
_الان ستجد حقول البيانات الموجودة فى الفئة كما فى الصورة التالية .... يمكنك سحب و إفلات الحقول الثلاثة الى التقرير كما هو موضح فى الصورة التالية :
الخطوة الرابعة :إنشاء مجموعة بيانات التى سيتم تمريرها للتقرير وليكن بإسم fill_Data وذلك على النحو التالى :
الخطوة الخامسة :عرض و تشغيل التقرير وذلك بتمرير البيانات التى تم جلبها من مجموعة البيانات fill_Data الى الكائن JRBeanCollectionDataSource على النحو التالى :
بالإضافة إلى إستخدام قواعد البيانات و الجدوال #JTable لملئ التقارير بالبيانات، يتيح لنا المكتبة #JasperReports استخدام كائنات الـ Java القديمة _ (POJOs) أختصارا Plain Old Java Objects_ كمصادر بيانات ويتم إنشاء تلك الكائنات فى فئة تسمي #JavaBeans وهى فئة مخصصة تتيح للمستخدم الوصول للكائنات التى تحتويها من خلال عدد من أساليب "getter" و "setter"
لنقم بإنشاء كائن Java يمكن استخدامه كمصدر بيانات لمثالنا باتباع الخطوات التالية :
1_إنشاء الفئة JavaBeans بإسم Student بها ثلاث كائنات id,name,job كما هو موضح :
- الكود:
public class Student implements java.io.Serializable {
private int id;
private String name,job;
public void setId(int id)
{ this.id = id; }
public int getId()
{ return id; }
public void setName(String name)
{ this.name = name; }
public String getName()
{ return name; }
public void setJob(String job)
{ this.job= job; }
public String getJob()
{ return job; }
}
2_ إفتح قالب التقرير JRXML لانشاء الحقول كما يلي:
- الكود:
<field name="id" class="java.lang.Integer">
<fieldDescription><![CDATA[id]]></fieldDescription>
</field>
<field name="job" class="java.lang.String">
<fieldDescription><![CDATA[job]]></fieldDescription>
</field>
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
3_ثم إنشاء مربعات النصوص :
- الكود:
<textField>
<reportElement x="257" y="61" width="100" height="20" uuid="e98f9aaa-93b1-4be2-a7bf-637004d8abfe"/>
<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="383" y="96" width="100" height="20" uuid="73f60c6d-bc3e-4bfd-8596-31699e98a7ff"/>
<textFieldExpression><![CDATA[$F{job}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="178" y="78" width="100" height="20" uuid="22419a2d-c4cd-47de-baa1-ac5c8b42f001"/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
ملحوظة :
يمكنك الاستغناء عن كتابة الشفرات فى الخطوة الثانية و الثالثة اعلاه و إستخدام الواجهة الرسومية لإنشاء حقول البيانات في ملف xml تلقائا بدون كتابة اى شفرات على النحو التالى :
_استدعاء نافذة Report query
_ويتم إستدعاء تلك النافذة أما من خلال النقر على ايقونة query أو من خلال تحديد ايقونة التقرير وبالنقر على رز الفارة الايمن تظهر قائمة فاختر منها Edit Query...لتظهر لك نافذة Report query
_الان ستجد حقول البيانات الموجودة فى الفئة كما فى الصورة التالية .... يمكنك سحب و إفلات الحقول الثلاثة الى التقرير كما هو موضح فى الصورة التالية :
الخطوة الرابعة :إنشاء مجموعة بيانات التى سيتم تمريرها للتقرير وليكن بإسم fill_Data وذلك على النحو التالى :
- الكود:
private List<Student> data = new LinkedList<Student>();
private Collection fill_Data()
{
Student j = new Student();
j.setId(1);
j.setName("أحمد مناع");
j.setJob("محاسب");
j.setId(2);
j.setName("سيد حامد");
j.setJob("تاجر");
j.setId(3);
j.setName("محمود عبد الغني");
j.setJob("محاسب");
data.add(j);
return data;
}
الخطوة الخامسة :عرض و تشغيل التقرير وذلك بتمرير البيانات التى تم جلبها من مجموعة البيانات fill_Data الى الكائن JRBeanCollectionDataSource على النحو التالى :
- الكود:
import java.io.InputStream;
import java.util.Collection;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import img1.Student;
import java.util.LinkedList;
import java.util.List;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class NewMain {
private List<Student> data = new LinkedList<Student>();
private Collection fill_Data()
{
Student j = new Student();
j.setId(1);
j.setName("أحمد مناع");
j.setJob("محاسب");
j.setId(2);
j.setName("سيد حامد");
j.setJob("تاجر");
j.setId(3);
j.setName("محمود عبد الغني");
j.setJob("محاسب");
data.add(j);
return data;
}
public void FillReport(){
try {
//الحصول على مسار التقرير
InputStream Report =this.getClass().getResourceAsStream("/report/pppp.jasper");
//تعبئة التقرير من قاعدة البيانات باستخدام الكائن JRResultSetDataSource
JasperPrint jasperPrint = JasperFillManager.fillReport(Report,null,new JRBeanCollectionDataSource(fill_Data()));
//تشغيل وعرض التقرير
JasperViewer.viewReport(jasperPrint,false);
} catch (JRException ex) {
Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args) {
new NewMain().FillReport();
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.
الله يكرمك يا استاذ احمد على شرحك
vbcoder- ....
- تاريخ التسجيل : 18/11/2018
المساهمات : 51
النقاط : 81
التقيم : 4
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: إنشاء التقارير JasperReports مع iReport
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 1:38 pm من طرف moslema_r
» تصميم تطبيق جوال لمغسلة ملابس
الخميس سبتمبر 05, 2024 7:22 am من طرف mona mohamed
» تصميم تطبيق جوال لشركة عقارات
الأربعاء سبتمبر 04, 2024 11:34 am من طرف mona mohamed
» شركة مكافحة النمل الابيض بالرياض
الثلاثاء سبتمبر 03, 2024 7:04 pm من طرف moslema_r
» تصميم تطبيق جوال لنقل الاثاث
الإثنين سبتمبر 02, 2024 12:08 pm من طرف mona mohamed
» هناجر
السبت أغسطس 31, 2024 7:25 pm من طرف moslema_r
» تصميم تطبيق جوال لمتجر ورد
الخميس أغسطس 29, 2024 7:16 am من طرف mona mohamed
» تصميم تطبيق جوال لسلسلة مطاعم
الثلاثاء أغسطس 27, 2024 7:42 am من طرف mona mohamed
» تصميم تطبيق جوال لتوصيل الطلبات
الأحد أغسطس 25, 2024 7:38 am من طرف mona mohamed
» مظلات سيارات متحركة
الخميس أغسطس 22, 2024 8:30 pm من طرف moslema_r