انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: إنشاء التقارير JasperReports مع iReport
صفحة 1 من اصل 1 • شاطر
انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة
بسم الله الرحمن الرحيم
أهلا و سهلا بكم إخوانى الكرام .... فى دروس سابقة تحدثنا عن كيفية انشاء تقارير #JasperReports مع iReport وقمنا بانشاء تقرير بسيط و عرض و تشغلية من خلال تطبيقات الجافا وهذا التقرير كان لا يحتوي الا على بعض النصوص الثابتة أو بمعنى اوضح لا يحتوي على بيانات ديناميكية لكن اذا اردنا غنشاء تقارير دينامكية المحتوي فلابد أن نستخدم مصارد البيانات #datasources
_مصدر البيانات datasources :هو ما يستخدمه المكتبة #JasperReports للحصول على البيانات لتوليد تقارير دينامكية المحتوي وتوجد عدة مصادر يمكنك استخدامها وهى على النحو التالى :
- Databases
- TableModels
- Java objects
- XML fles
و سنناقش في هذا المقال كيفية استخدام قواعد البيانات databases كمصدر بيانات datasources . أما فى المقالات التالية سوف يناقش الانواع الاخرى من مصادر البيانات
توليد تقارير ديناميكي باستخدام قاعدة البيانات كمصدر للبيانات
هناك طريقتان لإنشاء تقارير من قاعدة البيانات وهما :
- الاولى : بتضمين إستعلامات SQL في قالب تقرير JRXML
- الثانية : بتمرير البيانات من قاعدة البيانات إلى التقرير بإستخدام JRResultSetDataSource
فى هذا المقال سنشرح الطريقة الاولى _أما الطريقة سنتعرف عليها فى مقالات لاحقة _لذلك قبل أن نبدء ندعونا نفترض أن لدينا قاعدة بيانات باسم Employees وتحتوي على جدول باسم Info بالحقول التالية :
INTEGER | Id |
VARCHAR | Name |
VARCHAR | Job |
هذا الجدول يحتوى على البيانات التالية :
تضمين إستعلام SQL في قالب تقرير JRXML ويتم ذلك بطريقتين:
1_الطريقة الاولى : تضمين إستعلام SQL برمجيا بإستخدام الشفرة
2_الطريقة الثانية : تضمين إستعلام SQL بإستخدام المعالج
وفى هذا المقال سنركز على الطريقة الاولى
تضمين إستعلام SQL في قالب تقرير JRXML بإستخدام الشفرة :ويتم ذلك باتباع الخطوات التالية :
الخطوة الاولى :أذهب الى التويبب XML لتفتح لك ملف xml لكتابة بعض الشفرات في قالب تقرير #JRXML كمافى الصورة التالية :
الخطوة الثانية :إستخدام التعليمة <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 كما فى الشكل التالى :
الخطوة الرابعة :إنشاء العنصر textField وهو العنصر الرسومي الذى يستخدم في عرض البيانات النصية الديناميكية في التقارير ويتم إنشائة باستخدام التعليمة <textField> ويجب أن تحتوي داخل تلك التعليمة على الاتي:
- التعليمة <reportElement> التى تحدد و تشير إلى ارتفاع حقل النص ،العرض والإحداثيات داخل النطاق x و y....الخ
- التعليمة <textFieldExpression> التى تحدد حقول البيانات التي سيتم عرضها في هذا العنصر النصي باستخدام
- الكود:
$ F {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 كما فى الشكل التالى وجاهز لاستقبال البيانات :
الخطوة الرابعة و الاخيرة :عرض و تشغيل التقرير وتتطلب تلك الخطوة الاتصال اولا بقاعدة البيانات ثم تمرير كائن الاتصال الى التقرير ...حيث أن 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();
}
}
و النتيجة عند التشغيل :
أنتهى المقال
تحياتى
عدل سابقا من قبل أحمد مناع في الأربعاء سبتمبر 18, 2019 9:14 pm عدل 9 مرات
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة
جزاكم الله خيرا أخى احمد
لكن ايهما افضل فى الطريقتين ؟
لكن ايهما افضل فى الطريقتين ؟
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة
زهراء كتب:جزاكم الله خيرا أخى احمد
لكن ايهما افضل فى الطريقتين ؟
لا فرق بينهم
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: إنشاء التقارير JasperReports مع iReport
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 12:41 am من طرف marketing118
» شركة تنظيف ستائر بالرياض
الأحد مارس 17, 2024 10:46 pm من طرف moslema_r
» خيام ملكيه من الداخل
الأحد مارس 17, 2024 8:13 pm من طرف marketing118
» شركة نقل عفش بالطائف
الأحد مارس 17, 2024 6:34 pm من طرف marketing118
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد
» أفضل فني سباك بالرياض ممتاز بالرياض | اتصل الآن
الأحد مارس 17, 2024 12:25 pm من طرف رانيا حماد