24-12-18, 06:14 AM
(آخر تعديل لهذه المشاركة : 24-12-18, 08:20 AM {2} بواسطة حريف برمجة.)
مرحبا أعضاء الموقع الذي جمعنا بغير ميعاد .....
اقدم لكم اليوم موضوع مهم جداً وهو التقارير ....
وأخص بالذكر تقارير مايكروسوفت (Report Viewer)
الموضوع اسهل من ما نتوقع ولكن انا توسعت في الشرح وكثرة الصور لتتضح الفكرة كامله ...
لدينا عدد 2 جدول في قاعدة البيانات :
المثال كالتالي فورم 1 ،، عرض بيانات جدول واحد في القريد فيو :
عرض بيانات جدولين في القريد فيو :
حتى هنا أخذنا فكرة عن المثال ،، نأتي للمهم .
كود الفورم 1 :
لا أريد التطرق لعملية الحفظ والتعديل والحذف ،،، فقط اردت توضيح التالي :
1- انشاء داتاسيت فارغة .
2- انشاء داتاتيبل داخل الداتاسيت وادراج الحقول في الداتا تيبل المراد إظهارها في الطباعة .
3- انشاء التقرير وادراج الحقول المراد إظهارها في الطباعة .
4- ربط التقرير بالكود مع الداتاسيت .
لإنشاء داتاسيت فارغة اتبع الصور :
لإنشاء تقرير اتبع الصور :
......... يتبع
بعد ادراج أداة التيبل على التقرير اتبع الصور :
لإدراج أعمدة أو حذف أعمدة على التيبل الموجود بالتقرير اتبع الصور :
الآن نبدأ في تصميم التقرير تابع الصور :
الآن نعمل بيانات حقل التسلسل ترقيم تلقائي للصفوف لأن في الأصل ليس من الداتاسيت تابع الصور :
الآن ادرج فورم 2 ،، وادرج عليها أداة عرض التقارير (ريبورت فيور) ،،،، بدون عمل أي شي .
كود الفورم 2 :
## ملاحظة مهمة لتنسيق الموضوع :
سقطت صورة بالسهو ..
بالتحديد بعد كلمة ....... يتبع
وهي لإدراج أداة تيبل (جدول) على التقرير لعرض البيانات .
لاحظ مسميات الأدوات على الفورم :
بعد النقر على زر (Print All) لعرض جميع البيانات .
لتنسيق التقرير :
هذا شكل التقرير بعد التنسيق :
لتصدير التقرير للبرامج المعتادة :
حتى الآن انهينا أمور عديدة ،، والمتبقي تقريباً :
1- عرض سجل واحد فقط .
2- عرض بيانات جدولين أو أكثر في التقرير .
3- عرض البيانات متدرجة بألوان مثلاً :
صف ابيض
صف رمادي
صف ابيض
صف رمادي
............ وهكذا
4- وضع تاريخ ووقت الطباعة ورقم الصفحات على التقرير .
5- الطباعة المباشرة بدون عرض التقرير .
وإذا فاتني شي ما غطيته ابلغوني وتبشرون بالخير ....
اقدم لكم اليوم موضوع مهم جداً وهو التقارير ....
وأخص بالذكر تقارير مايكروسوفت (Report Viewer)
الموضوع اسهل من ما نتوقع ولكن انا توسعت في الشرح وكثرة الصور لتتضح الفكرة كامله ...
لدينا عدد 2 جدول في قاعدة البيانات :
المثال كالتالي فورم 1 ،، عرض بيانات جدول واحد في القريد فيو :
عرض بيانات جدولين في القريد فيو :
حتى هنا أخذنا فكرة عن المثال ،، نأتي للمهم .
كود الفورم 1 :
كود :
Imports System.Data.OleDb
Public Class Form1
Dim conn As New OleDbConnection("Provider=Microsoft.Ace.OLEDB.12.0; Data Source=" & Application.StartupPath & "\db1.accdb")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Dim dp As New OleDbDataAdapter("select * from ETable", conn) ' one Table
Dim dp As New OleDbDataAdapter("select ETable.EID, ETable.EName, ETable.EMobile, CTable.City from ETable, CTable where ETable.EID = CTable.C_EID", conn) ' Two Table
Dim dt As New DataTable
dp.Fill(dt)
DataGridView1.DataSource = dt
End Sub
End Class
لا أريد التطرق لعملية الحفظ والتعديل والحذف ،،، فقط اردت توضيح التالي :
1- انشاء داتاسيت فارغة .
2- انشاء داتاتيبل داخل الداتاسيت وادراج الحقول في الداتا تيبل المراد إظهارها في الطباعة .
3- انشاء التقرير وادراج الحقول المراد إظهارها في الطباعة .
4- ربط التقرير بالكود مع الداتاسيت .
لإنشاء داتاسيت فارغة اتبع الصور :
لإنشاء تقرير اتبع الصور :
......... يتبع
بعد ادراج أداة التيبل على التقرير اتبع الصور :
لإدراج أعمدة أو حذف أعمدة على التيبل الموجود بالتقرير اتبع الصور :
الآن نبدأ في تصميم التقرير تابع الصور :
الآن نعمل بيانات حقل التسلسل ترقيم تلقائي للصفوف لأن في الأصل ليس من الداتاسيت تابع الصور :
الآن ادرج فورم 2 ،، وادرج عليها أداة عرض التقارير (ريبورت فيور) ،،،، بدون عمل أي شي .
كود الفورم 2 :
كود :
Imports System.Data.OleDb
Imports Microsoft.Reporting.WinForms
Public Class Form2
Dim conn As New OleDbConnection("Provider=Microsoft.Ace.OLEDB.12.0; Data Source=" & Application.StartupPath & "\db1.accdb")
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dp As New OleDbDataAdapter("select * from ETable", conn) ' one Table
Dim dt As New DataTable
dp.Fill(dt)
Me.WindowState = FormWindowState.Maximized 'تكبير الفورم بالكود
ReportViewer1.Reset()
ReportViewer1.Dock = DockStyle.Fill 'جعل الريبورت فيور بكامل الفورم
'لاحظ ريبورتس = اسم المشروع
'ريبورت1 = اسم التقرير
ReportViewer1.LocalReport.ReportEmbeddedResource = "ReportS.Report1.rdlc"
''\\\'''DataSet1 dataset in report Default Name
Dim DataSource As New ReportDataSource("DataSet1", dt)
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(DataSource)
ReportViewer1.RefreshReport()
ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout)
ReportViewer1.ZoomMode = ZoomMode.PageWidth
End Sub
End Class
## ملاحظة مهمة لتنسيق الموضوع :
سقطت صورة بالسهو ..
بالتحديد بعد كلمة ....... يتبع
وهي لإدراج أداة تيبل (جدول) على التقرير لعرض البيانات .
لاحظ مسميات الأدوات على الفورم :
بعد النقر على زر (Print All) لعرض جميع البيانات .
لتنسيق التقرير :
هذا شكل التقرير بعد التنسيق :
لتصدير التقرير للبرامج المعتادة :
حتى الآن انهينا أمور عديدة ،، والمتبقي تقريباً :
1- عرض سجل واحد فقط .
2- عرض بيانات جدولين أو أكثر في التقرير .
3- عرض البيانات متدرجة بألوان مثلاً :
صف ابيض
صف رمادي
صف ابيض
صف رمادي
............ وهكذا
4- وضع تاريخ ووقت الطباعة ورقم الصفحات على التقرير .
5- الطباعة المباشرة بدون عرض التقرير .
وإذا فاتني شي ما غطيته ابلغوني وتبشرون بالخير ....
يا رحمن الدنيا والآخرة ورحيمهما