تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report
#38
سوف نضيف خيارات جديدة على القائمة MenuStip كالتالي:
  • تقرير
    • كل الأسماء
    • محدد

  • قاعدة البيانات
    • نسخ احتياطي
    • استرجاع
    • تصفير قاعدة البيانات

قبل أن نشرع في عمل التقرير، هنالك إعدادات للمشروع يجب أن نعدلها.
نذهب لخصائص المشروع، ثم نتبع الصورة:
:#C



:VB



ثم نذهب لملف app.config، من Solution Explorer، سوف نضيف هذا الكود عليه:



* إذا وجدنا الكود نقوم بالتعديل عليه فقط.[HTML]
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
[/HTML]

الآن نبدأ بإضافة التقرير للمشروع، من Solution Explorer نضغط على المشروع، ثم نختار:
  • Add
    • New Item

نضيف Crystal Report، ليكن اسمه Report، ثم نتبع الصور التالية:





















هكذا يظهر التقرير، بعد القليل من التنسيقات:



نضيف نموذج جديد للمشروع، سيكون اسمه All:



في حدث التحميل للنموذج، نكتب:
:#C
كود :
[align=left]try
{
    DB.PhoneBookDB db = new DB.PhoneBookDB();

    var data = from d in db.Persons select d;

    Report report = new Report();
    report.SetDataSource(data);

    viewer.ReportSource = report;
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }[/align]

:VB
كود :
[align=left]Try
    Dim db As New DB.PhoneBookDB()

    Dim data = From d In db.Persons Select d

    Dim report As New Report()
    report.SetDataSource(data)

    viewer.ReportSource = report

Catch ex As Exception
    MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try[/align]

نضيف نموذج جديد للمشروع، اسمه Custom:



في حدث ضغط زر البحث:
:#C
كود :
[align=left]DB.PhoneBookDB db = new DB.PhoneBookDB();
Report report = new Report();

try
{
    if (byname.Checked)
    {
        var data = from d in db.Persons
                   where match.Checked ? d.Name == fbox.Text.Trim() : d.Name.Contains(fbox.Text.Trim())
                   select d;

        report.SetDataSource(data);
    }

    else
    {
        var data = from d in db.Persons
                   where d.PhoneNumbers.Any(p => match.Checked ? p.Phone == fbox.Text.Trim() : p.Phone.Contains(fbox.Text.Trim()))
                   select d;

        report.SetDataSource(data);
    }

    viewer.ReportSource = report;
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }
[/align]

:VB
كود :
[align=left]Dim db As New DB.PhoneBookDB()
Dim report As New Report()

Try
    If byname.Checked Then
        Dim data = From d In db.Persons
                   Where IIf(match.Checked, d.Name = fbox.Text.Trim(), d.Name.Contains(fbox.Text.Trim()))
                   Select d

        report.SetDataSource(data)

    Else
        Dim data = From d In db.Persons
                   Where d.PhoneNumbers.Any(Function(p) IIf(match.Checked, p.Phone = fbox.Text.Trim(), p.Phone.Contains(fbox.Text.Trim())))
                   Select d

        report.SetDataSource(data)
    End If

    viewer.ReportSource = report

Catch ex As Exception
    MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
[/align]

نعود للنموذج الرئيسي، نختار من قائمة تقرير (كل الأسماء) ثم نكتب:
:#C
كود :
[align=left]All all = new All();
all.Show(this);[/align]

:VB
كود :
[align=left]All.Show(Me)[/align]

ثم نختار (محدد)، لنكتب:
:#C
كود :
[align=left]Custom custom = new Custom();
custom.Show(this);
[/align]

:VB
كود :
[align=left]Custom.Show(Me)[/align]
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - بواسطة DreamsDotNet - 18-03-13, 06:19 PM


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


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