10-08-16, 06:13 PM
و عليكم السلام و رحمة الله و بركاته
بعد الاطلاع على التنفيذ الكود يطبع مباشرة فقط انت محتاج تغير اسم الطابعة في الكود الى الطابعة المثبته لديك او يمكنك عمل لوب لجمع الطابعات المثبتة في كومبو بوكس ومن ثم اختيار الطابعة المفضلة للطباعة
دعنا نضف كومبوبوكس للواجهة ونسميه Ts_AllPrinters
و نستخدم الكود التالي للحصول على اسماء الطابعات المثبتة
نستور المرجع التالي اولا
ثم الاجراء التالي
انا عملت متغير نصي في الاعدادت لاخزن فيه اسم الطابعة المفضلة للطباعة PrinterDefultName
ثم االحدث الخاص بالكومبو الكود التالي
بعد ذلك فقط و في السطر التالي لديك
فقط غير "Microsoft XPS Document Writer" باسم الطابعة المخزنة في الاعدادت
استبدله بالتالي
اسف لاني لم ارفق المثال لان واجهة النموذج لم تفتح لدي بسبب اختلاف في نسخة ReportViewer لدي .
بعد الاطلاع على التنفيذ الكود يطبع مباشرة فقط انت محتاج تغير اسم الطابعة في الكود الى الطابعة المثبته لديك او يمكنك عمل لوب لجمع الطابعات المثبتة في كومبو بوكس ومن ثم اختيار الطابعة المفضلة للطباعة
دعنا نضف كومبوبوكس للواجهة ونسميه Ts_AllPrinters
و نستخدم الكود التالي للحصول على اسماء الطابعات المثبتة
نستور المرجع التالي اولا
كود :
Imports System.Drawing.Printingثم الاجراء التالي
كود :
'اضافة الطابعات الى كومبو الطابعات
Dim Print_name As String
For i As Integer = 0 To PrinterSettings.InstalledPrinters.Count - 1
Print_name = PrinterSettings.InstalledPrinters.Item(i)
Ts_AllPrinters.Items.Add(Print_name)
Next
If My.Settings.PrinterDefultName <> "" Then
Ts_AllPrinters.Text = My.Settings.PrinterDefultName
End Ifانا عملت متغير نصي في الاعدادت لاخزن فيه اسم الطابعة المفضلة للطباعة PrinterDefultName
ثم االحدث الخاص بالكومبو الكود التالي
كود :
'تحديث الطابعة الافتراضية بتغيرها
Private Sub Ts_AllPrinters_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles Ts_AllPrinters.SelectedIndexChanged
Try
My.Settings.PrinterDefultName = Ts_AllPrinters.Text
My.Settings.Save()
Catch ex As Exception
MessageBox.Show(ex.Message, "تحديث الطابعة", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
End Try
End Subبعد ذلك فقط و في السطر التالي لديك
كود :
cls.BillPrint(ReportViewer1.LocalReport, 3.14961, HeightInInch, "Microsoft XPS Document Writer")فقط غير "Microsoft XPS Document Writer" باسم الطابعة المخزنة في الاعدادت
استبدله بالتالي
كود :
My.Settings.PrinterDefultNameكود :
cls.BillPrint(ReportViewer1.LocalReport, 3.14961, HeightInInch, My.Settings.PrinterDefultName)اسف لاني لم ارفق المثال لان واجهة النموذج لم تفتح لدي بسبب اختلاف في نسخة ReportViewer لدي .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


