تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] طريقة طباعة تقرير ReportViewer مباشرة
#1
السلام عليكم ورحمة الله وبركاته

كما هو واضح من العنوان

أحضرت البيانات وعرضت التقرير على النموذج ولا يوجد مشكلة في هذا ولكن أردت طباعة التقرير مباشرة دون ظهور النموذج.
قال رسول الله صلى الله عليه وسلم ( من قال لا إله إلا الله دخل الجنة ) حديث صحيح.
قال رسول الله صلى الله عليه وسلم ( كلمتان خفيفتان على اللسان ثقيلتان في الميزان حبيبتان للرحمن : سبحان الله وبحمده سبحان الله العظيم ) حديث صحيح.
الرد }}}}
تم الشكر بواسطة: الطالب , khodor1985
#2
يلزممك تسوي Export للتقرير اولا ثم الطباعة
أو تظهر شاشة الطابعات
ReportViewer1.PrintDialog()
او تطلع على هذا
https://msdn.microsoft.com/en-us/library....100).aspx
بالتوفيق
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Heart
الرد }}}}
تم الشكر بواسطة: الطالب , khodor1985
#3
طيب أخي ابو عمر ، بخصوص الرابط فصعب علي فهمه لربما لو تبسط لي المسألة بخصوص Export

أما عن أمر ReportViewer1.PrintDialog() فجربه ولم يعمل معي، يعني ما عمل اي اكشن في النموذج !!!
قال رسول الله صلى الله عليه وسلم ( من قال لا إله إلا الله دخل الجنة ) حديث صحيح.
قال رسول الله صلى الله عليه وسلم ( كلمتان خفيفتان على اللسان ثقيلتان في الميزان حبيبتان للرحمن : سبحان الله وبحمده سبحان الله العظيم ) حديث صحيح.
الرد }}}}
تم الشكر بواسطة: الطالب , khodor1985
#4
مرحبا عبدالله
بالنسبة للرابط يا اخي اجدني عاجز عن تبسيطه لك " سامحني " من المعضلات توضيح الواضحات. لان كل اللي فيه سوي كذا كذا كذا
بالنسبة لمشكلتك مع الاداة ما تسوي اي ايفنت اغلب الظن انها اداة اقدم من اصدار الفريم ورك اللي عندك
او سوي بروجكت جديد فقط فورم واداة علاض التقارير وارفعه
يبدو لي انك شغال على فيجوال احدث من 2010 لان زي هذي المشاكل ما ظهرت الا في 2012 و 2013 -2015

سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Heart
الرد }}}}
تم الشكر بواسطة: الطالب , khodor1985 , khodor1985
#5
سلام


اشكر استاذنا ابو عمر

فقد دلني على رابط مفيد من ناحيت الطباعه بدون عرض التقرير،
وهذه نتيجه المحاوله في تعديله
فقد عدلت فيه ليسهل التعامل معه

اول انش كلاس وضع هذا الكود فيه
كود :
Imports System.IO
Imports System.Text
Imports System.Drawing.Imaging
Imports System.Drawing.Printing
Imports Microsoft.Reporting.WinForms

' https://msdn.microsoft.com/en-us/library/vstudio/ms252091(v=vs.100).aspx

Public Class MyLocalReport
    Implements IDisposable

    Private report As New LocalReport()

    Private document As New PrintDocument()

    Private m_currentPageIndex As Integer
    Private m_streams As IList(Of Stream)


    Public Sub Print(Optional ByVal printerSetting As PrinterSettings = Nothing)
        If printerSetting IsNot Nothing Then
            document.PrinterSettings = printerSetting
        End If

        Export(report)

        If m_streams Is Nothing OrElse m_streams.Count = 0 Then
            Throw New Exception("Error: no stream to print.")
        End If
        If Not document.PrinterSettings.IsValid Then
            Throw New Exception("Error: cannot find the default printer.")
        Else
            AddHandler document.PrintPage, AddressOf PrintPage
            m_currentPageIndex = 0
            document.Print()
        End If
    End Sub


    ' Routine to provide to the report renderer, in order to
    ' save an image for each page of the report.
    Private Function CreateStream(ByVal name As String, ByVal fileNameExtension As String, ByVal encoding As Encoding, ByVal mimeType As String, ByVal willSeek As Boolean) As Stream
        Dim stream As Stream = New MemoryStream()
        m_streams.Add(stream)
        Return stream
    End Function

    ' Export the given report as an EMF (Enhanced Metafile) file.
    Private Sub Export(ByVal report As LocalReport)
        Dim deviceInfo As String =
            "<DeviceInfo>" & _
            "<OutputFormat>EMF</OutputFormat>" & _
            "<PageWidth>" & document.PrinterSettings.DefaultPageSettings.PaperSize.Width / 100 & "in</PageWidth>" & _
            "<PageHeight>" & document.PrinterSettings.DefaultPageSettings.PaperSize.Height / 100 & "in</PageHeight>" & _
            "<MarginTop>" & document.PrinterSettings.DefaultPageSettings.Margins.Top / 100 & "in</MarginTop>" & _
            "<MarginLeft>" & document.PrinterSettings.DefaultPageSettings.Margins.Left / 100 & "in</MarginLeft>" & _
            "<MarginRight>" & document.PrinterSettings.DefaultPageSettings.Margins.Right / 100 & "in</MarginRight>" & _
            "<MarginBottom>" & document.PrinterSettings.DefaultPageSettings.Margins.Bottom / 100 & "in</MarginBottom>" & _
            "</DeviceInfo>"

        Dim warnings As Warning()
        m_streams = New List(Of Stream)()
        report.Render("Image", deviceInfo, AddressOf CreateStream, warnings)
        For Each stream As Stream In m_streams
            stream.Position = 0
        Next
    End Sub

    ' Handler for PrintPageEvents
    Private Sub PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
        Dim pageImage As New Metafile(m_streams(m_currentPageIndex))

        ' Adjust rectangular area with printer margins.
        Dim adjustedRect As New Rectangle(ev.PageBounds.Left - CInt(ev.PageSettings.HardMarginX), _
                                          ev.PageBounds.Top - CInt(ev.PageSettings.HardMarginY), _
                                          ev.PageBounds.Width, _
                                          ev.PageBounds.Height)

        ' Draw a white background for the report
        ev.Graphics.FillRectangle(Brushes.White, adjustedRect)

        ' Draw the report content
        ev.Graphics.DrawImage(pageImage, adjustedRect)

        ' Prepare for the next page. Make sure we haven't hit the end.
        m_currentPageIndex += 1
        ev.HasMorePages = (m_currentPageIndex < m_streams.Count)
    End Sub


    Private _ReportName As String
    Public Property ReportName As String
        Get
            Return _ReportName
        End Get
        Set(ByVal value As String)
            _ReportName = value
            report.ReportEmbeddedResource = Me.GetType().Namespace & "." & _ReportName
        End Set
    End Property

    Private _ReportPath As String
    Public Property ReportPath As String
        Get
            Return _ReportPath
        End Get
        Set(ByVal value As String)
            _ReportPath = value
            report.ReportPath = _ReportPath
        End Set
    End Property


    Private _DataSources As ReportDataSource
    Public Property DataSources As ReportDataSource
        Get
            Return _DataSources
        End Get
        Set(ByVal value As ReportDataSource)
            _DataSources = value
            report.DataSources.Clear()
            report.DataSources.Add(value)
        End Set
    End Property

    Public Sub SetParameters(ByVal parameter As ReportParameter)
        report.SetParameters(parameter)
    End Sub

    Public Sub Dispose() Implements IDisposable.Dispose
        If m_streams IsNot Nothing Then
            For Each stream As Stream In m_streams
                stream.Close()
            Next
            m_streams = Nothing
        End If
    End Sub
End Class

وهذه طريقت التعامل معه
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim myReport As New MyLocalReport

    '' تحديد ملف تقرير خارجي
    'myReport.ReportPath = "C:\Report1.rdlc"

    ' تحديد ملف مدمج في المشروع
    myReport.ReportName = "Report1.rdlc"

    ' تحديد مصدر البيانات اذا كان التقرير مصمم على اساسها
    myReport.DataSources = New ReportDataSource("DataSet1", CType(DataSet1.DataTable1, DataTable))

    ' وضع قيم البارامترات في التقرير ان كانت موجوده
    myReport.SetParameters(New Microsoft.Reporting.WinForms.ReportParameter("ReportParameter1", "Hello"))


    '' الطباعه على طابعه اختياريه
    'Using prntr As New PrintDialog
    '    If prntr.ShowDialog = vbOK Then

    '        '' يمكن عدم تحديد الهوامش وتركها للقيم الافتراضيه ولكن وضعتها كمثال
    '        '' ضبط الهوامش بالميللي انش: 1 انش=100 ملي انش
    '        'prntr.PrinterSettings.DefaultPageSettings.Margins.Left = 100
    '        'prntr.PrinterSettings.DefaultPageSettings.Margins.Right = 100
    '        'prntr.PrinterSettings.DefaultPageSettings.Margins.Top = 100
    '        'prntr.PrinterSettings.DefaultPageSettings.Margins.Bottom = 100

    '        myReport.Print(prntr.PrinterSettings)

    '    End If
    'End Using

    ' الطباعه على الطابعه الافتراضيه
    myReport.Print()

End Sub

تمت التجربه بنجاح


موفقين
متغيب
الرد }}}}
تم الشكر بواسطة: أبو عمر


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كود طباعة فاتورة مبيعات على طابعة EPSON LQ-300+ /II ESC/P 2 سيد درويش 2 2,722 27-11-16, 12:14 PM
آخر رد: hglogtd
  ماهي الطريقة لعرض بيانات مشفره في تقرير؟ قناص المدينة 0 53 12-11-16, 06:29 PM
آخر رد: قناص المدينة
  [Acces2007] طباعة التقرير في صفحتين محمد خلف زكي 2 168 12-09-16, 12:25 AM
آخر رد: adel2012
  طباعة السجل الحالي علي كعبي 19 509 23-06-16, 02:11 AM
آخر رد: علي كعبي
  [سؤال] كيف يمكننى طباعة كل الفواتير مصممه بالكريستال ريبورت وvb.net? محمود بكرى 4 300 21-06-16, 11:46 PM
آخر رد: محمود بكرى
  طباعة التقرير من جدولين aftfm 19 475 09-06-16, 03:20 AM
آخر رد: حريف برمجة
  [VB.NET] إنشاء تقرير Crystal Report من أكثر من جدول saad.abu 0 251 06-06-16, 11:43 PM
آخر رد: saad.abu
  مشكلة الاصدارات مع ReportViewer حلا ابوحامضة 1 252 31-05-16, 10:54 AM
آخر رد: عدنان الشمري
  [سؤال] ارجو المساعدة رسالة خطاء عند طباعة التقرير من كريستال ريبورت 13 ahmed saleh 2 266 18-05-16, 03:52 AM
آخر رد: abdhassan
Lightbulb [سؤال] تقرير يعتمد على نص في التكست بوكس محمد 1 842 02-01-16, 01:02 AM
آخر رد: الراشيدي

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


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