تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال :كريستال ريبورت مع سي شارب
#3
وجدت الحل والحمد لله , كمايلي :
من Add new Items نضيف DataSet نسميها DataSet_A ونفتحها بوضع التصميم ونضيف اليها DataTable نسميه Table1
ثم نضيف له الحقول بحيث تكون نفس حقول الجدول بقاعدة البيانات (واذا كان هناك اكثر من جدول .. ننشئ اكثر من DataTable )
ولاننسى لكل حقل ان نضع نوع البيانات ويفضل نفس تصميم جدول قاعدة البيانات .
ملاحظة : الداتاسيت هنا هي مجرد صورة فارغة عن قاعدة البيانات , وذلك لكي نربطها بالتقرير ليأخذ التقرير حقوله منها
.......
ثم نضيف التقرير CrystalReport1 وعند مرحلة مصدر البيانات .. نختار Project Data ثم من ADO.net Datasets نجد اسم الجدول Table1 فنختاره .
...
نضيف Class1 نعرف بها: الاتصال Con - و rpt من CrystalReport1 الذي سيكون المصدر للـ CrystalReportViewer1- نضع بالكلاس ايضا دوال بعدد التقارير التي نريدها .. بحيث كل دالة تجهز المتغير rpt ببيانات مختلفة .

بالفورم الاول نضع أزرار Buttons ايضا بعدد التقارير التي نريدها , بحيث اذا نقرنا على الزر الاول (مثلا) سيقوم بعرض الفورم الثاني الذي يحوي الـ CrystalReportViewer1 وهي بدورها تقوم بعرض التقرير الاول .
ولكن كيف نحدد لها أي زر تم ضغطه من الفورم الاول ( ونحن في الفورم الثاني)
هنا نحتاج متغير عام للـ Solution نقوم بتعريفه بمنطقة الاعدادات Settings كما يلي :
نضغط باليمين على اسم الـ Solution ونختار خصائص , نختار البند Settings
يظهر جدول نضيف له المتغير وليكن X :
name: X
Type: int
scope: user
value: 0
ونحفظ .

نذهب لحدث النقر على الزر الاول ( بالفورم الاول ) ونكتب به مايلي : حيث App1 اسم الـ Solution :


كود :
[align=left][SIZE=5][align=left]   App1.Properties.Settings.Default.X = 1;

            App1.Properties.Settings.Default.Save();[/align][/SIZE][/align]

في حدث النقر على الزر الثاني نفس الكود السابق ولكن بدل الواحد نضع 2
وهكذا الازرار الاخرى اذا كان لدينا اكثر من تقريرين..

ثم نذهب للفورم الثاني وبحدث تحميل الفورم Form2_Load نكتب :


كود :
[SIZE=5][align=left]

private void Form2_Load(object sender, EventArgs e)

        {
            Class1 cls = new Class1();  

            if (App1.Properties.Settings.Default.X == 1)  

            {
                cls.SetRpt();

                crystalReportViewer1.ReportSource = cls.rpt;
            }  

            else

                if (App1.Properties.Settings.Default.X == 2)

                {

                    cls.SetRpt2();

                    crystalReportViewer1.ReportSource = cls.rpt;
                  
                }
        }[/align][/SIZE]
حيث SetRpt2 , SetRpt هي دوال الكلاس Class1 والتي تقوم بتجهيز المتغير rpt ليحمل بيانات محددة ( كما نريد ) من قاعدة البيانات , وكل دالة تم انشاؤها من أجل تقرير مختلف .


أرفقت المثال كاملا (سي شارب - فيجوال ستوديو 10 )


الملفات المرفقة
.rar   App1.rar (الحجم : 228.62 ك ب / التحميلات : 136)
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
سؤال :كريستال ريبورت مع سي شارب - بواسطة AbaAlHaitham - 24-10-12, 12:33 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  لم يظهر لدي الكريستال ريبورت في برنامج vb.net 2015 aftfm 7 6,406 30-06-25, 04:36 AM
آخر رد: abdulazizsaeeed100
  استدعاء مكتبة dll من c# في الكريستال ريبورت Mohamed.vbnet 0 536 12-11-24, 02:51 AM
آخر رد: Mohamed.vbnet
  تغيير لون السجلات في كريستال ريبورت بناء على قيم معينة صالح عبدالله 4 1,506 16-02-24, 09:30 PM
آخر رد: صالح عبدالله
Question [VB.NET] هل يمكن الحصول على رابط تحميل كريستال ربوت يعمل مع فجوال البيسك نت ؟ Microformt 0 882 22-11-23, 07:58 PM
آخر رد: Microformt
  [سؤال] مشكلة في طباعة footer تقرير كريستال ريبورت i1982 5 1,786 29-03-23, 11:30 PM
آخر رد: sanyor77
Question [سؤال] سوال في الكرستال ريبورت ali bajmmal 0 719 17-02-23, 03:34 PM
آخر رد: ali bajmmal
  دالة التفقيط داخل الكريستال ريبورت bassant 6 6,554 08-02-23, 04:26 PM
آخر رد: kezzat
  هل يوجد امكانية لعمل متغير لكل record في الكريستال ريبورت bassant 0 1,044 29-11-22, 12:47 PM
آخر رد: bassant
  كيفية تصميم التقرير الكريستال ريبورت للطباعة على جانبين الورقة (وش وظهر) bassant 3 1,499 22-11-22, 12:22 PM
آخر رد: Taha Okla
Photo [سؤال] مشكلة في اتصال كريستال ريبورت محمد صادق حسن 1 1,815 15-12-21, 02:41 PM
آخر رد: تركي الحلواني

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم