منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.

اذهب الى الأسفل

JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. Empty انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.

مُساهمة من طرف أحمد مناع الجمعة سبتمبر 20, 2019 9:32 pm

أهلا وسهلا بكم إخواني الكرام 

بالإضافة إلى إستخدام قواعد البيانات و الجدوال #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

JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. 454780793


 _ويتم إستدعاء تلك النافذة أما من خلال النقر على ايقونة query أو من خلال تحديد ايقونة التقرير وبالنقر على رز الفارة الايمن تظهر قائمة فاختر منها Edit Query...لتظهر لك نافذة Report query 


JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. 721835210
_ من نافذة  Report query قم بتحديد التويب JavaBeans Datasource ومن خلال مربع النص class Name قم بكتابة اسم ملف JavaBeans ثم قم بالنقر على زر الامر read Attrbutes ليقوم بقراءة الحقول بالملف ثم أضف تلك الحقول للتقرير من خلال النقر على زر الامر add select filde ثم النقر ok كما فى الصورة التالية

JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. 977447080


_الان ستجد حقول البيانات الموجودة فى الفئة كما فى الصورة التالية .... يمكنك سحب و إفلات الحقول الثلاثة الى التقرير كما هو موضح فى الصورة التالية :


JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. 340922894



الخطوة الرابعة :إنشاء مجموعة بيانات التى سيتم تمريرها للتقرير وليكن بإسم 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();
 
    }
}

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. Empty رد: انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.

مُساهمة من طرف vbcoder السبت أكتوبر 26, 2019 4:47 pm

الله يكرمك يا استاذ احمد على شرحك  JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. 1f44f  JavaBeans -  انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات. 1f44f
vbcoder
vbcoder
....
....

تاريخ التسجيل : 18/11/2018
المساهمات : 51
النقاط : 81
التقيم : 4
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى