منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ارجو المساعده في طباعة التقرير - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : ارجو المساعده في طباعة التقرير (/showthread.php?tid=992)



ارجو المساعده في طباعة التقرير - VB.NET - 18-11-13

اخواني لدي طابعتين اريد كود لجعل الريبورت الاول يطبع في طابعة والريبورت الثاني يطبع في طابعة اخرى
ارجو الافادة


RE: ارجو المساعده في طباعة التقرير - Ahmed_Esmail - 18-11-13

متابع


RE: ارجو المساعده في طباعة التقرير - VB.NET - 18-11-13

ارجو الافادة


RE: ارجو المساعده في طباعة التقرير - allayl - 19-11-13

متابع نأمل الحل من اعضاء المنتدى


RE: ارجو المساعده في طباعة التقرير - VB.NET - 20-11-13

؟؟؟؟؟؟؟؟؟؟؟؟؟؟


RE: ارجو المساعده في طباعة التقرير - VB.NET - 22-11-13

لا يوجد حل لهذا الموضوع


RE: ارجو المساعده في طباعة التقرير - أبو عمر - 23-11-13

بصراحة يا اخي لم اجرب هكذا فكرة
لكن ارى ان تظهر الطابعات والمستخدم يختار الطابعة المناسبة للطباعة


RE: ارجو المساعده في طباعة التقرير - VB_Coder - 23-11-13

السلام عليكم

- هذا السؤال تم طرحه في المنتدى القديم ,و الذي رابطه في أعلى صفحة هذا المنتدى , هذا هو الكود لعمل ذلك :

كود :
Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long


Private Sub Command1_Click()

Dim Prt As Printer
Dim Def_PrinterName As String

'تخزين إسم الطابعة الحالية في هذا المتغير
Def_PrinterName = Printer.DeviceName
DoEvents

Set DataReport1.DataSource = Adodc1
DoEvents

For Each Prt In Printers
    
    If Prt.DeviceName = "EPSON LQ-300+II ESC/P2" Or Prt.DeviceName = "Canon MF4320-4350" Then
       SetDefaultPrinter Prt.DeviceName
       DoEvents
       DataReport1.PrintReport False
       DoEvents
   End If

Next

'إستعادة الطابعة الإفتراضية
SetDefaultPrinter Def_PrinterName
DoEvents

End Sub

- تحياتي .


RE: ارجو المساعده في طباعة التقرير - VB.NET - 26-11-13

مشكور اخوي
طيب اذا اردنا ان تكون اسم الطابعة محدده في التكست بوكس ماهو الكود بدل هذا

If Prt.DeviceName = "HP" Then


RE: ارجو المساعده في طباعة التقرير - ناجي إبراهيم - 26-11-13

السلام عليكم...

بالإضافة إلى ما تقدم به أخونا VB_Coder مشكوراً فإنه يمكن استعمال الكائنين Printer و Printers لضبط الطابعة الافتراضية للتطبيق دون تغيير الطابعة الافتراضية للنظام (لاحظ أننا نستعمل الخاصية DeviceName التي تعطي الاسم الصحيح الكامل للطابعة):

كود :
Dim Prn As Printer

For Each Prn In Printers
    If UCase$(Prn.DeviceName) = UCase$("hp LaserJet 1010") Then
        Set Printer = Prn    ' اضبط الطابعة الافتراضية
        Exit For                  ' اخرج من الحلقة
    End If
Next

و تبديل الطابعات حسب الحاجة:

كود :
Dim Prn As Printer
Dim Printer1 As Printer    ' الطابعة الأولى
Dim Printer2 As Printer    ' الطابعة الثانية
    
For Each Prn In Printers
    If UCase$(Prn.DeviceName) = UCase$("hp LaserJet 1010") Then
        Set Printer1 = Prn
    ElseIf UCase$(Prn.DeviceName) = UCase$("hp psc 1310 series") Then
        Set Printer2 = Prn
    End If
Next

Set Printer = Printer1    ' اختر الطابعة الأولى
DataReport1.PrintReport False    ' اطبع التقرير الأول

Set Printer = Printer2    ' اختر الطابعة الثانية
DataReport2.PrintReport False    ' اطبع التقرير الثاني

* ملاحظة: بدل تكرار كود البحث عن الطابعتين كلما أردت الطباعة، يمكنك جعل المتغيرين Printer1 و Printer2 عامين (Public) في Module و ضبطهما عند بداية تشغيل البرنامج ثم استعمالهما حسب الحاجة (كما في الأسطر الأربعة الأخيرة في الكود السابق).

أخيراً، و للحصول على قائمة بأسماء الطابعات (في ListBox مثلاً):

كود :
Dim Prn As Printer
    
For Each Prn In Printers
    List1.AddItem Prn.DeviceName
Next

نرجو الاستفادة و السلام.