25-12-18, 04:50 AM
(آخر تعديل لهذه المشاركة : 25-12-18, 09:13 AM {2} بواسطة حريف برمجة.)
(24-12-18, 11:16 AM)a.wagdi كتب : موضوع مفصل بامتياز، بارك الله فيك.
حاولت التصويت في الاستفتاء الموجود في أعلى الموضوع ولكن اتضح أنه ليس لدي صلاحية لذلك.
عموما أنا اخترت (موضوع تقارير مايكروسوفت مهم والشرح مميز)
ولا يهمك اخوي ،، الأهم وجودك معنا تفيد وتستفيد ،، بارك الله فيك .
(24-12-18, 01:41 PM)عبد العزيز البسكري كتب :السّلام عليكم و رحمة الله و بركاتهبارك الله فيك و لك أخي و أستاذي الكريم " حريف برمجة " على الموضوع الرّائع و المميّز و الشّرح الأروعأوّل مرّة أجد شرحًا لهذه الأداة بهذه الطريقة و هذا الأسلوب و الصّور التّوضيحيّةبالنسبة لي لم يسبق لي إستعمالها و لذلك سأقوم بالتجربة و إن كانت لي تساؤلات سأطرحها بعد إذنكتم التّصويت للعنصر الأوّلتحياتي و تشكراتي و تقييماتي
بصراحه منذ فترة وانا لدي الجدية اشرح الأداة ووجدت لك تساؤولات عنها فقررت فوراً عمل الشرح .
تسلم اخي عبدالعزيز على ثناءك .
(24-12-18, 02:21 PM)Sajad كتب : جزاك الله خيرا كفيت و وفيت
شرح ممتاز
مرحبا أستاذ سجاد القدير الممتاز والله مرورك يالكريم .
جزاكم الله جميعاً خير ،، بالتوفيق للجميع
نكمل موضوعنا وهو :
1- عرض سجل واحد فقط .
تم عمل فقط زر واحد مسؤول عن طباعة سجل واحد و طباعة الكل كالتالي :
كود :
if TextBox1.Text = "" Then
Print All
Else
Print ID Only
End ifهذي فكرة الطباعة بزر واحد فقط .
كود الفورم 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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form2.Show()
End Sub
End Classكود الفورم 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 dt As New DataTable
'Dim dp As New OleDbDataAdapter("select * from ETable where EID=" & Form1.TextBox1.Text & " ", conn) ' one Table
If Form1.TextBox1.Text = "" Then
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 All Data
dp.Fill(dt)
Else
Dim dp As New OleDbDataAdapter("select ETable.EID, ETable.EName, ETable.EMobile, CTable.City from ETable, CTable where
ETable.EID = CTable.C_EID and ETable.EID =" & Form1.TextBox1.Text & " ", conn) ' Two Table Single Data BY EID
dp.Fill(dt)
End If
Me.WindowState = FormWindowState.Maximized 'تكبير الفورم بالكود
ReportViewer1.Reset()
ReportViewer1.Dock = DockStyle.Fill 'جعل الريبورت فيور بكامل الفورم
'لاحظ ريبورتس = اسم المشروع
'ريبورت1 = اسم التقرير
ReportViewer1.LocalReport.ReportEmbeddedResource = "ReportS.Report1.rdlc"
''\\\'''DataSet1 dataset in report
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 Class2- عرض بيانات جدولين أو أكثر في التقرير .
بما انه تم تعديل الداتاتيبل داخل الداتاسيت لابد من تحديث الداتاسيت الخاصة بالتقرير لظهور الحقل الجديد كالتالي :
3- عرض البيانات متدرجة بألوان مثلاً :
صف ابيض
صف رمادي
صف ابيض
صف رمادي
............ وهكذا
كود التدرج اللوني لصفوف التقرير :
كود :
= IIF(RowNumber("DataSet1") Mod 2 = 0, "LightGrey", "Transparent")4- وضع تاريخ ووقت الطباعة ورقم الصفحات على التقرير .
............يتبع
هذي خيارات مثل تاريخ الطباعة ،، اسم التقرير ،، ........... اكتشفوها بأنفسكم .
التدرج اللوني للصفوف :
يا رحمن الدنيا والآخرة ورحيمهما

