![]() |
|
Easy way to make a report using CrystalReport - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم مقالات التقارير والطباعة تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=80) +--- الموضوع : Easy way to make a report using CrystalReport (/showthread.php?tid=191) الصفحات:
1
2
|
Easy way to make a report using CrystalReport - Sajad - 20-09-13 بسم الله الرحمن الرحيم ((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي)) صدق الله العلي العظيم السلام عليكم ورحمة الله وبركاته
سنتعلم في هذا الموضوع كيفية بناء تقارير في الVS2010 بلغة الC# خطوة خطوة وبالصور و بطريقة سهلة ان شاء الله ,وأنا اعلم أن هنالك الكثير من المقالات حول صناعة التقارير في هذا المنتدى لكن اغلبها بلغة الVB.Net وقلما تجد مقالة تتحدث عن التقارير بلغة الC#.NET, لهذا كتبت هذه المقالة حول بناء التقارير بلغة الC# مع قاعدة بيانات SQL Server 2008 R2 والCrystal Report. اولا عليكم بتنزيل برنامج الSAP Crystal Reports, version for vs2010 من هذا الرابط: CrystalReportForVS2010 ثانيا ولسبب فصل Microsoft برنامج التقارير عن برنامج الvs2010 ظهرت هنالك مشاكل تتعلق بتشغيل ادوات الCrystal report ولكل تعمل تقارير كريستال فعليك تحويل الـ.NET Framework الى 3.5 او الى اصدار اقل من ذلك بسم الله نبدأ سنركز على ثلاثة محاور في هذا الموضوع في كيفية بناء التقارير: اولا: طباعة صف واحد فقط يحدده المستخدم من ال.Datagridview ثانيا: طباعة الصفوف المحددة فقط في الDatagridview من قبل المستخدم. ثالثا: طباعة جميع الصفوف الموجودة في الجدول. اولا: طباعة صف واحد يحدده المستخدم: المعنى واضح حيث سيقوم المستخدم عن طريق الMouse بتحديد عنصر معين او صف معين لكي يقوم بطباعته الان تابع معي هذه الخطوات: 1- نفتح برنامج الSQL Server 2008 R2 ثم نقوم باضافة قاعدة بيانات جديدة عن طريق الDatabase ثم New database باسم stdnames ونضغط على اشارة الزائد من الstdnames ونختار Tables ثم NewTable ونضيف الحقول التالية (id, name, age) ونخزن الجدول باسم names كما في الصورة: بعد ذلك نقوم بRightClick على dbo.names من الTables للsdtnames ونختار Edit Top 200 Rows لكي نضيف البيانات الى الجدول فتكون بالشكل التالي: طبعا هذه البيانات المدخلة افتراضية لغرض التعلم ![]() الان نذهب الى هذا المسار: C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA ونقوم بنسخ الملفين stdnames و stdnames_log الى مخرجات البرنامج. الى هنا انتهينا من عمل الجدول ,والان سننتقل الى الVS2010 حيث نفتح مشروع جديد ونقوم بتسميته Printing Report نقوم باضافة الادوات اللازمة الى الفورم فتكون كما في الصورة: 1- فتح الاتصال مع قاعدة البيانات 2- لعرض البيانات في الDataGridview 3- لطباعة عنصر واحد فقط 4- لطباعة اما كل الصفوف وذلك اذا حدد المستخدم All او الصفوف المحددة اذا حدد المستخدم Only selected 2- اضافة CrystalReport.rpt لطباعة صف واحد فقط لعمل ذلك اتبع الصور الاتية: بعد الضغط على Add نضغط OK ثم Finish لتظهر لنا الصورة التالية: من الParameter Fields نضيف ثلاثة حقول وذلك بRightClick على ParameterFields ثم New ثم تقوم بتسمية الباراميتر باسماء الحقول التي تريد طباعتها او اسماء مشابهة بعد ذلك عن طريق الMouse نعمل Drag&Drop للباراميترات ونضيفها الى الSection3(Details) ,انظر الى الصورة التالية: الى هنا انتهينا من تهيئة التقرير لطباعة بيانات صف واحد فقط. الان نضيف Form جديد ونسميه PrintOneForm ونضيف الاداة CrystalReportViewer اليه ونغير خاصية الModifire للاداة الى Public ثم نكتب الكود الاتي في الPrintOne PHP كود : //لاختيار الصف المحددوتكون كود الConnectكالآتي: PHP كود : private void Connectbtn_Click(object sender, EventArgs e)دالة الTable PHP كود : public bool Table()كود اظهار البيانات في الDatagridview PHP كود : private void Showbtn_Click(object sender, EventArgs e)المتغيرات العامة PHP كود : string constr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|stdnames.mdf;integrated security=true;Connect Timeout=30;";ثانيا وثالثا : طباعة الصفوف التي يحددها المستخدم او طباعة كل الصفوف في الجدول 1- نضيف CrystalReport.rpt جديد كما في الصورة رقم1 ونقوم بتسميته PrintAllReport و بعد الضغط على Add ثم Ok نعمل كما في الصورة التالية: حيث نختار Create New Connection ثم OLE DB(ADO) فتظهر لنا الصورة التالية بعد اختيار Next نفعل كما الصورة التالية: 1- نختار اسم الserver 2- نختار integrated security في حالة عدم وجود username and password اما غير ذلك نكتب الاسم والرقم السري بدون اختيار الIntegrated Security 3- اختيار قاعدة البيانات ثم Next وFinish الان تظهر لنا هذه الصورة : نفعل تماما كما في الصورة اعلاه ثم نفعل كما في الصورة التالية طبعا بعد الضغط على Next ثم Next فتظهر لنا التقرير بهذه الصورة كما تلاحظون ان الباراميترات اضيفت تلقائيا الى التقرير نضيف Form جديد ونسميه PrintAllForm ونضيف عليه اداة الCrystalReportViewer ونجعل خاصية Modifireللاداة Public ثم نكتب الكود الاتي في الPrintAll PHP كود : private void PrintAllbtn_Click(object sender, EventArgs e)الشرح مع كل سطر من الكود وتجدون البرنامج في المرفقات الى هنا وبفضل الله وصلنا الى نهاية الموضوع حيث تعلمنا كيفية بناء التقارير بلغة الC# بصورة مبسطة و اتمنى ان تكونوا قد استفدتم ان شاء الله وانتظر ردودكم الجميلة واستفساراتكم القيمة للمناقشة الجميلة ولا تنسوني ووالدي من صالح دعواتكم راجيا الله تعالى ان يوفقنا وإياكم لمراضيه _______________________________________________________________ ملاحظة: المقالة من المنتدى السابق وسأرفع المرفقات حال تحويلها الى لغة VB.NET _________________________________________________________________ RE: Easy way to make a report in C# - زهرة الازهار - 21-09-13 مشكور على الشرح
كفيت ووفيت رحم الله والديك والله يوفقك ان شاء الله RE: Easy way to make a report in C# - @@أبورائد@@ - 23-09-13 السلام عليكم و رحمة الله و بركاته ما شاء الله عليك أخي سجـّـــاد، أنتم لوحدكم مكتبة علمية يحرص كل مبرمج على تتبع مواضيعكم. السلام عليكم و رحمة الله و بركاته RE: Easy way to make a report in C# - العزابي - 24-09-13 ماشاء الله عليك شرح مرتب وجميل جدا . أعجبني طريقت طرحك للموضوع . سؤال : مارأيك هل تقارير الكريستيال ريبورت أفضل أم التقارير المدموجة مع الفيجوال وماهو السهل بينهما ؟ تحياتي RE: Easy way to make a report in C# - Sajad - 24-09-13 السلام عليكم ورحمة الله وبركاته جزاكم الله خيرا اخواني الاعزاء على التعليقات الجميلة أما بالنسبة لسؤالك اخي العزيز العزابي: إقتباس :سؤال : مارأيك هل تقارير الكريستيال ريبورت أفضل أم التقارير المدموجة مع الفيجوال وماهو السهل بينهما ؟ برأيي التعامل مع أي تقرير يعتمد على مستخدمه لكن انا شخصيا افضل التقارير المدمجة مع VS الفيجوال ستوديووالسبب هي عدم الحاجة الى تنصيب برنامج في جهاز العميل لكل يعمل التقرير أما في حال استخدام تقارير كريستال فيجب تنصيب البرنامج الخاص بتقارير كريستال لكل يعمل بارك الله فيكم RE: Easy way to make a report in C# - atefkhalf2004 - 25-09-13 السيد الفاضل طلب الكثير من الزملاء عمل الموضوع ب فيجوال بيسك 2008 ربنا يبارك فيك RE: Easy way to make a report in C# - Sajad - 27-09-13 السلام عليكم ورحمة الله وبركاته
الامثلة بالمرفقات بلغتي #C و VB
RE: Easy way to make a report using CrystalReport - atefkhalf2004 - 08-10-13 الاستاذ الفاضل Sajad بعد التحية والشكر علي اهتمامك برجاء توضيح كيفية تحويل القاعدة من اس كيو ال الي اكسس اكيد فيه ملف جاهز يحول من الاس كيو ال والعكس اكيد فيه طريقة شكرا RE: Easy way to make a report using CrystalReport - Sajad - 08-10-13 RE: Easy way to make a report using CrystalReport - atefkhalf2004 - 12-12-13 السيد الفاضل هذا التحويل يتطلب وجود السكول علي الجهاز السكول صعب جدا واضافته علي الجهاز يتطلب خطوات معينة ماذا لو لم يوجد السكول كيف يتم تحويل السكول الي الاكسس |