الوقت/التاريخ الآن هو الجمعة أغسطس 07, 2020 1:32 am

3 نتيجة بحث عن jrxml

انشاء تقارير JasperReports مع iReport ...مقال 6 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..2_تضمين إستعلامات SQL بالمعالج

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

فى مقال سابق تحدثنا عن مصادر البيانات وهى المصادر التى يمكنك إستخدامها لملىء وتعبئة التقارير بالبيانات وتعلمنا كيفية استخدام قواعد البيانات كمصدر للبيانات و أوضحنا ان هناك طرقتين لانشاء تقارير ديناميكة منها طريقة تضمين تضمين إستعلامات SQL في قالب تقرير #JRXML ,و أوضحنا ايضا كيفية فعل ذلك باستخدام الشفرة أو الاكواد ...فى هذا المقال مازلنا مع هذة الطريقة ولكن بإستخدام المعالج

تضمين إستعلامات SQL في قالب تقرير JRXML بإستخدام المعالج :

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

الخطوة الاولى : انقر على أيقونة مصادر البيانات الموضحة حول يمين القائمة المنسدلة ، كما هو موضح في الصورة التالية :

الوسم jrxml على المنتدى منتدى مصر التقني 276521801

سيتم فتح نافذة جديدة باسم Connections / Datasources ، كما هو موضح في الصورة التالية. هذه النافذة تسرد مصدر بيانات Empty datasource وكذلك مصادر البيانات التي قمت بها حتى الآن.

الوسم jrxml على المنتدى منتدى مصر التقني 628174944

الخطوة الثانية :انقر فوق الزر "New" الظاهر في أعلى يمين النافذة السابقة. سيؤدي هذا إلى فتح نافذة Datasource تلك النافذة تحتوي على عدة أنواع مصادر مختلفة للبيانات كما هو موضح في الشكل التالى :


الوسم jrxml على المنتدى منتدى مصر التقني 397085067

الخطوة الثالثة :فى النافذة اعلاه ستجد أن مصدر البيانات Database JDBC connection قد تم تحديده تلقائيا والذى يستخدم للتعامل مع قواعدة بيانات مختلفة منها MySql ,PostgreSQL,HSQLDB ,Acsess ..الخ لكن فى هذا المقال نستخدم قاعدة بيانات #JavaDb لذلك سنقوم بتحديد الخيار NetBeans Database JDBC connection ثم النقر على زر Next كما فى الصورة التالية :

الوسم jrxml على المنتدى منتدى مصر التقني 416147080

الخطوة الرابعة :ستفتح لك النافذة التالية قم بتسمية نص الاتصال database connection وليكن باسم PG فى المربع المخصص له ثم من القائمة المنسدلة ستجد كافة قواعد البيانات التى تم انشائها من خلال NetBeans أختر قاعدة البيانات التى تعمل عليها_فى مثالنا الحالى Employees _كما فى الشكل التالى :

الوسم jrxml على المنتدى منتدى مصر التقني 910566703


الخطوة الخامسة : انقر فوق الزر Test لاختبار اتصال قاعدة البيانات الجديدة. في حالة نجاحه الاتصال ، ستظهر رسالة Connection test successfu

الخطوة السادسة : انقر فوق الزر "Save" لحفظ الاتصال المنشأ حديثًا. وسترى نافذة "Connections / Datasources" كما هو موضح في الشكل التالى:

الوسم jrxml على المنتدى منتدى مصر التقني 761984102

الخطوة السابعة : إنشاء استعلام التقرير أو جملة SQL وذلك من خلال استدعاء نافذة Report query

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


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

الوسم jrxml على المنتدى منتدى مصر التقني 523404303

الخطوة الثامنة :انقر نقرًا مزدوجًا على عقدة Fields في نافذة Report Inspector على يسار تقريرك. و إظهار اسم الحقول كما فى الشكل التالى :
الوسم jrxml على المنتدى منتدى مصر التقني 154464777

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

الوسم jrxml على المنتدى منتدى مصر التقني 340922894

الخطوة العاشرة :عرض و تشغيل التقرير بإستخدام نفس الشفرة التى تم استخدامها فى الطريقة وهى على النحو التالى :

الكود:

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
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;

public class NewMain {

  
    
   public  void FillReport(){
    
    String host = "jdbc:derby://localhost:1527/Employees";
    String username = "US";
    String password = "US";
    Connection con=null;
        
        try {
            
            //إنشاء نص الاتصال بقاعدةالبيانات
             con = DriverManager.getConnection( host, username, password );
            
            //الحصول على مسار التقرير
            InputStream Report =this.getClass().getResourceAsStream("/report/pppp.jasper");
            
            //تعبئة التقرير من قاعدة البيانات  
            JasperPrint jasperPrint = JasperFillManager.fillReport(Report,null,con);
            
            //تشغيل وعرض التقرير
            JasperViewer.viewReport(jasperPrint,false);
              
              
        } catch (SQLException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        } catch (JRException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        }
        
      
   }
    
  
    public static void main(String[] args) {
        
       new NewMain().FillReport();
  
    }
}



النتيجة على النحو التالى :

الوسم jrxml على المنتدى منتدى مصر التقني 680125211
من طرف أحمد مناع
في الأربعاء سبتمبر 18, 2019 8:40 pm
 
ابحث في: إنشاء التقارير JasperReports مع iReport
موضوع: انشاء تقارير JasperReports مع iReport ...مقال 6 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..2_تضمين إستعلامات SQL بالمعالج
المساهمات: 2
مشاهدة: 388

انشاء تقارير JasperReports مع iReport ...مقال 3_إنشاء اول تقرير لك Static Report

أهلا بكم أخوانى الكرام

فى هذا المقال التعليمى سنتعلم سويا كيفية إعداد تقرير بسيط من تقارير المكتبة #JasperReports وذلك من خلال الواجهة الرسومية لانشاء تلك التقارير #iReport ...وقد تحدثنا فى مقال سابق عن كيفية تثبيت اضافات تلك المكتبة سواء من خلال محرر #NetBeans أو حتى من خلال التثبيت المستقل لبرنامج Jaspersoft Studio

الان ، دعني أريك ، كيفية إعداد تقرير بسيط Static Report _بمعنى انه لن يتم ملىء ببيانات من قاعدة البيانات_ و ذلك من خلال المحرر NetBeans....

1_ قم بفتح محرر NetBeans من قائمة مشروع ثم قم بالنقر على زر الفارة الايمن على الحزمة package التى تريد وضع التقرير بها ثم أختر من القائمة التى ستظهر الامر New ...ثم الامر  Empty Report أو يمكنك استخدام المعالج Report Wizard _سيتم مناقشة فى وقت لاحق_ كما فى الصورة التالية :

الوسم jrxml على المنتدى منتدى مصر التقني Report1

 أذا لم يكن الامر Empty Report ظاهر بالقائمة يمكن استخدام الامر Other كما فى الصورة التالية :

الوسم jrxml على المنتدى منتدى مصر التقني Figura31

 ليظهر لك المربع الحوارى التالى فاختر منه الامر Empty Report

الوسم jrxml على المنتدى منتدى مصر التقني Figura41

2_قم بوضع اسم مناسب للتقرير ثم انقر على finsh كما فى الصورة التالية :

الوسم jrxml على المنتدى منتدى مصر التقني Figura51

 ليظهر لك المكون الرسومي #iReport فى بيئة #NetBeans مع كافة الادوات المساعدة لانشاء تقريرك كما فى الشكل التالى :

الوسم jrxml على المنتدى منتدى مصر التقني Figura6-mod


وهكذا نكون قد إنشائنا تقرير فارغ أو ملف بإمتداد JRXML

3_من القائمة Palette _القائمة رقم 4_ قم بسحب العنصر الرسومى Static Text الى منصة التقرير فى منطقة التفاصيل Detail

الوسم jrxml على المنتدى منتدى مصر التقني Chapter4_4

4_ الان يمكن تحرير العنصر الرسومى Static Text وكتابة ما تريد ظهورة من بيانات فى التقارير أما بالنقر المزدوج عليه أم من نافذة الخصائص على النحو التالى :

الوسم jrxml على المنتدى منتدى مصر التقني 558306339


5_ بعد ما تم الانتهاء من كتابة بيانات التقرير الخطوة الاخيرة هو تجميع التقرير أو بمعنى اوضح عمل #Compiling للملف JRXML حيث أنه بعد كل الخطوات السابقة قد قمنا بإنشاء تقرير أو ملف بإمتداد #JRXML لا يمكن استخدام تلك الملفات مباشرة لعرض التقارير. لذلك يجب أن يتم تجميعها
في شكل ثنائي تسمى قوالب التقرير المترجمة و تكون بإمتداد jasper

و هناك طريقتان لتجميع ملفات JRXML إلى ملفات Jasper إما القيام بذلك برمجيًا ، أو يمكننا القيام بذلك من خلال مهمة ANT المتوفرة بواسطة المكتبة JasperReports.

الطريقة الاولى :تحويل قالب التجميع JRXML الى قالب الترجمة Jasper برمجيا ويتم ذلك باستخدام الاسلوب compileReportToFile التابع للفئة JasperCompileManager على النحو التالى :
الكود:


JasperCompileManager.compileReportToFile(String sourceFileName,
String destFileName).


حيث أن :
_sourceFileName ....مسار ملف التجميع JRXML
_destFileName ..... مسار الاخراج لملف الترجمة Jasper

مثال :
الكود:
JasperCompileManager.compileReportToFile(
            "designFile.jrxml", //Relative or absoulte path to the .jrxml file to compile
            "compiled.jasper"); //Relative or absolute path to the compiled file .jasper



الطريقة الثانية :من خلال مهمة ANT المتوفرة بواسطة المكتبة JasperReports....ويتم ذلك أما من خلال تحديد التقرير من نافذة Report Inspector ثم النقر بزر الفارة الايمن ومن القائمة التى ستظهر اختر منها الامر Compile Report أو النقر مباشرة على ايقونة التجميع كما فى الصورة التالية :
الوسم jrxml على المنتدى منتدى مصر التقني 610103441

وهكذا نكون قد انتهيا من تصميم و ترجمة تقرير بسيط الى اللقاء فى مقال قادم عن كيفية تشغيل و عرض التقارير من خلال تطبيقات الجافا
من طرف أحمد مناع
في الإثنين سبتمبر 16, 2019 9:22 pm
 
ابحث في: إنشاء التقارير JasperReports مع iReport
موضوع: انشاء تقارير JasperReports مع iReport ...مقال 3_إنشاء اول تقرير لك Static Report
المساهمات: 0
مشاهدة: 220

انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة

بسم الله الرحمن الرحيم

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

_مصدر البيانات datasources :هو ما يستخدمه المكتبة #JasperReports للحصول على البيانات لتوليد تقارير دينامكية المحتوي وتوجد عدة مصادر يمكنك استخدامها وهى على النحو التالى :



  • Databases

  • TableModels

  • Java objects

  • XML fles



و سنناقش في هذا المقال كيفية استخدام قواعد البيانات databases كمصدر بيانات datasources . أما فى المقالات التالية سوف يناقش الانواع الاخرى من مصادر البيانات

توليد تقارير ديناميكي باستخدام قاعدة البيانات كمصدر للبيانات


هناك طريقتان لإنشاء تقارير من قاعدة البيانات وهما :


  1. الاولى : بتضمين إستعلامات SQL في قالب تقرير JRXML 
  2. الثانية :  بتمرير البيانات من قاعدة البيانات إلى التقرير بإستخدام JRResultSetDataSource 



فى هذا المقال سنشرح الطريقة الاولى _أما الطريقة سنتعرف عليها فى مقالات لاحقة _لذلك قبل أن نبدء ندعونا نفترض أن لدينا قاعدة بيانات باسم Employees وتحتوي على جدول باسم Info بالحقول التالية :


INTEGERId
VARCHARName
VARCHARJob


هذا الجدول يحتوى على البيانات التالية :


الوسم jrxml على المنتدى منتدى مصر التقني 127532907


تضمين إستعلام SQL في قالب تقرير JRXML  ويتم ذلك بطريقتين:

1_الطريقة الاولى : تضمين إستعلام SQL برمجيا بإستخدام الشفرة 
2_الطريقة الثانية : تضمين إستعلام SQL بإستخدام المعالج         


وفى هذا المقال سنركز على الطريقة الاولى 

تضمين إستعلام SQL في قالب تقرير JRXML بإستخدام الشفرة :ويتم ذلك باتباع الخطوات التالية :

الخطوة الاولى :أذهب الى التويبب XML لتفتح لك ملف xml لكتابة بعض الشفرات في قالب تقرير #JRXML كمافى الصورة التالية :

الوسم jrxml على المنتدى منتدى مصر التقني 858605804

الخطوة الثانية :إستخدام التعليمة <queryString> لانشاء جملة الاستعلام SQL وذلك على النحو التالى :

الكود:

<queryString>
 
<![CDATA[select * from US.INFO]]>

 </queryString>



الخطوة الثالثة :إنشاء متغيرات الحقول field التي يتم ملؤها في وقت التشغيل من جدول قاعدة البيانات لاستخدامها فيما بعد و يجب أن تتطابق أسماء الحقول مع اسم العمود جدول البيانات أو الاسم المقابل له  في جملة الاستعلام SQL مع تحديد نوع بيانات الحقل int,string_على النحو التالى :
 
الكود:
<field name="ID" class="java.lang.Integer">
 </field>


 <field name="NAME" class="java.lang.String">
 </field>


 <field name="JOB" class="java.lang.String">
 </field>



ليصبح ملف xml كما فى الشكل التالى :

الوسم jrxml على المنتدى منتدى مصر التقني 761700903

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


  •  التعليمة <reportElement> التى تحدد و تشير إلى ارتفاع حقل النص ،العرض والإحداثيات داخل النطاق   x و y....الخ
  • التعليمة <textFieldExpression> التى تحدد حقول البيانات التي سيتم عرضها في هذا العنصر النصي باستخدام
    الكود:
    $ F {field_name}

    ، حيث field_name هو اسم الحقل الذى تم تعريفة فى الخطوة السابقة وذلك على النحو التالى :


الكود:
<textField>
 <reportElement x="393" y="17" width="100" height="20"/>
 <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
 </textField>
 <textField>
 <reportElement x="393" y="37" width="100" height="20"/>
 <textFieldExpression><![CDATA[$F{NAME}]]></textFieldExpression>
 </textField>
 <textField>
 <reportElement x="393" y="57" width="100" height="20"/>
 <textFieldExpression><![CDATA[$F{JOB}]]></textFieldExpression>
 </textField>



وهكذا يكون ملف xml كما فى الشكل التالى وجاهز لاستقبال البيانات :

الوسم jrxml على المنتدى منتدى مصر التقني 509546682

الخطوة الرابعة و الاخيرة :عرض و تشغيل التقرير وتتطلب تلك الخطوة الاتصال اولا بقاعدة البيانات ثم تمرير كائن الاتصال الى التقرير ...حيث أن JasperReports توفر الكائن #JasperFillManager الذى يقوم بملىء التقرير من خلال الطريقة #fillReport بتمرير التقرير المراد تعبئة بياناته وكائن الاتصال و ذلك على النحو التالى :

الكود:

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
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;

public class NewMain {

  
    
   public  void FillReport(){
    
    String host = "jdbc:derby://localhost:1527/Employees";
    String username = "US";
    String password = "US";
    Connection con=null;
        
        try {
            
            //إنشاء نص الاتصال بقاعدةالبيانات
             con = DriverManager.getConnection( host, username, password );
            
            //الحصول على مسار التقرير
            InputStream Report =this.getClass().getResourceAsStream("/report/pppp.jasper");
            
            //تعبئة التقرير من قاعدة البيانات  
            JasperPrint jasperPrint = JasperFillManager.fillReport(Report,null,con);
            
            //تشغيل وعرض التقرير
            JasperViewer.viewReport(jasperPrint,false);
              
              
        } catch (SQLException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        } catch (JRException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        }
        
      
   }
    
  
    public static void main(String[] args) {
        
       new NewMain().FillReport();
  
    }
}



و النتيجة عند التشغيل :

الوسم jrxml على المنتدى منتدى مصر التقني 323562739



أنتهى المقال 
تحياتى
من طرف أحمد مناع
في السبت فبراير 15, 2014 11:44 am
 
ابحث في: إنشاء التقارير JasperReports مع iReport
موضوع: انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة
المساهمات: 2
مشاهدة: 2419

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

انتقل الى: