الوقت/التاريخ الآن هو الثلاثاء مارس 19, 2024 11:05 am
3 نتيجة بحث عن jrxml
انشاء تقارير JasperReports مع iReport ...مقال 6 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..2_تضمين إستعلامات SQL بالمعالج
أهلا وسهلا بكم إخوانى الكرامفى مقال سابق تحدثنا عن مصادر البيانات وهى المصادر التى يمكنك إستخدامها لملىء وتعبئة التقارير بالبيانات وتعلمنا كيفية استخدام قواعد البيانات كمصدر للبيانات و أوضحنا ان هناك طرقتين لانشاء تقارير ديناميكة منها طريقة تضمين تضمين إستعلامات SQL في قالب تقرير #JRXML ,و أوضحنا ايضا كيفية فعل ذلك باستخدام الشفرة أو الاكواد ...فى هذا المقال مازلنا مع هذة الطريقة ولكن بإستخدام المعالج
تضمين إستعلامات SQL في قالب تقرير JRXML بإستخدام المعالج :
حيث يتيح هذا المعالج بعض الخطوات و النوافذ لتضمين استعلام SQL وإنشاء حقول البيانات ملف xml تلقائا بدون كتابة اى شفرات ويتم ذلك بالخطوات التالية :
الخطوة الاولى : انقر على أيقونة مصادر البيانات الموضحة حول يمين القائمة المنسدلة ، كما هو موضح في الصورة التالية :
سيتم فتح نافذة جديدة باسم Connections / Datasources ، كما هو موضح في الصورة التالية. هذه النافذة تسرد مصدر بيانات Empty datasource وكذلك مصادر البيانات التي قمت بها حتى الآن.
الخطوة الثانية :انقر فوق الزر "New" الظاهر في أعلى يمين النافذة السابقة. سيؤدي هذا إلى فتح نافذة Datasource تلك النافذة تحتوي على عدة أنواع مصادر مختلفة للبيانات كما هو موضح في الشكل التالى :
الخطوة الثالثة :فى النافذة اعلاه ستجد أن مصدر البيانات Database JDBC connection قد تم تحديده تلقائيا والذى يستخدم للتعامل مع قواعدة بيانات مختلفة منها MySql ,PostgreSQL,HSQLDB ,Acsess ..الخ لكن فى هذا المقال نستخدم قاعدة بيانات #JavaDb لذلك سنقوم بتحديد الخيار NetBeans Database JDBC connection ثم النقر على زر Next كما فى الصورة التالية :
الخطوة الرابعة :ستفتح لك النافذة التالية قم بتسمية نص الاتصال database connection وليكن باسم PG فى المربع المخصص له ثم من القائمة المنسدلة ستجد كافة قواعد البيانات التى تم انشائها من خلال NetBeans أختر قاعدة البيانات التى تعمل عليها_فى مثالنا الحالى Employees _كما فى الشكل التالى :
الخطوة الخامسة : انقر فوق الزر Test لاختبار اتصال قاعدة البيانات الجديدة. في حالة نجاحه الاتصال ، ستظهر رسالة Connection test successfu
الخطوة السادسة : انقر فوق الزر "Save" لحفظ الاتصال المنشأ حديثًا. وسترى نافذة "Connections / Datasources" كما هو موضح في الشكل التالى:
الخطوة السابعة : إنشاء استعلام التقرير أو جملة SQL وذلك من خلال استدعاء نافذة Report query
ويتم إستدعاء تلك النافذة أما من خلال النقر على ايقونة query أو من خلال تحديد ايقونة التقرير وبالنقر على رز الفارة الايمن تظهر قائمة فاختر منها Edit Query...ستظهر لك نافذة Report query قم بكتابة جملة الاستعلام الخاصة بنا لتظهر حقول جدول قاعدة البيانات ثم قم بالنقر على زر الامر Ok كما فى الشكل التالى :
الخطوة الثامنة :انقر نقرًا مزدوجًا على عقدة Fields في نافذة Report Inspector على يسار تقريرك. و إظهار اسم الحقول كما فى الشكل التالى :
الخطوة التاسعة :الان يمكن سحب و إفلات الحقول الثلاثة الى التقرير كما هو موضح فى الصورة التالية :
الخطوة العاشرة :عرض و تشغيل التقرير بإستخدام نفس الشفرة التى تم استخدامها فى الطريقة وهى على النحو التالى :
- الكود:
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 8:40 pm
- ابحث في: إنشاء التقارير JasperReports مع iReport
- موضوع: انشاء تقارير JasperReports مع iReport ...مقال 6 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..2_تضمين إستعلامات SQL بالمعالج
- المساهمات: 4
- مشاهدة: 1320
انشاء تقارير JasperReports مع iReport ...مقال 3_إنشاء اول تقرير لك Static Report
أهلا بكم أخوانى الكرامفى هذا المقال التعليمى سنتعلم سويا كيفية إعداد تقرير بسيط من تقارير المكتبة #JasperReports وذلك من خلال الواجهة الرسومية لانشاء تلك التقارير #iReport ...وقد تحدثنا فى مقال سابق عن كيفية تثبيت اضافات تلك المكتبة سواء من خلال محرر #NetBeans أو حتى من خلال التثبيت المستقل لبرنامج Jaspersoft Studio
الان ، دعني أريك ، كيفية إعداد تقرير بسيط Static Report _بمعنى انه لن يتم ملىء ببيانات من قاعدة البيانات_ و ذلك من خلال المحرر NetBeans....
1_ قم بفتح محرر NetBeans من قائمة مشروع ثم قم بالنقر على زر الفارة الايمن على الحزمة package التى تريد وضع التقرير بها ثم أختر من القائمة التى ستظهر الامر New ...ثم الامر Empty Report أو يمكنك استخدام المعالج Report Wizard _سيتم مناقشة فى وقت لاحق_ كما فى الصورة التالية :
أذا لم يكن الامر Empty Report ظاهر بالقائمة يمكن استخدام الامر Other كما فى الصورة التالية :
ليظهر لك المربع الحوارى التالى فاختر منه الامر Empty Report
2_قم بوضع اسم مناسب للتقرير ثم انقر على finsh كما فى الصورة التالية :
ليظهر لك المكون الرسومي #iReport فى بيئة #NetBeans مع كافة الادوات المساعدة لانشاء تقريرك كما فى الشكل التالى :
وهكذا نكون قد إنشائنا تقرير فارغ أو ملف بإمتداد JRXML
3_من القائمة Palette _القائمة رقم 4_ قم بسحب العنصر الرسومى Static Text الى منصة التقرير فى منطقة التفاصيل Detail
4_ الان يمكن تحرير العنصر الرسومى Static Text وكتابة ما تريد ظهورة من بيانات فى التقارير أما بالنقر المزدوج عليه أم من نافذة الخصائص على النحو التالى :
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 أو النقر مباشرة على ايقونة التجميع كما فى الصورة التالية :
وهكذا نكون قد انتهيا من تصميم و ترجمة تقرير بسيط الى اللقاء فى مقال قادم عن كيفية تشغيل و عرض التقارير من خلال تطبيقات الجافا
- في الإثنين سبتمبر 16, 2019 9:22 pm
- ابحث في: إنشاء التقارير JasperReports مع iReport
- موضوع: انشاء تقارير JasperReports مع iReport ...مقال 3_إنشاء اول تقرير لك Static Report
- المساهمات: 0
- مشاهدة: 1136
انشاء تقارير 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}
، حيث 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();
}
}
و النتيجة عند التشغيل :
أنتهى المقال
تحياتى
- في السبت فبراير 15, 2014 11:44 am
- ابحث في: إنشاء التقارير JasperReports مع iReport
- موضوع: انشاء تقارير JasperReports مع iReport ...مقال 5 _التعامل مع مصادر البيانات_قاعدة البيانات كمصدر للبيانات ..1_تضمين إستعلامات SQL بالشفرة
- المساهمات: 2
- مشاهدة: 3365
الأحد مارس 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 من طرف رانيا حماد
» افضل شركة تنظيف اثاث بالرياض تنظيف كنب واجهات حجر بخصم 40%
الأحد مارس 17, 2024 11:52 am من طرف رانيا حماد
» افضل شركة تنظيف فلل بالرياض | الانوار
الأحد مارس 17, 2024 11:22 am من طرف رانيا حماد
» افضل شركة تنظيف واجهات زجاج بالرياض 30% خصم
الأحد مارس 17, 2024 10:38 am من طرف رانيا حماد
» افضل شركة نقل عفش بالكويت بخصم 20%
الخميس مارس 14, 2024 1:36 pm من طرف رانيا حماد