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

نسخة كاملة : كيف اضف عدد النسخ فى كود تصدير التقرير الى PDF
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

كل عام وانتم بخير 

لدي كود تصدير التقرير الى ملف PDF
 اريد  التحكم فى عدد نسخ الطباعة من خلال تكست بوكس 
الكود المستخدم فى التصدير 



كود :
   Dim rpt As New CrystSalePOSinv  'اسم التقرير

       SFDialog.Filter = "Pdf Files|*.pdf"
       If SFDialog.ShowDialog() = DialogResult.OK Then
           rpt.ExportToDisk(ExportFormatType.PortableDocFormat, SFDialog.FileName)
           MessageBox.Show("تم تصدير التقرير بنجاح", "تصدير")
           Cursor = Cursors.Default
       End If
وعليكم السلام ورحمة الله وبركاته

جرب هذا الكود

كود :
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Diagnostics

' مثال على الزر الذي ينفذ العملية
Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
   Dim rpt As New CrystSalePOSinv ' اسم التقرير
   Dim numCopies As Integer = 1

   ' التحقق من قيمة TextBox
   If Integer.TryParse(txtCopies.Text, numCopies) = False OrElse numCopies <= 0 Then
       MessageBox.Show("برجاء إدخال رقم صحيح لعدد النسخ.", "تنبيه")
       Exit Sub
   End If

   SFDialog.Filter = "Pdf Files|*.pdf"
   If SFDialog.ShowDialog() = DialogResult.OK Then
       ' تصدير التقرير إلى PDF
       rpt.ExportToDisk(ExportFormatType.PortableDocFormat, SFDialog.FileName)
       MessageBox.Show("تم تصدير التقرير بنجاح", "تصدير")

       ' طباعة ملف PDF بعدد النسخ المطلوبة
       For i As Integer = 1 To numCopies
           PrintPDF(SFDialog.FileName)
       Next

       Cursor = Cursors.Default
   End If
End Sub

' دالة لطباعة ملف PDF عبر أمر الطباعة في ويندوز
Private Sub PrintPDF(pdfFilePath As String)
   Dim proc As New Process()
   proc.StartInfo.FileName = pdfFilePath
   proc.StartInfo.Verb = "print" ' أمر الطباعة
   proc.StartInfo.CreateNoWindow = True
   proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
   proc.Start()
End Sub