منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طباعة report viewer دون فتح نافذة الطابعات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
PHP كود :
Dim sqlQRY2 As String
        Dim SqlDataAdapter 
As New OleDbDataAdapter
        Dim ds 
As New DataSet
        ds 
= New DataSet

        sqlQRY2 
"SELECT * FROM school   "
 
       SqlDataAdapter = New OleDbDataAdapter(sqlQRY2objconn)
 
       SqlDataAdapter.Fill(ds"school")

 
       Dim the5the6the7the12the13 As Double
        nnn1 
CInt(TextBox1.Text)

 
       ComboBox4.Text nnn1
        nnn2 
= (DateTimePicker1.Text)
 
       'nnn2 = Val(TextBox1.Text)
        nnn3 = (ComboBox1.Text)



        If objconn.State = ConnectionState.Closed Then objconn.Open()

        '
Dim sqlQRY As String "SELECT * FROM adinvodet where invono= " nnn2 " "
 
       Dim sqlQRY As String
        sqlQRY 
"SELECT adinvodet.gname, adinvodet.company, adinvodet.invsun, adinvodet.makhzanid, adinvodet.makhzanname, Sum(adinvodet.invqu) AS invqu, adinvodet.invprc, adinvodet.invsal, adinvodet.makas           FROM(adinvodet)         WHERE(((adinvodet.invono) = " & (ComboBox4.Text) & "))GROUP BY adinvodet.gname, adinvodet.company, adinvodet.invsun, adinvodet.makhzanid, adinvodet.makhzanname, adinvodet.invprc, adinvodet.invsal, adinvodet.makas, adinvodet.itcod, adinvodet.invunit, adinvodet.invqu, adinvodet.invprc, adinvodet.invsal, adinvodet.makas  "
 
       'Dim dp As New OleDbDataAdapter
        '
ds = New DataSet
        Dp 
= New OleDbDataAdapter(sqlQRYobjconn)
 
       Dp.Fill(ds"adinvodet")
 
 
       Dim rds = New ReportDataSource("salseDataSet1_adinvodet"ds.Tables("adinvodet")) ' قم بتغيير "DataSet1" إلى اسم مصدر البيانات الخاص بك
        Form46.ReportViewer1.LocalReport.DataSources.Clear()
        Form46.ReportViewer1.LocalReport.DataSources.Add(rds)
        Form46.ReportViewer1.LocalReport.ReportEmbeddedResource = "ismail.Report2.rdlc"

        Dim paramList As New Generic.List(Of ReportParameter)
        paramList.Add(New ReportParameter("part1", ComboBox1.Text))
        paramList.Add(New ReportParameter("part2", TextBox1.Text))
        paramList.Add(New ReportParameter("part3", DateTimePicker1.Text))
        paramList.Add(New ReportParameter("part4", theschool))
        Form46.ReportViewer1.LocalReport.SetParameters(paramList)
        Form46.ReportViewer1.Refresh() 
او نصدر التقرير الي اكسل
مثلا
لإعداد وتصدير التقرير إلى Excel في VB.NET باستخدام مكتبة Microsoft.Reporting.WinForms، يمكنك اتباع الخطوات التالية. هذا الكود يعتمد على المكتبة المتاحة ضمن Visual Studio ويشرح كيفية إنشاء التقرير وتصديره إلى ملف Excel.

الخطوات:
إعداد مشروعك: تأكد من إضافة مكتبة Microsoft.Reporting.WinForms إلى مشروعك.
إعداد البيانات والتقرير: قم بإعداد البيانات وربطها بالتقرير.
تصدير التقرير إلى Excel: استخدم الوظيفة Render لتصدير التقرير إلى ملف Excel.

PHP كود :
Imports System.IO
Imports Microsoft
.Reporting.WinForms

Public Class Form3
    Private Sub ButtonGenerateReport_Click
(sender As ObjectAs EventArgsHandles ButtonGenerateReport.Click
        
' إعداد الاتصال وقاعدة البيانات
        Dim sqlQRY2 As String = "SELECT * FROM school"
        Dim objconn As New OleDbConnection("Your Connection String Here")
        Dim SqlDataAdapter As New OleDbDataAdapter(sqlQRY2, objconn)
        Dim ds As New DataSet

        SqlDataAdapter.Fill(ds, "school")

        Dim the5, the6, the7, the12, the13 As Double
        Dim nnn1 As Integer = CInt(TextBox1.Text)

        ComboBox4.Text = nnn1
        Dim nnn2 As Date = DateTimePicker1.Value
        Dim nnn3 As String = ComboBox1.Text

        If objconn.State = ConnectionState.Closed Then objconn.Open()

        Dim sqlQRY As String
        sqlQRY = "SELECT adinvodet.gname, adinvodet.company, adinvodet.invsun, adinvodet.makhzanid, adinvodet.makhzanname, " & _
                 "Sum(adinvodet.invqu) AS invqu, adinvodet.invprc, adinvodet.invsal, adinvodet.makas " & _
                 "FROM adinvodet " & _
                 "WHERE adinvodet.invono = " & ComboBox4.Text & " " & _
                 "GROUP BY adinvodet.gname, adinvodet.company, adinvodet.invsun, adinvodet.makhzanid, adinvodet.makhzanname, " & _
                 "adinvodet.invprc, adinvodet.invsal, adinvodet.makas, adinvodet.itcod, adinvodet.invunit, adinvodet.invqu, " & _
                 "adinvodet.invprc, adinvodet.invsal, adinvodet.makas"

        Dim Dp As New OleDbDataAdapter(sqlQRY, objconn)
        Dp.Fill(ds, "adinvodet")

        Dim rds As New ReportDataSource("salseDataSet1_adinvodet", ds.Tables("adinvodet"))
        Form46.ReportViewer1.LocalReport.DataSources.Clear()
        Form46.ReportViewer1.LocalReport.DataSources.Add(rds)
        Form46.ReportViewer1.LocalReport.ReportEmbeddedResource = "ismail.Report2.rdlc"

        Dim paramList As New Generic.List(Of ReportParameter)
        paramList.Add(New ReportParameter("part1", ComboBox1.Text))
        paramList.Add(New ReportParameter("part2", TextBox1.Text))
        paramList.Add(New ReportParameter("part3", DateTimePicker1.Value.ToString("yyyy-MM-dd")))
        paramList.Add(New ReportParameter("part4", theschool))
        Form46.ReportViewer1.LocalReport.SetParameters(paramList)
        Form46.ReportViewer1.RefreshReport()

        ' 
تصدير التقرير إلى Excel
        ExportReportToExcel
(Form46.ReportViewer1)
 
   End Sub

    Private Sub ExportReportToExcel
(reportViewer As ReportViewer)
 
       Dim warnings As Warning()
 
       Dim streamids As String()
 
       Dim mimeType As String String.Empty
 
       Dim encoding As String String.Empty
 
       Dim extension As String "xlsx"
 
       Dim bytes As Byte()

 
       ' إعداد التقرير
        bytes = reportViewer.LocalReport.Render("Excel", Nothing, mimeType, encoding, extension, streamids, warnings)

        ' 
حفظ الملف إلى Excel
        Dim filePath 
As String "C:\path\to\your\output\Report.xlsx"
 
       Using fs As New FileStream(filePathFileMode.Create)
 
           fs.Write(bytes0bytes.Length)
 
       End Using

        MessageBox
.Show("تم تصدير التقرير بنجاح إلى " filePath)
 
   End Sub
End 
Class 


الشرح:
إعداد البيانات والتقرير:

تم إعداد الاتصال بقاعدة البيانات واستعلام SQL لجلب البيانات.
ملء DataSet بالبيانات المسترجعة من قاعدة البيانات.
إعداد ReportDataSource وربطها بـ ReportViewer.
تصدير التقرير إلى Excel:

تستخدم وظيفة Render لتوليد البيانات الثنائية للتقرير بصيغة Excel.
يتم حفظ البيانات الثنائية إلى ملف Excel باستخدام FileStream.
ملاحظات:
تأكد من أن مسار الملف (filePath) صالح وأن لديك الأذونات اللازمة للكتابة في الموقع المحدد.
يمكنك تعديل تنسيق التصدير وتغيير "Excel" إلى تنسيقات أخرى مدعومة مثل "PDF" إذا رغبت بذلك.
باستخدام هذا الكود، يمكنك إعداد وتصدير تقريرك إلى ملف Excel بسهولة في VB.NET.
لماذا ملف الاكسل لا يفتح بعد التصدير
التنسيق لا يطابق
ولا افهم لماذا
هل فتح عند حضرتك


او لو فيه طريقة للطباعة دون عرض نافذة الطباعات
برجاء الرد
من الواضح أن هناك عدة نقاط يجب فحصها لضمان أن التقرير يتم تصديره بشكل صحيح إلى ملف Excel. دعونا نتناول الأمور الممكنة خطوة بخطوة:

1. التحقق من تنسيق التقرير في الـ ReportViewer
تأكد من أن التقرير الذي تقوم بإنشائه وعرضه في الـ ReportViewer يظهر بشكل صحيح قبل التصدير إلى ملف Excel. إذا كان التقرير في الـ ReportViewer يحتوي على أي مشاكل، فمن المحتمل أن تظهر نفس المشاكل في ملف Excel.

2. التحقق من مسار الحفظ
تأكد من أن المسار الذي تحفظ فيه الملف صحيح وأن لديك الأذونات الكافية للكتابة إلى هذا المسار. في الكود الحالي، المسار محدد إلى C:\path\to\your\output\Report.xlsx. تأكد من تعديل هذا المسار إلى مسار حقيقي على جهازك.

3. التحقق من عملية التصدير إلى Excel
تأكد من أن الـ ReportViewer يدعم التصدير إلى تنسيق Excel بدون مشاكل. يمكنك فحص أي تحذيرات يتم إرجاعها من عملية التصدير لمعرفة ما إذا كان هناك أي مشاكل في التقرير:

PHP كود :
' إعداد التقرير
bytes = reportViewer.LocalReport.Render("Excel", Nothing, mimeType, encoding, extension, streamids, warnings)

عرض التحذيرات إن وجدت
If warnings IsNot Nothing AndAlso warnings.Length 0 Then
    For Each warning 
As Warning In warnings
        MessageBox
.Show(warning.Message)
 
   Next
End 
If 


4. التحقق من امتداد الملف
تأكد من أن الامتداد المستخدم لتصدير التقرير هو "xlsx" وليس "xls". في الكود الخاص بك، الامتداد صحيح ولكنه من الجيد التحقق من صحة الامتداد عند الحفظ.

5. التحقق من تنسيق البيانات
تأكد من أن البيانات التي تقوم بتصديرها تتوافق مع التنسيق المتوقع لملفات Excel. قد تكون هناك مشاكل في البيانات التي يتم تصديرها والتي قد تؤدي إلى فشل فتح الملف بشكل صحيح.

تحسين الكود:
تأكد من أن الكود الخاص بالتصدير إلى Excel ينفذ بشكل صحيح ويعرض أي تحذيرات ممكنة. يمكنك استخدام الكود التالي كنموذج محسّن:

PHP كود :
Private Sub ExportReportToExcel(reportViewer As ReportViewer)
 
   Dim warnings As Warning()
 
   Dim streamids As String()
 
   Dim mimeType As String String.Empty
 
   Dim encoding As String String.Empty
 
   Dim extension As String "xlsx"
 
   Dim bytes As Byte()

 
   ' إعداد التقرير
    bytes = reportViewer.LocalReport.Render("Excel", Nothing, mimeType, encoding, extension, streamids, warnings)

    ' 
عرض التحذيرات إن وجدت
    If warnings IsNot Nothing AndAlso warnings
.Length 0 Then
        For Each warning 
As Warning In warnings
            MessageBox
.Show(warning.Message)
 
       Next
    End 
If

 
   ' حفظ الملف إلى Excel
    Dim filePath As String = "C:\path\to\your\output\Report.xlsx"
    Using fs As New FileStream(filePath, FileMode.Create)
        fs.Write(bytes, 0, bytes.Length)
    End Using

    MessageBox.Show("تم تصدير التقرير بنجاح إلى " & filePath)
End Sub 


قم بفحص هذه النقاط وتحديث الكود الخاص بك حسب الحاجة. إذا استمرت المشكلة، قد تحتاج إلى مراجعة إعدادات التقرير والبيانات المصدرة بعناية أكبر.
لك كل التحيةعلي تعبك
برجاء تجربة الحل لان هذا الملف لم يفتح رغم تطبيق تعليماتك

يمكن تصدير التقرير الي الطابعة مباشرة الي الطابعة كحل اخر

ما يتم تنفيذه علي ارض الواقع برجاء كتابته ليستفيد منه الجميع
واكيد
لك كل الشكر
علي تعبك