الوقت/التاريخ الآن هو الجمعة أبريل 19, 2024 4:06 am

2 نتيجة بحث عن JavaBeans

انشاء تقارير JasperReports مع iReport ...مقال 10_التعامل مع مصادر البيانات _ملفات Excel كمصدر للبيانات

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

مازلنا مع مقالات إنشاء تقارير المكتبة تقارير #JasperReports مع الواجهة الرسومية #iReport وتعلمنا فى مقالات سابقة كيفية إستخدام قواعدة البيانات كمصدر لملئ بيانات التقرير الخاص بنا ليس ذلك فحسب بل تعلمنا كيفية إستخدام المكون #Jtable وايضا فئات #JavaBeans كمصادر لبيانات التقرير .

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

1_ قم بالنقر على ايقونة Report Datasource

الوسم javabeans على المنتدى منتدى مصر التقني 435614416

2_سيتم فتح مربع الحوار Connections / Datasource قم بالنقر على زر الامر New

الوسم javabeans على المنتدى منتدى مصر التقني 553407284

3_سيتم فتح مربع حوار آخر من هنا ، حدد الخيار احد الخيارات التالية وانقر فوق "التالي".


  • Microsoft Excel(xls) data source ويتم تحديد هذا الخيار اذا كنت تستخدم إصدار قديم من الاكسل 2000 حتى 97
  • Microsoft Excel 2007(xlsx) data source ويتم تحديد هذا الخيار بدء من إصدار 2007 حتى 2010


وبما إننا نستخدم ملف أكسل 2007 فاننا سنحدد الخيار الثاني :

الوسم javabeans على المنتدى منتدى مصر التقني 754240934


4_سوف تفتح نافذة أخرى.تريد منك تحديد بعض التفاصيل كما فى الصورة التالية :

الوسم javabeans على المنتدى منتدى مصر التقني Excell+datasource2

حيث أن :

  • name :وضع اسم لمصدر البيانات لاستخداما فيما بعد
  • Excell file :فى هذه الخانة يتم تحديد مسار ملف الاكسل لقرائتة


بعد ذلك انقر فوق "Get Columns name from the first row" لبدء قراة الملف بداية من الصف الاول

5_قم باستدعاء نافذة Query Editor ثم أختر التويب Excell Datasource ثم قم بالنقر على رز الامر getfields from datasource لتجد الحقول كما فى الشكل التالى :

الوسم javabeans على المنتدى منتدى مصر التقني Excell+datasource3

6_عد إلى منطقة تصميم iReport.وقم بسحب وإسقاط الحقول التي تريد استخدامها على اى منطقة بالتقرير و النتيجة :

الوسم javabeans على المنتدى منتدى مصر التقني Excell+datasource4
من طرف أحمد مناع
في الثلاثاء سبتمبر 24, 2019 10:17 am
 
ابحث في: إنشاء التقارير JasperReports مع iReport
موضوع: انشاء تقارير JasperReports مع iReport ...مقال 10_التعامل مع مصادر البيانات _ملفات Excel كمصدر للبيانات
المساهمات: 2
مشاهدة: 992

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

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

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



[size=18]ملحوظة :[/size]

يمكنك الاستغناء عن كتابة الشفرات فى الخطوة الثانية و الثالثة اعلاه و إستخدام الواجهة الرسومية لإنشاء حقول البيانات في ملف xml تلقائا  بدون كتابة اى شفرات على النحو التالى :


_استدعاء نافذة Report query

الوسم javabeans على المنتدى منتدى مصر التقني 454780793


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


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

الوسم javabeans على المنتدى منتدى مصر التقني 977447080


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

[size=16]
الوسم javabeans على المنتدى منتدى مصر التقني 340922894
[/size]



الخطوة الرابعة :إنشاء مجموعة بيانات التى سيتم تمريرها للتقرير وليكن بإسم 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();
 
    }
}
من طرف أحمد مناع
في الجمعة سبتمبر 20, 2019 9:32 pm
 
ابحث في: إنشاء التقارير JasperReports مع iReport
موضوع: انشاء تقارير JasperReports مع iReport ...مقال 9 _التعامل مع مصادر البيانات_ JavaBeans كمصدر بيانات.
المساهمات: 1
مشاهدة: 1009

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

انتقل الى: